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-implementation
- kernel
- safe
- nexus
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:
- validators
- executors
- hooks
- fallbacks
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,
}