⚠️ Deprecation Notice
ModuleSDK was developed by Rhinestone and is no longer actively supported. For new projects, we recommend using the Rhinestone SDK instead.
Types in ModuleSDK
Glossary of types in ModuleSDK.
Account
The object representing an account in ModuleSDK.
Definition
type Account = {
address: Address
initCode?: Hex
type: AccountType
deployedOnChains: Number[]
}Properties
address
The address of the account.
initCode
- Type:
Hex(opens in a new tab)
The init code of the account.
type
- Type:
AccountType
The type of the account.
deployedOnChains
- Type:
Number[]
The chains on which the account is deployed.
AccountType
The type of the account.
Definition
type AccountType = 'erc7579-implementation' | 'kernel' | 'safe' | 'nexus'Properties
type
- Type:
string
One of the following values:
erc7579-implementationkernelsafenexus
Action
The object representing an action in ModuleSDK.
Definition
type Action = {
to: Address
target: Address
value: BigInt
data: Hex
callData: Hex
}Properties
to
The address of the target.
target (deprecated)
The address of the target.
value
- Type:
BigInt
The native token value of the execution.
data
- Type:
Hex(opens in a new tab)
The calldata of the action to be executed on the target.
callData (deprecated)
- Type:
Hex(opens in a new tab)
The calldata of the action to be executed on the target.
HookType
The types of subhooks for the HookMultiplexer.
Definition
enum HookType {
GLOBAL,
DELEGATECALL,
VALUE,
SIG,
TARGET,
}Properties
GLOBAL
- Type:
number
Global hooks that get run on every execution.
DELEGATECALL
- Type:
number
Hooks that get run on every delegatecall.
VALUE
- Type:
number
Hooks that get run on every value transfer.
SIG
- Type:
number
Hooks that get run based on which function is called on the account.
TARGET
- Type:
number
Hooks that get run based on the function called on the target.
Module
The object representing a module in ModuleSDK.
Definition
type Module = {
address: Address
module: Address
initData: Hex
deInitData: Hex
additionalContext: Hex
type: ModuleType
}Properties
address
The address of the module.
module (deprecated)
The address of the module.
initData
- Type:
Hex(opens in a new tab)
The installation data of the module.
deInitData
- Type:
Hex(opens in a new tab)
The uninstallation data of the module.
additionalContext
- Type:
Hex(opens in a new tab)
The additional context to be sent to the account.
type
- Type:
ModuleType
The type of the module.
ModuleType
The type of the module.
Definition
type ModuleType = 'validators' | 'executors' | 'hooks' | 'fallbacks'Properties
type
- Type:
string
One of the following values:
validatorsexecutorshooksfallbacks
Session
The object representing a smart sessions validator session in ModuleSDK.
Definition
export type Session = {
sessionValidator: Address
sessionValidatorInitData: Hex
salt: Hex
userOpPolicies: PolicyData[]
erc7739Policies: ERC7739Data
actions: ActionData[]
chainId: bigint
}Properties
sessionValidator
The address of the session validator.
sessionValidatorInitData
- Type:
Hex(opens in a new tab)
The configuration data of the validator. For example, this could be the owners to be verified against.
salt
- Type:
Hex(opens in a new tab)
A unique identifier to prevent collision between sessions. A session key owner can have multiple sessions with the same parameters. To facilitate this, a salt is necessary to avoid collision.
userOpPolicies
- Type:
PolicyData[]
A list of userOp policies.
erc7739Policies
- Type:
ERC7739Data
A list of erc7739 policies.
actions
- Type:
ActionData[]
A list of action policies.
chainId
- Type:
bigint
The chain id of the session.
PolicyData
The object representing a policy data for userOp and action policies in a session.
Definition
export type PolicyData = {
policy: Address
initData: Hex
}Properties
policy
The address of the policy contract.
initData
- Type:
Hex(opens in a new tab)
The init data for initializing policy.
ERC7739Data
The object representing an ERC7739Data in a session.
Definition
export type ERC7739Data = {
allowedERC7739Content: string[]
erc1271Policies: PolicyData[]
}Properties
allowedERC7739Content
- Type: [
string[]]
A list of allowed ERC7739 content.
erc1271Policies
- Type:
PolicyData[]
A list of erc1271 policies.
ActionData
The object representing the ActionData in a session.
Definition
export type ActionData = {
actionTargetSelector: Hex
actionTarget: Address
actionPolicies: PolicyData[]
}Properties
actionTargetSelector
- Type:
Hex(opens in a new tab)
The selector of the action target.
actionTarget
The address of the action target.
actionPolicies
- Type:
PolicyData[]
A list of action policies.
SmartSessionMode
The mode of the session.
Definition
type SmartSessionMode =
| '0x00' // USE mode: If the USE mode was selected, no futher policies have to be enabled.
| '0x01' // ENABLE mode: If the ENABLE mode was selected, the userOp.signature will contain the EnableSession data This data will be used to enable policies and validator for the session
| '0x02' // UNSAFE_ENABLESessionEIP712
The object representing an EIP712 session in ModuleSDK.
Definition
export type SessionEIP712 = {
account: Address
smartSession: Address
mode: number
nonce: bigint
sessionValidator: Address
sessionValidatorInitData: Hex
salt: Hex
userOpPolicies: PolicyData[]
erc7739Policies: ERC7739Data
actions: ActionData[]
}Properties
account
The address of the account.
smartSession
The address of the smart session.
mode
The mode of the session.
sessionValidator
The address of the session validator.
sessionValidatorInitData
- Type:
Hex(opens in a new tab)
The configuration data of the validator.
salt
- Type:
Hex(opens in a new tab)
A unique identifier to prevent collision between sessions. A session key owner can have multiple sessions with the same parameters. To facilitate this, a salt is necessary to avoid collision.
userOpPolicies
- Type:
PolicyData[]
A list of userOp policies.
erc7739Policies
- Type:
ERC7739Data
A list of erc7739 policies.
actions
- Type:
ActionData[]
A list of action policies.
ChainSession
The object representing a chain session in ModuleSDK.
Definition
export type ChainSession = {
chainId: bigint
session: SessionEIP712
}Properties
chainId
- Type:
bigInt
The chain id of the session.
session
- Type:
SessionEIP712
EnableSession
The object representing a chain session in ModuleSDK.
Definition
export type EnableSession = {
chainDigestIndex: number
hashesAndChainIds: ChainDigest[]
sessionToEnable: Session
permissionEnableSig: Hex
}Properties
chainDigestIndex
- Type:
number
The chain digest index for the chain you want to enable session on.
hashesAndChainIds
- Type:
ChainDigest[]
The session digest hashes and chain ids.
sessionToEnable
- Type:
Session
The session to enable.
permissionEnableSig
- Type:
Hex(opens in a new tab)
The permission enable signature.
EnableSessionData
The object representing data needed to enabled a session in an account.
Definition
export type EnableSessionData = {
enableSession: EnableSession
validator: Address
accountType: AccountType
}Properties
enableSession
- Type:
EnableSession
The enable session object.
validator
The address of the validator.
accountType
- Type:
AccountType
The type of the account.
DecodedSessionData
The object representing a decoded session data in ModuleSDK.
Definition
export type DecodedSessionData = {
mode: SmartSessionMode
permssionId: Hex
signature: Hex
enableSessionData: EnableSessionData
}Properties
mode
- Type:
SmartSessionMode
The mode of the session.
permssionId
- Type:
Hex(opens in a new tab)
The permission ID of the session.
signature
- Type:
Hex(opens in a new tab)
The signature of the session.
enableSessionData
- Type:
EnableSessionData
The data needed to enable a session in an account.
Policy
The object representing a smart session policy in ModuleSDK.
Definition
export type Policy = {
policy: Address
address: Address
initData: Hex
}Properties
policy
The address of the policy.
address (deprecated)
The address of the policy.
initData
- Type:
Hex(opens in a new tab)
The init data of the policy.
TokenWithLimit
Token with limit object.
Definition
type TokenWithLimit = {
token: Address
limit: bigint
}Properties
token
The address of the token.
limit
- Type:
bigint
The limit of the token.
ActionConfig
The object representing universal action policy configuration.
Definition
type ActionConfig = {
valueLimitPerUse: bigint
paramRules: ParamRules
}Properties
valueLimitPerUse
- Type:
bigint
The value limit per use.
paramRules
- Type:
ParamRules
The parameter rules.
ParamRules
The object representing parameter rules for universal action policy configuration.
Definition
type ParamRules = {
length: number
rules: ParamRule[]
}Properties
length
- Type:
number
The length of the rules.
rules
- Type:
ParamRule[]
The parameter rules.
ParamRule
The object representing a parameter rule for universal action policy configuration.
Definition
type ParamRule = {
condition: ParamCondition
offset: number
isLimited: boolean
ref: Hex
usage: LimitUsage
}Properties
condition
- Type:
ParamCondition
The condition of the rule.
offset
- Type:
number
The offset of the rule.
isLimited
- Type:
boolean
Whether the rule is limited.
ref
- Type:
Hex(opens in a new tab)
The parameter rules.
usage
- Type:
LimitUsage
The limit usage.
LimitUsage
The object representing a limit usage for universal action policy configuration.
Definition
type LimitUsage = {
limit: bigint
used: bigint
}Properties
limit
- Type:
bigint
The limit of the usage.
used
- Type:
bigint
The used limit.
ParamCondition
The enum representing the universal action policy param condition types.
Definition
export enum ParamCondition {
EQUAL,
GREATER_THAN,
LESS_THAN,
GREATER_THAN_OR_EQUAL,
LESS_THAN_OR_EQUAL,
NOT_EQUAL,
}