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
|