@farcaster/create-mini-app 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +12 -0
  3. package/asd/README.md +1 -0
  4. package/asd/biome.json +13 -0
  5. package/asd/index.html +12 -0
  6. package/asd/package.json +30 -0
  7. package/asd/public/.well-known/farcaster.json +1 -0
  8. package/asd/src/App.tsx +67 -0
  9. package/asd/src/index.css +21 -0
  10. package/asd/src/main.tsx +21 -0
  11. package/asd/src/vite-env.d.ts +1 -0
  12. package/asd/src/wagmi.ts +18 -0
  13. package/asd/tsconfig.json +25 -0
  14. package/asd/tsconfig.node.json +10 -0
  15. package/asd/vite.config.ts +10 -0
  16. package/package.json +1 -1
  17. package/templates/default/_env.local +1 -0
  18. package/templates/default/_gitignore +24 -0
  19. package/templates/default/_npmrc +1 -0
  20. package/templates/default/node_modules/.bin/biome +17 -0
  21. package/templates/default/node_modules/.bin/browserslist +17 -0
  22. package/templates/default/node_modules/.bin/esbuild +17 -0
  23. package/templates/default/node_modules/.bin/terser +17 -0
  24. package/templates/default/node_modules/.bin/tsc +17 -0
  25. package/templates/default/node_modules/.bin/tsserver +17 -0
  26. package/templates/default/node_modules/.bin/vite +17 -0
  27. package/templates/default/node_modules/.bin/wagmi +17 -0
  28. package/templates/default/node_modules/.vite/deps/@farcaster_frame-sdk.js +84 -0
  29. package/templates/default/node_modules/.vite/deps/@farcaster_frame-sdk.js.map +7 -0
  30. package/templates/default/node_modules/.vite/deps/@farcaster_frame-wagmi-connector.js +1936 -0
  31. package/templates/default/node_modules/.vite/deps/@farcaster_frame-wagmi-connector.js.map +7 -0
  32. package/templates/default/node_modules/.vite/deps/@tanstack_react-query.js +96 -0
  33. package/templates/default/node_modules/.vite/deps/@tanstack_react-query.js.map +7 -0
  34. package/templates/default/node_modules/.vite/deps/_metadata.json +139 -0
  35. package/templates/default/node_modules/.vite/deps/ccip-JTEXJDV5.js +17 -0
  36. package/templates/default/node_modules/.vite/deps/ccip-JTEXJDV5.js.map +7 -0
  37. package/templates/default/node_modules/.vite/deps/ccip-LLOJAQYN.js +14 -0
  38. package/templates/default/node_modules/.vite/deps/ccip-LLOJAQYN.js.map +7 -0
  39. package/templates/default/node_modules/.vite/deps/chunk-2KW72IQL.js +2601 -0
  40. package/templates/default/node_modules/.vite/deps/chunk-2KW72IQL.js.map +7 -0
  41. package/templates/default/node_modules/.vite/deps/chunk-2ULAEEW3.js +286 -0
  42. package/templates/default/node_modules/.vite/deps/chunk-2ULAEEW3.js.map +7 -0
  43. package/templates/default/node_modules/.vite/deps/chunk-3MMZATWV.js +1906 -0
  44. package/templates/default/node_modules/.vite/deps/chunk-3MMZATWV.js.map +7 -0
  45. package/templates/default/node_modules/.vite/deps/chunk-6WYSWNQJ.js +3183 -0
  46. package/templates/default/node_modules/.vite/deps/chunk-6WYSWNQJ.js.map +7 -0
  47. package/templates/default/node_modules/.vite/deps/chunk-AJPHOYQK.js +21628 -0
  48. package/templates/default/node_modules/.vite/deps/chunk-AJPHOYQK.js.map +7 -0
  49. package/templates/default/node_modules/.vite/deps/chunk-HP7M7ER3.js +2221 -0
  50. package/templates/default/node_modules/.vite/deps/chunk-HP7M7ER3.js.map +7 -0
  51. package/templates/default/node_modules/.vite/deps/chunk-JDAHWTZP.js +928 -0
  52. package/templates/default/node_modules/.vite/deps/chunk-JDAHWTZP.js.map +7 -0
  53. package/templates/default/node_modules/.vite/deps/chunk-OOB7NECH.js +58 -0
  54. package/templates/default/node_modules/.vite/deps/chunk-OOB7NECH.js.map +7 -0
  55. package/templates/default/node_modules/.vite/deps/chunk-OYL52S4H.js +190 -0
  56. package/templates/default/node_modules/.vite/deps/chunk-OYL52S4H.js.map +7 -0
  57. package/templates/default/node_modules/.vite/deps/chunk-P2SCV6N5.js +1085 -0
  58. package/templates/default/node_modules/.vite/deps/chunk-P2SCV6N5.js.map +7 -0
  59. package/templates/default/node_modules/.vite/deps/chunk-P727YSDY.js +3246 -0
  60. package/templates/default/node_modules/.vite/deps/chunk-P727YSDY.js.map +7 -0
  61. package/templates/default/node_modules/.vite/deps/chunk-PH77EFIP.js +278 -0
  62. package/templates/default/node_modules/.vite/deps/chunk-PH77EFIP.js.map +7 -0
  63. package/templates/default/node_modules/.vite/deps/chunk-PK65EOOR.js +4416 -0
  64. package/templates/default/node_modules/.vite/deps/chunk-PK65EOOR.js.map +7 -0
  65. package/templates/default/node_modules/.vite/deps/chunk-PPRY4ZGR.js +36187 -0
  66. package/templates/default/node_modules/.vite/deps/chunk-PPRY4ZGR.js.map +7 -0
  67. package/templates/default/node_modules/.vite/deps/chunk-Q3UTC4SW.js +832 -0
  68. package/templates/default/node_modules/.vite/deps/chunk-Q3UTC4SW.js.map +7 -0
  69. package/templates/default/node_modules/.vite/deps/chunk-R2PSY44V.js +815 -0
  70. package/templates/default/node_modules/.vite/deps/chunk-R2PSY44V.js.map +7 -0
  71. package/templates/default/node_modules/.vite/deps/chunk-WOOG5QLI.js +60 -0
  72. package/templates/default/node_modules/.vite/deps/chunk-WOOG5QLI.js.map +7 -0
  73. package/templates/default/node_modules/.vite/deps/native-J7PVLWWX.js +21 -0
  74. package/templates/default/node_modules/.vite/deps/native-J7PVLWWX.js.map +7 -0
  75. package/templates/default/node_modules/.vite/deps/native-UTGEKOTD.js +21 -0
  76. package/templates/default/node_modules/.vite/deps/native-UTGEKOTD.js.map +7 -0
  77. package/templates/default/node_modules/.vite/deps/package.json +3 -0
  78. package/templates/default/node_modules/.vite/deps/react-dom.js +7 -0
  79. package/templates/default/node_modules/.vite/deps/react-dom.js.map +7 -0
  80. package/templates/default/node_modules/.vite/deps/react-dom_client.js +39 -0
  81. package/templates/default/node_modules/.vite/deps/react-dom_client.js.map +7 -0
  82. package/templates/default/node_modules/.vite/deps/react.js +6 -0
  83. package/templates/default/node_modules/.vite/deps/react.js.map +7 -0
  84. package/templates/default/node_modules/.vite/deps/react_jsx-dev-runtime.js +913 -0
  85. package/templates/default/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
  86. package/templates/default/node_modules/.vite/deps/react_jsx-runtime.js +7 -0
  87. package/templates/default/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
  88. package/templates/default/node_modules/.vite/deps/secp256k1-HB6OVCEM.js +14 -0
  89. package/templates/default/node_modules/.vite/deps/secp256k1-HB6OVCEM.js.map +7 -0
  90. package/templates/default/node_modules/.vite/deps/secp256k1-YI5SRKAE.js +16 -0
  91. package/templates/default/node_modules/.vite/deps/secp256k1-YI5SRKAE.js.map +7 -0
  92. package/templates/default/node_modules/.vite/deps/wagmi.js +12147 -0
  93. package/templates/default/node_modules/.vite/deps/wagmi.js.map +7 -0
  94. package/templates/default/node_modules/.vite/deps/wagmi_chains.js +16355 -0
  95. package/templates/default/node_modules/.vite/deps/wagmi_chains.js.map +7 -0
  96. package/templates/default/package.json +1 -1
  97. package/templates/default/src/App.tsx +15 -19
  98. package/templates/default/src/main.tsx +10 -10
  99. package/templates/default/src/wagmi.ts +6 -6
  100. package/templates/default/vite.config.ts +3 -3
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/constants/abis.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/constants/contract.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/constants/contracts.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/abi/decodeFunctionResult.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/abi/encodeDeployData.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/abi/prepareEncodeFunctionData.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/abi/encodeFunctionData.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/promise/withResolvers.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/promise/createBatchScheduler.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/stateOverride.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/actions/public/call.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/errors/ccip.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/address/isAddressEqual.ts", "../../../../../../../node_modules/.pnpm/viem@2.23.15_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/ccip.ts"],
4
+ "sourcesContent": ["/* [Multicall3](https://github.com/mds1/multicall) */\nexport const multicall3Abi = [\n {\n inputs: [\n {\n components: [\n {\n name: 'target',\n type: 'address',\n },\n {\n name: 'allowFailure',\n type: 'bool',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n ],\n name: 'calls',\n type: 'tuple[]',\n },\n ],\n name: 'aggregate3',\n outputs: [\n {\n components: [\n {\n name: 'success',\n type: 'bool',\n },\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'returnData',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n] as const\n\nconst universalResolverErrors = [\n {\n inputs: [],\n name: 'ResolverNotFound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ResolverWildcardNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ResolverNotContract',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'ResolverError',\n type: 'error',\n },\n {\n inputs: [\n {\n components: [\n {\n name: 'status',\n type: 'uint16',\n },\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'errors',\n type: 'tuple[]',\n },\n ],\n name: 'HttpError',\n type: 'error',\n },\n] as const\n\nexport const universalResolverResolveAbi = [\n ...universalResolverErrors,\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n { name: 'gateways', type: 'string[]' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n] as const\n\nexport const universalResolverReverseAbi = [\n ...universalResolverErrors,\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { type: 'bytes', name: 'reverseName' },\n { type: 'string[]', name: 'gateways' },\n ],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n] as const\n\nexport const textResolverAbi = [\n {\n name: 'text',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'key', type: 'string' },\n ],\n outputs: [{ name: '', type: 'string' }],\n },\n] as const\n\nexport const addressResolverAbi = [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [{ name: '', type: 'address' }],\n },\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'coinType', type: 'uint256' },\n ],\n outputs: [{ name: '', type: 'bytes' }],\n },\n] as const\n\n// ERC-1271\n// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue\n/** @internal */\nexport const smartAccountAbi = [\n {\n name: 'isValidSignature',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'hash', type: 'bytes32' },\n { name: 'signature', type: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bytes4' }],\n },\n] as const\n\n// ERC-6492 - universal deployless signature validator contract\n// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue\n// returnValue is either 0x1 (valid) or 0x0 (invalid)\nexport const universalSignatureValidatorAbi = [\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n name: 'isValidSig',\n },\n] as const\n\n/** [ERC-20 Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-20) */\nexport const erc20Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n] as const\n\n/**\n * [bytes32-flavored ERC-20](https://docs.makerdao.com/smart-contract-modules/mkr-module#4.-gotchas-potential-source-of-user-error)\n * for tokens (ie. Maker) that use bytes32 instead of string.\n */\nexport const erc20Abi_bytes32 = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n] as const\n\n/** [ERC-721 Non-Fungible Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-721) */\nexport const erc721Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'ApprovalForAll',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n name: 'approved',\n type: 'bool',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'getApproved',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'isApprovedForAll',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'operator',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'ownerOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'id',\n type: 'uint256',\n },\n {\n name: 'data',\n type: 'bytes',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'setApprovalForAll',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'operator',\n type: 'address',\n },\n {\n name: 'approved',\n type: 'bool',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenURI',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'tokeId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n] as const\n\n/** [ERC-4626 Tokenized Vaults Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-4626) */\nexport const erc4626Abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n name: 'allowance',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'approve',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'asset',\n outputs: [\n {\n name: 'assetTokenAddress',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'convertToAssets',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'convertToShares',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'deposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxDeposit',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxMint',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxRedeem',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxWithdraw',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'mint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewDeposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewMint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewRedeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewWithdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'redeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalAssets',\n outputs: [\n {\n name: 'totalManagedAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalSupply',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transfer',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transferFrom',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'withdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n] as const\n", "export const aggregate3Signature = '0x82ad56cb'\n", "export const deploylessCallViaBytecodeBytecode =\n '0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe'\n\nexport const deploylessCallViaFactoryBytecode =\n '0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe'\n\nexport const universalSignatureValidatorByteCode =\n '0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572'\n", "import type { Abi, AbiStateMutability, ExtractAbiFunctions } from 'abitype'\n\nimport {\n AbiFunctionNotFoundError,\n type AbiFunctionNotFoundErrorType,\n AbiFunctionOutputsNotFoundError,\n type AbiFunctionOutputsNotFoundErrorType,\n} from '../../errors/abi.js'\nimport type {\n ContractFunctionArgs,\n ContractFunctionName,\n ContractFunctionReturnType,\n Widen,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'\nimport {\n type DecodeAbiParametersErrorType,\n decodeAbiParameters,\n} from './decodeAbiParameters.js'\nimport { type GetAbiItemErrorType, getAbiItem } from './getAbiItem.js'\n\nconst docsPath = '/docs/contract/decodeFunctionResult'\n\nexport type DecodeFunctionResultParameters<\n abi extends Abi | readonly unknown[] = Abi,\n functionName extends\n | ContractFunctionName<abi>\n | undefined = ContractFunctionName<abi>,\n args extends ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n > = ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n >,\n ///\n hasFunctions = abi extends Abi\n ? Abi extends abi\n ? true\n : [ExtractAbiFunctions<abi>] extends [never]\n ? false\n : true\n : true,\n allArgs = ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n >,\n allFunctionNames = ContractFunctionName<abi>,\n> = {\n abi: abi\n data: Hex\n} & UnionEvaluate<\n IsNarrowable<abi, Abi> extends true\n ? abi['length'] extends 1\n ? { functionName?: functionName | allFunctionNames | undefined }\n : { functionName: functionName | allFunctionNames }\n : { functionName?: functionName | allFunctionNames | undefined }\n> &\n UnionEvaluate<\n readonly [] extends allArgs\n ? {\n args?:\n | allArgs // show all options\n // infer value, widen inferred value of `args` conditionally to match `allArgs`\n | (abi extends Abi\n ? args extends allArgs\n ? Widen<args>\n : never\n : never)\n | undefined\n }\n : {\n args?:\n | allArgs // show all options\n | (Widen<args> & (args extends allArgs ? unknown : never)) // infer value, widen inferred value of `args` match `allArgs` (e.g. avoid union `args: readonly [123n] | readonly [bigint]`)\n | undefined\n }\n > &\n (hasFunctions extends true ? unknown : never)\n\nexport type DecodeFunctionResultReturnType<\n abi extends Abi | readonly unknown[] = Abi,\n functionName extends\n | ContractFunctionName<abi>\n | undefined = ContractFunctionName<abi>,\n args extends ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n > = ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n >,\n> = ContractFunctionReturnType<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>,\n args\n>\n\nexport type DecodeFunctionResultErrorType =\n | AbiFunctionNotFoundErrorType\n | AbiFunctionOutputsNotFoundErrorType\n | DecodeAbiParametersErrorType\n | GetAbiItemErrorType\n | ErrorType\n\nexport function decodeFunctionResult<\n const abi extends Abi | readonly unknown[],\n functionName extends ContractFunctionName<abi> | undefined = undefined,\n const args extends ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n > = ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n >,\n>(\n parameters: DecodeFunctionResultParameters<abi, functionName, args>,\n): DecodeFunctionResultReturnType<abi, functionName, args> {\n const { abi, args, functionName, data } =\n parameters as DecodeFunctionResultParameters\n\n let abiItem = abi[0]\n if (functionName) {\n const item = getAbiItem({ abi, args, name: functionName })\n if (!item) throw new AbiFunctionNotFoundError(functionName, { docsPath })\n abiItem = item\n }\n\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath })\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath })\n\n const values = decodeAbiParameters(abiItem.outputs, data)\n if (values && values.length > 1)\n return values as DecodeFunctionResultReturnType<abi, functionName, args>\n if (values && values.length === 1)\n return values[0] as DecodeFunctionResultReturnType<abi, functionName, args>\n return undefined as DecodeFunctionResultReturnType<abi, functionName, args>\n}\n", "import type { Abi } from 'abitype'\n\nimport {\n AbiConstructorNotFoundError,\n type AbiConstructorNotFoundErrorType,\n AbiConstructorParamsNotFoundError,\n} from '../../errors/abi.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ContractConstructorArgs } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { UnionEvaluate } from '../../types/utils.js'\nimport { type ConcatHexErrorType, concatHex } from '../data/concat.js'\nimport {\n type EncodeAbiParametersErrorType,\n encodeAbiParameters,\n} from './encodeAbiParameters.js'\n\nconst docsPath = '/docs/contract/encodeDeployData'\n\nexport type EncodeDeployDataParameters<\n abi extends Abi | readonly unknown[] = Abi,\n ///\n hasConstructor = abi extends Abi\n ? Abi extends abi\n ? true\n : [Extract<abi[number], { type: 'constructor' }>] extends [never]\n ? false\n : true\n : true,\n allArgs = ContractConstructorArgs<abi>,\n> = {\n abi: abi\n bytecode: Hex\n} & UnionEvaluate<\n hasConstructor extends false\n ? { args?: undefined }\n : readonly [] extends allArgs\n ? { args?: allArgs | undefined }\n : { args: allArgs }\n>\n\nexport type EncodeDeployDataReturnType = Hex\n\nexport type EncodeDeployDataErrorType =\n | AbiConstructorNotFoundErrorType\n | ConcatHexErrorType\n | EncodeAbiParametersErrorType\n | ErrorType\n\nexport function encodeDeployData<const abi extends Abi | readonly unknown[]>(\n parameters: EncodeDeployDataParameters<abi>,\n): EncodeDeployDataReturnType {\n const { abi, args, bytecode } = parameters as EncodeDeployDataParameters\n if (!args || args.length === 0) return bytecode\n\n const description = abi.find((x) => 'type' in x && x.type === 'constructor')\n if (!description) throw new AbiConstructorNotFoundError({ docsPath })\n if (!('inputs' in description))\n throw new AbiConstructorParamsNotFoundError({ docsPath })\n if (!description.inputs || description.inputs.length === 0)\n throw new AbiConstructorParamsNotFoundError({ docsPath })\n\n const data = encodeAbiParameters(description.inputs, args)\n return concatHex([bytecode, data!])\n}\n", "import type {\n Abi,\n AbiStateMutability,\n ExtractAbiFunction,\n ExtractAbiFunctions,\n} from 'abitype'\n\nimport {\n AbiFunctionNotFoundError,\n type AbiFunctionNotFoundErrorType,\n} from '../../errors/abi.js'\nimport type {\n ContractFunctionArgs,\n ContractFunctionName,\n} from '../../types/contract.js'\nimport type { ConcatHexErrorType } from '../data/concat.js'\nimport {\n type ToFunctionSelectorErrorType,\n toFunctionSelector,\n} from '../hash/toFunctionSelector.js'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'\nimport { type FormatAbiItemErrorType, formatAbiItem } from './formatAbiItem.js'\nimport { type GetAbiItemErrorType, getAbiItem } from './getAbiItem.js'\n\nconst docsPath = '/docs/contract/encodeFunctionData'\n\nexport type PrepareEncodeFunctionDataParameters<\n abi extends Abi | readonly unknown[] = Abi,\n functionName extends\n | ContractFunctionName<abi>\n | undefined = ContractFunctionName<abi>,\n ///\n hasFunctions = abi extends Abi\n ? Abi extends abi\n ? true\n : [ExtractAbiFunctions<abi>] extends [never]\n ? false\n : true\n : true,\n allArgs = ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n >,\n allFunctionNames = ContractFunctionName<abi>,\n> = {\n abi: abi\n} & UnionEvaluate<\n IsNarrowable<abi, Abi> extends true\n ? abi['length'] extends 1\n ? { functionName?: functionName | allFunctionNames | Hex | undefined }\n : { functionName: functionName | allFunctionNames | Hex }\n : { functionName?: functionName | allFunctionNames | Hex | undefined }\n> &\n UnionEvaluate<{ args?: allArgs | undefined }> &\n (hasFunctions extends true ? unknown : never)\n\nexport type PrepareEncodeFunctionDataReturnType<\n abi extends Abi | readonly unknown[] = Abi,\n functionName extends\n | ContractFunctionName<abi>\n | undefined = ContractFunctionName<abi>,\n> = {\n abi: abi extends Abi\n ? functionName extends ContractFunctionName<abi>\n ? [ExtractAbiFunction<abi, functionName>]\n : abi\n : Abi\n functionName: Hex\n}\n\nexport type PrepareEncodeFunctionDataErrorType =\n | AbiFunctionNotFoundErrorType\n | ConcatHexErrorType\n | FormatAbiItemErrorType\n | GetAbiItemErrorType\n | ToFunctionSelectorErrorType\n | ErrorType\n\nexport function prepareEncodeFunctionData<\n const abi extends Abi | readonly unknown[],\n functionName extends ContractFunctionName<abi> | undefined = undefined,\n>(\n parameters: PrepareEncodeFunctionDataParameters<abi, functionName>,\n): PrepareEncodeFunctionDataReturnType<abi, functionName> {\n const { abi, args, functionName } =\n parameters as PrepareEncodeFunctionDataParameters\n\n let abiItem = abi[0]\n if (functionName) {\n const item = getAbiItem({\n abi,\n args,\n name: functionName,\n })\n if (!item) throw new AbiFunctionNotFoundError(functionName, { docsPath })\n abiItem = item\n }\n\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath })\n\n return {\n abi: [abiItem],\n functionName: toFunctionSelector(formatAbiItem(abiItem)),\n } as unknown as PrepareEncodeFunctionDataReturnType<abi, functionName>\n}\n", "import type { Abi, AbiStateMutability, ExtractAbiFunctions } from 'abitype'\n\nimport type { AbiFunctionNotFoundErrorType } from '../../errors/abi.js'\nimport type {\n ContractFunctionArgs,\n ContractFunctionName,\n} from '../../types/contract.js'\nimport { type ConcatHexErrorType, concatHex } from '../data/concat.js'\nimport type { ToFunctionSelectorErrorType } from '../hash/toFunctionSelector.js'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'\nimport {\n type EncodeAbiParametersErrorType,\n encodeAbiParameters,\n} from './encodeAbiParameters.js'\nimport type { FormatAbiItemErrorType } from './formatAbiItem.js'\nimport type { GetAbiItemErrorType } from './getAbiItem.js'\nimport { prepareEncodeFunctionData } from './prepareEncodeFunctionData.js'\n\nexport type EncodeFunctionDataParameters<\n abi extends Abi | readonly unknown[] = Abi,\n functionName extends\n | ContractFunctionName<abi>\n | Hex\n | undefined = ContractFunctionName<abi>,\n ///\n hasFunctions = abi extends Abi\n ? Abi extends abi\n ? true\n : [ExtractAbiFunctions<abi>] extends [never]\n ? false\n : true\n : true,\n allArgs = ContractFunctionArgs<\n abi,\n AbiStateMutability,\n functionName extends ContractFunctionName<abi>\n ? functionName\n : ContractFunctionName<abi>\n >,\n allFunctionNames = ContractFunctionName<abi>,\n> = {\n abi: abi\n} & UnionEvaluate<\n IsNarrowable<abi, Abi> extends true\n ? abi['length'] extends 1\n ? { functionName?: functionName | allFunctionNames | Hex | undefined }\n : { functionName: functionName | allFunctionNames | Hex }\n : { functionName?: functionName | allFunctionNames | Hex | undefined }\n> &\n UnionEvaluate<\n readonly [] extends allArgs\n ? { args?: allArgs | undefined }\n : { args: allArgs }\n > &\n (hasFunctions extends true ? unknown : never)\n\nexport type EncodeFunctionDataReturnType = Hex\n\nexport type EncodeFunctionDataErrorType =\n | AbiFunctionNotFoundErrorType\n | ConcatHexErrorType\n | EncodeAbiParametersErrorType\n | FormatAbiItemErrorType\n | GetAbiItemErrorType\n | ToFunctionSelectorErrorType\n | ErrorType\n\nexport function encodeFunctionData<\n const abi extends Abi | readonly unknown[],\n functionName extends ContractFunctionName<abi> | undefined = undefined,\n>(\n parameters: EncodeFunctionDataParameters<abi, functionName>,\n): EncodeFunctionDataReturnType {\n const { args } = parameters as EncodeFunctionDataParameters\n\n const { abi, functionName } = (() => {\n if (\n parameters.abi.length === 1 &&\n parameters.functionName?.startsWith('0x')\n )\n return parameters as { abi: Abi; functionName: Hex }\n return prepareEncodeFunctionData(parameters)\n })()\n\n const abiItem = abi[0]\n const signature = functionName\n\n const data =\n 'inputs' in abiItem && abiItem.inputs\n ? encodeAbiParameters(abiItem.inputs, args ?? [])\n : undefined\n return concatHex([signature, data ?? '0x'])\n}\n", "/** @internal */\nexport type PromiseWithResolvers<type> = {\n promise: Promise<type>\n resolve: (value: type | PromiseLike<type>) => void\n reject: (reason?: unknown) => void\n}\n\n/** @internal */\nexport function withResolvers<type>(): PromiseWithResolvers<type> {\n let resolve: PromiseWithResolvers<type>['resolve'] = () => undefined\n let reject: PromiseWithResolvers<type>['reject'] = () => undefined\n\n const promise = new Promise<type>((resolve_, reject_) => {\n resolve = resolve_\n reject = reject_\n })\n\n return { promise, resolve, reject }\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport { type PromiseWithResolvers, withResolvers } from './withResolvers.js'\n\ntype Resolved<returnType extends readonly unknown[] = any> = [\n result: returnType[number],\n results: returnType,\n]\n\ntype SchedulerItem = {\n args: unknown\n resolve: PromiseWithResolvers<unknown>['resolve']\n reject: PromiseWithResolvers<unknown>['reject']\n}\n\ntype BatchResultsCompareFn<result = unknown> = (a: result, b: result) => number\n\ntype CreateBatchSchedulerArguments<\n parameters = unknown,\n returnType extends readonly unknown[] = readonly unknown[],\n> = {\n fn: (args: parameters[]) => Promise<returnType>\n id: number | string\n shouldSplitBatch?: ((args: parameters[]) => boolean) | undefined\n wait?: number | undefined\n sort?: BatchResultsCompareFn<returnType[number]> | undefined\n}\n\ntype CreateBatchSchedulerReturnType<\n parameters = unknown,\n returnType extends readonly unknown[] = readonly unknown[],\n> = {\n flush: () => void\n schedule: parameters extends undefined\n ? (args?: parameters | undefined) => Promise<Resolved<returnType>>\n : (args: parameters) => Promise<Resolved<returnType>>\n}\n\nexport type CreateBatchSchedulerErrorType = ErrorType\n\nconst schedulerCache = /*#__PURE__*/ new Map<number | string, SchedulerItem[]>()\n\n/** @internal */\nexport function createBatchScheduler<\n parameters,\n returnType extends readonly unknown[],\n>({\n fn,\n id,\n shouldSplitBatch,\n wait = 0,\n sort,\n}: CreateBatchSchedulerArguments<\n parameters,\n returnType\n>): CreateBatchSchedulerReturnType<parameters, returnType> {\n const exec = async () => {\n const scheduler = getScheduler()\n flush()\n\n const args = scheduler.map(({ args }) => args)\n\n if (args.length === 0) return\n\n fn(args as parameters[])\n .then((data) => {\n if (sort && Array.isArray(data)) data.sort(sort)\n for (let i = 0; i < scheduler.length; i++) {\n const { resolve } = scheduler[i]\n resolve?.([data[i], data])\n }\n })\n .catch((err) => {\n for (let i = 0; i < scheduler.length; i++) {\n const { reject } = scheduler[i]\n reject?.(err)\n }\n })\n }\n\n const flush = () => schedulerCache.delete(id)\n\n const getBatchedArgs = () =>\n getScheduler().map(({ args }) => args) as parameters[]\n\n const getScheduler = () => schedulerCache.get(id) || []\n\n const setScheduler = (item: SchedulerItem) =>\n schedulerCache.set(id, [...getScheduler(), item])\n\n return {\n flush,\n async schedule(args: parameters) {\n const { promise, resolve, reject } = withResolvers()\n\n const split = shouldSplitBatch?.([...getBatchedArgs(), args])\n\n if (split) exec()\n\n const hasActiveScheduler = getScheduler().length > 0\n if (hasActiveScheduler) {\n setScheduler({ args, resolve, reject })\n return promise\n }\n\n setScheduler({ args, resolve, reject })\n setTimeout(exec, wait)\n return promise\n },\n } as unknown as CreateBatchSchedulerReturnType<parameters, returnType>\n}\n", "import {\n InvalidAddressError,\n type InvalidAddressErrorType,\n} from '../errors/address.js'\nimport {\n InvalidBytesLengthError,\n type InvalidBytesLengthErrorType,\n} from '../errors/data.js'\nimport {\n AccountStateConflictError,\n type AccountStateConflictErrorType,\n StateAssignmentConflictError,\n type StateAssignmentConflictErrorType,\n} from '../errors/stateOverride.js'\nimport type {\n RpcAccountStateOverride,\n RpcStateMapping,\n RpcStateOverride,\n} from '../types/rpc.js'\nimport type { StateMapping, StateOverride } from '../types/stateOverride.js'\nimport { isAddress } from './address/isAddress.js'\nimport { type NumberToHexErrorType, numberToHex } from './encoding/toHex.js'\n\ntype SerializeStateMappingParameters = StateMapping | undefined\n\ntype SerializeStateMappingErrorType = InvalidBytesLengthErrorType\n\n/** @internal */\nexport function serializeStateMapping(\n stateMapping: SerializeStateMappingParameters,\n): RpcStateMapping | undefined {\n if (!stateMapping || stateMapping.length === 0) return undefined\n return stateMapping.reduce((acc, { slot, value }) => {\n if (slot.length !== 66)\n throw new InvalidBytesLengthError({\n size: slot.length,\n targetSize: 66,\n type: 'hex',\n })\n if (value.length !== 66)\n throw new InvalidBytesLengthError({\n size: value.length,\n targetSize: 66,\n type: 'hex',\n })\n acc[slot] = value\n return acc\n }, {} as RpcStateMapping)\n}\n\ntype SerializeAccountStateOverrideParameters = Omit<\n StateOverride[number],\n 'address'\n>\n\ntype SerializeAccountStateOverrideErrorType =\n | NumberToHexErrorType\n | StateAssignmentConflictErrorType\n | SerializeStateMappingErrorType\n\n/** @internal */\nexport function serializeAccountStateOverride(\n parameters: SerializeAccountStateOverrideParameters,\n): RpcAccountStateOverride {\n const { balance, nonce, state, stateDiff, code } = parameters\n const rpcAccountStateOverride: RpcAccountStateOverride = {}\n if (code !== undefined) rpcAccountStateOverride.code = code\n if (balance !== undefined)\n rpcAccountStateOverride.balance = numberToHex(balance)\n if (nonce !== undefined) rpcAccountStateOverride.nonce = numberToHex(nonce)\n if (state !== undefined)\n rpcAccountStateOverride.state = serializeStateMapping(state)\n if (stateDiff !== undefined) {\n if (rpcAccountStateOverride.state) throw new StateAssignmentConflictError()\n rpcAccountStateOverride.stateDiff = serializeStateMapping(stateDiff)\n }\n return rpcAccountStateOverride\n}\n\ntype SerializeStateOverrideParameters = StateOverride | undefined\n\nexport type SerializeStateOverrideErrorType =\n | InvalidAddressErrorType\n | AccountStateConflictErrorType\n | SerializeAccountStateOverrideErrorType\n\n/** @internal */\nexport function serializeStateOverride(\n parameters?: SerializeStateOverrideParameters,\n): RpcStateOverride | undefined {\n if (!parameters) return undefined\n const rpcStateOverride: RpcStateOverride = {}\n for (const { address, ...accountState } of parameters) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address })\n if (rpcStateOverride[address])\n throw new AccountStateConflictError({ address: address })\n rpcStateOverride[address] = serializeAccountStateOverride(accountState)\n }\n return rpcStateOverride\n}\n", "import { type Address, parseAbi } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n type ParseAccountErrorType,\n parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { multicall3Abi } from '../../constants/abis.js'\nimport { aggregate3Signature } from '../../constants/contract.js'\nimport {\n deploylessCallViaBytecodeBytecode,\n deploylessCallViaFactoryBytecode,\n} from '../../constants/contracts.js'\nimport { BaseError } from '../../errors/base.js'\nimport {\n ChainDoesNotSupportContract,\n ClientChainNotConfiguredError,\n} from '../../errors/chain.js'\nimport {\n CounterfactualDeploymentFailedError,\n RawContractError,\n type RawContractErrorType,\n} from '../../errors/contract.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RpcTransactionRequest } from '../../types/rpc.js'\nimport type { StateOverride } from '../../types/stateOverride.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport type { ExactPartial, UnionOmit } from '../../types/utils.js'\nimport {\n type DecodeFunctionResultErrorType,\n decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n type EncodeDeployDataErrorType,\n encodeDeployData,\n} from '../../utils/abi/encodeDeployData.js'\nimport {\n type EncodeFunctionDataErrorType,\n encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n type GetChainContractAddressErrorType,\n getChainContractAddress,\n} from '../../utils/chain/getChainContractAddress.js'\nimport {\n type NumberToHexErrorType,\n numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n type GetCallErrorReturnType,\n getCallError,\n} from '../../utils/errors/getCallError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n type FormatTransactionRequestErrorType,\n type FormattedTransactionRequest,\n formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport {\n type CreateBatchSchedulerErrorType,\n createBatchScheduler,\n} from '../../utils/promise/createBatchScheduler.js'\nimport {\n type SerializeStateOverrideErrorType,\n serializeStateOverride,\n} from '../../utils/stateOverride.js'\nimport { assertRequest } from '../../utils/transaction/assertRequest.js'\nimport type {\n AssertRequestErrorType,\n AssertRequestParameters,\n} from '../../utils/transaction/assertRequest.js'\n\nexport type CallParameters<\n chain extends Chain | undefined = Chain | undefined,\n> = UnionOmit<FormattedCall<chain>, 'from'> & {\n /** Account attached to the call (msg.sender). */\n account?: Account | Address | undefined\n /** Whether or not to enable multicall batching on this call. */\n batch?: boolean | undefined\n /** Bytecode to perform the call on. */\n code?: Hex | undefined\n /** Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc). */\n factory?: Address | undefined\n /** Calldata to execute on the factory to deploy the contract. */\n factoryData?: Hex | undefined\n /** State overrides for the call. */\n stateOverride?: StateOverride | undefined\n} & (\n | {\n /** The balance of the account at a block number. */\n blockNumber?: bigint | undefined\n blockTag?: undefined\n }\n | {\n blockNumber?: undefined\n /**\n * The balance of the account at a block tag.\n * @default 'latest'\n */\n blockTag?: BlockTag | undefined\n }\n )\ntype FormattedCall<chain extends Chain | undefined = Chain | undefined> =\n FormattedTransactionRequest<chain>\n\nexport type CallReturnType = { data: Hex | undefined }\n\nexport type CallErrorType = GetCallErrorReturnType<\n | ParseAccountErrorType\n | SerializeStateOverrideErrorType\n | AssertRequestErrorType\n | NumberToHexErrorType\n | FormatTransactionRequestErrorType\n | ScheduleMulticallErrorType\n | RequestErrorType\n | ToDeploylessCallViaBytecodeDataErrorType\n | ToDeploylessCallViaFactoryDataErrorType\n>\n\n/**\n * Executes a new message call immediately without submitting a transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/call\n * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n *\n * @param client - Client to use\n * @param parameters - {@link CallParameters}\n * @returns The call data. {@link CallReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { call } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await call(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function call<chain extends Chain | undefined>(\n client: Client<Transport, chain>,\n args: CallParameters<chain>,\n): Promise<CallReturnType> {\n const {\n account: account_ = client.account,\n batch = Boolean(client.batch?.multicall),\n blockNumber,\n blockTag = 'latest',\n accessList,\n blobs,\n code,\n data: data_,\n factory,\n factoryData,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n stateOverride,\n ...rest\n } = args\n const account = account_ ? parseAccount(account_) : undefined\n\n if (code && (factory || factoryData))\n throw new BaseError(\n 'Cannot provide both `code` & `factory`/`factoryData` as parameters.',\n )\n if (code && to)\n throw new BaseError('Cannot provide both `code` & `to` as parameters.')\n\n // Check if the call is deployless via bytecode.\n const deploylessCallViaBytecode = code && data_\n // Check if the call is deployless via a factory.\n const deploylessCallViaFactory = factory && factoryData && to && data_\n const deploylessCall = deploylessCallViaBytecode || deploylessCallViaFactory\n\n const data = (() => {\n if (deploylessCallViaBytecode)\n return toDeploylessCallViaBytecodeData({\n code,\n data: data_,\n })\n if (deploylessCallViaFactory)\n return toDeploylessCallViaFactoryData({\n data: data_,\n factory,\n factoryData,\n to,\n })\n return data_\n })()\n\n try {\n assertRequest(args as AssertRequestParameters)\n\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n const block = blockNumberHex || blockTag\n\n const rpcStateOverride = serializeStateOverride(stateOverride)\n\n const chainFormat = client.chain?.formatters?.transactionRequest?.format\n const format = chainFormat || formatTransactionRequest\n\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n from: account?.address,\n accessList,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to: deploylessCall ? undefined : to,\n value,\n } as TransactionRequest) as TransactionRequest\n\n if (batch && shouldPerformMulticall({ request }) && !rpcStateOverride) {\n try {\n return await scheduleMulticall(client, {\n ...request,\n blockNumber,\n blockTag,\n } as unknown as ScheduleMulticallParameters<chain>)\n } catch (err) {\n if (\n !(err instanceof ClientChainNotConfiguredError) &&\n !(err instanceof ChainDoesNotSupportContract)\n )\n throw err\n }\n }\n\n const response = await client.request({\n method: 'eth_call',\n params: rpcStateOverride\n ? [\n request as ExactPartial<RpcTransactionRequest>,\n block,\n rpcStateOverride,\n ]\n : [request as ExactPartial<RpcTransactionRequest>, block],\n })\n if (response === '0x') return { data: undefined }\n return { data: response }\n } catch (err) {\n const data = getRevertErrorData(err)\n\n // Check for CCIP-Read offchain lookup signature.\n const { offchainLookup, offchainLookupSignature } = await import(\n '../../utils/ccip.js'\n )\n if (\n client.ccipRead !== false &&\n data?.slice(0, 10) === offchainLookupSignature &&\n to\n )\n return { data: await offchainLookup(client, { data, to }) }\n\n // Check for counterfactual deployment error.\n if (deploylessCall && data?.slice(0, 10) === '0x101bb98d')\n throw new CounterfactualDeploymentFailedError({ factory })\n\n throw getCallError(err as ErrorType, {\n ...args,\n account,\n chain: client.chain,\n })\n }\n}\n\n// We only want to perform a scheduled multicall if:\n// - The request has calldata,\n// - The request has a target address,\n// - The target address is not already the aggregate3 signature,\n// - The request has no other properties (`nonce`, `gas`, etc cannot be sent with a multicall).\nfunction shouldPerformMulticall({ request }: { request: TransactionRequest }) {\n const { data, to, ...request_ } = request\n if (!data) return false\n if (data.startsWith(aggregate3Signature)) return false\n if (!to) return false\n if (\n Object.values(request_).filter((x) => typeof x !== 'undefined').length > 0\n )\n return false\n return true\n}\n\ntype ScheduleMulticallParameters<chain extends Chain | undefined> = Pick<\n CallParameters<chain>,\n 'blockNumber' | 'blockTag'\n> & {\n data: Hex\n multicallAddress?: Address | undefined\n to: Address\n}\n\ntype ScheduleMulticallErrorType =\n | GetChainContractAddressErrorType\n | NumberToHexErrorType\n | CreateBatchSchedulerErrorType\n | EncodeFunctionDataErrorType\n | DecodeFunctionResultErrorType\n | RawContractErrorType\n | ErrorType\n\nasync function scheduleMulticall<chain extends Chain | undefined>(\n client: Client<Transport>,\n args: ScheduleMulticallParameters<chain>,\n) {\n const { batchSize = 1024, wait = 0 } =\n typeof client.batch?.multicall === 'object' ? client.batch.multicall : {}\n const {\n blockNumber,\n blockTag = 'latest',\n data,\n multicallAddress: multicallAddress_,\n to,\n } = args\n\n let multicallAddress = multicallAddress_\n if (!multicallAddress) {\n if (!client.chain) throw new ClientChainNotConfiguredError()\n\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n })\n }\n\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n const block = blockNumberHex || blockTag\n\n const { schedule } = createBatchScheduler({\n id: `${client.uid}.${block}`,\n wait,\n shouldSplitBatch(args) {\n const size = args.reduce((size, { data }) => size + (data.length - 2), 0)\n return size > batchSize * 2\n },\n fn: async (\n requests: {\n data: Hex\n to: Address\n }[],\n ) => {\n const calls = requests.map((request) => ({\n allowFailure: true,\n callData: request.data,\n target: request.to,\n }))\n\n const calldata = encodeFunctionData({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n })\n\n const data = await client.request({\n method: 'eth_call',\n params: [\n {\n data: calldata,\n to: multicallAddress,\n },\n block,\n ],\n })\n\n return decodeFunctionResult({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n data: data || '0x',\n })\n },\n })\n\n const [{ returnData, success }] = await schedule({ data, to })\n\n if (!success) throw new RawContractError({ data: returnData })\n if (returnData === '0x') return { data: undefined }\n return { data: returnData }\n}\n\ntype ToDeploylessCallViaBytecodeDataErrorType =\n | EncodeDeployDataErrorType\n | ErrorType\n\nfunction toDeploylessCallViaBytecodeData(parameters: {\n code: Hex\n data: Hex\n}) {\n const { code, data } = parameters\n return encodeDeployData({\n abi: parseAbi(['constructor(bytes, bytes)']),\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [code, data],\n })\n}\n\ntype ToDeploylessCallViaFactoryDataErrorType =\n | EncodeDeployDataErrorType\n | ErrorType\n\nfunction toDeploylessCallViaFactoryData(parameters: {\n data: Hex\n factory: Address\n factoryData: Hex\n to: Address\n}) {\n const { data, factory, factoryData, to } = parameters\n return encodeDeployData({\n abi: parseAbi(['constructor(address, bytes, address, bytes)']),\n bytecode: deploylessCallViaFactoryBytecode,\n args: [to, data, factory, factoryData],\n })\n}\n\n/** @internal */\nexport type GetRevertErrorDataErrorType = ErrorType\n\n/** @internal */\nexport function getRevertErrorData(err: unknown) {\n if (!(err instanceof BaseError)) return undefined\n const error = err.walk() as RawContractError\n return typeof error?.data === 'object' ? error.data?.data : error.data\n}\n", "import type { Address } from 'abitype'\n\nimport type { Hex } from '../types/misc.js'\nimport { stringify } from '../utils/stringify.js'\n\nimport { BaseError } from './base.js'\nimport { getUrl } from './utils.js'\n\nexport type OffchainLookupErrorType = OffchainLookupError & {\n name: 'OffchainLookupError'\n}\nexport class OffchainLookupError extends BaseError {\n constructor({\n callbackSelector,\n cause,\n data,\n extraData,\n sender,\n urls,\n }: {\n callbackSelector: Hex\n cause: BaseError\n data: Hex\n extraData: Hex\n sender: Address\n urls: readonly string[]\n }) {\n super(\n cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.',\n {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n },\n )\n }\n}\n\nexport type OffchainLookupResponseMalformedErrorType =\n OffchainLookupResponseMalformedError & {\n name: 'OffchainLookupResponseMalformedError'\n }\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }: { result: any; url: string }) {\n super(\n 'Offchain gateway response is malformed. Response data must be a hex value.',\n {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n },\n )\n }\n}\n\n/** @internal */\nexport type OffchainLookupSenderMismatchErrorType =\n OffchainLookupSenderMismatchError & {\n name: 'OffchainLookupSenderMismatchError'\n }\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }: { sender: Address; to: Address }) {\n super(\n 'Reverted sender address does not match target contract address (`to`).',\n {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n },\n )\n }\n}\n", "import type { Address } from 'abitype'\n\nimport {\n InvalidAddressError,\n type InvalidAddressErrorType,\n} from '../../errors/address.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport { isAddress } from './isAddress.js'\n\nexport type IsAddressEqualReturnType = boolean\nexport type IsAddressEqualErrorType = InvalidAddressErrorType | ErrorType\n\nexport function isAddressEqual(a: Address, b: Address) {\n if (!isAddress(a, { strict: false }))\n throw new InvalidAddressError({ address: a })\n if (!isAddress(b, { strict: false }))\n throw new InvalidAddressError({ address: b })\n return a.toLowerCase() === b.toLowerCase()\n}\n", "import type { Abi, Address } from 'abitype'\n\nimport { type CallParameters, call } from '../actions/public/call.js'\nimport type { Transport } from '../clients/transports/createTransport.js'\nimport type { BaseError } from '../errors/base.js'\nimport {\n OffchainLookupError,\n type OffchainLookupErrorType as OffchainLookupErrorType_,\n OffchainLookupResponseMalformedError,\n type OffchainLookupResponseMalformedErrorType,\n OffchainLookupSenderMismatchError,\n} from '../errors/ccip.js'\nimport {\n HttpRequestError,\n type HttpRequestErrorType,\n} from '../errors/request.js'\nimport type { Chain } from '../types/chain.js'\nimport type { Hex } from '../types/misc.js'\n\nimport type { Client } from '../clients/createClient.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport { decodeErrorResult } from './abi/decodeErrorResult.js'\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js'\nimport { isAddressEqual } from './address/isAddressEqual.js'\nimport { concat } from './data/concat.js'\nimport { isHex } from './data/isHex.js'\nimport { stringify } from './stringify.js'\n\nexport const offchainLookupSignature = '0x556f1830'\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n} as const satisfies Abi[number]\n\nexport type OffchainLookupErrorType = OffchainLookupErrorType_ | ErrorType\n\nexport async function offchainLookup<chain extends Chain | undefined>(\n client: Client<Transport, chain>,\n {\n blockNumber,\n blockTag,\n data,\n to,\n }: Pick<CallParameters, 'blockNumber' | 'blockTag'> & {\n data: Hex\n to: Address\n },\n): Promise<Hex> {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n })\n const [sender, urls, callData, callbackSelector, extraData] = args\n\n const { ccipRead } = client\n const ccipRequest_ =\n ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest\n\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to })\n\n const result = await ccipRequest_({ data: callData, sender, urls })\n\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters(\n [{ type: 'bytes' }, { type: 'bytes' }],\n [result, extraData],\n ),\n ]),\n to,\n } as CallParameters)\n\n return data_!\n } catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err as BaseError,\n data,\n extraData,\n sender,\n urls,\n })\n }\n}\n\nexport type CcipRequestParameters = {\n data: Hex\n sender: Address\n urls: readonly string[]\n}\n\nexport type CcipRequestReturnType = Hex\n\nexport type CcipRequestErrorType =\n | HttpRequestErrorType\n | OffchainLookupResponseMalformedErrorType\n | ErrorType\n\nexport async function ccipRequest({\n data,\n sender,\n urls,\n}: CcipRequestParameters): Promise<CcipRequestReturnType> {\n let error = new Error('An unknown error occurred.')\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i]\n const method = url.includes('{data}') ? 'GET' : 'POST'\n const body = method === 'POST' ? { data, sender } : undefined\n const headers: HeadersInit =\n method === 'POST' ? { 'Content-Type': 'application/json' } : {}\n\n try {\n const response = await fetch(\n url.replace('{sender}', sender.toLowerCase()).replace('{data}', data),\n {\n body: JSON.stringify(body),\n headers,\n method,\n },\n )\n\n let result: any\n if (\n response.headers.get('Content-Type')?.startsWith('application/json')\n ) {\n result = (await response.json()).data\n } else {\n result = (await response.text()) as any\n }\n\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n })\n continue\n }\n\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n })\n continue\n }\n\n return result\n } catch (err) {\n error = new HttpRequestError({\n body,\n details: (err as Error).message,\n url,\n })\n }\n }\n\n throw error\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["docsPath", "docsPath", "args", "data", "offchainLookup", "offchainLookupSignature", "args", "size"]
7
+ }