@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
text/typescript
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: