{"version":3,"sources":["../src/DelegationFramework/utils.ts","../src/DelegationFramework/DeleGatorCore/read.ts","../src/DelegationFramework/DeleGatorCore/methods/getDelegationManager.ts","../src/DelegationFramework/DeleGatorCore/methods/getDeposit.ts","../src/DelegationFramework/DeleGatorCore/methods/getEntryPoint.ts","../src/DelegationFramework/DeleGatorCore/methods/getNonce.ts","../src/DelegationFramework/DeleGatorCore/methods/getProxyImplementation.ts","../src/DelegationFramework/DeleGatorCore/methods/getProxyVersion.ts","../src/DelegationFramework/DeleGatorCore/methods/isValidSignature.ts","../src/DelegationFramework/HybridDeleGator/methods/initialize.ts","../src/DelegationFramework/HybridDeleGator/encode.ts","../src/DelegationFramework/HybridDeleGator/methods/addKey.ts","../src/DelegationFramework/HybridDeleGator/methods/reinitialize.ts","../src/DelegationFramework/HybridDeleGator/methods/removeKey.ts","../src/DelegationFramework/HybridDeleGator/methods/updateSigners.ts","../src/DelegationFramework/MultiSigDeleGator/methods/initialize.ts","../src/DelegationFramework/MultiSigDeleGator/encode.ts","../src/DelegationFramework/MultiSigDeleGator/methods/addSigner.ts","../src/DelegationFramework/MultiSigDeleGator/methods/reinitialize.ts","../src/DelegationFramework/MultiSigDeleGator/methods/removeSigner.ts","../src/DelegationFramework/MultiSigDeleGator/methods/replaceSigner.ts","../src/DelegationFramework/MultiSigDeleGator/methods/updateMultiSigParameters.ts","../src/DelegationFramework/MultiSigDeleGator/methods/updateThreshold.ts","../src/DelegationFramework/SimpleFactory/methods/create2Deploy.ts","../src/DelegationFramework/SimpleFactory/encode.ts","../src/DelegationFramework/DeleGatorCore/methods/execute.ts","../src/DelegationFramework/DeleGatorCore/methods/executeWithMode.ts","../src/DelegationFramework/DeleGatorCore/encode.ts","../src/DelegationFramework/DeleGatorCore/methods/disableDelegation.ts","../src/DelegationFramework/DeleGatorCore/methods/enableDelegation.ts","../src/DelegationFramework/DeleGatorCore/methods/upgradeToAndCall.ts"],"sourcesContent":["import { ERC1967Proxy } from '@metamask/delegation-abis';\nimport type { Abi, Address, Client, Hex } from 'viem';\nimport { encodeDeployData } from 'viem';\nimport { getCode } from 'viem/actions';\n\nimport { getProxyImplementation } from './DeleGatorCore/read';\n\n// Where a function signature is duplicated across contracts, we need to narrow\n// the ABI type passed as the `simulateContract` generic argument. Without this,\n// the `simulate()` return type would not match, despite being functionally\n// identical.\nexport type NarrowAbiToFunction<\n  TAbi extends Abi,\n  FunctionName extends string,\n> = [\n  Extract<\n    TAbi[number],\n    {\n      type: 'function';\n      name: FunctionName;\n    }\n  >[],\n];\n\n/**\n * Checks if a contract is deployed at the given address.\n *\n * @param options - The options for checking contract deployment.\n * @param options.client - The client to use for the query.\n * @param options.contractAddress - The address to check for contract deployment.\n * @returns A boolean indicating whether a contract is deployed at the address.\n * @description This function checks if there is actual bytecode at the provided contract address.\n */\nexport async function isContractDeployed({\n  client,\n  contractAddress,\n}: {\n  client: Client;\n  contractAddress: Address;\n}): Promise<boolean> {\n  const code = await getCode(client, {\n    address: contractAddress,\n  });\n  return Boolean(code) && code !== '0x';\n}\n\n/**\n * Checks if a proxy contract at the given address points to the expected implementation.\n *\n * @param options - The options for checking the implementation.\n * @param options.client - The client to use for the query.\n * @param options.contractAddress - The address of the proxy contract.\n * @param options.expectedImplementationAddress - The address that the implementation should match.\n * @returns A boolean indicating whether the implementation matches the expected one.\n * @description This function verifies both that the contract exists and that its implementation address matches.\n */\nexport async function isImplementationExpected({\n  client,\n  contractAddress,\n  expectedImplementationAddress,\n}: {\n  client: Client;\n  contractAddress: Address;\n  expectedImplementationAddress: Address;\n}): Promise<boolean> {\n  if (!(await isContractDeployed({ client, contractAddress }))) {\n    return false;\n  }\n\n  const implementationAddress = await getProxyImplementation({\n    client,\n    contractAddress,\n  });\n\n  return implementationAddress === expectedImplementationAddress;\n}\n\n/**\n * Encodes the \"creation code\" for an ERC1967Proxy contract that will be deployed via CREATE2 with the given implementation and initialization code.\n *\n * @param options - The options for encoding the proxy creation code.\n * @param options.implementationAddress - The address of the implementation contract for the proxy to use.\n * @param options.initcode - The calldata for the initialization function of the implementation contract.\n * @returns The encoded creation code for the proxy.\n * @description This function prepares the deployment bytecode for an ERC1967 proxy pointing to the given implementation.\n */\nexport const encodeProxyCreationCode = ({\n  implementationAddress,\n  initcode,\n}: {\n  implementationAddress: Address;\n  initcode: Hex;\n}): Hex =>\n  encodeDeployData({\n    abi: ERC1967Proxy.abi,\n    args: [implementationAddress, initcode],\n    bytecode: ERC1967Proxy.bytecode,\n  });\n","import { read as getDelegationManager } from './methods/getDelegationManager';\nimport { read as getDeposit } from './methods/getDeposit';\nimport { read as getEntryPoint } from './methods/getEntryPoint';\nimport { read as getNonce } from './methods/getNonce';\nimport { read as getProxyImplementation } from './methods/getProxyImplementation';\nimport { read as getProxyVersion } from './methods/getProxyVersion';\nimport { read as isValidSignature } from './methods/isValidSignature';\n\nexport {\n  getDelegationManager,\n  getDeposit,\n  getEntryPoint,\n  getNonce,\n  getProxyImplementation,\n  getProxyVersion,\n  isValidSignature,\n};\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { readContract } from 'viem/actions';\n\nexport type ReadGetDelegationManagerParameters = {\n  client: Client;\n  contractAddress: Address;\n};\n\nexport const read = async ({\n  client,\n  contractAddress,\n}: ReadGetDelegationManagerParameters) =>\n  await readContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'delegationManager',\n  });\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { readContract } from 'viem/actions';\n\nexport type ReadGetDepositParameters = {\n  client: Client;\n  contractAddress: Address;\n};\n\nexport const read = async ({\n  client,\n  contractAddress,\n}: ReadGetDepositParameters) =>\n  await readContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'getDeposit',\n  });\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { readContract } from 'viem/actions';\n\nexport type ReadGetEntryPointParameters = {\n  client: Client;\n  contractAddress: Address;\n};\n\nexport const read = async ({\n  client,\n  contractAddress,\n}: ReadGetEntryPointParameters) =>\n  await readContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'entryPoint',\n  });\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { readContract } from 'viem/actions';\n\nexport type ReadGetNonceParameters = {\n  client: Client;\n  contractAddress: Address;\n  key?: bigint;\n};\n\nexport const read = async ({\n  client,\n  contractAddress,\n  key,\n}: ReadGetNonceParameters) =>\n  await readContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'getNonce',\n    args: key ? [key] : undefined,\n  });\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { readContract } from 'viem/actions';\n\nexport type ReadGetProxyImplementationParameters = {\n  client: Client;\n  contractAddress: Address;\n};\n\nexport const read = async ({\n  client,\n  contractAddress,\n}: ReadGetProxyImplementationParameters) =>\n  await readContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'getImplementation',\n  });\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { readContract } from 'viem/actions';\n\nexport type ReadGetProxyVersionParameters = {\n  client: Client;\n  contractAddress: Address;\n};\n\nexport const read = async ({\n  client,\n  contractAddress,\n}: ReadGetProxyVersionParameters) =>\n  await readContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'getInitializedVersion',\n  });\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Hex, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { readContract } from 'viem/actions';\n\nexport type IsValidSignatureParameters = {\n  client: Client;\n  contractAddress: Address;\n  hash: Hex;\n  signature: Hex;\n};\n\nexport type EncodeIsValidSignatureParameters = {\n  hash: Hex;\n  signature: Hex;\n};\n\nexport const read = async ({\n  client,\n  contractAddress,\n  hash,\n  signature,\n}: IsValidSignatureParameters) =>\n  await readContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'isValidSignature',\n    args: [hash, signature],\n  });\n\nexport const encode = ({\n  hash,\n  signature,\n}: EncodeIsValidSignatureParameters) => {\n  return encodeFunctionData({\n    abi: DeleGatorCore.abi,\n    functionName: 'isValidSignature',\n    args: [hash, signature],\n  });\n};\n","import { HybridDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { P256Owner, InitializedClient } from '../../types';\n\nexport type EncodeInitializeParameters = {\n  eoaOwner: Address;\n  p256Owners: P256Owner[];\n};\n\nexport type SimulateInitializeParameters = {\n  client: Client;\n  hybridDeleGatorAddress: Address;\n} & EncodeInitializeParameters;\n\nexport type ExecuteInitializeParameters = {\n  client: InitializedClient;\n  hybridDeleGatorAddress: Address;\n} & EncodeInitializeParameters;\n\nexport const simulate = async ({\n  client,\n  hybridDeleGatorAddress,\n  eoaOwner,\n  p256Owners,\n}: SimulateInitializeParameters) => {\n  return simulateContract(client, {\n    address: hybridDeleGatorAddress,\n    abi: HybridDeleGator.abi,\n    functionName: 'initialize',\n    args: [\n      eoaOwner,\n      p256Owners.map((p256Owner) => p256Owner.keyId),\n      p256Owners.map((p256Owner) => p256Owner.x),\n      p256Owners.map((p256Owner) => p256Owner.y),\n    ],\n  });\n};\n\nexport const execute = async ({\n  client,\n  hybridDeleGatorAddress,\n  eoaOwner,\n  p256Owners,\n}: ExecuteInitializeParameters) => {\n  const { request } = await simulate({\n    client,\n    hybridDeleGatorAddress,\n    eoaOwner,\n    p256Owners,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  eoaOwner,\n  p256Owners,\n}: EncodeInitializeParameters) => {\n  return encodeFunctionData({\n    abi: HybridDeleGator.abi,\n    functionName: 'initialize',\n    args: [\n      eoaOwner,\n      p256Owners.map((p256Owner) => p256Owner.keyId),\n      p256Owners.map((p256Owner) => p256Owner.x),\n      p256Owners.map((p256Owner) => p256Owner.y),\n    ],\n  });\n};\n","import { encode as addKey } from './methods/addKey';\nimport { encode as initializeHybridDeleGator } from './methods/initialize';\nimport { encode as reinitializeHybridDeleGator } from './methods/reinitialize';\nimport { encode as removeKey } from './methods/removeKey';\nimport { encode as updateSigners } from './methods/updateSigners';\n\nexport {\n  addKey,\n  initializeHybridDeleGator,\n  reinitializeHybridDeleGator,\n  removeKey,\n  updateSigners,\n};\n","import { HybridDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { P256Owner, InitializedClient } from '../../types';\n\nexport type EncodeAddKeyParameters = {\n  p256Owner: P256Owner;\n};\n\nexport type SimulateAddKeyParameters = {\n  client: Client;\n  hybridDeleGatorAddress: Address;\n} & EncodeAddKeyParameters;\n\nexport type ExecuteAddKeyParameters = {\n  client: InitializedClient;\n  hybridDeleGatorAddress: Address;\n} & EncodeAddKeyParameters;\n\nexport const simulate = async ({\n  client,\n  hybridDeleGatorAddress,\n  p256Owner,\n}: SimulateAddKeyParameters) => {\n  return simulateContract(client, {\n    address: hybridDeleGatorAddress,\n    abi: HybridDeleGator.abi,\n    functionName: 'addKey',\n    args: [p256Owner.keyId, p256Owner.x, p256Owner.y],\n  });\n};\n\nexport const execute = async ({\n  client,\n  hybridDeleGatorAddress,\n  p256Owner,\n}: ExecuteAddKeyParameters) => {\n  const { request } = await simulate({\n    client,\n    hybridDeleGatorAddress,\n    p256Owner,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ p256Owner }: EncodeAddKeyParameters) => {\n  return encodeFunctionData({\n    abi: HybridDeleGator.abi,\n    functionName: 'addKey',\n    args: [p256Owner.keyId, p256Owner.x, p256Owner.y],\n  });\n};\n","import { HybridDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { P256Owner, InitializedClient } from '../../types';\n\nexport type EncodeReinitializeParameters = {\n  version: number;\n  eoaOwner: Address;\n  p256Owners: P256Owner[];\n  removeExistingP256Owners: boolean;\n};\n\nexport type SimulateReinitializeParameters = {\n  client: Client;\n  hybridDeleGatorAddress: Address;\n} & EncodeReinitializeParameters;\n\nexport type ExecuteReinitializeParameters = {\n  client: InitializedClient;\n  hybridDeleGatorAddress: Address;\n} & EncodeReinitializeParameters;\n\nexport const simulate = async ({\n  client,\n  hybridDeleGatorAddress,\n  version,\n  eoaOwner,\n  p256Owners,\n  removeExistingP256Owners,\n}: SimulateReinitializeParameters) => {\n  return simulateContract(client, {\n    address: hybridDeleGatorAddress,\n    abi: HybridDeleGator.abi,\n    functionName: 'reinitialize',\n    args: [\n      version,\n      eoaOwner,\n      p256Owners.map((p256Owner) => p256Owner.keyId),\n      p256Owners.map((p256Owner) => p256Owner.x),\n      p256Owners.map((p256Owner) => p256Owner.y),\n      removeExistingP256Owners,\n    ],\n  });\n};\n\nexport const execute = async ({\n  client,\n  hybridDeleGatorAddress,\n  version,\n  eoaOwner,\n  p256Owners,\n  removeExistingP256Owners,\n}: ExecuteReinitializeParameters) => {\n  const { request } = await simulate({\n    client,\n    hybridDeleGatorAddress,\n    version,\n    eoaOwner,\n    p256Owners,\n    removeExistingP256Owners,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  version,\n  eoaOwner,\n  p256Owners,\n  removeExistingP256Owners,\n}: EncodeReinitializeParameters) => {\n  return encodeFunctionData({\n    abi: HybridDeleGator.abi,\n    functionName: 'reinitialize',\n    args: [\n      version,\n      eoaOwner,\n      p256Owners.map((p256Owner) => p256Owner.keyId),\n      p256Owners.map((p256Owner) => p256Owner.x),\n      p256Owners.map((p256Owner) => p256Owner.y),\n      removeExistingP256Owners,\n    ],\n  });\n};\n","import { HybridDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeRemoveKeyParameters = {\n  keyId: string;\n};\n\nexport type SimulateRemoveKeyParameters = {\n  client: Client;\n  hybridDeleGatorAddress: Address;\n} & EncodeRemoveKeyParameters;\n\nexport type ExecuteRemoveKeyParameters = {\n  client: InitializedClient;\n  hybridDeleGatorAddress: Address;\n} & EncodeRemoveKeyParameters;\n\nexport const simulate = async ({\n  client,\n  hybridDeleGatorAddress,\n  keyId,\n}: SimulateRemoveKeyParameters) => {\n  return simulateContract(client, {\n    address: hybridDeleGatorAddress,\n    abi: HybridDeleGator.abi,\n    functionName: 'removeKey',\n    args: [keyId],\n  });\n};\n\nexport const execute = async ({\n  client,\n  hybridDeleGatorAddress,\n  keyId,\n}: ExecuteRemoveKeyParameters) => {\n  const { request } = await simulate({\n    client,\n    hybridDeleGatorAddress,\n    keyId,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ keyId }: EncodeRemoveKeyParameters) => {\n  return encodeFunctionData({\n    abi: HybridDeleGator.abi,\n    functionName: 'removeKey',\n    args: [keyId],\n  });\n};\n","import { HybridDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { P256Owner, InitializedClient } from '../../types';\n\nexport type EncodeUpdateSignersParameters = {\n  eoaOwner: Address;\n  p256Owners: P256Owner[];\n};\n\nexport type SimulateUpdateSignersParameters = {\n  client: Client;\n  hybridDeleGatorAddress: Address;\n} & EncodeUpdateSignersParameters;\n\nexport type ExecuteUpdateSignersParameters = {\n  client: InitializedClient;\n  hybridDeleGatorAddress: Address;\n} & EncodeUpdateSignersParameters;\n\nexport const simulate = async ({\n  client,\n  hybridDeleGatorAddress,\n  eoaOwner,\n  p256Owners,\n}: SimulateUpdateSignersParameters) => {\n  return simulateContract(client, {\n    address: hybridDeleGatorAddress,\n    abi: HybridDeleGator.abi,\n    functionName: 'updateSigners',\n    args: [\n      eoaOwner,\n      p256Owners.map((p256Owner) => p256Owner.keyId),\n      p256Owners.map((p256Owner) => p256Owner.x),\n      p256Owners.map((p256Owner) => p256Owner.y),\n    ],\n  });\n};\n\nexport const execute = async ({\n  client,\n  hybridDeleGatorAddress,\n  eoaOwner,\n  p256Owners,\n}: ExecuteUpdateSignersParameters) => {\n  const { request } = await simulate({\n    client,\n    hybridDeleGatorAddress,\n    eoaOwner,\n    p256Owners,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  eoaOwner,\n  p256Owners,\n}: EncodeUpdateSignersParameters) => {\n  return encodeFunctionData({\n    abi: HybridDeleGator.abi,\n    functionName: 'updateSigners',\n    args: [\n      eoaOwner,\n      p256Owners.map((p256Owner) => p256Owner.keyId),\n      p256Owners.map((p256Owner) => p256Owner.x),\n      p256Owners.map((p256Owner) => p256Owner.y),\n    ],\n  });\n};\n","import { MultiSigDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeInitializeParameters = {\n  owners: Address[];\n  threshold: bigint;\n};\n\nexport type SimulateInitializeParameters = {\n  client: Client;\n  multiSigDeleGatorAddress: Address;\n} & EncodeInitializeParameters;\n\nexport type ExecuteInitializeParameters = {\n  client: InitializedClient;\n  multiSigDeleGatorAddress: Address;\n} & EncodeInitializeParameters;\n\nexport const simulate = async ({\n  client,\n  multiSigDeleGatorAddress,\n  owners,\n  threshold,\n}: SimulateInitializeParameters) => {\n  return simulateContract(client, {\n    address: multiSigDeleGatorAddress,\n    abi: MultiSigDeleGator.abi,\n    functionName: 'initialize',\n    args: [owners, threshold],\n  });\n};\n\nexport const execute = async ({\n  client,\n  multiSigDeleGatorAddress,\n  owners,\n  threshold,\n}: ExecuteInitializeParameters) => {\n  const { request } = await simulate({\n    client,\n    multiSigDeleGatorAddress,\n    owners,\n    threshold,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ owners, threshold }: EncodeInitializeParameters) => {\n  return encodeFunctionData({\n    abi: MultiSigDeleGator.abi,\n    functionName: 'initialize',\n    args: [owners, threshold],\n  });\n};\n","import { encode as addSigner } from './methods/addSigner';\nimport { encode as initializeMultiSigDeleGator } from './methods/initialize';\nimport { encode as reinitializeMultiSigDeleGator } from './methods/reinitialize';\nimport { encode as removeSigner } from './methods/removeSigner';\nimport { encode as replaceSigner } from './methods/replaceSigner';\nimport { encode as updateMultiSigParameters } from './methods/updateMultiSigParameters';\nimport { encode as updateThreshold } from './methods/updateThreshold';\n\nexport {\n  addSigner,\n  initializeMultiSigDeleGator,\n  reinitializeMultiSigDeleGator,\n  removeSigner,\n  replaceSigner,\n  updateThreshold,\n  updateMultiSigParameters,\n};\n","import { MultiSigDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeAddSignerParameters = {\n  signer: Address;\n};\n\nexport type SimulateAddSignerParameters = {\n  client: Client;\n  multiSigDeleGatorAddress: Address;\n} & EncodeAddSignerParameters;\n\nexport type ExecuteAddSignerParameters = {\n  client: InitializedClient;\n  multiSigDeleGatorAddress: Address;\n} & EncodeAddSignerParameters;\n\nexport const simulate = async ({\n  client,\n  multiSigDeleGatorAddress,\n  signer,\n}: SimulateAddSignerParameters) => {\n  return simulateContract(client, {\n    address: multiSigDeleGatorAddress,\n    abi: MultiSigDeleGator.abi,\n    functionName: 'addSigner',\n    args: [signer],\n  });\n};\n\nexport const execute = async ({\n  client,\n  multiSigDeleGatorAddress,\n  signer,\n}: ExecuteAddSignerParameters) => {\n  const { request } = await simulate({\n    client,\n    multiSigDeleGatorAddress,\n    signer,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ signer }: EncodeAddSignerParameters) => {\n  return encodeFunctionData({\n    abi: MultiSigDeleGator.abi,\n    functionName: 'addSigner',\n    args: [signer],\n  });\n};\n","import { MultiSigDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeReinitializeParameters = {\n  version: bigint;\n  owners: Address[];\n  threshold: bigint;\n  removeExistingOwners: boolean;\n};\n\nexport type SimulateReinitializeParameters = {\n  client: Client;\n  multiSigDeleGatorAddress: Address;\n} & EncodeReinitializeParameters;\n\nexport type ExecuteReinitializeParameters = {\n  client: InitializedClient;\n  multiSigDeleGatorAddress: Address;\n} & EncodeReinitializeParameters;\n\nexport const simulate = async ({\n  client,\n  multiSigDeleGatorAddress,\n  version,\n  owners,\n  threshold,\n  removeExistingOwners,\n}: SimulateReinitializeParameters) => {\n  return simulateContract(client, {\n    address: multiSigDeleGatorAddress,\n    abi: MultiSigDeleGator.abi,\n    functionName: 'reinitialize',\n    args: [version, owners, threshold, removeExistingOwners],\n  });\n};\n\nexport const execute = async ({\n  client,\n  multiSigDeleGatorAddress,\n  version,\n  owners,\n  threshold,\n  removeExistingOwners,\n}: ExecuteReinitializeParameters) => {\n  const { request } = await simulate({\n    client,\n    multiSigDeleGatorAddress,\n    version,\n    owners,\n    threshold,\n    removeExistingOwners,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  version,\n  owners,\n  threshold,\n  removeExistingOwners,\n}: EncodeReinitializeParameters) => {\n  return encodeFunctionData({\n    abi: MultiSigDeleGator.abi,\n    functionName: 'reinitialize',\n    args: [version, owners, threshold, removeExistingOwners],\n  });\n};\n","import { MultiSigDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeRemoveSignerParameters = {\n  signer: Address;\n};\n\nexport type SimulateRemoveSignerParameters = {\n  client: Client;\n  multiSigDeleGatorAddress: Address;\n} & EncodeRemoveSignerParameters;\n\nexport type ExecuteRemoveSignerParameters = {\n  client: InitializedClient;\n  multiSigDeleGatorAddress: Address;\n} & EncodeRemoveSignerParameters;\n\nexport const simulate = async ({\n  client,\n  multiSigDeleGatorAddress,\n  signer,\n}: SimulateRemoveSignerParameters) => {\n  return simulateContract(client, {\n    address: multiSigDeleGatorAddress,\n    abi: MultiSigDeleGator.abi,\n    functionName: 'removeSigner',\n    args: [signer],\n  });\n};\n\nexport const execute = async ({\n  client,\n  multiSigDeleGatorAddress,\n  signer,\n}: ExecuteRemoveSignerParameters) => {\n  const { request } = await simulate({\n    client,\n    multiSigDeleGatorAddress,\n    signer,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ signer }: EncodeRemoveSignerParameters) => {\n  return encodeFunctionData({\n    abi: MultiSigDeleGator.abi,\n    functionName: 'removeSigner',\n    args: [signer],\n  });\n};\n","import { MultiSigDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeReplaceSignerParameters = {\n  oldSigner: Address;\n  newSigner: Address;\n};\n\nexport type SimulateReplaceSignerParameters = {\n  client: Client;\n  multiSigDeleGatorAddress: Address;\n} & EncodeReplaceSignerParameters;\n\nexport type ExecuteReplaceSignerParameters = {\n  client: InitializedClient;\n  multiSigDeleGatorAddress: Address;\n} & EncodeReplaceSignerParameters;\n\nexport const simulate = async ({\n  client,\n  multiSigDeleGatorAddress,\n  oldSigner,\n  newSigner,\n}: SimulateReplaceSignerParameters) => {\n  return simulateContract(client, {\n    address: multiSigDeleGatorAddress,\n    abi: MultiSigDeleGator.abi,\n    functionName: 'replaceSigner',\n    args: [oldSigner, newSigner],\n  });\n};\n\nexport const execute = async ({\n  client,\n  multiSigDeleGatorAddress,\n  oldSigner,\n  newSigner,\n}: ExecuteReplaceSignerParameters) => {\n  const { request } = await simulate({\n    client,\n    multiSigDeleGatorAddress,\n    oldSigner,\n    newSigner,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  oldSigner,\n  newSigner,\n}: EncodeReplaceSignerParameters) => {\n  return encodeFunctionData({\n    abi: MultiSigDeleGator.abi,\n    functionName: 'replaceSigner',\n    args: [oldSigner, newSigner],\n  });\n};\n","import { MultiSigDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeUpdateMultiSigParametersParameters = {\n  owners: Address[];\n  threshold: bigint;\n  removeExistingOwners: boolean;\n};\n\nexport type SimulateUpdateMultiSigParametersParameters = {\n  client: Client;\n  multiSigDeleGatorAddress: Address;\n} & EncodeUpdateMultiSigParametersParameters;\n\nexport type ExecuteUpdateMultiSigParametersParameters = {\n  client: InitializedClient;\n  multiSigDeleGatorAddress: Address;\n} & EncodeUpdateMultiSigParametersParameters;\n\nexport const simulate = async ({\n  client,\n  multiSigDeleGatorAddress,\n  owners,\n  threshold,\n  removeExistingOwners,\n}: SimulateUpdateMultiSigParametersParameters) => {\n  return simulateContract(client, {\n    address: multiSigDeleGatorAddress,\n    abi: MultiSigDeleGator.abi,\n    functionName: 'updateMultiSigParameters',\n    args: [owners, threshold, removeExistingOwners],\n  });\n};\n\nexport const execute = async ({\n  client,\n  multiSigDeleGatorAddress,\n  owners,\n  threshold,\n  removeExistingOwners,\n}: ExecuteUpdateMultiSigParametersParameters) => {\n  const { request } = await simulate({\n    client,\n    multiSigDeleGatorAddress,\n    owners,\n    threshold,\n    removeExistingOwners,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  owners,\n  threshold,\n  removeExistingOwners,\n}: EncodeUpdateMultiSigParametersParameters) => {\n  return encodeFunctionData({\n    abi: MultiSigDeleGator.abi,\n    functionName: 'updateMultiSigParameters',\n    args: [owners, threshold, removeExistingOwners],\n  });\n};\n","import { MultiSigDeleGator } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type EncodeUpdateThresholdParameters = {\n  threshold: bigint;\n};\n\nexport type SimulateUpdateThresholdParameters = {\n  client: Client;\n  multiSigDeleGatorAddress: Address;\n} & EncodeUpdateThresholdParameters;\n\nexport type ExecuteUpdateThresholdParameters = {\n  client: InitializedClient;\n  multiSigDeleGatorAddress: Address;\n} & EncodeUpdateThresholdParameters;\n\nexport const simulate = async ({\n  client,\n  multiSigDeleGatorAddress,\n  threshold,\n}: SimulateUpdateThresholdParameters) => {\n  return simulateContract(client, {\n    address: multiSigDeleGatorAddress,\n    abi: MultiSigDeleGator.abi,\n    functionName: 'updateThreshold',\n    args: [threshold],\n  });\n};\n\nexport const execute = async ({\n  client,\n  multiSigDeleGatorAddress,\n  threshold,\n}: ExecuteUpdateThresholdParameters) => {\n  const { request } = await simulate({\n    client,\n    multiSigDeleGatorAddress,\n    threshold,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ threshold }: EncodeUpdateThresholdParameters) => {\n  return encodeFunctionData({\n    abi: MultiSigDeleGator.abi,\n    functionName: 'updateThreshold',\n    args: [threshold],\n  });\n};\n","import { SimpleFactory } from '@metamask/delegation-abis';\nimport type { Address, Hex, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type SimulateCreate2DeployParameters = {\n  client: Client;\n  factoryAddress: Address;\n  creationCode: Hex;\n  salt: Hex;\n};\n\nexport type ExecuteCreate2DeployParameters = {\n  client: InitializedClient;\n  factoryAddress: Address;\n  creationCode: Hex;\n  salt: Hex;\n};\n\nexport const simulate = async ({\n  client,\n  factoryAddress,\n  creationCode,\n  salt,\n}: SimulateCreate2DeployParameters) => {\n  return simulateContract(client, {\n    address: factoryAddress,\n    abi: SimpleFactory.abi,\n    functionName: 'deploy',\n    args: [creationCode, salt],\n  });\n};\n\nexport const encode = (creationCode: Hex, salt: Hex) => {\n  return encodeFunctionData({\n    abi: SimpleFactory.abi,\n    functionName: 'deploy',\n    args: [creationCode, salt],\n  });\n};\n\nexport const execute = async ({\n  client,\n  factoryAddress,\n  creationCode,\n  salt,\n}: ExecuteCreate2DeployParameters) => {\n  const { request } = await simulate({\n    client,\n    factoryAddress,\n    creationCode,\n    salt,\n  });\n  return writeContract(client, request);\n};\n","import { encode as create2Deploy } from './methods/create2Deploy';\n\nexport { create2Deploy };\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { ExecutionStruct } from '../../../executions';\nimport type { InitializedClient } from '../../types';\n\nexport type SimulateExecuteParameters = {\n  client: Client;\n  contractAddress: Address;\n  execution: ExecutionStruct;\n};\n\nexport type EncodeExecuteParameters = {\n  execution: ExecutionStruct;\n};\n\nexport type ExecuteExecuteParameters = {\n  client: InitializedClient;\n  contractAddress: Address;\n  execution: ExecutionStruct;\n};\n\nexport const simulate = async ({\n  client,\n  contractAddress,\n  execution,\n}: SimulateExecuteParameters) => {\n  return simulateContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'execute',\n    args: [execution],\n  });\n};\n\nexport const execute = async ({\n  client,\n  contractAddress,\n  execution,\n}: ExecuteExecuteParameters) => {\n  const { request } = await simulate({\n    client,\n    contractAddress,\n    execution,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ execution }: EncodeExecuteParameters) => {\n  return encodeFunctionData({\n    abi: DeleGatorCore.abi,\n    functionName: 'execute',\n    args: [execution],\n  });\n};\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport { encodeFunctionData } from 'viem';\nimport type { Address, Client } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport { encodeExecutionCalldata } from '../../../executions';\nimport type { ExecutionStruct, ExecutionMode } from '../../../executions';\nimport type { InitializedClient } from '../../types';\n\nexport type SimulateExecuteWithModeParameters = {\n  client: Client;\n  contractAddress: Address;\n} & EncodeExecuteWithModeParameters;\nexport type EncodeExecuteWithModeParameters = {\n  mode: ExecutionMode;\n  executions: ExecutionStruct[];\n};\n\nexport type ExecuteExecuteWithModeParameters = {\n  client: InitializedClient;\n  contractAddress: Address;\n} & EncodeExecuteWithModeParameters;\n\nexport const simulate = async ({\n  client,\n  contractAddress,\n  mode,\n  executions,\n}: SimulateExecuteWithModeParameters) => {\n  return simulateContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'execute',\n    args: [mode, encodeExecutionCalldata(executions)],\n  });\n};\n\nexport const execute = async ({\n  client,\n  contractAddress,\n  mode,\n  executions,\n}: ExecuteExecuteWithModeParameters) => {\n  const { request } = await simulate({\n    client,\n    contractAddress,\n    mode,\n    executions,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  mode,\n  executions,\n}: EncodeExecuteWithModeParameters) => {\n  return encodeFunctionData({\n    abi: DeleGatorCore.abi,\n    functionName: 'execute',\n    args: [mode, encodeExecutionCalldata(executions)],\n  });\n};\n","import { encode as disableDelegation } from './methods/disableDelegation';\nimport { encode as enableDelegation } from './methods/enableDelegation';\nimport { encode as execute } from './methods/execute';\nimport { encode as executeWithMode } from './methods/executeWithMode';\nimport { encode as isValidSignature } from './methods/isValidSignature';\nimport { encode as upgradeToAndCall } from './methods/upgradeToAndCall';\n\nexport {\n  disableDelegation,\n  enableDelegation,\n  execute,\n  executeWithMode,\n  upgradeToAndCall,\n  isValidSignature,\n};\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport { encodeFunctionData } from 'viem';\nimport type { Address, Client } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport { toDelegationStruct } from '../../../delegation';\nimport type { Delegation } from '../../../types';\nimport type { InitializedClient } from '../../types';\nimport type { NarrowAbiToFunction } from '../../utils';\n\nexport type SimulateDisableDelegationParameters = {\n  client: Client;\n  delegationManagerAddress: Address;\n  delegation: Delegation;\n};\n\nexport type EncodeDisableDelegationParameters = {\n  delegation: Delegation;\n};\n\nexport type ExecuteDisableDelegationParameters = {\n  client: InitializedClient;\n  delegationManagerAddress: Address;\n  delegation: Delegation;\n};\n\nexport const simulate = async ({\n  client,\n  delegationManagerAddress,\n  delegation,\n}: SimulateDisableDelegationParameters) => {\n  const abi = DeleGatorCore.abi as any as NarrowAbiToFunction<\n    typeof DeleGatorCore.abi,\n    'disableDelegation'\n  >;\n\n  const delegationStruct = toDelegationStruct(delegation);\n\n  return simulateContract(client, {\n    address: delegationManagerAddress,\n    abi,\n    functionName: 'disableDelegation',\n    args: [delegationStruct],\n  });\n};\n\nexport const execute = async ({\n  client,\n  delegationManagerAddress,\n  delegation,\n}: ExecuteDisableDelegationParameters) => {\n  const { request } = await simulate({\n    client,\n    delegationManagerAddress,\n    delegation,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ delegation }: EncodeDisableDelegationParameters) => {\n  const delegationStruct = toDelegationStruct(delegation);\n\n  return encodeFunctionData({\n    abi: DeleGatorCore.abi,\n    functionName: 'disableDelegation',\n    args: [delegationStruct],\n  });\n};\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport { encodeFunctionData } from 'viem';\nimport type { Address, Client } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport { toDelegationStruct } from '../../../delegation';\nimport type { Delegation } from '../../../types';\nimport type { InitializedClient } from '../../types';\nimport type { NarrowAbiToFunction } from '../../utils';\n\nexport type SimulateEnableDelegationParameters = {\n  client: Client;\n  delegationManagerAddress: Address;\n  delegation: Delegation;\n};\n\nexport type EncodeEnableDelegationParameters = {\n  delegation: Delegation;\n};\n\nexport type ExecuteEnableDelegationParameters = {\n  client: InitializedClient;\n  delegationManagerAddress: Address;\n  delegation: Delegation;\n};\n\nexport const simulate = async ({\n  client,\n  delegationManagerAddress,\n  delegation,\n}: SimulateEnableDelegationParameters) => {\n  const abi = DeleGatorCore.abi as any as NarrowAbiToFunction<\n    typeof DeleGatorCore.abi,\n    'enableDelegation'\n  >;\n\n  const delegationStruct = toDelegationStruct(delegation);\n\n  return simulateContract(client, {\n    address: delegationManagerAddress,\n    abi,\n    functionName: 'enableDelegation',\n    args: [delegationStruct],\n  });\n};\n\nexport const execute = async ({\n  client,\n  delegationManagerAddress,\n  delegation,\n}: ExecuteEnableDelegationParameters) => {\n  const { request } = await simulate({\n    client,\n    delegationManagerAddress,\n    delegation,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({ delegation }: EncodeEnableDelegationParameters) => {\n  const delegationStruct = toDelegationStruct(delegation);\n\n  return encodeFunctionData({\n    abi: DeleGatorCore.abi,\n    functionName: 'enableDelegation',\n    args: [delegationStruct],\n  });\n};\n","import { DeleGatorCore } from '@metamask/delegation-abis';\nimport type { Address, Hex, Client } from 'viem';\nimport { encodeFunctionData } from 'viem';\nimport { simulateContract, writeContract } from 'viem/actions';\n\nimport type { InitializedClient } from '../../types';\n\nexport type SimulateUpgradeToAndCallParameters = {\n  client: Client;\n  contractAddress: Address;\n} & EncodeUpgradeToAndCallParameters;\n\nexport type EncodeUpgradeToAndCallParameters = {\n  implementation: Address;\n  data: Hex;\n};\n\nexport type ExecuteUpgradeToAndCallParameters = {\n  client: InitializedClient;\n  contractAddress: Address;\n} & EncodeUpgradeToAndCallParameters;\n\nexport const simulate = async ({\n  client,\n  contractAddress,\n  implementation,\n  data,\n}: SimulateUpgradeToAndCallParameters) => {\n  return simulateContract(client, {\n    address: contractAddress,\n    abi: DeleGatorCore.abi,\n    functionName: 'upgradeToAndCall',\n    args: [implementation, data],\n  });\n};\n\nexport const execute = async ({\n  client,\n  contractAddress,\n  implementation,\n  data,\n}: ExecuteUpgradeToAndCallParameters) => {\n  const { request } = await simulate({\n    client,\n    contractAddress,\n    implementation,\n    data,\n  });\n\n  return writeContract(client, request);\n};\n\nexport const encode = ({\n  implementation,\n  data,\n}: EncodeUpgradeToAndCallParameters) => {\n  return encodeFunctionData({\n    abi: DeleGatorCore.abi,\n    functionName: 'upgradeToAndCall',\n    args: [implementation, data],\n  });\n};\n"],"mappings":"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","names":["read","DeleGatorCore","readContract","read","DeleGatorCore","readContract","read","DeleGatorCore","readContract","read","DeleGatorCore","readContract","read","DeleGatorCore","readContract","read","DeleGatorCore","readContract","read","read","encodeFunctionData","encode","encodeFunctionData","encode","HybridDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","HybridDeleGator","HybridDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","HybridDeleGator","HybridDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","HybridDeleGator","HybridDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","HybridDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","encode_exports","encode","MultiSigDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","MultiSigDeleGator","MultiSigDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","MultiSigDeleGator","MultiSigDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","MultiSigDeleGator","MultiSigDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","MultiSigDeleGator","MultiSigDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","MultiSigDeleGator","MultiSigDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encodeFunctionData","MultiSigDeleGator","encodeFunctionData","simulateContract","writeContract","simulate","encode","encode_exports","encode","DeleGatorCore","encodeFunctionData","simulateContract","writeContract","simulate","execute","encode","DeleGatorCore","encodeFunctionData","simulateContract","writeContract","simulate","simulateContract","DeleGatorCore","execute","writeContract","encode","encodeFunctionData","encode_exports","encode","DeleGatorCore","encodeFunctionData","simulateContract","writeContract","simulate","DeleGatorCore","simulateContract","execute","writeContract","encode","encodeFunctionData","DeleGatorCore","encodeFunctionData","simulateContract","writeContract","simulate","DeleGatorCore","simulateContract","execute","writeContract","encode","encodeFunctionData","DeleGatorCore","encodeFunctionData","simulateContract","writeContract","simulate","execute","encode"]}