@base-org/account
Version:
Base Account SDK
1,595 lines • 60.8 kB
TypeScript
/**********************************************************************
* Constants
**********************************************************************/
export declare const factoryAddress = "0xba5ed110efdba3d005bfc882d75358acbbb85842";
export declare const spendPermissionManagerAddress = "0xf85210B21cC50302F477BA56686d2019dC9b67Ad";
export declare const abi: readonly [{
readonly inputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "bytes";
}];
readonly name: "AlreadyOwner";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "Initialized";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "bytes";
}];
readonly name: "InvalidEthereumAddressOwner";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "key";
readonly type: "uint256";
}];
readonly name: "InvalidNonceKey";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "bytes";
}];
readonly name: "InvalidOwnerBytesLength";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "LastOwner";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "index";
readonly type: "uint256";
}];
readonly name: "NoOwnerAtIndex";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "ownersRemaining";
readonly type: "uint256";
}];
readonly name: "NotLastOwner";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "selector";
readonly type: "bytes4";
}];
readonly name: "SelectorNotAllowed";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "Unauthorized";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "UnauthorizedCallContext";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "UpgradeFailed";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "index";
readonly type: "uint256";
}, {
readonly name: "expectedOwner";
readonly type: "bytes";
}, {
readonly name: "actualOwner";
readonly type: "bytes";
}];
readonly name: "WrongOwnerAtIndex";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly name: "index";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly name: "owner";
readonly type: "bytes";
}];
readonly name: "AddOwner";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly name: "index";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly name: "owner";
readonly type: "bytes";
}];
readonly name: "RemoveOwner";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly name: "implementation";
readonly type: "address";
}];
readonly name: "Upgraded";
readonly type: "event";
}, {
readonly stateMutability: "payable";
readonly type: "fallback";
}, {
readonly inputs: readonly [];
readonly name: "REPLAYABLE_NONCE_KEY";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
}];
readonly name: "addOwnerAddress";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "x";
readonly type: "bytes32";
}, {
readonly name: "y";
readonly type: "bytes32";
}];
readonly name: "addOwnerPublicKey";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "functionSelector";
readonly type: "bytes4";
}];
readonly name: "canSkipChainIdValidation";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "pure";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "domainSeparator";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "eip712Domain";
readonly outputs: readonly [{
readonly name: "fields";
readonly type: "bytes1";
}, {
readonly name: "name";
readonly type: "string";
}, {
readonly name: "version";
readonly type: "string";
}, {
readonly name: "chainId";
readonly type: "uint256";
}, {
readonly name: "verifyingContract";
readonly type: "address";
}, {
readonly name: "salt";
readonly type: "bytes32";
}, {
readonly name: "extensions";
readonly type: "uint256[]";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "entryPoint";
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "target";
readonly type: "address";
}, {
readonly name: "value";
readonly type: "uint256";
}, {
readonly name: "data";
readonly type: "bytes";
}];
readonly name: "execute";
readonly outputs: readonly [];
readonly stateMutability: "payable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly name: "target";
readonly type: "address";
}, {
readonly name: "value";
readonly type: "uint256";
}, {
readonly name: "data";
readonly type: "bytes";
}];
readonly name: "calls";
readonly type: "tuple[]";
}];
readonly name: "executeBatch";
readonly outputs: readonly [];
readonly stateMutability: "payable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "calls";
readonly type: "bytes[]";
}];
readonly name: "executeWithoutChainIdValidation";
readonly outputs: readonly [];
readonly stateMutability: "payable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly name: "sender";
readonly type: "address";
}, {
readonly name: "nonce";
readonly type: "uint256";
}, {
readonly name: "initCode";
readonly type: "bytes";
}, {
readonly name: "callData";
readonly type: "bytes";
}, {
readonly name: "callGasLimit";
readonly type: "uint256";
}, {
readonly name: "verificationGasLimit";
readonly type: "uint256";
}, {
readonly name: "preVerificationGas";
readonly type: "uint256";
}, {
readonly name: "maxFeePerGas";
readonly type: "uint256";
}, {
readonly name: "maxPriorityFeePerGas";
readonly type: "uint256";
}, {
readonly name: "paymasterAndData";
readonly type: "bytes";
}, {
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "userOp";
readonly type: "tuple";
}];
readonly name: "getUserOpHashWithoutChainId";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "implementation";
readonly outputs: readonly [{
readonly name: "$";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "owners";
readonly type: "bytes[]";
}];
readonly name: "initialize";
readonly outputs: readonly [];
readonly stateMutability: "payable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
}];
readonly name: "isOwnerAddress";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "account";
readonly type: "bytes";
}];
readonly name: "isOwnerBytes";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "x";
readonly type: "bytes32";
}, {
readonly name: "y";
readonly type: "bytes32";
}];
readonly name: "isOwnerPublicKey";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "hash";
readonly type: "bytes32";
}, {
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "isValidSignature";
readonly outputs: readonly [{
readonly name: "result";
readonly type: "bytes4";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "nextOwnerIndex";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "index";
readonly type: "uint256";
}];
readonly name: "ownerAtIndex";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "ownerCount";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "proxiableUUID";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "index";
readonly type: "uint256";
}, {
readonly name: "owner";
readonly type: "bytes";
}];
readonly name: "removeLastOwner";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "index";
readonly type: "uint256";
}, {
readonly name: "owner";
readonly type: "bytes";
}];
readonly name: "removeOwnerAtIndex";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "removedOwnersCount";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "hash";
readonly type: "bytes32";
}];
readonly name: "replaySafeHash";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "newImplementation";
readonly type: "address";
}, {
readonly name: "data";
readonly type: "bytes";
}];
readonly name: "upgradeToAndCall";
readonly outputs: readonly [];
readonly stateMutability: "payable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly name: "sender";
readonly type: "address";
}, {
readonly name: "nonce";
readonly type: "uint256";
}, {
readonly name: "initCode";
readonly type: "bytes";
}, {
readonly name: "callData";
readonly type: "bytes";
}, {
readonly name: "callGasLimit";
readonly type: "uint256";
}, {
readonly name: "verificationGasLimit";
readonly type: "uint256";
}, {
readonly name: "preVerificationGas";
readonly type: "uint256";
}, {
readonly name: "maxFeePerGas";
readonly type: "uint256";
}, {
readonly name: "maxPriorityFeePerGas";
readonly type: "uint256";
}, {
readonly name: "paymasterAndData";
readonly type: "bytes";
}, {
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "userOp";
readonly type: "tuple";
}, {
readonly name: "userOpHash";
readonly type: "bytes32";
}, {
readonly name: "missingAccountFunds";
readonly type: "uint256";
}];
readonly name: "validateUserOp";
readonly outputs: readonly [{
readonly name: "validationData";
readonly type: "uint256";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly stateMutability: "payable";
readonly type: "receive";
}];
export declare const factoryAbi: readonly [{
readonly inputs: readonly [{
readonly name: "implementation_";
readonly type: "address";
}];
readonly stateMutability: "payable";
readonly type: "constructor";
}, {
readonly inputs: readonly [];
readonly name: "OwnerRequired";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly name: "owners";
readonly type: "bytes[]";
}, {
readonly name: "nonce";
readonly type: "uint256";
}];
readonly name: "createAccount";
readonly outputs: readonly [{
readonly name: "account";
readonly type: "address";
}];
readonly stateMutability: "payable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly name: "owners";
readonly type: "bytes[]";
}, {
readonly name: "nonce";
readonly type: "uint256";
}];
readonly name: "getAddress";
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "implementation";
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "initCodeHash";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}];
export declare const spendPermissionManagerAbi: readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "publicERC6492Validator";
readonly type: "address";
readonly internalType: "contract PublicERC6492Validator";
}, {
readonly name: "magicSpend";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "receive";
readonly stateMutability: "payable";
}, {
readonly type: "function";
readonly name: "MAGIC_SPEND";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "NATIVE_TOKEN";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "PERMISSION_DETAILS_TYPEHASH";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "PUBLIC_ERC6492_VALIDATOR";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract PublicERC6492Validator";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "SPEND_PERMISSION_BATCH_TYPEHASH";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "SPEND_PERMISSION_TYPEHASH";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "approve";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "approveBatchWithSignature";
readonly inputs: readonly [{
readonly name: "spendPermissionBatch";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermissionBatch";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "permissions";
readonly type: "tuple[]";
readonly internalType: "struct SpendPermissionManager.PermissionDetails[]";
readonly components: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
}, {
readonly name: "signature";
readonly type: "bytes";
readonly internalType: "bytes";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "approveWithRevoke";
readonly inputs: readonly [{
readonly name: "permissionToApprove";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "permissionToRevoke";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "expectedLastUpdatedPeriod";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.PeriodSpend";
readonly components: readonly [{
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "spend";
readonly type: "uint160";
readonly internalType: "uint160";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "approveWithSignature";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "signature";
readonly type: "bytes";
readonly internalType: "bytes";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "eip712Domain";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "fields";
readonly type: "bytes1";
readonly internalType: "bytes1";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "version";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "chainId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "verifyingContract";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "salt";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "extensions";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getBatchHash";
readonly inputs: readonly [{
readonly name: "spendPermissionBatch";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermissionBatch";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "permissions";
readonly type: "tuple[]";
readonly internalType: "struct SpendPermissionManager.PermissionDetails[]";
readonly components: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getCurrentPeriod";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.PeriodSpend";
readonly components: readonly [{
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "spend";
readonly type: "uint160";
readonly internalType: "uint160";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getHash";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getLastUpdatedPeriod";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.PeriodSpend";
readonly components: readonly [{
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "spend";
readonly type: "uint160";
readonly internalType: "uint160";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "isApproved";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "isRevoked";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "isValid";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "revoke";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "revokeAsSpender";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "spend";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "value";
readonly type: "uint160";
readonly internalType: "uint160";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "spendWithWithdraw";
readonly inputs: readonly [{
readonly name: "spendPermission";
readonly type: "tuple";
readonly internalType: "struct SpendPermissionManager.SpendPermission";
readonly components: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "period";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "start";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "end";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "salt";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extraData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "value";
readonly type: "uint160";
readonly internalType: "uint160";
}, {
readonly name: "withdrawRequest";
readonly type: "tuple";
readonly internalType: "struct MagicSpend.WithdrawRequest";
readonly components: readonly [{
readonly name: "signature";
readonly type: "bytes";
readonly internalType: "bytes";
}, {
readonly name: "asset";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amount";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "nonce";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "expiry";
readonly type: "uint48";
readonly internalType: "uint48";
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "SpendPermissionApproved";
readonly inputs: readonly [{
readonly name: "hash";
readonly type: "bytes32";
readonly indexed: true;
readonly internalType: "bytes32";
}, {
readonly name: "spendPermission";
readonly type: "tuple";
readonly indexed: false;
readonly interna