UNPKG

@metamask/delegation-toolkit

Version:

The Delegation Toolkit built on top of Viem - a library for interacting with DeleGator Smart Accounts

1,554 lines (1,547 loc) 680 kB
import { ANY_BENEFICIARY, ROOT_AUTHORITY } from '@metamask/delegation-core'; import * as viem from 'viem'; import { Client, Transport, Chain, Account, Abi, Address, Hex } from 'viem'; import { l as DelegationStruct } from './delegation-NENcKigs.cjs'; import { h as Delegation, E as ExecutionMode, j as ExecutionStruct, R as Redemption } from './types-DXRahfjU.cjs'; declare const NAME$1 = "DelegationManager"; declare const VERSION$1 = "1.3.0"; declare const DOMAIN_VERSION$1 = "1"; declare const constants$2_ANY_BENEFICIARY: typeof ANY_BENEFICIARY; declare const constants$2_ROOT_AUTHORITY: typeof ROOT_AUTHORITY; declare namespace constants$2 { export { constants$2_ANY_BENEFICIARY as ANY_BENEFICIARY, DOMAIN_VERSION$1 as DOMAIN_VERSION, NAME$1 as NAME, constants$2_ROOT_AUTHORITY as ROOT_AUTHORITY, VERSION$1 as VERSION }; } type P256Owner = { keyId: string; x: bigint; y: bigint; }; type InitializedClient = Client<Transport, Chain, Account>; type NarrowAbiToFunction<TAbi extends Abi, FunctionName extends string> = [ Extract<TAbi[number], { type: 'function'; name: FunctionName; }>[] ]; declare function isContractDeployed({ client, contractAddress, }: { client: Client; contractAddress: Address; }): Promise<boolean>; declare function isImplementationExpected({ client, contractAddress, expectedImplementationAddress, }: { client: Client; contractAddress: Address; expectedImplementationAddress: Address; }): Promise<boolean>; declare const encodeProxyCreationCode: ({ implementationAddress, initcode, }: { implementationAddress: Address; initcode: Hex; }) => Hex; type EncodeDisableDelegationParameters$1 = { delegation: Delegation; }; type SimulateDisableDelegationParameters$1 = { client: Client; delegationManagerAddress: Address; } & EncodeDisableDelegationParameters$1; type ExecuteDisableDelegationParameters$1 = { client: InitializedClient; delegationManagerAddress: Address; } & EncodeDisableDelegationParameters$1; declare const simulate$y: ({ client, delegationManagerAddress, delegation, }: SimulateDisableDelegationParameters$1) => Promise<viem.SimulateContractReturnType<NarrowAbiToFunction<readonly [{ readonly type: "constructor"; readonly inputs: readonly [{ readonly name: "_owner"; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "ANY_DELEGATE"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DOMAIN_VERSION"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "NAME"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "ROOT_AUTHORITY"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "VERSION"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "acceptOwnership"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "disableDelegation"; readonly inputs: readonly [{ readonly name: "_delegation"; readonly type: "tuple"; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "disabledDelegations"; readonly inputs: readonly [{ readonly name: "delegationHash"; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly outputs: readonly [{ readonly name: "isDisabled"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "eip712Domain"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: "fields"; readonly type: "bytes1"; readonly internalType: "bytes1"; }, { readonly name: "name"; readonly type: "string"; readonly internalType: "string"; }, { readonly name: "version"; readonly type: "string"; readonly internalType: "string"; }, { readonly name: "chainId"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "verifyingContract"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "salt"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "extensions"; readonly type: "uint256[]"; readonly internalType: "uint256[]"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "enableDelegation"; readonly inputs: readonly [{ readonly name: "_delegation"; readonly type: "tuple"; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "getDelegationHash"; readonly inputs: readonly [{ readonly name: "_input"; readonly type: "tuple"; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "pure"; }, { readonly type: "function"; readonly name: "getDomainHash"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "owner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "pause"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "paused"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "pendingOwner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "redeemDelegations"; readonly inputs: readonly [{ readonly name: "_permissionContexts"; readonly type: "bytes[]"; readonly internalType: "bytes[]"; }, { readonly name: "_modes"; readonly type: "bytes32[]"; readonly internalType: "ModeCode[]"; }, { readonly name: "_executionCallDatas"; readonly type: "bytes[]"; readonly internalType: "bytes[]"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "renounceOwnership"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "transferOwnership"; readonly inputs: readonly [{ readonly name: "newOwner"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "unpause"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "event"; readonly name: "DisabledDelegation"; readonly inputs: readonly [{ readonly name: "delegationHash"; readonly type: "bytes32"; readonly indexed: true; readonly internalType: "bytes32"; }, { readonly name: "delegator"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegate"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegation"; readonly type: "tuple"; readonly indexed: false; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "EIP712DomainChanged"; readonly inputs: readonly []; readonly anonymous: false; }, { readonly type: "event"; readonly name: "EnabledDelegation"; readonly inputs: readonly [{ readonly name: "delegationHash"; readonly type: "bytes32"; readonly indexed: true; readonly internalType: "bytes32"; }, { readonly name: "delegator"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegate"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegation"; readonly type: "tuple"; readonly indexed: false; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferStarted"; readonly inputs: readonly [{ readonly name: "previousOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferred"; readonly inputs: readonly [{ readonly name: "previousOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "Paused"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly indexed: false; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "RedeemedDelegation"; readonly inputs: readonly [{ readonly name: "rootDelegator"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "redeemer"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegation"; readonly type: "tuple"; readonly indexed: false; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "SetDomain"; readonly inputs: readonly [{ readonly name: "domainHash"; readonly type: "bytes32"; readonly indexed: true; readonly internalType: "bytes32"; }, { readonly name: "name"; readonly type: "string"; readonly indexed: false; readonly internalType: "string"; }, { readonly name: "domainVersion"; readonly type: "string"; readonly indexed: false; readonly internalType: "string"; }, { readonly name: "chainId"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }, { readonly name: "contractAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "Unpaused"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly indexed: false; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "error"; readonly name: "AlreadyDisabled"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "AlreadyEnabled"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "BatchDataLengthMismatch"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "CannotUseADisabledDelegation"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "ECDSAInvalidSignature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "ECDSAInvalidSignatureLength"; readonly inputs: readonly [{ readonly name: "length"; readonly type: "uint256"; readonly internalType: "uint256"; }]; }, { readonly type: "error"; readonly name: "ECDSAInvalidSignatureS"; readonly inputs: readonly [{ readonly name: "s"; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; }, { readonly type: "error"; readonly name: "EmptySignature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "EnforcedPause"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "ExpectedPause"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidAuthority"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidDelegate"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidDelegator"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidEOASignature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidERC1271Signature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidShortString"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "OwnableInvalidOwner"; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; readonly internalType: "address"; }]; }, { readonly type: "error"; readonly name: "OwnableUnauthorizedAccount"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly internalType: "address"; }]; }, { readonly type: "error"; readonly name: "StringTooLong"; readonly inputs: readonly [{ readonly name: "str"; readonly type: "string"; readonly internalType: "string"; }]; }], "disableDelegation">, "disableDelegation", [DelegationStruct], viem.Chain | undefined, viem.Account | undefined, undefined, undefined, readonly [never], viem.Account | undefined>>; declare const execute$k: ({ client, delegationManagerAddress, delegation, }: ExecuteDisableDelegationParameters$1) => Promise<`0x${string}`>; declare const encode$z: ({ delegation }: EncodeDisableDelegationParameters$1) => `0x${string}`; type EncodeEnableDelegationParameters$1 = { delegation: Delegation; }; type SimulateEnableDelegationParameters$1 = { client: Client; delegationManagerAddress: Address; } & EncodeEnableDelegationParameters$1; type ExecuteEnableDelegationParameters$1 = { client: InitializedClient; delegationManagerAddress: Address; } & EncodeEnableDelegationParameters$1; declare const simulate$x: ({ client, delegationManagerAddress, delegation, }: SimulateEnableDelegationParameters$1) => Promise<viem.SimulateContractReturnType<NarrowAbiToFunction<readonly [{ readonly type: "constructor"; readonly inputs: readonly [{ readonly name: "_owner"; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "ANY_DELEGATE"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DOMAIN_VERSION"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "NAME"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "ROOT_AUTHORITY"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "VERSION"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "acceptOwnership"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "disableDelegation"; readonly inputs: readonly [{ readonly name: "_delegation"; readonly type: "tuple"; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "disabledDelegations"; readonly inputs: readonly [{ readonly name: "delegationHash"; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly outputs: readonly [{ readonly name: "isDisabled"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "eip712Domain"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: "fields"; readonly type: "bytes1"; readonly internalType: "bytes1"; }, { readonly name: "name"; readonly type: "string"; readonly internalType: "string"; }, { readonly name: "version"; readonly type: "string"; readonly internalType: "string"; }, { readonly name: "chainId"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "verifyingContract"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "salt"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "extensions"; readonly type: "uint256[]"; readonly internalType: "uint256[]"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "enableDelegation"; readonly inputs: readonly [{ readonly name: "_delegation"; readonly type: "tuple"; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "getDelegationHash"; readonly inputs: readonly [{ readonly name: "_input"; readonly type: "tuple"; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "pure"; }, { readonly type: "function"; readonly name: "getDomainHash"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "owner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "pause"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "paused"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "pendingOwner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "redeemDelegations"; readonly inputs: readonly [{ readonly name: "_permissionContexts"; readonly type: "bytes[]"; readonly internalType: "bytes[]"; }, { readonly name: "_modes"; readonly type: "bytes32[]"; readonly internalType: "ModeCode[]"; }, { readonly name: "_executionCallDatas"; readonly type: "bytes[]"; readonly internalType: "bytes[]"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "renounceOwnership"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "transferOwnership"; readonly inputs: readonly [{ readonly name: "newOwner"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "unpause"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "event"; readonly name: "DisabledDelegation"; readonly inputs: readonly [{ readonly name: "delegationHash"; readonly type: "bytes32"; readonly indexed: true; readonly internalType: "bytes32"; }, { readonly name: "delegator"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegate"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegation"; readonly type: "tuple"; readonly indexed: false; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "EIP712DomainChanged"; readonly inputs: readonly []; readonly anonymous: false; }, { readonly type: "event"; readonly name: "EnabledDelegation"; readonly inputs: readonly [{ readonly name: "delegationHash"; readonly type: "bytes32"; readonly indexed: true; readonly internalType: "bytes32"; }, { readonly name: "delegator"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegate"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegation"; readonly type: "tuple"; readonly indexed: false; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferStarted"; readonly inputs: readonly [{ readonly name: "previousOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferred"; readonly inputs: readonly [{ readonly name: "previousOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "Paused"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly indexed: false; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "RedeemedDelegation"; readonly inputs: readonly [{ readonly name: "rootDelegator"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "redeemer"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "delegation"; readonly type: "tuple"; readonly indexed: false; readonly internalType: "struct Delegation"; readonly components: readonly [{ readonly name: "delegate"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "delegator"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "authority"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "caveats"; readonly type: "tuple[]"; readonly internalType: "struct Caveat[]"; readonly components: readonly [{ readonly name: "enforcer"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "terms"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "args"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }, { readonly name: "salt"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "signature"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "SetDomain"; readonly inputs: readonly [{ readonly name: "domainHash"; readonly type: "bytes32"; readonly indexed: true; readonly internalType: "bytes32"; }, { readonly name: "name"; readonly type: "string"; readonly indexed: false; readonly internalType: "string"; }, { readonly name: "domainVersion"; readonly type: "string"; readonly indexed: false; readonly internalType: "string"; }, { readonly name: "chainId"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }, { readonly name: "contractAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "Unpaused"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly indexed: false; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "error"; readonly name: "AlreadyDisabled"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "AlreadyEnabled"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "BatchDataLengthMismatch"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "CannotUseADisabledDelegation"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "ECDSAInvalidSignature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "ECDSAInvalidSignatureLength"; readonly inputs: readonly [{ readonly name: "length"; readonly type: "uint256"; readonly internalType: "uint256"; }]; }, { readonly type: "error"; readonly name: "ECDSAInvalidSignatureS"; readonly inputs: readonly [{ readonly name: "s"; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; }, { readonly type: "error"; readonly name: "EmptySignature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "EnforcedPause"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "ExpectedPause"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidAuthority"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidDelegate"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidDelegator"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidEOASignature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidERC1271Signature"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "InvalidShortString"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "OwnableInvalidOwner"; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; readonly internalType: "address"; }]; }, { readonly type: "error"; readonly name: "OwnableUnauthorizedAccount"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly internalType: "address"; }]; }, { readonly type: "error"; readonly name: "StringTooLong"; readonly inputs: readonly [{ readonly name: "str"; readonly type: "string"; readonly internalType: "string"; }]; }], "enableDelegation">, "enableDelegation", [DelegationStruct], viem.Chain | undefined, viem.Account | undefined, undefined, undefined, readonly [never], viem.Account | undefined>>; declare const execute$j: ({ client, delegationManagerAddress, delegation, }: ExecuteEnableDelegationParameters$1) => Promise<`0x${string}`>; declare const encode$y: ({ delegation }: EncodeEnableDelegationParameters$1) => `0x${string}`; type EncodeRedeemDelegationsParameters = { delegations: Delegation[][]; modes: ExecutionMode[]; executions: ExecutionStruct[][]; }; type SimulateRedeemDelegationsParameters = { client: Client; delegationManagerAddress: Address; } & EncodeRedeemDelegationsParameters; type ExecuteRedeemDelegationsParameters = { client: InitializedClient; delegationManagerAddress: Address; } & EncodeRedeemDelegationsParameters; declare const simulate$w: ({ client, delegationManagerAddress, delegations, modes, executions, }: SimulateRedeemDelegationsParameters) => Promise<viem.SimulateContractReturnType<NarrowAbiToFunction<readonly [{ readonly type: "constructor"; readonly inputs: readonly [{ readonly name: "_owner"; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "ANY_DELEGATE"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DOMAIN_VERSION"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "NAME"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "ROOT_AUTHORITY"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: