@opensubaccounts/sdk
    Preparing search index...

    Variable abisConst

    abis: {
        AllowanceManager: readonly [
            {
                inputs: readonly [
                    { internalType: "address"; name: "_permit2"; type: "address" },
                    { internalType: "address"; name: "factoryAddr"; type: "address" },
                ];
                stateMutability: "nonpayable";
                type: "constructor";
            },
            {
                inputs: readonly [];
                name: "_HARDCODED_CHAIN_ID";
                outputs: readonly [
                    { internalType: "uint256"; name: ""; type: "uint256" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                    { internalType: "address"; name: ""; type: "address" },
                    { internalType: "address"; name: ""; type: "address" },
                ];
                name: "allowanceNonces";
                outputs: readonly [
                    { internalType: "uint256"; name: ""; type: "uint256" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "allowanceRequestBatchTypehash";
                outputs: readonly [
                    { internalType: "bytes32"; name: ""; type: "bytes32" },
                ];
                stateMutability: "pure";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "allowanceRequestTypehash";
                outputs: readonly [
                    { internalType: "bytes32"; name: ""; type: "bytes32" },
                ];
                stateMutability: "pure";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                ];
                name: "allowances";
                outputs: readonly [
                    {
                        components: readonly [
                            { internalType: "uint256"; name: "amount"; type: "uint256" },
                            { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                            { internalType: "uint256"; name: "spent"; type: "uint256" },
                            { internalType: "uint256"; name: "resetsAt"; type: "uint256" },
                        ];
                        internalType: "struct IAllowanceManager.Allowance";
                        name: "";
                        type: "tuple";
                    },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                ];
                name: "bootstrapAllowance";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "address"; name: "holder"; type: "address" },
                ];
                name: "commitHolder";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "eip712Domain";
                outputs: readonly [
                    { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                    { internalType: "string"; name: "name"; type: "string" },
                    { internalType: "string"; name: "version"; type: "string" },
                    { internalType: "uint256"; name: "chainId"; type: "uint256" },
                    { internalType: "address"; name: "verifyingContract"; type: "address" },
                    { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                    { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "factory";
                outputs: readonly [
                    { internalType: "address"; name: "factoryAddress"; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    {
                        components: readonly [
                            {
                                components: readonly [
                                    { internalType: "address"; name: "subaccount"; type: "address" },
                                    { internalType: "address"; name: "token"; type: "address" },
                                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct IAllowanceManager.AllowanceRequest[]";
                                name: "requests";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                        name: "batch";
                        type: "tuple";
                    },
                ];
                name: "hashAllowanceRequestBatch";
                outputs: readonly [
                    { internalType: "bytes32"; name: "structHash"; type: "bytes32" },
                ];
                stateMutability: "pure";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                ];
                name: "holderAddress";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "permit2";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "holder"; type: "address" },
                ];
                name: "registerHolder";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    {
                        components: readonly [
                            {
                                components: readonly [
                                    { internalType: "address"; name: "subaccount"; type: "address" },
                                    { internalType: "address"; name: "token"; type: "address" },
                                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct IAllowanceManager.AllowanceRequest[]";
                                name: "requests";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                        name: "requests";
                        type: "tuple";
                    },
                    { internalType: "bytes"; name: "signature"; type: "bytes" },
                ];
                name: "setAllowances";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                ];
                name: "spendAllowance";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "token";
                        type: "address";
                    },
                    {
                        indexed: false;
                        internalType: "uint256";
                        name: "amount";
                        type: "uint256";
                    },
                    {
                        indexed: false;
                        internalType: "uint256";
                        name: "timeframe";
                        type: "uint256";
                    },
                ];
                name: "AllowanceSet";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "token";
                        type: "address";
                    },
                    {
                        indexed: false;
                        internalType: "uint256";
                        name: "amount";
                        type: "uint256";
                    },
                ];
                name: "AllowanceSpent";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "holder";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "uint256";
                        name: "amount";
                        type: "uint256";
                    },
                ];
                name: "HolderPullFailed";
                type: "event";
            },
            { inputs: readonly []; name: "AllowanceExceeded"; type: "error" },
            { inputs: readonly []; name: "AlreadyInitialised"; type: "error" },
            { inputs: readonly []; name: "HolderAlreadyCommitted"; type: "error" },
            { inputs: readonly []; name: "HolderCommitMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderManagerMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderNotCommitted"; type: "error" },
            { inputs: readonly []; name: "HolderOwnerMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderTokenMismatch"; type: "error" },
            { inputs: readonly []; name: "InvalidContractSignature"; type: "error" },
            { inputs: readonly []; name: "InvalidNonce"; type: "error" },
            { inputs: readonly []; name: "InvalidSignature"; type: "error" },
            { inputs: readonly []; name: "InvalidSignatureLength"; type: "error" },
            { inputs: readonly []; name: "InvalidSigner"; type: "error" },
            { inputs: readonly []; name: "LengthMismatch"; type: "error" },
            { inputs: readonly []; name: "Reentrancy"; type: "error" },
            {
                inputs: readonly [
                    { internalType: "address"; name: "token"; type: "address" },
                ];
                name: "SafeERC20FailedOperation";
                type: "error";
            },
            { inputs: readonly []; name: "UnauthorizedCaller"; type: "error" },
            { inputs: readonly []; name: "ZeroAmount"; type: "error" },
        ];
        MultiChainSignaturesModule: readonly [
            {
                inputs: readonly [
                    {
                        internalType: "address";
                        name: "_siglessTransactionExecutor";
                        type: "address";
                    },
                ];
                stateMutability: "nonpayable";
                type: "constructor";
            },
            {
                inputs: readonly [];
                name: "SIGLESS_TRANSACTION_EXECUTOR";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "domainSeparator";
                outputs: readonly [
                    { internalType: "bytes32"; name: "separator"; type: "bytes32" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    {
                        components: readonly [
                            { internalType: "address"; name: "subaccount"; type: "address" },
                            {
                                components: readonly [
                                    { internalType: "address"; name: "to"; type: "address" },
                                    { internalType: "uint256"; name: "value"; type: "uint256" },
                                    { internalType: "bytes"; name: "data"; type: "bytes" },
                                    { internalType: "uint8"; name: "operation"; type: "uint8" },
                                    { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                    { internalType: "address"; name: "gasToken"; type: "address" },
                                    { internalType: "address"; name: "refundReceiver"; type: "address" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct ISafeTx.SafeTx[]";
                                name: "safeTxs";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                        name: "safeTxBatch";
                        type: "tuple";
                    },
                ];
                name: "encodeTransactionBatchData";
                outputs: readonly [{ internalType: "bytes"; name: ""; type: "bytes" }];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "account"; type: "address" },
                    {
                        components: readonly [
                            { internalType: "address"; name: "subaccount"; type: "address" },
                            {
                                components: readonly [
                                    { internalType: "address"; name: "to"; type: "address" },
                                    { internalType: "uint256"; name: "value"; type: "uint256" },
                                    { internalType: "bytes"; name: "data"; type: "bytes" },
                                    { internalType: "uint8"; name: "operation"; type: "uint8" },
                                    { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                    { internalType: "address"; name: "gasToken"; type: "address" },
                                    { internalType: "address"; name: "refundReceiver"; type: "address" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct ISafeTx.SafeTx[]";
                                name: "safeTxs";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                        name: "safeTxBatch";
                        type: "tuple";
                    },
                    { internalType: "bytes"; name: "signatures"; type: "bytes" },
                ];
                name: "execTransactionBatch";
                outputs: readonly [
                    { internalType: "bool"; name: "success"; type: "bool" },
                ];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "safe";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "uint256";
                        name: "index";
                        type: "uint256";
                    },
                ];
                name: "SafeTxFailed";
                type: "event";
            },
            { inputs: readonly []; name: "LengthMismatch"; type: "error" },
            { inputs: readonly []; name: "MismatchedSubaccount"; type: "error" },
        ];
        OpenSubaccounts: readonly [
            {
                inputs: readonly [
                    {
                        internalType: "address";
                        name: "_siglessTransactionExecutor";
                        type: "address";
                    },
                    { internalType: "address"; name: "_safeSingleton"; type: "address" },
                    { internalType: "address"; name: "_safeProxyFactory"; type: "address" },
                    { internalType: "address"; name: "_safeModuleSetup"; type: "address" },
                    { internalType: "address"; name: "_permit2"; type: "address" },
                ];
                stateMutability: "nonpayable";
                type: "constructor";
            },
            {
                inputs: readonly [];
                name: "ALLOWANCE_MANAGER";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "MULTICHAIN_SIGNATURES_MODULE";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "SAFE_MODULE_SETUP";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "SAFE_PROXY_FACTORY";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "SAFE_SINGLETON";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "SIGLESS_TRANSACTION_EXECUTOR";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "_HARDCODED_CHAIN_ID";
                outputs: readonly [
                    { internalType: "uint256"; name: ""; type: "uint256" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                    { internalType: "address"; name: ""; type: "address" },
                    { internalType: "address"; name: ""; type: "address" },
                ];
                name: "allowanceNonces";
                outputs: readonly [
                    { internalType: "uint256"; name: ""; type: "uint256" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "allowanceRequestBatchTypehash";
                outputs: readonly [
                    { internalType: "bytes32"; name: ""; type: "bytes32" },
                ];
                stateMutability: "pure";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "allowanceRequestTypehash";
                outputs: readonly [
                    { internalType: "bytes32"; name: ""; type: "bytes32" },
                ];
                stateMutability: "pure";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                ];
                name: "allowances";
                outputs: readonly [
                    {
                        components: readonly [
                            { internalType: "uint256"; name: "amount"; type: "uint256" },
                            { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                            { internalType: "uint256"; name: "spent"; type: "uint256" },
                            { internalType: "uint256"; name: "resetsAt"; type: "uint256" },
                        ];
                        internalType: "struct IAllowanceManager.Allowance";
                        name: "";
                        type: "tuple";
                    },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                ];
                name: "bootstrapAllowance";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "address"; name: "holder"; type: "address" },
                ];
                name: "commitHolder";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                    { internalType: "uint256"; name: "quotaTimeframe"; type: "uint256" },
                    { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                    { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                    { internalType: "uint256"; name: "permitDeadline"; type: "uint256" },
                    { internalType: "uint8"; name: "v"; type: "uint8" },
                    { internalType: "bytes32"; name: "r"; type: "bytes32" },
                    { internalType: "bytes32"; name: "s"; type: "bytes32" },
                ];
                name: "createAllowanceHolder";
                outputs: readonly [
                    { internalType: "address"; name: "holder"; type: "address" },
                ];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "string"; name: "appDomain"; type: "string" },
                    { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
                ];
                name: "createSubaccount";
                outputs: readonly [
                    { internalType: "address"; name: "subaccount"; type: "address" },
                ];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "domainSeparator";
                outputs: readonly [
                    { internalType: "bytes32"; name: "separator"; type: "bytes32" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "eip712Domain";
                outputs: readonly [
                    { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                    { internalType: "string"; name: "name"; type: "string" },
                    { internalType: "string"; name: "version"; type: "string" },
                    { internalType: "uint256"; name: "chainId"; type: "uint256" },
                    { internalType: "address"; name: "verifyingContract"; type: "address" },
                    { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                    { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    {
                        components: readonly [
                            { internalType: "address"; name: "subaccount"; type: "address" },
                            {
                                components: readonly [
                                    { internalType: "address"; name: "to"; type: "address" },
                                    { internalType: "uint256"; name: "value"; type: "uint256" },
                                    { internalType: "bytes"; name: "data"; type: "bytes" },
                                    { internalType: "uint8"; name: "operation"; type: "uint8" },
                                    { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                    { internalType: "address"; name: "gasToken"; type: "address" },
                                    { internalType: "address"; name: "refundReceiver"; type: "address" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct ISafeTx.SafeTx[]";
                                name: "safeTxs";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                        name: "safeTxBatch";
                        type: "tuple";
                    },
                ];
                name: "encodeTransactionBatchData";
                outputs: readonly [{ internalType: "bytes"; name: ""; type: "bytes" }];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "account"; type: "address" },
                    {
                        components: readonly [
                            { internalType: "address"; name: "subaccount"; type: "address" },
                            {
                                components: readonly [
                                    { internalType: "address"; name: "to"; type: "address" },
                                    { internalType: "uint256"; name: "value"; type: "uint256" },
                                    { internalType: "bytes"; name: "data"; type: "bytes" },
                                    { internalType: "uint8"; name: "operation"; type: "uint8" },
                                    { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                    { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                    { internalType: "address"; name: "gasToken"; type: "address" },
                                    { internalType: "address"; name: "refundReceiver"; type: "address" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct ISafeTx.SafeTx[]";
                                name: "safeTxs";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                        name: "safeTxBatch";
                        type: "tuple";
                    },
                    { internalType: "bytes"; name: "signatures"; type: "bytes" },
                ];
                name: "execTransactionBatch";
                outputs: readonly [
                    { internalType: "bool"; name: "success"; type: "bool" },
                ];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "factory";
                outputs: readonly [
                    { internalType: "address"; name: "factoryAddress"; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                    { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                    { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                ];
                name: "generateAllowanceHolderAddress";
                outputs: readonly [
                    { internalType: "address"; name: "holder"; type: "address" },
                    { internalType: "bool"; name: "isDeployed"; type: "bool" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "string"; name: "appDomain"; type: "string" },
                    { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
                ];
                name: "generateSubaccountAddress";
                outputs: readonly [
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "bool"; name: "isDeployed"; type: "bool" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    {
                        components: readonly [
                            {
                                components: readonly [
                                    { internalType: "address"; name: "subaccount"; type: "address" },
                                    { internalType: "address"; name: "token"; type: "address" },
                                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct IAllowanceManager.AllowanceRequest[]";
                                name: "requests";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                        name: "batch";
                        type: "tuple";
                    },
                ];
                name: "hashAllowanceRequestBatch";
                outputs: readonly [
                    { internalType: "bytes32"; name: "structHash"; type: "bytes32" },
                ];
                stateMutability: "pure";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                ];
                name: "holderAddress";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                name: "isDeployedAllowanceHolder";
                outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                name: "isDeployedSubaccount";
                outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "permit2";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "holder"; type: "address" },
                ];
                name: "registerHolder";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    {
                        components: readonly [
                            {
                                components: readonly [
                                    { internalType: "address"; name: "subaccount"; type: "address" },
                                    { internalType: "address"; name: "token"; type: "address" },
                                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                    { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                ];
                                internalType: "struct IAllowanceManager.AllowanceRequest[]";
                                name: "requests";
                                type: "tuple[]";
                            },
                            { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                        ];
                        internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                        name: "requests";
                        type: "tuple";
                    },
                    { internalType: "bytes"; name: "signature"; type: "bytes" },
                ];
                name: "setAllowances";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "uint256"; name: "amount"; type: "uint256" },
                ];
                name: "spendAllowance";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "holder";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "token";
                        type: "address";
                    },
                ];
                name: "AllowanceHolderCreated";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "token";
                        type: "address";
                    },
                    {
                        indexed: false;
                        internalType: "uint256";
                        name: "amount";
                        type: "uint256";
                    },
                    {
                        indexed: false;
                        internalType: "uint256";
                        name: "timeframe";
                        type: "uint256";
                    },
                ];
                name: "AllowanceSet";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "token";
                        type: "address";
                    },
                    {
                        indexed: false;
                        internalType: "uint256";
                        name: "amount";
                        type: "uint256";
                    },
                ];
                name: "AllowanceSpent";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "holder";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "uint256";
                        name: "amount";
                        type: "uint256";
                    },
                ];
                name: "HolderPullFailed";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "safe";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "uint256";
                        name: "index";
                        type: "uint256";
                    },
                ];
                name: "SafeTxFailed";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "string";
                        name: "appDomain";
                        type: "string";
                    },
                    {
                        indexed: false;
                        internalType: "uint32";
                        name: "accountIndex";
                        type: "uint32";
                    },
                ];
                name: "SubaccountCreated";
                type: "event";
            },
            { inputs: readonly []; name: "AllowanceExceeded"; type: "error" },
            {
                inputs: readonly [];
                name: "AllowanceManagerRegistrationFailed";
                type: "error";
            },
            { inputs: readonly []; name: "AlreadyInitialised"; type: "error" },
            { inputs: readonly []; name: "Create2EmptyBytecode"; type: "error" },
            {
                inputs: readonly [
                    { internalType: "bytes"; name: "dns"; type: "bytes" },
                ];
                name: "DNSDecodingFailed";
                type: "error";
            },
            {
                inputs: readonly [
                    { internalType: "string"; name: "ens"; type: "string" },
                ];
                name: "DNSEncodingFailed";
                type: "error";
            },
            { inputs: readonly []; name: "FailedDeployment"; type: "error" },
            { inputs: readonly []; name: "HolderAddressMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderAlreadyCommitted"; type: "error" },
            { inputs: readonly []; name: "HolderCommitMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderManagerMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderNotCommitted"; type: "error" },
            { inputs: readonly []; name: "HolderOwnerMismatch"; type: "error" },
            { inputs: readonly []; name: "HolderTokenMismatch"; type: "error" },
            {
                inputs: readonly [
                    { internalType: "uint256"; name: "balance"; type: "uint256" },
                    { internalType: "uint256"; name: "needed"; type: "uint256" },
                ];
                name: "InsufficientBalance";
                type: "error";
            },
            { inputs: readonly []; name: "InvalidContractSignature"; type: "error" },
            { inputs: readonly []; name: "InvalidNonce"; type: "error" },
            { inputs: readonly []; name: "InvalidSignature"; type: "error" },
            { inputs: readonly []; name: "InvalidSignatureLength"; type: "error" },
            { inputs: readonly []; name: "InvalidSigner"; type: "error" },
            { inputs: readonly []; name: "LengthMismatch"; type: "error" },
            { inputs: readonly []; name: "MismatchedSubaccount"; type: "error" },
            { inputs: readonly []; name: "Reentrancy"; type: "error" },
            {
                inputs: readonly [
                    { internalType: "address"; name: "token"; type: "address" },
                ];
                name: "SafeERC20FailedOperation";
                type: "error";
            },
            { inputs: readonly []; name: "SubaccountAddressMismatch"; type: "error" },
            { inputs: readonly []; name: "UnauthorizedCaller"; type: "error" },
            { inputs: readonly []; name: "ZeroAmount"; type: "error" },
        ];
        SubaccountFactory: readonly [
            {
                inputs: readonly [
                    { internalType: "address"; name: "_safeSingleton"; type: "address" },
                    { internalType: "address"; name: "_safeProxyFactory"; type: "address" },
                    { internalType: "address"; name: "_safeModuleSetup"; type: "address" },
                    {
                        internalType: "address";
                        name: "_multichainSignaturesModule";
                        type: "address";
                    },
                    { internalType: "address"; name: "_allowanceManager"; type: "address" },
                ];
                stateMutability: "nonpayable";
                type: "constructor";
            },
            {
                inputs: readonly [];
                name: "ALLOWANCE_MANAGER";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "MULTICHAIN_SIGNATURES_MODULE";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "SAFE_MODULE_SETUP";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "SAFE_PROXY_FACTORY";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [];
                name: "SAFE_SINGLETON";
                outputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                    { internalType: "uint256"; name: "quotaTimeframe"; type: "uint256" },
                    { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                    { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                    { internalType: "uint256"; name: "permitDeadline"; type: "uint256" },
                    { internalType: "uint8"; name: "v"; type: "uint8" },
                    { internalType: "bytes32"; name: "r"; type: "bytes32" },
                    { internalType: "bytes32"; name: "s"; type: "bytes32" },
                ];
                name: "createAllowanceHolder";
                outputs: readonly [
                    { internalType: "address"; name: "holder"; type: "address" },
                ];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "string"; name: "appDomain"; type: "string" },
                    { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
                ];
                name: "createSubaccount";
                outputs: readonly [
                    { internalType: "address"; name: "subaccount"; type: "address" },
                ];
                stateMutability: "nonpayable";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "address"; name: "token"; type: "address" },
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                    { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                    { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                    { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                ];
                name: "generateAllowanceHolderAddress";
                outputs: readonly [
                    { internalType: "address"; name: "holder"; type: "address" },
                    { internalType: "bool"; name: "isDeployed"; type: "bool" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: "owner"; type: "address" },
                    { internalType: "string"; name: "appDomain"; type: "string" },
                    { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
                ];
                name: "generateSubaccountAddress";
                outputs: readonly [
                    { internalType: "address"; name: "subaccount"; type: "address" },
                    { internalType: "bool"; name: "isDeployed"; type: "bool" },
                ];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                name: "isDeployedAllowanceHolder";
                outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                stateMutability: "view";
                type: "function";
            },
            {
                inputs: readonly [
                    { internalType: "address"; name: ""; type: "address" },
                ];
                name: "isDeployedSubaccount";
                outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                stateMutability: "view";
                type: "function";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "holder";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "token";
                        type: "address";
                    },
                ];
                name: "AllowanceHolderCreated";
                type: "event";
            },
            {
                anonymous: false;
                inputs: readonly [
                    {
                        indexed: true;
                        internalType: "address";
                        name: "subaccount";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "address";
                        name: "owner";
                        type: "address";
                    },
                    {
                        indexed: true;
                        internalType: "string";
                        name: "appDomain";
                        type: "string";
                    },
                    {
                        indexed: false;
                        internalType: "uint32";
                        name: "accountIndex";
                        type: "uint32";
                    },
                ];
                name: "SubaccountCreated";
                type: "event";
            },
            {
                inputs: readonly [];
                name: "AllowanceManagerRegistrationFailed";
                type: "error";
            },
            { inputs: readonly []; name: "Create2EmptyBytecode"; type: "error" },
            {
                inputs: readonly [
                    { internalType: "bytes"; name: "dns"; type: "bytes" },
                ];
                name: "DNSDecodingFailed";
                type: "error";
            },
            {
                inputs: readonly [
                    { internalType: "string"; name: "ens"; type: "string" },
                ];
                name: "DNSEncodingFailed";
                type: "error";
            },
            { inputs: readonly []; name: "FailedDeployment"; type: "error" },
            { inputs: readonly []; name: "HolderAddressMismatch"; type: "error" },
            {
                inputs: readonly [
                    { internalType: "uint256"; name: "balance"; type: "uint256" },
                    { internalType: "uint256"; name: "needed"; type: "uint256" },
                ];
                name: "InsufficientBalance";
                type: "error";
            },
            { inputs: readonly []; name: "Reentrancy"; type: "error" },
            { inputs: readonly []; name: "SubaccountAddressMismatch"; type: "error" },
        ];
    } = ...

    Type declaration

    • ReadonlyAllowanceManager: readonly [
          {
              inputs: readonly [
                  { internalType: "address"; name: "_permit2"; type: "address" },
                  { internalType: "address"; name: "factoryAddr"; type: "address" },
              ];
              stateMutability: "nonpayable";
              type: "constructor";
          },
          {
              inputs: readonly [];
              name: "_HARDCODED_CHAIN_ID";
              outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: ""; type: "address" },
                  { internalType: "address"; name: ""; type: "address" },
                  { internalType: "address"; name: ""; type: "address" },
              ];
              name: "allowanceNonces";
              outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "allowanceRequestBatchTypehash";
              outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32" }];
              stateMutability: "pure";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "allowanceRequestTypehash";
              outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32" }];
              stateMutability: "pure";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
              ];
              name: "allowances";
              outputs: readonly [
                  {
                      components: readonly [
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                          { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                          { internalType: "uint256"; name: "spent"; type: "uint256" },
                          { internalType: "uint256"; name: "resetsAt"; type: "uint256" },
                      ];
                      internalType: "struct IAllowanceManager.Allowance";
                      name: "";
                      type: "tuple";
                  },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
              ];
              name: "bootstrapAllowance";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "address"; name: "holder"; type: "address" },
              ];
              name: "commitHolder";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "eip712Domain";
              outputs: readonly [
                  { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                  { internalType: "string"; name: "name"; type: "string" },
                  { internalType: "string"; name: "version"; type: "string" },
                  { internalType: "uint256"; name: "chainId"; type: "uint256" },
                  { internalType: "address"; name: "verifyingContract"; type: "address" },
                  { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                  { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "factory";
              outputs: readonly [
                  { internalType: "address"; name: "factoryAddress"; type: "address" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  {
                      components: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "subaccount"; type: "address" },
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct IAllowanceManager.AllowanceRequest[]";
                              name: "requests";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                      name: "batch";
                      type: "tuple";
                  },
              ];
              name: "hashAllowanceRequestBatch";
              outputs: readonly [
                  { internalType: "bytes32"; name: "structHash"; type: "bytes32" },
              ];
              stateMutability: "pure";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
              ];
              name: "holderAddress";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "permit2";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "holder"; type: "address" },
              ];
              name: "registerHolder";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  {
                      components: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "subaccount"; type: "address" },
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct IAllowanceManager.AllowanceRequest[]";
                              name: "requests";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                      name: "requests";
                      type: "tuple";
                  },
                  { internalType: "bytes"; name: "signature"; type: "bytes" },
              ];
              name: "setAllowances";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "uint256"; name: "amount"; type: "uint256" },
              ];
              name: "spendAllowance";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "token";
                      type: "address";
                  },
                  {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  },
                  {
                      indexed: false;
                      internalType: "uint256";
                      name: "timeframe";
                      type: "uint256";
                  },
              ];
              name: "AllowanceSet";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "token";
                      type: "address";
                  },
                  {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  },
              ];
              name: "AllowanceSpent";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "holder";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  },
              ];
              name: "HolderPullFailed";
              type: "event";
          },
          { inputs: readonly []; name: "AllowanceExceeded"; type: "error" },
          { inputs: readonly []; name: "AlreadyInitialised"; type: "error" },
          { inputs: readonly []; name: "HolderAlreadyCommitted"; type: "error" },
          { inputs: readonly []; name: "HolderCommitMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderManagerMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderNotCommitted"; type: "error" },
          { inputs: readonly []; name: "HolderOwnerMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderTokenMismatch"; type: "error" },
          { inputs: readonly []; name: "InvalidContractSignature"; type: "error" },
          { inputs: readonly []; name: "InvalidNonce"; type: "error" },
          { inputs: readonly []; name: "InvalidSignature"; type: "error" },
          { inputs: readonly []; name: "InvalidSignatureLength"; type: "error" },
          { inputs: readonly []; name: "InvalidSigner"; type: "error" },
          { inputs: readonly []; name: "LengthMismatch"; type: "error" },
          { inputs: readonly []; name: "Reentrancy"; type: "error" },
          {
              inputs: readonly [
                  { internalType: "address"; name: "token"; type: "address" },
              ];
              name: "SafeERC20FailedOperation";
              type: "error";
          },
          { inputs: readonly []; name: "UnauthorizedCaller"; type: "error" },
          { inputs: readonly []; name: "ZeroAmount"; type: "error" },
      ]
    • ReadonlyMultiChainSignaturesModule: readonly [
          {
              inputs: readonly [
                  {
                      internalType: "address";
                      name: "_siglessTransactionExecutor";
                      type: "address";
                  },
              ];
              stateMutability: "nonpayable";
              type: "constructor";
          },
          {
              inputs: readonly [];
              name: "SIGLESS_TRANSACTION_EXECUTOR";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "VERSION";
              outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "domainSeparator";
              outputs: readonly [
                  { internalType: "bytes32"; name: "separator"; type: "bytes32" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  {
                      components: readonly [
                          { internalType: "address"; name: "subaccount"; type: "address" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "to"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "bytes"; name: "data"; type: "bytes" },
                                  { internalType: "uint8"; name: "operation"; type: "uint8" },
                                  { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                  { internalType: "address"; name: "gasToken"; type: "address" },
                                  { internalType: "address"; name: "refundReceiver"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct ISafeTx.SafeTx[]";
                              name: "safeTxs";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                      name: "safeTxBatch";
                      type: "tuple";
                  },
              ];
              name: "encodeTransactionBatchData";
              outputs: readonly [{ internalType: "bytes"; name: ""; type: "bytes" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "account"; type: "address" },
                  {
                      components: readonly [
                          { internalType: "address"; name: "subaccount"; type: "address" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "to"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "bytes"; name: "data"; type: "bytes" },
                                  { internalType: "uint8"; name: "operation"; type: "uint8" },
                                  { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                  { internalType: "address"; name: "gasToken"; type: "address" },
                                  { internalType: "address"; name: "refundReceiver"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct ISafeTx.SafeTx[]";
                              name: "safeTxs";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                      name: "safeTxBatch";
                      type: "tuple";
                  },
                  { internalType: "bytes"; name: "signatures"; type: "bytes" },
              ];
              name: "execTransactionBatch";
              outputs: readonly [
                  { internalType: "bool"; name: "success"; type: "bool" },
              ];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "safe";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "uint256";
                      name: "index";
                      type: "uint256";
                  },
              ];
              name: "SafeTxFailed";
              type: "event";
          },
          { inputs: readonly []; name: "LengthMismatch"; type: "error" },
          { inputs: readonly []; name: "MismatchedSubaccount"; type: "error" },
      ]
    • ReadonlyOpenSubaccounts: readonly [
          {
              inputs: readonly [
                  {
                      internalType: "address";
                      name: "_siglessTransactionExecutor";
                      type: "address";
                  },
                  { internalType: "address"; name: "_safeSingleton"; type: "address" },
                  { internalType: "address"; name: "_safeProxyFactory"; type: "address" },
                  { internalType: "address"; name: "_safeModuleSetup"; type: "address" },
                  { internalType: "address"; name: "_permit2"; type: "address" },
              ];
              stateMutability: "nonpayable";
              type: "constructor";
          },
          {
              inputs: readonly [];
              name: "ALLOWANCE_MANAGER";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "MULTICHAIN_SIGNATURES_MODULE";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "SAFE_MODULE_SETUP";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "SAFE_PROXY_FACTORY";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "SAFE_SINGLETON";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "SIGLESS_TRANSACTION_EXECUTOR";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "VERSION";
              outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "_HARDCODED_CHAIN_ID";
              outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: ""; type: "address" },
                  { internalType: "address"; name: ""; type: "address" },
                  { internalType: "address"; name: ""; type: "address" },
              ];
              name: "allowanceNonces";
              outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "allowanceRequestBatchTypehash";
              outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32" }];
              stateMutability: "pure";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "allowanceRequestTypehash";
              outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32" }];
              stateMutability: "pure";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
              ];
              name: "allowances";
              outputs: readonly [
                  {
                      components: readonly [
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                          { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                          { internalType: "uint256"; name: "spent"; type: "uint256" },
                          { internalType: "uint256"; name: "resetsAt"; type: "uint256" },
                      ];
                      internalType: "struct IAllowanceManager.Allowance";
                      name: "";
                      type: "tuple";
                  },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
              ];
              name: "bootstrapAllowance";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "address"; name: "holder"; type: "address" },
              ];
              name: "commitHolder";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                  { internalType: "uint256"; name: "quotaTimeframe"; type: "uint256" },
                  { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                  { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                  { internalType: "uint256"; name: "permitDeadline"; type: "uint256" },
                  { internalType: "uint8"; name: "v"; type: "uint8" },
                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
              ];
              name: "createAllowanceHolder";
              outputs: readonly [
                  { internalType: "address"; name: "holder"; type: "address" },
              ];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "string"; name: "appDomain"; type: "string" },
                  { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
              ];
              name: "createSubaccount";
              outputs: readonly [
                  { internalType: "address"; name: "subaccount"; type: "address" },
              ];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "domainSeparator";
              outputs: readonly [
                  { internalType: "bytes32"; name: "separator"; type: "bytes32" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "eip712Domain";
              outputs: readonly [
                  { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                  { internalType: "string"; name: "name"; type: "string" },
                  { internalType: "string"; name: "version"; type: "string" },
                  { internalType: "uint256"; name: "chainId"; type: "uint256" },
                  { internalType: "address"; name: "verifyingContract"; type: "address" },
                  { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                  { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  {
                      components: readonly [
                          { internalType: "address"; name: "subaccount"; type: "address" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "to"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "bytes"; name: "data"; type: "bytes" },
                                  { internalType: "uint8"; name: "operation"; type: "uint8" },
                                  { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                  { internalType: "address"; name: "gasToken"; type: "address" },
                                  { internalType: "address"; name: "refundReceiver"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct ISafeTx.SafeTx[]";
                              name: "safeTxs";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                      name: "safeTxBatch";
                      type: "tuple";
                  },
              ];
              name: "encodeTransactionBatchData";
              outputs: readonly [{ internalType: "bytes"; name: ""; type: "bytes" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "account"; type: "address" },
                  {
                      components: readonly [
                          { internalType: "address"; name: "subaccount"; type: "address" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "to"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "bytes"; name: "data"; type: "bytes" },
                                  { internalType: "uint8"; name: "operation"; type: "uint8" },
                                  { internalType: "uint256"; name: "safeTxGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "baseGas"; type: "uint256" },
                                  { internalType: "uint256"; name: "gasPrice"; type: "uint256" },
                                  { internalType: "address"; name: "gasToken"; type: "address" },
                                  { internalType: "address"; name: "refundReceiver"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct ISafeTx.SafeTx[]";
                              name: "safeTxs";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct MultiChainSignaturesModule.SafeTxBatch";
                      name: "safeTxBatch";
                      type: "tuple";
                  },
                  { internalType: "bytes"; name: "signatures"; type: "bytes" },
              ];
              name: "execTransactionBatch";
              outputs: readonly [
                  { internalType: "bool"; name: "success"; type: "bool" },
              ];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "factory";
              outputs: readonly [
                  { internalType: "address"; name: "factoryAddress"; type: "address" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                  { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                  { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
              ];
              name: "generateAllowanceHolderAddress";
              outputs: readonly [
                  { internalType: "address"; name: "holder"; type: "address" },
                  { internalType: "bool"; name: "isDeployed"; type: "bool" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "string"; name: "appDomain"; type: "string" },
                  { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
              ];
              name: "generateSubaccountAddress";
              outputs: readonly [
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "bool"; name: "isDeployed"; type: "bool" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  {
                      components: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "subaccount"; type: "address" },
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct IAllowanceManager.AllowanceRequest[]";
                              name: "requests";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                      name: "batch";
                      type: "tuple";
                  },
              ];
              name: "hashAllowanceRequestBatch";
              outputs: readonly [
                  { internalType: "bytes32"; name: "structHash"; type: "bytes32" },
              ];
              stateMutability: "pure";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
              ];
              name: "holderAddress";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: ""; type: "address" },
              ];
              name: "isDeployedAllowanceHolder";
              outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: ""; type: "address" },
              ];
              name: "isDeployedSubaccount";
              outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "permit2";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "holder"; type: "address" },
              ];
              name: "registerHolder";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  {
                      components: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "subaccount"; type: "address" },
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              ];
                              internalType: "struct IAllowanceManager.AllowanceRequest[]";
                              name: "requests";
                              type: "tuple[]";
                          },
                          { internalType: "uint256[]"; name: "chainIds"; type: "uint256[]" },
                      ];
                      internalType: "struct IAllowanceManager.AllowanceRequestBatch";
                      name: "requests";
                      type: "tuple";
                  },
                  { internalType: "bytes"; name: "signature"; type: "bytes" },
              ];
              name: "setAllowances";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "uint256"; name: "amount"; type: "uint256" },
              ];
              name: "spendAllowance";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "holder";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "token";
                      type: "address";
                  },
              ];
              name: "AllowanceHolderCreated";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "token";
                      type: "address";
                  },
                  {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  },
                  {
                      indexed: false;
                      internalType: "uint256";
                      name: "timeframe";
                      type: "uint256";
                  },
              ];
              name: "AllowanceSet";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "token";
                      type: "address";
                  },
                  {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  },
              ];
              name: "AllowanceSpent";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "holder";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  },
              ];
              name: "HolderPullFailed";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "safe";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "uint256";
                      name: "index";
                      type: "uint256";
                  },
              ];
              name: "SafeTxFailed";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "string";
                      name: "appDomain";
                      type: "string";
                  },
                  {
                      indexed: false;
                      internalType: "uint32";
                      name: "accountIndex";
                      type: "uint32";
                  },
              ];
              name: "SubaccountCreated";
              type: "event";
          },
          { inputs: readonly []; name: "AllowanceExceeded"; type: "error" },
          {
              inputs: readonly [];
              name: "AllowanceManagerRegistrationFailed";
              type: "error";
          },
          { inputs: readonly []; name: "AlreadyInitialised"; type: "error" },
          { inputs: readonly []; name: "Create2EmptyBytecode"; type: "error" },
          {
              inputs: readonly [
                  { internalType: "bytes"; name: "dns"; type: "bytes" },
              ];
              name: "DNSDecodingFailed";
              type: "error";
          },
          {
              inputs: readonly [
                  { internalType: "string"; name: "ens"; type: "string" },
              ];
              name: "DNSEncodingFailed";
              type: "error";
          },
          { inputs: readonly []; name: "FailedDeployment"; type: "error" },
          { inputs: readonly []; name: "HolderAddressMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderAlreadyCommitted"; type: "error" },
          { inputs: readonly []; name: "HolderCommitMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderManagerMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderNotCommitted"; type: "error" },
          { inputs: readonly []; name: "HolderOwnerMismatch"; type: "error" },
          { inputs: readonly []; name: "HolderTokenMismatch"; type: "error" },
          {
              inputs: readonly [
                  { internalType: "uint256"; name: "balance"; type: "uint256" },
                  { internalType: "uint256"; name: "needed"; type: "uint256" },
              ];
              name: "InsufficientBalance";
              type: "error";
          },
          { inputs: readonly []; name: "InvalidContractSignature"; type: "error" },
          { inputs: readonly []; name: "InvalidNonce"; type: "error" },
          { inputs: readonly []; name: "InvalidSignature"; type: "error" },
          { inputs: readonly []; name: "InvalidSignatureLength"; type: "error" },
          { inputs: readonly []; name: "InvalidSigner"; type: "error" },
          { inputs: readonly []; name: "LengthMismatch"; type: "error" },
          { inputs: readonly []; name: "MismatchedSubaccount"; type: "error" },
          { inputs: readonly []; name: "Reentrancy"; type: "error" },
          {
              inputs: readonly [
                  { internalType: "address"; name: "token"; type: "address" },
              ];
              name: "SafeERC20FailedOperation";
              type: "error";
          },
          { inputs: readonly []; name: "SubaccountAddressMismatch"; type: "error" },
          { inputs: readonly []; name: "UnauthorizedCaller"; type: "error" },
          { inputs: readonly []; name: "ZeroAmount"; type: "error" },
      ]
    • ReadonlySubaccountFactory: readonly [
          {
              inputs: readonly [
                  { internalType: "address"; name: "_safeSingleton"; type: "address" },
                  { internalType: "address"; name: "_safeProxyFactory"; type: "address" },
                  { internalType: "address"; name: "_safeModuleSetup"; type: "address" },
                  {
                      internalType: "address";
                      name: "_multichainSignaturesModule";
                      type: "address";
                  },
                  { internalType: "address"; name: "_allowanceManager"; type: "address" },
              ];
              stateMutability: "nonpayable";
              type: "constructor";
          },
          {
              inputs: readonly [];
              name: "ALLOWANCE_MANAGER";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "MULTICHAIN_SIGNATURES_MODULE";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "SAFE_MODULE_SETUP";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "SAFE_PROXY_FACTORY";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [];
              name: "SAFE_SINGLETON";
              outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                  { internalType: "uint256"; name: "quotaTimeframe"; type: "uint256" },
                  { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                  { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                  { internalType: "uint256"; name: "permitDeadline"; type: "uint256" },
                  { internalType: "uint8"; name: "v"; type: "uint8" },
                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
              ];
              name: "createAllowanceHolder";
              outputs: readonly [
                  { internalType: "address"; name: "holder"; type: "address" },
              ];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "string"; name: "appDomain"; type: "string" },
                  { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
              ];
              name: "createSubaccount";
              outputs: readonly [
                  { internalType: "address"; name: "subaccount"; type: "address" },
              ];
              stateMutability: "nonpayable";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "address"; name: "token"; type: "address" },
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                  { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                  { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                  { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
              ];
              name: "generateAllowanceHolderAddress";
              outputs: readonly [
                  { internalType: "address"; name: "holder"; type: "address" },
                  { internalType: "bool"; name: "isDeployed"; type: "bool" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: "owner"; type: "address" },
                  { internalType: "string"; name: "appDomain"; type: "string" },
                  { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
              ];
              name: "generateSubaccountAddress";
              outputs: readonly [
                  { internalType: "address"; name: "subaccount"; type: "address" },
                  { internalType: "bool"; name: "isDeployed"; type: "bool" },
              ];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: ""; type: "address" },
              ];
              name: "isDeployedAllowanceHolder";
              outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
              stateMutability: "view";
              type: "function";
          },
          {
              inputs: readonly [
                  { internalType: "address"; name: ""; type: "address" },
              ];
              name: "isDeployedSubaccount";
              outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
              stateMutability: "view";
              type: "function";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "holder";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "token";
                      type: "address";
                  },
              ];
              name: "AllowanceHolderCreated";
              type: "event";
          },
          {
              anonymous: false;
              inputs: readonly [
                  {
                      indexed: true;
                      internalType: "address";
                      name: "subaccount";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  },
                  {
                      indexed: true;
                      internalType: "string";
                      name: "appDomain";
                      type: "string";
                  },
                  {
                      indexed: false;
                      internalType: "uint32";
                      name: "accountIndex";
                      type: "uint32";
                  },
              ];
              name: "SubaccountCreated";
              type: "event";
          },
          {
              inputs: readonly [];
              name: "AllowanceManagerRegistrationFailed";
              type: "error";
          },
          { inputs: readonly []; name: "Create2EmptyBytecode"; type: "error" },
          {
              inputs: readonly [
                  { internalType: "bytes"; name: "dns"; type: "bytes" },
              ];
              name: "DNSDecodingFailed";
              type: "error";
          },
          {
              inputs: readonly [
                  { internalType: "string"; name: "ens"; type: "string" },
              ];
              name: "DNSEncodingFailed";
              type: "error";
          },
          { inputs: readonly []; name: "FailedDeployment"; type: "error" },
          { inputs: readonly []; name: "HolderAddressMismatch"; type: "error" },
          {
              inputs: readonly [
                  { internalType: "uint256"; name: "balance"; type: "uint256" },
                  { internalType: "uint256"; name: "needed"; type: "uint256" },
              ];
              name: "InsufficientBalance";
              type: "error";
          },
          { inputs: readonly []; name: "Reentrancy"; type: "error" },
          { inputs: readonly []; name: "SubaccountAddressMismatch"; type: "error" },
      ]