Skip to content
Alchemy Logo

AllowlistModule

const AllowlistModule: object;

Defined in: packages/smart-accounts/src/ma-v2/modules/allowlist-module/module.ts:5

NameTypeDefault value

abi

readonly [{ inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "address"; name: "target"; type: "address"; }, { internalType: "address"; name: "account"; type: "address"; }]; name: "addressAllowlist"; outputs: readonly [{ internalType: "bool"; name: "allowed"; type: "bool"; }, { internalType: "bool"; name: "hasSelectorAllowlist"; type: "bool"; }, { internalType: "bool"; name: "hasERC20SpendLimit"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "bytes"; name: "callData"; type: "bytes"; }]; name: "checkAllowlistCalldata"; outputs: readonly []; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { components: readonly [{ internalType: "address"; name: "target"; type: "address"; }, { internalType: "bool"; name: "hasSelectorAllowlist"; type: "bool"; }, { internalType: "bool"; name: "hasERC20SpendLimit"; type: "bool"; }, { internalType: "uint256"; name: "erc20SpendLimit"; type: "uint256"; }, { internalType: "bytes4[]"; name: "selectors"; type: "bytes4[]"; }]; internalType: "struct AllowlistModule.AllowlistInput[]"; name: "inputs"; type: "tuple[]"; }]; name: "deleteAllowlist"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "address"; name: "target"; type: "address"; }, { internalType: "address"; name: "account"; type: "address"; }]; name: "erc20SpendLimits"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "moduleId"; outputs: readonly [{ internalType: "string"; name: ""; type: "string"; }]; stateMutability: "pure"; type: "function"; }, { inputs: readonly [{ internalType: "bytes"; name: "data"; type: "bytes"; }]; name: "onInstall"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes"; name: "data"; type: "bytes"; }]; name: "onUninstall"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: ""; type: "uint32"; }, { internalType: "bytes"; name: ""; type: "bytes"; }]; name: "postExecutionHook"; outputs: readonly []; stateMutability: "pure"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "address"; name: ""; type: "address"; }, { internalType: "uint256"; name: ""; type: "uint256"; }, { internalType: "bytes"; name: "data"; type: "bytes"; }]; name: "preExecutionHook"; outputs: readonly [{ internalType: "bytes"; name: ""; type: "bytes"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "address"; name: ""; type: "address"; }, { internalType: "uint256"; name: ""; type: "uint256"; }, { internalType: "bytes"; name: "data"; type: "bytes"; }, { internalType: "bytes"; name: ""; type: "bytes"; }]; name: "preRuntimeValidationHook"; outputs: readonly []; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: ""; type: "uint32"; }, { internalType: "address"; name: ""; type: "address"; }, { internalType: "bytes32"; name: ""; type: "bytes32"; }, { internalType: "bytes"; name: ""; type: "bytes"; }]; name: "preSignatureValidationHook"; outputs: readonly []; stateMutability: "pure"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { components: readonly [{ internalType: "address"; name: "sender"; type: "address"; }, { internalType: "uint256"; name: "nonce"; type: "uint256"; }, { internalType: "bytes"; name: "initCode"; type: "bytes"; }, { internalType: "bytes"; name: "callData"; type: "bytes"; }, { internalType: "bytes32"; name: "accountGasLimits"; type: "bytes32"; }, { internalType: "uint256"; name: "preVerificationGas"; type: "uint256"; }, { internalType: "bytes32"; name: "gasFees"; type: "bytes32"; }, { internalType: "bytes"; name: "paymasterAndData"; type: "bytes"; }, { internalType: "bytes"; name: "signature"; type: "bytes"; }]; internalType: "struct PackedUserOperation"; name: "userOp"; type: "tuple"; }, { internalType: "bytes32"; name: ""; type: "bytes32"; }]; name: "preUserOpValidationHook"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "bytes4"; name: "selector"; type: "bytes4"; }, { internalType: "address"; name: "target"; type: "address"; }, { internalType: "address"; name: "account"; type: "address"; }]; name: "selectorAllowlist"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "address"; name: "target"; type: "address"; }, { internalType: "bool"; name: "allowed"; type: "bool"; }, { internalType: "bool"; name: "hasSelectorAllowlist"; type: "bool"; }, { internalType: "bool"; name: "hasERC20SpendLimit"; type: "bool"; }]; name: "setAddressAllowlist"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "address"; name: "target"; type: "address"; }, { internalType: "bytes4"; name: "selector"; type: "bytes4"; }, { internalType: "bool"; name: "allowed"; type: "bool"; }]; name: "setSelectorAllowlist"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes4"; name: "interfaceId"; type: "bytes4"; }]; name: "supportsInterface"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { components: readonly [{ internalType: "address"; name: "target"; type: "address"; }, { internalType: "bool"; name: "hasSelectorAllowlist"; type: "bool"; }, { internalType: "bool"; name: "hasERC20SpendLimit"; type: "bool"; }, { internalType: "uint256"; name: "erc20SpendLimit"; type: "uint256"; }, { internalType: "bytes4[]"; name: "selectors"; type: "bytes4[]"; }]; internalType: "struct AllowlistModule.AllowlistInput[]"; name: "inputs"; type: "tuple[]"; }]; name: "updateAllowlist"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint32"; name: "entityId"; type: "uint32"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "bool"; name: "hasERC20SpendLimit"; type: "bool"; }, { internalType: "uint256"; name: "newLimit"; type: "uint256"; }]; name: "updateLimits"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint32"; name: "entityId"; type: "uint32"; }, { indexed: true; internalType: "address"; name: "account"; type: "address"; }, { indexed: true; internalType: "address"; name: "target"; type: "address"; }, { components: readonly [{ internalType: "bool"; name: "allowed"; type: "bool"; }, { internalType: "bool"; name: "hasSelectorAllowlist"; type: "bool"; }, { internalType: "bool"; name: "hasERC20SpendLimit"; type: "bool"; }]; indexed: false; internalType: "struct AllowlistModule.AddressAllowlistEntry"; name: "entry"; type: "tuple"; }]; name: "AddressAllowlistUpdated"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint32"; name: "entityId"; type: "uint32"; }, { indexed: true; internalType: "address"; name: "account"; type: "address"; }, { indexed: true; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "newLimit"; type: "uint256"; }]; name: "ERC20SpendLimitUpdated"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint32"; name: "entityId"; type: "uint32"; }, { indexed: true; internalType: "address"; name: "account"; type: "address"; }, { indexed: true; internalType: "bytes24"; name: "targetAndSelector"; type: "bytes24"; }, { indexed: false; internalType: "bool"; name: "allowed"; type: "bool"; }]; name: "SelectorAllowlistUpdated"; type: "event"; }, { inputs: readonly []; name: "AddressNotAllowed"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; name: "ERC20NotAllowed"; type: "error"; }, { inputs: readonly []; name: "ExceededTokenLimit"; type: "error"; }, { inputs: readonly []; name: "InvalidCalldataLength"; type: "error"; }, { inputs: readonly []; name: "NoSelectorSpecified"; type: "error"; }, { inputs: readonly []; name: "NotImplemented"; type: "error"; }, { inputs: readonly []; name: "SelectorNotAllowed"; type: "error"; }, { inputs: readonly [{ internalType: "bytes4"; name: ""; type: "bytes4"; }]; name: "SpendingRequestNotAllowed"; type: "error"; }, { inputs: readonly []; name: "UnexpectedDataPassed"; type: "error"; }]

allowlistModuleAbi

buildHook()

(installArgs, address) => object

encodeOnInstallData()

(args) => `0x${string}`

encodeOnUninstallData()

(args) => `0x${string}`

Was this page helpful?