@farcaster/create-mini-app 0.0.7 → 0.0.8

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 (97) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +7 -0
  3. package/dist/init.d.ts.map +1 -1
  4. package/dist/init.js +20 -2
  5. package/dist/init.js.map +1 -1
  6. package/init.ts +22 -2
  7. package/package.json +3 -1
  8. package/templates/default/README.md +19 -0
  9. package/asd/README.md +0 -1
  10. package/asd/biome.json +0 -13
  11. package/asd/index.html +0 -12
  12. package/asd/package.json +0 -30
  13. package/asd/public/.well-known/farcaster.json +0 -1
  14. package/asd/src/App.tsx +0 -67
  15. package/asd/src/index.css +0 -21
  16. package/asd/src/main.tsx +0 -21
  17. package/asd/src/vite-env.d.ts +0 -1
  18. package/asd/src/wagmi.ts +0 -18
  19. package/asd/tsconfig.json +0 -25
  20. package/asd/tsconfig.node.json +0 -10
  21. package/asd/vite.config.ts +0 -10
  22. package/templates/default/node_modules/.bin/biome +0 -17
  23. package/templates/default/node_modules/.bin/browserslist +0 -17
  24. package/templates/default/node_modules/.bin/esbuild +0 -17
  25. package/templates/default/node_modules/.bin/terser +0 -17
  26. package/templates/default/node_modules/.bin/tsc +0 -17
  27. package/templates/default/node_modules/.bin/tsserver +0 -17
  28. package/templates/default/node_modules/.bin/vite +0 -17
  29. package/templates/default/node_modules/.bin/wagmi +0 -17
  30. package/templates/default/node_modules/.vite/deps/@farcaster_frame-sdk.js +0 -84
  31. package/templates/default/node_modules/.vite/deps/@farcaster_frame-sdk.js.map +0 -7
  32. package/templates/default/node_modules/.vite/deps/@farcaster_frame-wagmi-connector.js +0 -1936
  33. package/templates/default/node_modules/.vite/deps/@farcaster_frame-wagmi-connector.js.map +0 -7
  34. package/templates/default/node_modules/.vite/deps/@tanstack_react-query.js +0 -96
  35. package/templates/default/node_modules/.vite/deps/@tanstack_react-query.js.map +0 -7
  36. package/templates/default/node_modules/.vite/deps/_metadata.json +0 -139
  37. package/templates/default/node_modules/.vite/deps/ccip-JTEXJDV5.js +0 -17
  38. package/templates/default/node_modules/.vite/deps/ccip-JTEXJDV5.js.map +0 -7
  39. package/templates/default/node_modules/.vite/deps/ccip-LLOJAQYN.js +0 -14
  40. package/templates/default/node_modules/.vite/deps/ccip-LLOJAQYN.js.map +0 -7
  41. package/templates/default/node_modules/.vite/deps/chunk-2KW72IQL.js +0 -2601
  42. package/templates/default/node_modules/.vite/deps/chunk-2KW72IQL.js.map +0 -7
  43. package/templates/default/node_modules/.vite/deps/chunk-2ULAEEW3.js +0 -286
  44. package/templates/default/node_modules/.vite/deps/chunk-2ULAEEW3.js.map +0 -7
  45. package/templates/default/node_modules/.vite/deps/chunk-3MMZATWV.js +0 -1906
  46. package/templates/default/node_modules/.vite/deps/chunk-3MMZATWV.js.map +0 -7
  47. package/templates/default/node_modules/.vite/deps/chunk-6WYSWNQJ.js +0 -3183
  48. package/templates/default/node_modules/.vite/deps/chunk-6WYSWNQJ.js.map +0 -7
  49. package/templates/default/node_modules/.vite/deps/chunk-AJPHOYQK.js +0 -21628
  50. package/templates/default/node_modules/.vite/deps/chunk-AJPHOYQK.js.map +0 -7
  51. package/templates/default/node_modules/.vite/deps/chunk-HP7M7ER3.js +0 -2221
  52. package/templates/default/node_modules/.vite/deps/chunk-HP7M7ER3.js.map +0 -7
  53. package/templates/default/node_modules/.vite/deps/chunk-JDAHWTZP.js +0 -928
  54. package/templates/default/node_modules/.vite/deps/chunk-JDAHWTZP.js.map +0 -7
  55. package/templates/default/node_modules/.vite/deps/chunk-OOB7NECH.js +0 -58
  56. package/templates/default/node_modules/.vite/deps/chunk-OOB7NECH.js.map +0 -7
  57. package/templates/default/node_modules/.vite/deps/chunk-OYL52S4H.js +0 -190
  58. package/templates/default/node_modules/.vite/deps/chunk-OYL52S4H.js.map +0 -7
  59. package/templates/default/node_modules/.vite/deps/chunk-P2SCV6N5.js +0 -1085
  60. package/templates/default/node_modules/.vite/deps/chunk-P2SCV6N5.js.map +0 -7
  61. package/templates/default/node_modules/.vite/deps/chunk-P727YSDY.js +0 -3246
  62. package/templates/default/node_modules/.vite/deps/chunk-P727YSDY.js.map +0 -7
  63. package/templates/default/node_modules/.vite/deps/chunk-PH77EFIP.js +0 -278
  64. package/templates/default/node_modules/.vite/deps/chunk-PH77EFIP.js.map +0 -7
  65. package/templates/default/node_modules/.vite/deps/chunk-PK65EOOR.js +0 -4416
  66. package/templates/default/node_modules/.vite/deps/chunk-PK65EOOR.js.map +0 -7
  67. package/templates/default/node_modules/.vite/deps/chunk-PPRY4ZGR.js +0 -36187
  68. package/templates/default/node_modules/.vite/deps/chunk-PPRY4ZGR.js.map +0 -7
  69. package/templates/default/node_modules/.vite/deps/chunk-Q3UTC4SW.js +0 -832
  70. package/templates/default/node_modules/.vite/deps/chunk-Q3UTC4SW.js.map +0 -7
  71. package/templates/default/node_modules/.vite/deps/chunk-R2PSY44V.js +0 -815
  72. package/templates/default/node_modules/.vite/deps/chunk-R2PSY44V.js.map +0 -7
  73. package/templates/default/node_modules/.vite/deps/chunk-WOOG5QLI.js +0 -60
  74. package/templates/default/node_modules/.vite/deps/chunk-WOOG5QLI.js.map +0 -7
  75. package/templates/default/node_modules/.vite/deps/native-J7PVLWWX.js +0 -21
  76. package/templates/default/node_modules/.vite/deps/native-J7PVLWWX.js.map +0 -7
  77. package/templates/default/node_modules/.vite/deps/native-UTGEKOTD.js +0 -21
  78. package/templates/default/node_modules/.vite/deps/native-UTGEKOTD.js.map +0 -7
  79. package/templates/default/node_modules/.vite/deps/package.json +0 -3
  80. package/templates/default/node_modules/.vite/deps/react-dom.js +0 -7
  81. package/templates/default/node_modules/.vite/deps/react-dom.js.map +0 -7
  82. package/templates/default/node_modules/.vite/deps/react-dom_client.js +0 -39
  83. package/templates/default/node_modules/.vite/deps/react-dom_client.js.map +0 -7
  84. package/templates/default/node_modules/.vite/deps/react.js +0 -6
  85. package/templates/default/node_modules/.vite/deps/react.js.map +0 -7
  86. package/templates/default/node_modules/.vite/deps/react_jsx-dev-runtime.js +0 -913
  87. package/templates/default/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +0 -7
  88. package/templates/default/node_modules/.vite/deps/react_jsx-runtime.js +0 -7
  89. package/templates/default/node_modules/.vite/deps/react_jsx-runtime.js.map +0 -7
  90. package/templates/default/node_modules/.vite/deps/secp256k1-HB6OVCEM.js +0 -14
  91. package/templates/default/node_modules/.vite/deps/secp256k1-HB6OVCEM.js.map +0 -7
  92. package/templates/default/node_modules/.vite/deps/secp256k1-YI5SRKAE.js +0 -16
  93. package/templates/default/node_modules/.vite/deps/secp256k1-YI5SRKAE.js.map +0 -7
  94. package/templates/default/node_modules/.vite/deps/wagmi.js +0 -12147
  95. package/templates/default/node_modules/.vite/deps/wagmi.js.map +0 -7
  96. package/templates/default/node_modules/.vite/deps/wagmi_chains.js +0 -16355
  97. package/templates/default/node_modules/.vite/deps/wagmi_chains.js.map +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/formatters/transaction.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/formatters/block.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/actions/public/getTransactionCount.ts", "../../../../../../../node_modules/.pnpm/@noble+hashes@1.6.1/node_modules/@noble/hashes/src/_md.ts", "../../../../../../../node_modules/.pnpm/@noble+hashes@1.6.1/node_modules/@noble/hashes/src/sha256.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/constants/blob.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/actions/wallet/sendTransaction.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/formatters/log.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/formatters/transactionReceipt.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/wait.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/promise/withDedupe.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/promise/withRetry.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/buildRequest.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/promise/withTimeout.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/rpc/id.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/rpc/http.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/rpc/compat.ts", "../../../../../../../node_modules/.pnpm/@noble+hashes@1.6.1/node_modules/@noble/hashes/src/ripemd160.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/nonceManager.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/version.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/utils/getVersion.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/errors/base.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/errors/config.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/utils/uid.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/clients/transports/createTransport.ts", "../../../../../../../node_modules/.pnpm/viem@2.21.57_bufferutil@4.0.9_typescript@5.8.2_utf-8-validate@5.0.10_zod@3.24.1/node_modules/viem/clients/transports/custom.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/errors/connector.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/connectors/createConnector.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/connectors/injected.ts", "../../../../../../../node_modules/.pnpm/@wagmi+core@2.16.5_@tanstack+query-core@5.66.4_@types+react@19.0.12_react@19.0.0_typescript@5_oeltxj7l7uytirmunypreij5lm/node_modules/@wagmi/core/src/connectors/mock.ts", "../../../../../../../node_modules/.pnpm/@farcaster+frame-wagmi-connector@0.0.19_@farcaster+frame-sdk@0.0.31_typescript@5.8.2_zod@3.24_ps6issxtipow5lfjnigaydw7xu/node_modules/@farcaster/frame-wagmi-connector/dist/connector.js", "../../../../../../../node_modules/.pnpm/@farcaster+frame-wagmi-connector@0.0.19_@farcaster+frame-sdk@0.0.31_typescript@5.8.2_zod@3.24_ps6issxtipow5lfjnigaydw7xu/node_modules/@farcaster/frame-wagmi-connector/dist/index.js"],
4
- "sourcesContent": ["import type { ErrorType } from '../../errors/utils.js'\nimport type { SignedAuthorizationList } from '../../experimental/eip7702/types/authorization.js'\nimport type { RpcAuthorizationList } from '../../experimental/eip7702/types/rpc.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n ExtractChainFormatterExclude,\n ExtractChainFormatterReturnType,\n} from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RpcTransaction } from '../../types/rpc.js'\nimport type { Transaction, TransactionType } from '../../types/transaction.js'\nimport type { ExactPartial, UnionLooseOmit } from '../../types/utils.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\nimport { type DefineFormatterErrorType, defineFormatter } from './formatter.js'\n\ntype TransactionPendingDependencies =\n | 'blockHash'\n | 'blockNumber'\n | 'transactionIndex'\n\nexport type FormattedTransaction<\n chain extends Chain | undefined = undefined,\n blockTag extends BlockTag = BlockTag,\n _FormatterReturnType = ExtractChainFormatterReturnType<\n chain,\n 'transaction',\n Transaction\n >,\n _ExcludedPendingDependencies extends string = TransactionPendingDependencies &\n ExtractChainFormatterExclude<chain, 'transaction'>,\n> = UnionLooseOmit<_FormatterReturnType, TransactionPendingDependencies> & {\n [_K in _ExcludedPendingDependencies]: never\n} & Pick<\n Transaction<bigint, number, blockTag extends 'pending' ? true : false>,\n TransactionPendingDependencies\n >\n\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n '0x3': 'eip4844',\n '0x4': 'eip7702',\n} as const satisfies Record<Hex, TransactionType>\n\nexport type FormatTransactionErrorType = ErrorType\n\nexport function formatTransaction(transaction: ExactPartial<RpcTransaction>) {\n const transaction_ = {\n ...transaction,\n blockHash: transaction.blockHash ? transaction.blockHash : null,\n blockNumber: transaction.blockNumber\n ? BigInt(transaction.blockNumber)\n : null,\n chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n maxFeePerBlobGas: transaction.maxFeePerBlobGas\n ? BigInt(transaction.maxFeePerBlobGas)\n : undefined,\n maxFeePerGas: transaction.maxFeePerGas\n ? BigInt(transaction.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n ? BigInt(transaction.maxPriorityFeePerGas)\n : undefined,\n nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n to: transaction.to ? transaction.to : null,\n transactionIndex: transaction.transactionIndex\n ? Number(transaction.transactionIndex)\n : null,\n type: transaction.type\n ? (transactionType as any)[transaction.type]\n : undefined,\n typeHex: transaction.type ? transaction.type : undefined,\n value: transaction.value ? BigInt(transaction.value) : undefined,\n v: transaction.v ? BigInt(transaction.v) : undefined,\n } as Transaction\n\n if (transaction.authorizationList)\n transaction_.authorizationList = formatAuthorizationList(\n transaction.authorizationList,\n )\n\n transaction_.yParity = (() => {\n // If `yParity` is provided, we will use it.\n if (transaction.yParity) return Number(transaction.yParity)\n\n // If no `yParity` provided, try derive from `v`.\n if (typeof transaction_.v === 'bigint') {\n if (transaction_.v === 0n || transaction_.v === 27n) return 0\n if (transaction_.v === 1n || transaction_.v === 28n) return 1\n if (transaction_.v >= 35n) return transaction_.v % 2n === 0n ? 1 : 0\n }\n\n return undefined\n })()\n\n if (transaction_.type === 'legacy') {\n delete transaction_.accessList\n delete transaction_.maxFeePerBlobGas\n delete transaction_.maxFeePerGas\n delete transaction_.maxPriorityFeePerGas\n delete transaction_.yParity\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_.maxFeePerBlobGas\n delete transaction_.maxFeePerGas\n delete transaction_.maxPriorityFeePerGas\n }\n if (transaction_.type === 'eip1559') {\n delete transaction_.maxFeePerBlobGas\n }\n return transaction_\n}\n\nexport type DefineTransactionErrorType = DefineFormatterErrorType | ErrorType\n\nexport const defineTransaction = /*#__PURE__*/ defineFormatter(\n 'transaction',\n formatTransaction,\n)\n\n//////////////////////////////////////////////////////////////////////////////\n\nfunction formatAuthorizationList(\n authorizationList: RpcAuthorizationList,\n): SignedAuthorizationList {\n return authorizationList.map((authorization) => ({\n contractAddress: (authorization as any).address,\n chainId: Number(authorization.chainId),\n nonce: Number(authorization.nonce),\n r: authorization.r,\n s: authorization.s,\n yParity: Number(authorization.yParity),\n })) as SignedAuthorizationList\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport type { Block, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n ExtractChainFormatterExclude,\n ExtractChainFormatterReturnType,\n} from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { RpcBlock } from '../../types/rpc.js'\nimport type { ExactPartial, Prettify } from '../../types/utils.js'\n\nimport { type DefineFormatterErrorType, defineFormatter } from './formatter.js'\nimport { type FormattedTransaction, formatTransaction } from './transaction.js'\n\ntype BlockPendingDependencies = 'hash' | 'logsBloom' | 'nonce' | 'number'\n\nexport type FormattedBlock<\n chain extends Chain | undefined = undefined,\n includeTransactions extends boolean = boolean,\n blockTag extends BlockTag = BlockTag,\n _FormatterReturnType = ExtractChainFormatterReturnType<\n chain,\n 'block',\n Block<bigint, includeTransactions>\n >,\n _ExcludedPendingDependencies extends string = BlockPendingDependencies &\n ExtractChainFormatterExclude<chain, 'block'>,\n _Formatted = Omit<_FormatterReturnType, BlockPendingDependencies> & {\n [_key in _ExcludedPendingDependencies]: never\n } & Pick<\n Block<bigint, includeTransactions, blockTag>,\n BlockPendingDependencies\n >,\n _Transactions = includeTransactions extends true\n ? Prettify<FormattedTransaction<chain, blockTag>>[]\n : Hash[],\n> = Omit<_Formatted, 'transactions'> & {\n transactions: _Transactions\n}\n\nexport type FormatBlockErrorType = ErrorType\n\nexport function formatBlock(block: ExactPartial<RpcBlock>) {\n const transactions = (block.transactions ?? []).map((transaction) => {\n if (typeof transaction === 'string') return transaction\n return formatTransaction(transaction)\n })\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n blobGasUsed: block.blobGasUsed ? BigInt(block.blobGasUsed) : undefined,\n difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n excessBlobGas: block.excessBlobGas\n ? BigInt(block.excessBlobGas)\n : undefined,\n gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n hash: block.hash ? block.hash : null,\n logsBloom: block.logsBloom ? block.logsBloom : null,\n nonce: block.nonce ? block.nonce : null,\n number: block.number ? BigInt(block.number) : null,\n size: block.size ? BigInt(block.size) : undefined,\n timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n transactions,\n totalDifficulty: block.totalDifficulty\n ? BigInt(block.totalDifficulty)\n : null,\n } as Block\n}\n\nexport type DefineBlockErrorType = DefineFormatterErrorType | ErrorType\n\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock)\n", "import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n type HexToNumberErrorType,\n hexToNumber,\n} from '../../utils/encoding/fromHex.js'\nimport {\n type NumberToHexErrorType,\n numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type GetTransactionCountParameters = {\n /** The account address. */\n address: Address\n} & (\n | {\n /** The block number. */\n blockNumber?: bigint | undefined\n blockTag?: undefined\n }\n | {\n blockNumber?: undefined\n /** The block tag. Defaults to 'latest'. */\n blockTag?: BlockTag | undefined\n }\n)\nexport type GetTransactionCountReturnType = number\n\nexport type GetTransactionCountErrorType =\n | RequestErrorType\n | NumberToHexErrorType\n | HexToNumberErrorType\n | ErrorType\n\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionCountParameters}\n * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionCount = await getTransactionCount(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function getTransactionCount<\n chain extends Chain | undefined,\n account extends Account | undefined,\n>(\n client: Client<Transport, chain, account>,\n { address, blockTag = 'latest', blockNumber }: GetTransactionCountParameters,\n): Promise<GetTransactionCountReturnType> {\n const count = await client.request(\n {\n method: 'eth_getTransactionCount',\n params: [address, blockNumber ? numberToHex(blockNumber) : blockTag],\n },\n { dedupe: Boolean(blockNumber) },\n )\n return hexToNumber(count)\n}\n", "import { aexists, aoutput } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD<T extends HashMD<T>> extends Hash<T> {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n aexists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n", "import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per late 2024.\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD<SHA256> {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n", "// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6\n\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32\n\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096\n\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob\n\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction =\n bytesPerBlob * blobsPerTransaction -\n // terminator byte (0x80).\n 1 -\n // zero byte (0x00) appended to each field element.\n 1 * fieldElementsPerBlob * blobsPerTransaction\n", "import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n type ParseAccountErrorType,\n parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { SignTransactionErrorType } from '../../accounts/utils/signTransaction.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n AccountNotFoundError,\n type AccountNotFoundErrorType,\n AccountTypeNotSupportedError,\n type AccountTypeNotSupportedErrorType,\n} from '../../errors/account.js'\nimport { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport {\n type RecoverAuthorizationAddressErrorType,\n recoverAuthorizationAddress,\n} from '../../experimental/eip7702/utils/recoverAuthorizationAddress.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { Chain, DeriveChain } from '../../types/chain.js'\nimport type { GetChainParameter } from '../../types/chain.js'\nimport type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport type { UnionOmit } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n type AssertCurrentChainErrorType,\n assertCurrentChain,\n} from '../../utils/chain/assertCurrentChain.js'\nimport {\n type GetTransactionErrorReturnType,\n getTransactionError,\n} from '../../utils/errors/getTransactionError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n type FormattedTransactionRequest,\n formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { LruMap } from '../../utils/lru.js'\nimport {\n type AssertRequestErrorType,\n type AssertRequestParameters,\n assertRequest,\n} from '../../utils/transaction/assertRequest.js'\nimport { type GetChainIdErrorType, getChainId } from '../public/getChainId.js'\nimport {\n type PrepareTransactionRequestErrorType,\n defaultParameters,\n prepareTransactionRequest,\n} from './prepareTransactionRequest.js'\nimport {\n type SendRawTransactionErrorType,\n sendRawTransaction,\n} from './sendRawTransaction.js'\n\nconst supportsWalletNamespace = new LruMap<boolean>(128)\n\nexport type SendTransactionRequest<\n chain extends Chain | undefined = Chain | undefined,\n chainOverride extends Chain | undefined = Chain | undefined,\n ///\n _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &\n GetTransactionRequestKzgParameter\n\nexport type SendTransactionParameters<\n chain extends Chain | undefined = Chain | undefined,\n account extends Account | undefined = Account | undefined,\n chainOverride extends Chain | undefined = Chain | undefined,\n request extends SendTransactionRequest<\n chain,\n chainOverride\n > = SendTransactionRequest<chain, chainOverride>,\n> = request &\n GetAccountParameter<account, Account | Address, true, true> &\n GetChainParameter<chain, chainOverride> &\n GetTransactionRequestKzgParameter<request>\n\nexport type SendTransactionReturnType = Hash\n\nexport type SendTransactionErrorType =\n | ParseAccountErrorType\n | GetTransactionErrorReturnType<\n | AccountNotFoundErrorType\n | AccountTypeNotSupportedErrorType\n | AssertCurrentChainErrorType\n | AssertRequestErrorType\n | GetChainIdErrorType\n | PrepareTransactionRequestErrorType\n | SendRawTransactionErrorType\n | RecoverAuthorizationAddressErrorType\n | SignTransactionErrorType\n | RequestErrorType\n >\n | ErrorType\n\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n * - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await sendTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await sendTransaction(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransaction<\n chain extends Chain | undefined,\n account extends Account | undefined,\n const request extends SendTransactionRequest<chain, chainOverride>,\n chainOverride extends Chain | undefined = undefined,\n>(\n client: Client<Transport, chain, account>,\n parameters: SendTransactionParameters<chain, account, chainOverride, request>,\n): Promise<SendTransactionReturnType> {\n const {\n account: account_ = client.account,\n chain = client.chain,\n accessList,\n authorizationList,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value,\n ...rest\n } = parameters\n\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n })\n const account = account_ ? parseAccount(account_) : null\n\n try {\n assertRequest(parameters as AssertRequestParameters)\n\n const to = await (async () => {\n // If `to` exists on the parameters, use that.\n if (parameters.to) return parameters.to\n\n // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n // address of the first authorization in the list.\n if (authorizationList && authorizationList.length > 0)\n return await recoverAuthorizationAddress({\n authorization: authorizationList[0],\n }).catch(() => {\n throw new BaseError(\n '`to` is required. Could not infer from `authorizationList`.',\n )\n })\n\n // Otherwise, we are sending a deployment transaction.\n return undefined\n })()\n\n if (account?.type === 'json-rpc' || account === null) {\n let chainId: number | undefined\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({})\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n })\n }\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 accessList,\n authorizationList,\n blobs,\n chainId,\n data,\n from: account?.address,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n } as TransactionRequest)\n\n const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid)\n const method = isWalletNamespaceSupported\n ? 'wallet_sendTransaction'\n : 'eth_sendTransaction'\n\n try {\n return await client.request(\n {\n method,\n params: [request],\n },\n { retryCount: 0 },\n )\n } catch (e) {\n if (isWalletNamespaceSupported === false) throw e\n\n const error = e as BaseError\n // If the transport does not support the method or input, attempt to use the\n // `wallet_sendTransaction` method.\n if (\n error.name === 'InvalidInputRpcError' ||\n error.name === 'InvalidParamsRpcError' ||\n error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError'\n ) {\n return await client\n .request(\n {\n method: 'wallet_sendTransaction',\n params: [request],\n },\n { retryCount: 0 },\n )\n .then((hash) => {\n supportsWalletNamespace.set(client.uid, true)\n return hash\n })\n .catch((e) => {\n const walletNamespaceError = e as BaseError\n if (\n walletNamespaceError.name === 'MethodNotFoundRpcError' ||\n walletNamespaceError.name === 'MethodNotSupportedRpcError'\n ) {\n supportsWalletNamespace.set(client.uid, false)\n throw error\n }\n\n throw walletNamespaceError\n })\n }\n\n throw error\n }\n }\n\n if (account?.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(\n client,\n prepareTransactionRequest,\n 'prepareTransactionRequest',\n )({\n account,\n accessList,\n authorizationList,\n blobs,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceManager: account.nonceManager,\n parameters: [...defaultParameters, 'sidecars'],\n value,\n ...rest,\n to,\n } as any)\n\n const serializer = chain?.serializers?.transaction\n const serializedTransaction = (await account.signTransaction(request, {\n serializer,\n })) as Hash\n return await getAction(\n client,\n sendRawTransaction,\n 'sendRawTransaction',\n )({\n serializedTransaction,\n })\n }\n\n if (account?.type === 'smart')\n throw new AccountTypeNotSupportedError({\n metaMessages: [\n 'Consider using the `sendUserOperation` Action instead.',\n ],\n docsPath: '/docs/actions/bundler/sendUserOperation',\n type: 'smart',\n })\n\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n type: (account as any)?.type,\n })\n } catch (err) {\n if (err instanceof AccountTypeNotSupportedError) throw err\n throw getTransactionError(err as BaseError, {\n ...parameters,\n account,\n chain: parameters.chain || undefined,\n })\n }\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport type { Log } from '../../types/log.js'\nimport type { RpcLog } from '../../types/rpc.js'\nimport type { ExactPartial } from '../../types/utils.js'\n\nexport type FormatLogErrorType = ErrorType\n\nexport function formatLog(\n log: ExactPartial<RpcLog>,\n {\n args,\n eventName,\n }: { args?: unknown | undefined; eventName?: string | undefined } = {},\n) {\n return {\n ...log,\n blockHash: log.blockHash ? log.blockHash : null,\n blockNumber: log.blockNumber ? BigInt(log.blockNumber) : null,\n logIndex: log.logIndex ? Number(log.logIndex) : null,\n transactionHash: log.transactionHash ? log.transactionHash : null,\n transactionIndex: log.transactionIndex\n ? Number(log.transactionIndex)\n : null,\n ...(eventName ? { args, eventName } : {}),\n } as Log\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport type {\n Chain,\n ExtractChainFormatterReturnType,\n} from '../../types/chain.js'\nimport type { RpcTransactionReceipt } from '../../types/rpc.js'\nimport type { TransactionReceipt } from '../../types/transaction.js'\nimport type { ExactPartial } from '../../types/utils.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\n\nimport { type DefineFormatterErrorType, defineFormatter } from './formatter.js'\nimport { formatLog } from './log.js'\nimport { transactionType } from './transaction.js'\n\nexport type FormattedTransactionReceipt<\n chain extends Chain | undefined = undefined,\n> = ExtractChainFormatterReturnType<\n chain,\n 'transactionReceipt',\n TransactionReceipt\n>\n\nexport const receiptStatuses = {\n '0x0': 'reverted',\n '0x1': 'success',\n} as const\n\nexport type FormatTransactionReceiptErrorType = ErrorType\n\nexport function formatTransactionReceipt(\n transactionReceipt: ExactPartial<RpcTransactionReceipt>,\n) {\n const receipt = {\n ...transactionReceipt,\n blockNumber: transactionReceipt.blockNumber\n ? BigInt(transactionReceipt.blockNumber)\n : null,\n contractAddress: transactionReceipt.contractAddress\n ? transactionReceipt.contractAddress\n : null,\n cumulativeGasUsed: transactionReceipt.cumulativeGasUsed\n ? BigInt(transactionReceipt.cumulativeGasUsed)\n : null,\n effectiveGasPrice: transactionReceipt.effectiveGasPrice\n ? BigInt(transactionReceipt.effectiveGasPrice)\n : null,\n gasUsed: transactionReceipt.gasUsed\n ? BigInt(transactionReceipt.gasUsed)\n : null,\n logs: transactionReceipt.logs\n ? transactionReceipt.logs.map((log) => formatLog(log))\n : null,\n to: transactionReceipt.to ? transactionReceipt.to : null,\n transactionIndex: transactionReceipt.transactionIndex\n ? hexToNumber(transactionReceipt.transactionIndex)\n : null,\n status: transactionReceipt.status\n ? receiptStatuses[transactionReceipt.status]\n : null,\n type: transactionReceipt.type\n ? transactionType[\n transactionReceipt.type as keyof typeof transactionType\n ] || transactionReceipt.type\n : null,\n } as TransactionReceipt\n\n if (transactionReceipt.blobGasPrice)\n receipt.blobGasPrice = BigInt(transactionReceipt.blobGasPrice)\n if (transactionReceipt.blobGasUsed)\n receipt.blobGasUsed = BigInt(transactionReceipt.blobGasUsed)\n\n return receipt\n}\n\nexport type DefineTransactionReceiptErrorType =\n | DefineFormatterErrorType\n | ErrorType\n\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter(\n 'transactionReceipt',\n formatTransactionReceipt,\n)\n", "export async function wait(time: number) {\n return new Promise((res) => setTimeout(res, time))\n}\n", "import { LruMap } from '../lru.js'\n\n/** @internal */\nexport const promiseCache = /*#__PURE__*/ new LruMap<Promise<any>>(8192)\n\ntype WithDedupeOptions = {\n enabled?: boolean | undefined\n id?: string | undefined\n}\n\n/** Deduplicates in-flight promises. */\nexport function withDedupe<data>(\n fn: () => Promise<data>,\n { enabled = true, id }: WithDedupeOptions,\n): Promise<data> {\n if (!enabled || !id) return fn()\n if (promiseCache.get(id)) return promiseCache.get(id)!\n const promise = fn().finally(() => promiseCache.delete(id))\n promiseCache.set(id, promise)\n return promise\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport { wait } from '../wait.js'\n\nexport type WithRetryParameters = {\n // The delay (in ms) between retries.\n delay?:\n | ((config: { count: number; error: Error }) => number)\n | number\n | undefined\n // The max number of times to retry.\n retryCount?: number | undefined\n // Whether or not to retry when an error is thrown.\n shouldRetry?:\n | (({\n count,\n error,\n }: {\n count: number\n error: Error\n }) => Promise<boolean> | boolean)\n | undefined\n}\n\nexport type WithRetryErrorType = ErrorType\n\nexport function withRetry<data>(\n fn: () => Promise<data>,\n {\n delay: delay_ = 100,\n retryCount = 2,\n shouldRetry = () => true,\n }: WithRetryParameters = {},\n) {\n return new Promise<data>((resolve, reject) => {\n const attemptRetry = async ({ count = 0 } = {}) => {\n const retry = async ({ error }: { error: Error }) => {\n const delay =\n typeof delay_ === 'function' ? delay_({ count, error }) : delay_\n if (delay) await wait(delay)\n attemptRetry({ count: count + 1 })\n }\n\n try {\n const data = await fn()\n resolve(data)\n } catch (err) {\n if (\n count < retryCount &&\n (await shouldRetry({ count, error: err as Error }))\n )\n return retry({ error: err as Error })\n reject(err)\n }\n }\n attemptRetry()\n })\n}\n", "import { BaseError } from '../errors/base.js'\nimport {\n HttpRequestError,\n type HttpRequestErrorType,\n type RpcRequestErrorType,\n type TimeoutErrorType,\n type WebSocketRequestErrorType,\n} from '../errors/request.js'\nimport {\n ChainDisconnectedError,\n type ChainDisconnectedErrorType,\n InternalRpcError,\n type InternalRpcErrorType,\n InvalidInputRpcError,\n type InvalidInputRpcErrorType,\n InvalidParamsRpcError,\n type InvalidParamsRpcErrorType,\n InvalidRequestRpcError,\n type InvalidRequestRpcErrorType,\n JsonRpcVersionUnsupportedError,\n type JsonRpcVersionUnsupportedErrorType,\n LimitExceededRpcError,\n type LimitExceededRpcErrorType,\n MethodNotFoundRpcError,\n type MethodNotFoundRpcErrorType,\n MethodNotSupportedRpcError,\n type MethodNotSupportedRpcErrorType,\n ParseRpcError,\n type ParseRpcErrorType,\n ProviderDisconnectedError,\n type ProviderDisconnectedErrorType,\n type ProviderRpcErrorCode,\n ResourceNotFoundRpcError,\n type ResourceNotFoundRpcErrorType,\n ResourceUnavailableRpcError,\n type ResourceUnavailableRpcErrorType,\n type RpcError,\n type RpcErrorCode,\n type RpcErrorType,\n SwitchChainError,\n type SwitchChainErrorType,\n TransactionRejectedRpcError,\n type TransactionRejectedRpcErrorType,\n UnauthorizedProviderError,\n type UnauthorizedProviderErrorType,\n UnknownRpcError,\n type UnknownRpcErrorType,\n UnsupportedProviderMethodError,\n type UnsupportedProviderMethodErrorType,\n UserRejectedRequestError,\n type UserRejectedRequestErrorType,\n} from '../errors/rpc.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type {\n EIP1193RequestFn,\n EIP1193RequestOptions,\n} from '../types/eip1193.js'\nimport { stringToHex } from './encoding/toHex.js'\nimport { keccak256 } from './hash/keccak256.js'\nimport type { CreateBatchSchedulerErrorType } from './promise/createBatchScheduler.js'\nimport { withDedupe } from './promise/withDedupe.js'\nimport { type WithRetryErrorType, withRetry } from './promise/withRetry.js'\nimport type { GetSocketRpcClientErrorType } from './rpc/socket.js'\nimport { stringify } from './stringify.js'\n\nexport type RequestErrorType =\n | ChainDisconnectedErrorType\n | CreateBatchSchedulerErrorType\n | HttpRequestErrorType\n | InternalRpcErrorType\n | InvalidInputRpcErrorType\n | InvalidParamsRpcErrorType\n | InvalidRequestRpcErrorType\n | GetSocketRpcClientErrorType\n | JsonRpcVersionUnsupportedErrorType\n | LimitExceededRpcErrorType\n | MethodNotFoundRpcErrorType\n | MethodNotSupportedRpcErrorType\n | ParseRpcErrorType\n | ProviderDisconnectedErrorType\n | ResourceNotFoundRpcErrorType\n | ResourceUnavailableRpcErrorType\n | RpcErrorType\n | RpcRequestErrorType\n | SwitchChainErrorType\n | TimeoutErrorType\n | TransactionRejectedRpcErrorType\n | UnauthorizedProviderErrorType\n | UnknownRpcErrorType\n | UnsupportedProviderMethodErrorType\n | UserRejectedRequestErrorType\n | WebSocketRequestErrorType\n | WithRetryErrorType\n | ErrorType\n\nexport function buildRequest<request extends (args: any) => Promise<any>>(\n request: request,\n options: EIP1193RequestOptions = {},\n): EIP1193RequestFn {\n return async (args, overrideOptions = {}) => {\n const {\n dedupe = false,\n retryDelay = 150,\n retryCount = 3,\n uid,\n } = {\n ...options,\n ...overrideOptions,\n }\n const requestId = dedupe\n ? keccak256(stringToHex(`${uid}.${stringify(args)}`))\n : undefined\n return withDedupe(\n () =>\n withRetry(\n async () => {\n try {\n return await request(args)\n } catch (err_) {\n const err = err_ as unknown as RpcError<\n RpcErrorCode | ProviderRpcErrorCode\n >\n switch (err.code) {\n // -32700\n case ParseRpcError.code:\n throw new ParseRpcError(err)\n // -32600\n case InvalidRequestRpcError.code:\n throw new InvalidRequestRpcError(err)\n // -32601\n case MethodNotFoundRpcError.code:\n throw new MethodNotFoundRpcError(err, { method: args.method })\n // -32602\n case InvalidParamsRpcError.code:\n throw new InvalidParamsRpcError(err)\n // -32603\n case InternalRpcError.code:\n throw new InternalRpcError(err)\n // -32000\n case InvalidInputRpcError.code:\n throw new InvalidInputRpcError(err)\n // -32001\n case ResourceNotFoundRpcError.code:\n throw new ResourceNotFoundRpcError(err)\n // -32002\n case ResourceUnavailableRpcError.code:\n throw new ResourceUnavailableRpcError(err)\n // -32003\n case TransactionRejectedRpcError.code:\n throw new TransactionRejectedRpcError(err)\n // -32004\n case MethodNotSupportedRpcError.code:\n throw new MethodNotSupportedRpcError(err, {\n method: args.method,\n })\n // -32005\n case LimitExceededRpcError.code:\n throw new LimitExceededRpcError(err)\n // -32006\n case JsonRpcVersionUnsupportedError.code:\n throw new JsonRpcVersionUnsupportedError(err)\n // 4001\n case UserRejectedRequestError.code:\n throw new UserRejectedRequestError(err)\n // 4100\n case UnauthorizedProviderError.code:\n throw new UnauthorizedProviderError(err)\n // 4200\n case UnsupportedProviderMethodError.code:\n throw new UnsupportedProviderMethodError(err)\n // 4900\n case ProviderDisconnectedError.code:\n throw new ProviderDisconnectedError(err)\n // 4901\n case ChainDisconnectedError.code:\n throw new ChainDisconnectedError(err)\n // 4902\n case SwitchChainError.code:\n throw new SwitchChainError(err)\n // CAIP-25: User Rejected Error\n // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25\n case 5000:\n throw new UserRejectedRequestError(err)\n default:\n if (err_ instanceof BaseError) throw err_\n throw new UnknownRpcError(err as Error)\n }\n }\n },\n {\n delay: ({ count, error }) => {\n // If we find a Retry-After header, let's retry after the given time.\n if (error && error instanceof HttpRequestError) {\n const retryAfter = error?.headers?.get('Retry-After')\n if (retryAfter?.match(/\\d/))\n return Number.parseInt(retryAfter) * 1000\n }\n\n // Otherwise, let's retry with an exponential backoff.\n return ~~(1 << count) * retryDelay\n },\n retryCount,\n shouldRetry: ({ error }) => shouldRetry(error),\n },\n ),\n { enabled: dedupe, id: requestId },\n )\n }\n}\n\n/** @internal */\nexport function shouldRetry(error: Error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === -1) return true // Unknown error\n if (error.code === LimitExceededRpcError.code) return true\n if (error.code === InternalRpcError.code) return true\n return false\n }\n if (error instanceof HttpRequestError && error.status) {\n // Forbidden\n if (error.status === 403) return true\n // Request Timeout\n if (error.status === 408) return true\n // Request Entity Too Large\n if (error.status === 413) return true\n // Too Many Requests\n if (error.status === 429) return true\n // Internal Server Error\n if (error.status === 500) return true\n // Bad Gateway\n if (error.status === 502) return true\n // Service Unavailable\n if (error.status === 503) return true\n // Gateway Timeout\n if (error.status === 504) return true\n return false\n }\n return true\n}\n", "import type { ErrorType } from '../../errors/utils.js'\n\nexport type WithTimeoutErrorType = ErrorType\n\nexport function withTimeout<data>(\n fn: ({\n signal,\n }: { signal: AbortController['signal'] | null }) => Promise<data>,\n {\n errorInstance = new Error('timed out'),\n timeout,\n signal,\n }: {\n // The error instance to throw when the timeout is reached.\n errorInstance?: Error | undefined\n // The timeout (in ms).\n timeout: number\n // Whether or not the timeout should use an abort signal.\n signal?: boolean | undefined\n },\n): Promise<data> {\n return new Promise((resolve, reject) => {\n ;(async () => {\n let timeoutId!: NodeJS.Timeout\n try {\n const controller = new AbortController()\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort()\n } else {\n reject(errorInstance)\n }\n }, timeout) as NodeJS.Timeout // need to cast because bun globals.d.ts overrides @types/node\n }\n resolve(await fn({ signal: controller?.signal || null }))\n } catch (err) {\n if ((err as Error)?.name === 'AbortError') reject(errorInstance)\n reject(err)\n } finally {\n clearTimeout(timeoutId)\n }\n })()\n })\n}\n", "function createIdStore() {\n return {\n current: 0,\n take() {\n return this.current++\n },\n reset() {\n this.current = 0\n },\n }\n}\n\nexport const idCache = /*#__PURE__*/ createIdStore()\n", "import {\n HttpRequestError,\n type HttpRequestErrorType as HttpRequestErrorType_,\n TimeoutError,\n type TimeoutErrorType,\n} from '../../errors/request.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { RpcRequest, RpcResponse } from '../../types/rpc.js'\nimport type { MaybePromise } from '../../types/utils.js'\nimport {\n type WithTimeoutErrorType,\n withTimeout,\n} from '../promise/withTimeout.js'\nimport { stringify } from '../stringify.js'\nimport { idCache } from './id.js'\n\nexport type HttpRpcClientOptions = {\n /** Request configuration to pass to `fetch`. */\n fetchOptions?: Omit<RequestInit, 'body'> | undefined\n /** A callback to handle the request. */\n onRequest?:\n | ((\n request: Request,\n init: RequestInit,\n ) => MaybePromise<\n void | undefined | (RequestInit & { url?: string | undefined })\n >)\n | undefined\n /** A callback to handle the response. */\n onResponse?: ((response: Response) => Promise<void> | void) | undefined\n /** The timeout (in ms) for the request. */\n timeout?: number | undefined\n}\n\nexport type HttpRequestParameters<\n body extends RpcRequest | RpcRequest[] = RpcRequest,\n> = {\n /** The RPC request body. */\n body: body\n /** Request configuration to pass to `fetch`. */\n fetchOptions?: HttpRpcClientOptions['fetchOptions'] | undefined\n /** A callback to handle the response. */\n onRequest?:\n | ((\n request: Request,\n init: RequestInit,\n ) => MaybePromise<\n void | undefined | (RequestInit & { url?: string | undefined })\n >)\n | undefined\n /** A callback to handle the response. */\n onResponse?: ((response: Response) => Promise<void> | void) | undefined\n /** The timeout (in ms) for the request. */\n timeout?: HttpRpcClientOptions['timeout'] | undefined\n}\n\nexport type HttpRequestReturnType<\n body extends RpcRequest | RpcRequest[] = RpcRequest,\n> = body extends RpcRequest[] ? RpcResponse[] : RpcResponse\n\nexport type HttpRequestErrorType =\n | HttpRequestErrorType_\n | TimeoutErrorType\n | WithTimeoutErrorType\n | ErrorType\n\nexport type HttpRpcClient = {\n request<body extends RpcRequest | RpcRequest[]>(\n params: HttpRequestParameters<body>,\n ): Promise<HttpRequestReturnType<body>>\n}\n\nexport function getHttpRpcClient(\n url: string,\n options: HttpRpcClientOptions = {},\n): HttpRpcClient {\n return {\n async request(params) {\n const {\n body,\n onRequest = options.onRequest,\n onResponse = options.onResponse,\n timeout = options.timeout ?? 10_000,\n } = params\n\n const fetchOptions = {\n ...(options.fetchOptions ?? {}),\n ...(params.fetchOptions ?? {}),\n }\n\n const { headers, method, signal: signal_ } = fetchOptions\n\n try {\n const response = await withTimeout(\n async ({ signal }) => {\n const init: RequestInit = {\n ...fetchOptions,\n body: Array.isArray(body)\n ? stringify(\n body.map((body) => ({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n })),\n )\n : stringify({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n }),\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : null),\n }\n const request = new Request(url, init)\n const args = (await onRequest?.(request, init)) ?? { ...init, url }\n const response = await fetch(args.url ?? url, args)\n return response\n },\n {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n signal: true,\n },\n )\n\n if (onResponse) await onResponse(response)\n\n let data: any\n if (\n response.headers.get('Content-Type')?.startsWith('application/json')\n )\n data = await response.json()\n else {\n data = await response.text()\n try {\n data = JSON.parse(data || '{}')\n } catch (err) {\n if (response.ok) throw err\n data = { error: data }\n }\n }\n\n if (!response.ok) {\n throw new HttpRequestError({\n body,\n details: stringify(data.error) || response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n })\n }\n\n return data\n } catch (err) {\n if (err instanceof HttpRequestError) throw err\n if (err instanceof TimeoutError) throw err\n throw new HttpRequestError({\n body,\n cause: err as Error,\n url,\n })\n }\n },\n }\n}\n", "// TODO(v3): This file is here for backwards compatibility, and to prevent breaking changes.\n// These APIs will be removed in v3.\n\n/* c8 ignore start */\nimport type {\n TimeoutErrorType,\n WebSocketRequestError,\n} from '../../errors/request.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { RpcResponse } from '../../types/rpc.js'\nimport type { WithTimeoutErrorType } from '../promise/withTimeout.js'\nimport { type HttpRequestParameters, getHttpRpcClient } from './http.js'\nimport type { SocketRpcClient } from './socket.js'\nimport { getWebSocketRpcClient } from './webSocket.js'\n\nexport type WebSocketOptions = Parameters<\n SocketRpcClient<WebSocket>['request']\n>[0]\nexport type WebSocketReturnType = SocketRpcClient<WebSocket>\nexport type WebSocketErrorType = WebSocketRequestError | ErrorType\n\nfunction webSocket(\n socketClient: SocketRpcClient<WebSocket>,\n { body, onError, onResponse }: WebSocketOptions,\n): WebSocketReturnType {\n socketClient.request({\n body,\n onError,\n onResponse,\n })\n return socketClient\n}\n\nexport type WebSocketAsyncOptions = Parameters<\n SocketRpcClient<WebSocket>['requestAsync']\n>[0]\nexport type WebSocketAsyncReturnType = RpcResponse\nexport type WebSocketAsyncErrorType =\n | WebSocketErrorType\n | TimeoutErrorType\n | WithTimeoutErrorType\n | ErrorType\n\nasync function webSocketAsync(\n socketClient: SocketRpcClient<WebSocket>,\n { body, timeout = 10_000 }: WebSocketAsyncOptions,\n): Promise<WebSocketAsyncReturnType> {\n return socketClient.requestAsync({\n body,\n timeout,\n })\n}\n\n/**\n * @deprecated use `getSocketClient` instead.\n *\n * ```diff\n * -import { getSocket } from 'viem/utils'\n * +import { getSocketClient } from 'viem/utils'\n *\n * -const socket = await getSocket(url)\n * +const socketClient = await getSocketClient(url)\n * +const socket = socketClient.socket\n * ```\n */\nexport async function getSocket(url: string) {\n const client = await getWebSocketRpcClient(url)\n return Object.assign(client.socket, {\n requests: client.requests,\n subscriptions: client.subscriptions,\n })\n}\n\nexport const rpc = {\n /**\n * @deprecated use `getHttpRpcClient` instead.\n *\n * ```diff\n * -import { rpc } from 'viem/utils'\n * +import { getHttpRpcClient } from 'viem/utils'\n *\n * -rpc.http(url, params)\n * +const httpClient = getHttpRpcClient(url)\n * +httpClient.request(params)\n * ```\n */\n http(url: string, params: HttpRequestParameters) {\n return getHttpRpcClient(url).request(params)\n },\n /**\n * @deprecated use `getWebSocketRpcClient` instead.\n *\n * ```diff\n * -import { rpc } from 'viem/utils'\n * +import { getWebSocketRpcClient } from 'viem/utils'\n *\n * -rpc.webSocket(url, params)\n * +const webSocketClient = getWebSocketRpcClient(url)\n * +webSocketClient.request(params)\n * ```\n */\n webSocket,\n /**\n * @deprecated use `getWebSocketRpcClient` instead.\n *\n * ```diff\n * -import { rpc } from 'viem/utils'\n * +import { getWebSocketRpcClient } from 'viem/utils'\n *\n * -const response = await rpc.webSocketAsync(url, params)\n * +const webSocketClient = getWebSocketRpcClient(url)\n * +const response = await webSocketClient.requestAsync(params)\n * ```\n */\n webSocketAsync,\n}\n/* c8 ignore end */\n", "import { HashMD } from './_md.js';\nimport { rotl, wrapConstructor } from './utils.js';\n\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = /* @__PURE__ */ new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = /* @__PURE__ */ new Uint8Array(new Array(16).fill(0).map((_, i) => i));\nconst Pi = /* @__PURE__ */ Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++) for (let j of [idxL, idxR]) j.push(j[i].map((k) => Rho[k]));\n\nconst shifts = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = /* @__PURE__ */ new Uint32Array([\n 0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nconst Kr = /* @__PURE__ */ new Uint32Array([\n 0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// It's called f() in spec.\nfunction f(group: number, x: number, y: number, z: number): number {\n if (group === 0) return x ^ y ^ z;\n else if (group === 1) return (x & y) | (~x & z);\n else if (group === 2) return (x | ~y) ^ z;\n else if (group === 3) return (x & z) | (y & ~z);\n else return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst R_BUF = /* @__PURE__ */ new Uint32Array(16);\nexport class RIPEMD160 extends HashMD<RIPEMD160> {\n private h0 = 0x67452301 | 0;\n private h1 = 0xefcdab89 | 0;\n private h2 = 0x98badcfe | 0;\n private h3 = 0x10325476 | 0;\n private h4 = 0xc3d2e1f0 | 0;\n\n constructor() {\n super(64, 20, 8, true);\n }\n protected get(): [number, number, number, number, number] {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n protected set(h0: number, h1: number, h2: number, h3: number, h4: number) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n protected process(view: DataView, offset: number): void {\n for (let i = 0; i < 16; i++, offset += 4) R_BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al,\n bl = this.h1 | 0, br = bl,\n cl = this.h2 | 0, cr = cl,\n dl = this.h3 | 0, dr = dl,\n el = this.h4 | 0, er = el;\n\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + R_BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + R_BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set(\n (this.h1 + cl + dr) | 0,\n (this.h2 + dl + er) | 0,\n (this.h3 + el + ar) | 0,\n (this.h4 + al + br) | 0,\n (this.h0 + bl + cr) | 0\n );\n }\n protected roundClean() {\n R_BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\n\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexport const ripemd160 = /* @__PURE__ */ wrapConstructor(() => new RIPEMD160());\n", "import type { Address } from 'abitype'\n\nimport { getTransactionCount } from '../actions/public/getTransactionCount.js'\nimport type { Client } from '../clients/createClient.js'\nimport type { MaybePromise } from '../types/utils.js'\nimport { LruMap } from './lru.js'\n\nexport type CreateNonceManagerParameters = {\n source: NonceManagerSource\n}\n\ntype FunctionParameters = {\n address: Address\n chainId: number\n}\n\nexport type NonceManager = {\n /** Get and increment a nonce. */\n consume: (\n parameters: FunctionParameters & { client: Client },\n ) => Promise<number>\n /** Increment a nonce. */\n increment: (chainId: FunctionParameters) => void\n /** Get a nonce. */\n get: (chainId: FunctionParameters & { client: Client }) => Promise<number>\n /** Reset a nonce. */\n reset: (chainId: FunctionParameters) => void\n}\n\n/**\n * Creates a nonce manager for auto-incrementing transaction nonces.\n *\n * - Docs: https://viem.sh/docs/accounts/createNonceManager\n *\n * @example\n * ```ts\n * const nonceManager = createNonceManager({\n * source: jsonRpc(),\n * })\n * ```\n */\nexport function createNonceManager(\n parameters: CreateNonceManagerParameters,\n): NonceManager {\n const { source } = parameters\n\n const deltaMap = new Map()\n const nonceMap = new LruMap<number>(8192)\n const promiseMap = new Map<string, Promise<number>>()\n\n const getKey = ({ address, chainId }: FunctionParameters) =>\n `${address}.${chainId}`\n\n return {\n async consume({ address, chainId, client }) {\n const key = getKey({ address, chainId })\n const promise = this.get({ address, chainId, client })\n\n this.increment({ address, chainId })\n const nonce = await promise\n\n await source.set({ address, chainId }, nonce)\n nonceMap.set(key, nonce)\n\n return nonce\n },\n async increment({ address, chainId }) {\n const key = getKey({ address, chainId })\n const delta = deltaMap.get(key) ?? 0\n deltaMap.set(key, delta + 1)\n },\n async get({ address, chainId, client }) {\n const key = getKey({ address, chainId })\n\n let promise = promiseMap.get(key)\n if (!promise) {\n promise = (async () => {\n try {\n const nonce = await source.get({ address, chainId, client })\n const previousNonce = nonceMap.get(key) ?? 0\n if (previousNonce > 0 && nonce <= previousNonce)\n return previousNonce + 1\n nonceMap.delete(key)\n return nonce\n } finally {\n this.reset({ address, chainId })\n }\n })()\n promiseMap.set(key, promise)\n }\n\n const delta = deltaMap.get(key) ?? 0\n return delta + (await promise)\n },\n reset({ address, chainId }) {\n const key = getKey({ address, chainId })\n deltaMap.delete(key)\n promiseMap.delete(key)\n },\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////\n// Sources\n\nexport type NonceManagerSource = {\n /** Get a nonce. */\n get(parameters: FunctionParameters & { client: Client }): MaybePromise<number>\n /** Set a nonce. */\n set(parameters: FunctionParameters, nonce: number): MaybePromise<void>\n}\n\n/** JSON-RPC source for a nonce manager. */\nexport function jsonRpc(): NonceManagerSource {\n return {\n async get(parameters) {\n const { address, client } = parameters\n return getTransactionCount(client, {\n address,\n blockTag: 'pending',\n })\n },\n set() {},\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////\n// Default\n\n/** Default Nonce Manager with a JSON-RPC source. */\nexport const nonceManager = /*#__PURE__*/ createNonceManager({\n source: jsonRpc(),\n})\n", "export const version = '2.16.5'\n", "import { version } from '../version.js'\n\nexport const getVersion = () => `@wagmi/core@${version}`\n", "import type { Compute, OneOf } from '../types/utils.js'\nimport { getVersion } from '../utils/getVersion.js'\n\nexport type ErrorType<name extends string = 'Error'> = Error & { name: name }\n\ntype BaseErrorOptions = Compute<\n OneOf<{ details?: string | undefined } | { cause: BaseError | Error }> & {\n docsPath?: string | undefined\n docsSlug?: string | undefined\n metaMessages?: string[] | undefined\n }\n>\n\nexport type BaseErrorType = BaseError & { name: 'WagmiCoreError' }\nexport class BaseError extends Error {\n details: string\n docsPath?: string | undefined\n metaMessages?: string[] | undefined\n shortMessage: string\n\n override name = 'WagmiCoreError'\n get docsBaseUrl() {\n return 'https://wagmi.sh/core'\n }\n get version() {\n return getVersion()\n }\n\n constructor(shortMessage: string, options: BaseErrorOptions = {}) {\n super()\n\n const details =\n options.cause instanceof BaseError\n ? options.cause.details\n : options.cause?.message\n ? options.cause.message\n : options.details!\n const docsPath =\n options.cause instanceof BaseError\n ? options.cause.docsPath || options.docsPath\n : options.docsPath\n\n this.message = [\n shortMessage || 'An error occurred.',\n '',\n ...(options.metaMessages ? [...options.metaMessages, ''] : []),\n ...(docsPath\n ? [\n `Docs: ${this.docsBaseUrl}${docsPath}.html${\n options.docsSlug ? `#${options.docsSlug}` : ''\n }`,\n ]\n : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${this.version}`,\n ].join('\\n')\n\n if (options.cause) this.cause = options.cause\n this.details = details\n this.docsPath = docsPath\n this.metaMessages = options.metaMessages\n this.shortMessage = shortMessage\n }\n\n walk(fn?: (err: unknown) => boolean) {\n return this.#walk(this, fn)\n }\n\n #walk(err: unknown, fn?: (err: unknown) => boolean): unknown {\n if (fn?.(err)) return err\n if ((err as Error).cause) return this.#walk((err as Error).cause, fn)\n return err\n }\n}\n", "import type { Address } from 'viem'\n\nimport type { Connector } from '../createConfig.js'\nimport { BaseError } from './base.js'\n\nexport type ChainNotConfiguredErrorType = ChainNotConfiguredError & {\n name: 'ChainNotConfiguredError'\n}\nexport class ChainNotConfiguredError extends BaseError {\n override name = 'ChainNotConfiguredError'\n constructor() {\n super('Chain not configured.')\n }\n}\n\nexport type ConnectorAlreadyConnectedErrorType =\n ConnectorAlreadyConnectedError & {\n name: 'ConnectorAlreadyConnectedError'\n }\nexport class ConnectorAlreadyConnectedError extends BaseError {\n override name = 'ConnectorAlreadyConnectedError'\n constructor() {\n super('Connector already connected.')\n }\n}\n\nexport type ConnectorNotConnectedErrorType = ConnectorNotConnectedError & {\n name: 'ConnectorNotConnectedError'\n}\nexport class ConnectorNotConnectedError extends BaseError {\n override name = 'ConnectorNotConnectedError'\n constructor() {\n super('Connector not connected.')\n }\n}\n\nexport type ConnectorNotFoundErrorType = ConnectorNotFoundError & {\n name: 'ConnectorNotFoundError'\n}\nexport class ConnectorNotFoundError extends BaseError {\n override name = 'ConnectorNotFoundError'\n constructor() {\n super('Connector not found.')\n }\n}\n\nexport type ConnectorAccountNotFoundErrorType =\n ConnectorAccountNotFoundError & {\n name: 'ConnectorAccountNotFoundError'\n }\nexport class ConnectorAccountNotFoundError extends BaseError {\n override name = 'ConnectorAccountNotFoundError'\n constructor({\n address,\n connector,\n }: {\n address: Address\n connector: Connector\n }) {\n super(`Account \"${address}\" not found for connector \"${connector.name}\".`)\n }\n}\n\nexport type ConnectorChainMismatchErrorType = ConnectorAccountNotFoundError & {\n name: 'ConnectorChainMismatchError'\n}\nexport class ConnectorChainMismatchError extends BaseError {\n override name = 'ConnectorChainMismatchError'\n constructor({\n connectionChainId,\n connectorChainId,\n }: {\n connectionChainId: number\n connectorChainId: number\n }) {\n super(\n `The current chain of the connector (id: ${connectorChainId}) does not match the connection's chain (id: ${connectionChainId}).`,\n {\n metaMessages: [\n `Current Chain ID: ${connectorChainId}`,\n `Expected Chain ID: ${connectionChainId}`,\n ],\n },\n )\n }\n}\n\nexport type ConnectorUnavailableReconnectingErrorType =\n ConnectorUnavailableReconnectingError & {\n name: 'ConnectorUnavailableReconnectingError'\n }\nexport class ConnectorUnavailableReconnectingError extends BaseError {\n override name = 'ConnectorUnavailableReconnectingError'\n constructor({ connector }: { connector: { name: string } }) {\n super(`Connector \"${connector.name}\" unavailable while reconnecting.`, {\n details: [\n 'During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uid`.',\n 'All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.',\n 'This error commonly occurs for connectors that asynchronously inject after reconnection has already started.',\n ].join(' '),\n })\n }\n}\n", "const size = 256\nlet index = size\nlet buffer: string\n\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = ''\n index = 0\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1)\n }\n }\n return buffer.substring(index, index++ + length)\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { EIP1193RequestFn } from '../../types/eip1193.js'\nimport { buildRequest } from '../../utils/buildRequest.js'\nimport { uid as uid_ } from '../../utils/uid.js'\nimport type { ClientConfig } from '../createClient.js'\n\nexport type TransportConfig<\n type extends string = string,\n eip1193RequestFn extends EIP1193RequestFn = EIP1193RequestFn,\n> = {\n /** The name of the transport. */\n name: string\n /** The key of the transport. */\n key: string\n /** The JSON-RPC request function that matches the EIP-1193 request spec. */\n request: eip1193RequestFn\n /** The base delay (in ms) between retries. */\n retryDelay?: number | undefined\n /** The max number of times to retry. */\n retryCount?: number | undefined\n /** The timeout (in ms) for requests. */\n timeout?: number | undefined\n /** The type of the transport. */\n type: type\n}\n\nexport type Transport<\n type extends string = string,\n rpcAttributes = Record<string, any>,\n eip1193RequestFn extends EIP1193RequestFn = EIP1193RequestFn,\n> = <chain extends Chain | undefined = Chain>({\n chain,\n}: {\n chain?: chain | undefined\n pollingInterval?: ClientConfig['pollingInterval'] | undefined\n retryCount?: TransportConfig['retryCount'] | undefined\n timeout?: TransportConfig['timeout'] | undefined\n}) => {\n config: TransportConfig<type>\n request: eip1193RequestFn\n value?: rpcAttributes | undefined\n}\n\nexport type CreateTransportErrorType = ErrorType\n\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport<\n type extends string,\n rpcAttributes extends Record<string, any>,\n>(\n {\n key,\n name,\n request,\n retryCount = 3,\n retryDelay = 150,\n timeout,\n type,\n }: TransportConfig<type>,\n value?: rpcAttributes | undefined,\n): ReturnType<Transport<type, rpcAttributes>> {\n const uid = uid_()\n return {\n config: {\n key,\n name,\n request,\n retryCount,\n retryDelay,\n timeout,\n type,\n },\n request: buildRequest(request, { retryCount, retryDelay, uid }),\n value,\n }\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport {\n type CreateTransportErrorType,\n type Transport,\n type TransportConfig,\n createTransport,\n} from './createTransport.js'\n\ntype EthereumProvider = { request(...args: any): Promise<any> }\n\nexport type CustomTransportConfig = {\n /** The key of the transport. */\n key?: TransportConfig['key'] | undefined\n /** The name of the transport. */\n name?: TransportConfig['name'] | undefined\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount'] | undefined\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay'] | undefined\n}\n\nexport type CustomTransport = Transport<\n 'custom',\n {},\n EthereumProvider['request']\n>\n\nexport type CustomTransportErrorType = CreateTransportErrorType | ErrorType\n\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom<provider extends EthereumProvider>(\n provider: provider,\n config: CustomTransportConfig = {},\n): CustomTransport {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config\n return ({ retryCount: defaultRetryCount }) =>\n createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n })\n}\n", "import type { Connector } from '../createConfig.js'\nimport { BaseError } from './base.js'\n\nexport type ProviderNotFoundErrorType = ProviderNotFoundError & {\n name: 'ProviderNotFoundError'\n}\nexport class ProviderNotFoundError extends BaseError {\n override name = 'ProviderNotFoundError'\n constructor() {\n super('Provider not found.')\n }\n}\n\nexport type SwitchChainNotSupportedErrorType = SwitchChainNotSupportedError & {\n name: 'SwitchChainNotSupportedError'\n}\nexport class SwitchChainNotSupportedError extends BaseError {\n override name = 'SwitchChainNotSupportedError'\n\n constructor({ connector }: { connector: Connector }) {\n super(`\"${connector.name}\" does not support programmatic chain switching.`)\n }\n}\n", "import type {\n AddEthereumChainParameter,\n Address,\n Chain,\n Client,\n ProviderConnectInfo,\n ProviderMessage,\n} from 'viem'\n\nimport type { Transport } from '../createConfig.js'\nimport type { Emitter } from '../createEmitter.js'\nimport type { Storage } from '../createStorage.js'\nimport type { Compute, ExactPartial, StrictOmit } from '../types/utils.js'\n\nexport type ConnectorEventMap = {\n change: {\n accounts?: readonly Address[] | undefined\n chainId?: number | undefined\n }\n connect: { accounts: readonly Address[]; chainId: number }\n disconnect: never\n error: { error: Error }\n message: { type: string; data?: unknown | undefined }\n}\n\nexport type CreateConnectorFn<\n provider = unknown,\n properties extends Record<string, unknown> = Record<string, unknown>,\n storageItem extends Record<string, unknown> = Record<string, unknown>,\n> = (config: {\n chains: readonly [Chain, ...Chain[]]\n emitter: Emitter<ConnectorEventMap>\n storage?: Compute<Storage<storageItem>> | null | undefined\n transports?: Record<number, Transport> | undefined\n}) => Compute<\n {\n readonly icon?: string | undefined\n readonly id: string\n readonly name: string\n readonly rdns?: string | readonly string[] | undefined\n /** @deprecated */\n readonly supportsSimulation?: boolean | undefined\n readonly type: string\n\n setup?(): Promise<void>\n connect(\n parameters?:\n | { chainId?: number | undefined; isReconnecting?: boolean | undefined }\n | undefined,\n ): Promise<{\n accounts: readonly Address[]\n chainId: number\n }>\n disconnect(): Promise<void>\n getAccounts(): Promise<readonly Address[]>\n getChainId(): Promise<number>\n getProvider(\n parameters?: { chainId?: number | undefined } | undefined,\n ): Promise<provider>\n getClient?(\n parameters?: { chainId?: number | undefined } | undefined,\n ): Promise<Client>\n isAuthorized(): Promise<boolean>\n switchChain?(\n parameters: Compute<{\n addEthereumChainParameter?:\n | ExactPartial<StrictOmit<AddEthereumChainParameter, 'chainId'>>\n | undefined\n chainId: number\n }>,\n ): Promise<Chain>\n\n onAccountsChanged(accounts: string[]): void\n onChainChanged(chainId: string): void\n onConnect?(connectInfo: ProviderConnectInfo): void\n onDisconnect(error?: Error | undefined): void\n onMessage?(message: ProviderMessage): void\n } & properties\n>\n\nexport function createConnector<\n provider,\n properties extends Record<string, unknown> = Record<string, unknown>,\n storageItem extends Record<string, unknown> = Record<string, unknown>,\n ///\n createConnectorFn extends CreateConnectorFn<\n provider,\n properties,\n storageItem\n > = CreateConnectorFn<provider, properties, storageItem>,\n>(createConnectorFn: createConnectorFn) {\n return createConnectorFn\n}\n", "import {\n type AddEthereumChainParameter,\n type Address,\n type EIP1193Provider,\n type ProviderConnectInfo,\n type ProviderRpcError,\n ResourceUnavailableRpcError,\n type RpcError,\n SwitchChainError,\n UserRejectedRequestError,\n getAddress,\n numberToHex,\n withRetry,\n withTimeout,\n} from 'viem'\n\nimport type { Connector } from '../createConfig.js'\nimport { ChainNotConfiguredError } from '../errors/config.js'\nimport { ProviderNotFoundError } from '../errors/connector.js'\nimport type { Compute } from '../types/utils.js'\nimport { createConnector } from './createConnector.js'\n\nexport type InjectedParameters = {\n /**\n * Some injected providers do not support programmatic disconnect.\n * This flag simulates the disconnect behavior by keeping track of connection status in storage.\n * @default true\n */\n shimDisconnect?: boolean | undefined\n /**\n * [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) Ethereum Provider to target\n */\n target?: TargetId | Target | (() => Target | undefined) | undefined\n unstable_shimAsyncInject?: boolean | number | undefined\n}\n\ninjected.type = 'injected' as const\nexport function injected(parameters: InjectedParameters = {}) {\n const { shimDisconnect = true, unstable_shimAsyncInject } = parameters\n\n function getTarget(): Compute<Target & { id: string }> {\n const target = parameters.target\n if (typeof target === 'function') {\n const result = target()\n if (result) return result\n }\n\n if (typeof target === 'object') return target\n\n if (typeof target === 'string')\n return {\n ...(targetMap[target as keyof typeof targetMap] ?? {\n id: target,\n name: `${target[0]!.toUpperCase()}${target.slice(1)}`,\n provider: `is${target[0]!.toUpperCase()}${target.slice(1)}`,\n }),\n }\n\n return {\n id: 'injected',\n name: 'Injected',\n provider(window) {\n return window?.ethereum\n },\n }\n }\n\n type Provider = WalletProvider | undefined\n type Properties = {\n onConnect(connectInfo: ProviderConnectInfo): void\n }\n type StorageItem = {\n [_ in 'injected.connected' | `${string}.disconnected`]: true\n }\n\n let accountsChanged: Connector['onAccountsChanged'] | undefined\n let chainChanged: Connector['onChainChanged'] | undefined\n let connect: Connector['onConnect'] | undefined\n let disconnect: Connector['onDisconnect'] | undefined\n\n return createConnector<Provider, Properties, StorageItem>((config) => ({\n get icon() {\n return getTarget().icon\n },\n get id() {\n return getTarget().id\n },\n get name() {\n return getTarget().name\n },\n /** @deprecated */\n get supportsSimulation() {\n return true\n },\n type: injected.type,\n async setup() {\n const provider = await this.getProvider()\n // Only start listening for events if `target` is set, otherwise `injected()` will also receive events\n if (provider?.on && parameters.target) {\n if (!connect) {\n connect = this.onConnect.bind(this)\n provider.on('connect', connect)\n }\n\n // We shouldn't need to listen for `'accountsChanged'` here since the `'connect'` event should suffice (and wallet shouldn't be connected yet).\n // Some wallets, like MetaMask, do not implement the `'connect'` event and overload `'accountsChanged'` instead.\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this)\n provider.on('accountsChanged', accountsChanged)\n }\n }\n },\n async connect({ chainId, isReconnecting } = {}) {\n const provider = await this.getProvider()\n if (!provider) throw new ProviderNotFoundError()\n\n let accounts: readonly Address[] = []\n if (isReconnecting) accounts = await this.getAccounts().catch(() => [])\n else if (shimDisconnect) {\n // Attempt to show another prompt for selecting account if `shimDisconnect` flag is enabled\n try {\n const permissions = await provider.request({\n method: 'wallet_requestPermissions',\n params: [{ eth_accounts: {} }],\n })\n accounts = (permissions[0]?.caveats?.[0]?.value as string[])?.map(\n (x) => getAddress(x),\n )\n // `'wallet_requestPermissions'` can return a different order of accounts than `'eth_accounts'`\n // switch to `'eth_accounts'` ordering if more than one account is connected\n // https://github.com/wevm/wagmi/issues/4140\n if (accounts.length > 0) {\n const sortedAccounts = await this.getAccounts()\n accounts = sortedAccounts\n }\n } catch (err) {\n const error = err as RpcError\n // Not all injected providers support `wallet_requestPermissions` (e.g. MetaMask iOS).\n // Only bubble up error if user rejects request\n if (error.code === UserRejectedRequestError.code)\n throw new UserRejectedRequestError(error)\n // Or prompt is already open\n if (error.code === ResourceUnavailableRpcError.code) throw error\n }\n }\n\n try {\n if (!accounts?.length && !isReconnecting) {\n const requestedAccounts = await provider.request({\n method: 'eth_requestAccounts',\n })\n accounts = requestedAccounts.map((x) => getAddress(x))\n }\n\n // Manage EIP-1193 event listeners\n // https://eips.ethereum.org/EIPS/eip-1193#events\n if (connect) {\n provider.removeListener('connect', connect)\n connect = undefined\n }\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this)\n provider.on('accountsChanged', accountsChanged)\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this)\n provider.on('chainChanged', chainChanged)\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this)\n provider.on('disconnect', disconnect)\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId()\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error\n return { id: currentChainId }\n })\n currentChainId = chain?.id ?? currentChainId\n }\n\n // Remove disconnected shim if it exists\n if (shimDisconnect)\n await config.storage?.removeItem(`${this.id}.disconnected`)\n\n // Add connected shim if no target exists\n if (!parameters.target)\n await config.storage?.setItem('injected.connected', true)\n\n return { accounts, chainId: currentChainId }\n } catch (err) {\n const error = err as RpcError\n if (error.code === UserRejectedRequestError.code)\n throw new UserRejectedRequestError(error)\n if (error.code === ResourceUnavailableRpcError.code)\n throw new ResourceUnavailableRpcError(error)\n throw error\n }\n },\n async disconnect() {\n const provider = await this.getProvider()\n if (!provider) throw new ProviderNotFoundError()\n\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged)\n chainChanged = undefined\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect)\n disconnect = undefined\n }\n if (!connect) {\n connect = this.onConnect.bind(this)\n provider.on('connect', connect)\n }\n\n // Experimental support for MetaMask disconnect\n // https://github.com/MetaMask/metamask-improvement-proposals/blob/main/MIPs/mip-2.md\n try {\n // Adding timeout as not all wallets support this method and can hang\n // https://github.com/wevm/wagmi/issues/4064\n await withTimeout(\n () =>\n // TODO: Remove explicit type for viem@3\n provider.request<{\n Method: 'wallet_revokePermissions'\n Parameters: [permissions: { eth_accounts: Record<string, any> }]\n ReturnType: null\n }>({\n // `'wallet_revokePermissions'` added in `viem@2.10.3`\n method: 'wallet_revokePermissions',\n params: [{ eth_accounts: {} }],\n }),\n { timeout: 100 },\n )\n } catch {}\n\n // Add shim signalling connector is disconnected\n if (shimDisconnect) {\n await config.storage?.setItem(`${this.id}.disconnected`, true)\n }\n\n if (!parameters.target)\n await config.storage?.removeItem('injected.connected')\n },\n async getAccounts() {\n const provider = await this.getProvider()\n if (!provider) throw new ProviderNotFoundError()\n const accounts = await provider.request({ method: 'eth_accounts' })\n return accounts.map((x) => getAddress(x))\n },\n async getChainId() {\n const provider = await this.getProvider()\n if (!provider) throw new ProviderNotFoundError()\n const hexChainId = await provider.request({ method: 'eth_chainId' })\n return Number(hexChainId)\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined\n\n let provider: Provider\n const target = getTarget()\n if (typeof target.provider === 'function')\n provider = target.provider(window as Window | undefined)\n else if (typeof target.provider === 'string')\n provider = findProvider(window, target.provider)\n else provider = target.provider\n\n // Some wallets do not conform to EIP-1193 (e.g. Trust Wallet)\n // https://github.com/wevm/wagmi/issues/3526#issuecomment-1912683002\n if (provider && !provider.removeListener) {\n // Try using `off` handler if it exists, otherwise noop\n if ('off' in provider && typeof provider.off === 'function')\n provider.removeListener =\n provider.off as typeof provider.removeListener\n else provider.removeListener = () => {}\n }\n\n return provider\n },\n async isAuthorized() {\n try {\n const isDisconnected =\n shimDisconnect &&\n // If shim exists in storage, connector is disconnected\n (await config.storage?.getItem(`${this.id}.disconnected`))\n if (isDisconnected) return false\n\n // Don't allow injected connector to connect if no target is set and it hasn't already connected\n // (e.g. flag in storage is not set). This prevents a targetless injected connector from connecting\n // automatically whenever there is a targeted connector configured.\n if (!parameters.target) {\n const connected = await config.storage?.getItem('injected.connected')\n if (!connected) return false\n }\n\n const provider = await this.getProvider()\n if (!provider) {\n if (\n unstable_shimAsyncInject !== undefined &&\n unstable_shimAsyncInject !== false\n ) {\n // If no provider is found, check for async injection\n // https://github.com/wevm/references/issues/167\n // https://github.com/MetaMask/detect-provider\n const handleEthereum = async () => {\n if (typeof window !== 'undefined')\n window.removeEventListener(\n 'ethereum#initialized',\n handleEthereum,\n )\n const provider = await this.getProvider()\n return !!provider\n }\n const timeout =\n typeof unstable_shimAsyncInject === 'number'\n ? unstable_shimAsyncInject\n : 1_000\n const res = await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise<boolean>((resolve) =>\n window.addEventListener(\n 'ethereum#initialized',\n () => resolve(handleEthereum()),\n { once: true },\n ),\n ),\n ]\n : []),\n new Promise<boolean>((resolve) =>\n setTimeout(() => resolve(handleEthereum()), timeout),\n ),\n ])\n if (res) return true\n }\n\n throw new ProviderNotFoundError()\n }\n\n // Use retry strategy as some injected wallets (e.g. MetaMask) fail to\n // immediately resolve JSON-RPC requests on page load.\n const accounts = await withRetry(() => this.getAccounts())\n return !!accounts.length\n } catch {\n return false\n }\n },\n async switchChain({ addEthereumChainParameter, chainId }) {\n const provider = await this.getProvider()\n if (!provider) throw new ProviderNotFoundError()\n\n const chain = config.chains.find((x) => x.id === chainId)\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError())\n\n const promise = new Promise<void>((resolve) => {\n const listener = ((data) => {\n if ('chainId' in data && data.chainId === chainId) {\n config.emitter.off('change', listener)\n resolve()\n }\n }) satisfies Parameters<typeof config.emitter.on>[1]\n config.emitter.on('change', listener)\n })\n\n try {\n await Promise.all([\n provider\n .request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n })\n // During `'wallet_switchEthereumChain'`, MetaMask makes a `'net_version'` RPC call to the target chain.\n // If this request fails, MetaMask does not emit the `'chainChanged'` event, but will still switch the chain.\n // To counter this behavior, we request and emit the current chain ID to confirm the chain switch either via\n // this callback or an externally emitted `'chainChanged'` event.\n // https://github.com/MetaMask/metamask-extension/issues/24247\n .then(async () => {\n const currentChainId = await this.getChainId()\n if (currentChainId === chainId)\n config.emitter.emit('change', { chainId })\n }),\n promise,\n ])\n return chain\n } catch (err) {\n const error = err as RpcError\n\n // Indicates chain is not added to provider\n if (\n error.code === 4902 ||\n // Unwrapping for MetaMask Mobile\n // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719\n (error as ProviderRpcError<{ originalError?: { code: number } }>)\n ?.data?.originalError?.code === 4902\n ) {\n try {\n const { default: blockExplorer, ...blockExplorers } =\n chain.blockExplorers ?? {}\n let blockExplorerUrls: string[] | undefined\n if (addEthereumChainParameter?.blockExplorerUrls)\n blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls\n else if (blockExplorer)\n blockExplorerUrls = [\n blockExplorer.url,\n ...Object.values(blockExplorers).map((x) => x.url),\n ]\n\n let rpcUrls: readonly string[]\n if (addEthereumChainParameter?.rpcUrls?.length)\n rpcUrls = addEthereumChainParameter.rpcUrls\n else rpcUrls = [chain.rpcUrls.default?.http[0] ?? '']\n\n const addEthereumChain = {\n blockExplorerUrls,\n chainId: numberToHex(chainId),\n chainName: addEthereumChainParameter?.chainName ?? chain.name,\n iconUrls: addEthereumChainParameter?.iconUrls,\n nativeCurrency:\n addEthereumChainParameter?.nativeCurrency ??\n chain.nativeCurrency,\n rpcUrls,\n } satisfies AddEthereumChainParameter\n\n await Promise.all([\n provider\n .request({\n method: 'wallet_addEthereumChain',\n params: [addEthereumChain],\n })\n .then(async () => {\n const currentChainId = await this.getChainId()\n if (currentChainId === chainId)\n config.emitter.emit('change', { chainId })\n else\n throw new UserRejectedRequestError(\n new Error('User rejected switch after adding network.'),\n )\n }),\n promise,\n ])\n\n return chain\n } catch (error) {\n throw new UserRejectedRequestError(error as Error)\n }\n }\n\n if (error.code === UserRejectedRequestError.code)\n throw new UserRejectedRequestError(error)\n throw new SwitchChainError(error)\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0) this.onDisconnect()\n // Connect if emitter is listening for connect event (e.g. is disconnected and connects through wallet interface)\n else if (config.emitter.listenerCount('connect')) {\n const chainId = (await this.getChainId()).toString()\n this.onConnect({ chainId })\n // Remove disconnected shim if it exists\n if (shimDisconnect)\n await config.storage?.removeItem(`${this.id}.disconnected`)\n }\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts: accounts.map((x) => getAddress(x)),\n })\n },\n onChainChanged(chain) {\n const chainId = Number(chain)\n config.emitter.emit('change', { chainId })\n },\n async onConnect(connectInfo) {\n const accounts = await this.getAccounts()\n if (accounts.length === 0) return\n\n const chainId = Number(connectInfo.chainId)\n config.emitter.emit('connect', { accounts, chainId })\n\n // Manage EIP-1193 event listeners\n const provider = await this.getProvider()\n if (provider) {\n if (connect) {\n provider.removeListener('connect', connect)\n connect = undefined\n }\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this)\n provider.on('accountsChanged', accountsChanged)\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this)\n provider.on('chainChanged', chainChanged)\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this)\n provider.on('disconnect', disconnect)\n }\n }\n },\n async onDisconnect(error) {\n const provider = await this.getProvider()\n\n // If MetaMask emits a `code: 1013` error, wait for reconnection before disconnecting\n // https://github.com/MetaMask/providers/pull/120\n if (error && (error as RpcError<1013>).code === 1013) {\n if (provider && !!(await this.getAccounts()).length) return\n }\n\n // No need to remove `${this.id}.disconnected` from storage because `onDisconnect` is typically\n // only called when the wallet is disconnected through the wallet's interface, meaning the wallet\n // actually disconnected and we don't need to simulate it.\n config.emitter.emit('disconnect')\n\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged)\n chainChanged = undefined\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect)\n disconnect = undefined\n }\n if (!connect) {\n connect = this.onConnect.bind(this)\n provider.on('connect', connect)\n }\n }\n },\n }))\n}\n\nconst targetMap = {\n coinbaseWallet: {\n id: 'coinbaseWallet',\n name: 'Coinbase Wallet',\n provider(window) {\n if (window?.coinbaseWalletExtension) return window.coinbaseWalletExtension\n return findProvider(window, 'isCoinbaseWallet')\n },\n },\n metaMask: {\n id: 'metaMask',\n name: 'MetaMask',\n provider(window) {\n return findProvider(window, (provider) => {\n if (!provider.isMetaMask) return false\n // Brave tries to make itself look like MetaMask\n // Could also try RPC `web3_clientVersion` if following is unreliable\n if (provider.isBraveWallet && !provider._events && !provider._state)\n return false\n // Other wallets that try to look like MetaMask\n const flags = [\n 'isApexWallet',\n 'isAvalanche',\n 'isBitKeep',\n 'isBlockWallet',\n 'isKuCoinWallet',\n 'isMathWallet',\n 'isOkxWallet',\n 'isOKExWallet',\n 'isOneInchIOSWallet',\n 'isOneInchAndroidWallet',\n 'isOpera',\n 'isPhantom',\n 'isPortal',\n 'isRabby',\n 'isTokenPocket',\n 'isTokenary',\n 'isUniswapWallet',\n 'isZerion',\n ] satisfies WalletProviderFlags[]\n for (const flag of flags) if (provider[flag]) return false\n return true\n })\n },\n },\n phantom: {\n id: 'phantom',\n name: 'Phantom',\n provider(window) {\n if (window?.phantom?.ethereum) return window.phantom?.ethereum\n return findProvider(window, 'isPhantom')\n },\n },\n} as const satisfies TargetMap\n\ntype TargetMap = { [_ in TargetId]?: Target | undefined }\n\ntype Target = {\n icon?: string | undefined\n id: string\n name: string\n provider:\n | WalletProviderFlags\n | WalletProvider\n | ((window?: Window | undefined) => WalletProvider | undefined)\n}\n\n/** @deprecated */\ntype TargetId = Compute<WalletProviderFlags> extends `is${infer name}`\n ? name extends `${infer char}${infer rest}`\n ? `${Lowercase<char>}${rest}`\n : never\n : never\n\n/**\n * @deprecated As of 2024/10/16, we are no longer accepting new provider flags as EIP-6963 should be used instead.\n */\ntype WalletProviderFlags =\n | 'isApexWallet'\n | 'isAvalanche'\n | 'isBackpack'\n | 'isBifrost'\n | 'isBitKeep'\n | 'isBitski'\n | 'isBlockWallet'\n | 'isBraveWallet'\n | 'isCoinbaseWallet'\n | 'isDawn'\n | 'isEnkrypt'\n | 'isExodus'\n | 'isFrame'\n | 'isFrontier'\n | 'isGamestop'\n | 'isHyperPay'\n | 'isImToken'\n | 'isKuCoinWallet'\n | 'isMathWallet'\n | 'isMetaMask'\n | 'isOkxWallet'\n | 'isOKExWallet'\n | 'isOneInchAndroidWallet'\n | 'isOneInchIOSWallet'\n | 'isOpera'\n | 'isPhantom'\n | 'isPortal'\n | 'isRabby'\n | 'isRainbow'\n | 'isStatus'\n | 'isTally'\n | 'isTokenPocket'\n | 'isTokenary'\n | 'isTrust'\n | 'isTrustWallet'\n | 'isUniswapWallet'\n | 'isXDEFI'\n | 'isZerion'\n\ntype WalletProvider = Compute<\n EIP1193Provider & {\n [key in WalletProviderFlags]?: true | undefined\n } & {\n providers?: WalletProvider[] | undefined\n /** Only exists in MetaMask as of 2022/04/03 */\n _events?: { connect?: (() => void) | undefined } | undefined\n /** Only exists in MetaMask as of 2022/04/03 */\n _state?:\n | {\n accounts?: string[]\n initialized?: boolean\n isConnected?: boolean\n isPermanentlyDisconnected?: boolean\n isUnlocked?: boolean\n }\n | undefined\n }\n>\n\ntype Window = {\n coinbaseWalletExtension?: WalletProvider | undefined\n ethereum?: WalletProvider | undefined\n phantom?: { ethereum: WalletProvider } | undefined\n}\n\nfunction findProvider(\n window: globalThis.Window | Window | undefined,\n select?: WalletProviderFlags | ((provider: WalletProvider) => boolean),\n) {\n function isProvider(provider: WalletProvider) {\n if (typeof select === 'function') return select(provider)\n if (typeof select === 'string') return provider[select]\n return true\n }\n\n const ethereum = (window as Window).ethereum\n if (ethereum?.providers)\n return ethereum.providers.find((provider) => isProvider(provider))\n if (ethereum && isProvider(ethereum)) return ethereum\n return undefined\n}\n", "import {\n type Address,\n type EIP1193RequestFn,\n type Hex,\n RpcRequestError,\n SwitchChainError,\n type Transport,\n UserRejectedRequestError,\n type WalletCallReceipt,\n type WalletRpcSchema,\n custom,\n fromHex,\n getAddress,\n keccak256,\n numberToHex,\n stringToHex,\n} from 'viem'\nimport { rpc } from 'viem/utils'\n\nimport {\n ChainNotConfiguredError,\n ConnectorNotConnectedError,\n} from '../errors/config.js'\nimport { createConnector } from './createConnector.js'\n\nexport type MockParameters = {\n accounts: readonly [Address, ...Address[]]\n features?:\n | {\n defaultConnected?: boolean | undefined\n connectError?: boolean | Error | undefined\n switchChainError?: boolean | Error | undefined\n signMessageError?: boolean | Error | undefined\n signTypedDataError?: boolean | Error | undefined\n reconnect?: boolean | undefined\n watchAssetError?: boolean | Error | undefined\n }\n | undefined\n}\n\nmock.type = 'mock' as const\nexport function mock(parameters: MockParameters) {\n const transactionCache = new Map<Hex, Hex[]>()\n const features =\n parameters.features ??\n ({ defaultConnected: false } satisfies MockParameters['features'])\n\n type Provider = ReturnType<\n Transport<'custom', unknown, EIP1193RequestFn<WalletRpcSchema>>\n >\n type Properties = {\n connect(parameters?: {\n chainId?: number | undefined\n isReconnecting?: boolean | undefined\n foo?: string | undefined\n }): Promise<{\n accounts: readonly Address[]\n chainId: number\n }>\n }\n let connected = features.defaultConnected\n let connectedChainId: number\n\n return createConnector<Provider, Properties>((config) => ({\n id: 'mock',\n name: 'Mock Connector',\n type: mock.type,\n async setup() {\n connectedChainId = config.chains[0].id\n },\n async connect({ chainId } = {}) {\n if (features.connectError) {\n if (typeof features.connectError === 'boolean')\n throw new UserRejectedRequestError(new Error('Failed to connect.'))\n throw features.connectError\n }\n\n const provider = await this.getProvider()\n const accounts = await provider.request({\n method: 'eth_requestAccounts',\n })\n\n let currentChainId = await this.getChainId()\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId })\n currentChainId = chain.id\n }\n\n connected = true\n\n return {\n accounts: accounts.map((x) => getAddress(x)),\n chainId: currentChainId,\n }\n },\n async disconnect() {\n connected = false\n },\n async getAccounts() {\n if (!connected) throw new ConnectorNotConnectedError()\n const provider = await this.getProvider()\n const accounts = await provider.request({ method: 'eth_accounts' })\n return accounts.map((x) => getAddress(x))\n },\n async getChainId() {\n const provider = await this.getProvider()\n const hexChainId = await provider.request({ method: 'eth_chainId' })\n return fromHex(hexChainId, 'number')\n },\n async isAuthorized() {\n if (!features.reconnect) return false\n if (!connected) return false\n const accounts = await this.getAccounts()\n return !!accounts.length\n },\n async switchChain({ chainId }) {\n const provider = await this.getProvider()\n const chain = config.chains.find((x) => x.id === chainId)\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError())\n\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n })\n return chain\n },\n onAccountsChanged(accounts) {\n if (accounts.length === 0) this.onDisconnect()\n else\n config.emitter.emit('change', {\n accounts: accounts.map((x) => getAddress(x)),\n })\n },\n onChainChanged(chain) {\n const chainId = Number(chain)\n config.emitter.emit('change', { chainId })\n },\n async onDisconnect(_error) {\n config.emitter.emit('disconnect')\n connected = false\n },\n async getProvider({ chainId } = {}) {\n const chain =\n config.chains.find((x) => x.id === chainId) ?? config.chains[0]\n const url = chain.rpcUrls.default.http[0]!\n\n const request: EIP1193RequestFn = async ({ method, params }) => {\n // eth methods\n if (method === 'eth_chainId') return numberToHex(connectedChainId)\n if (method === 'eth_requestAccounts') return parameters.accounts\n if (method === 'eth_signTypedData_v4')\n if (features.signTypedDataError) {\n if (typeof features.signTypedDataError === 'boolean')\n throw new UserRejectedRequestError(\n new Error('Failed to sign typed data.'),\n )\n throw features.signTypedDataError\n }\n\n // wallet methods\n if (method === 'wallet_switchEthereumChain') {\n if (features.switchChainError) {\n if (typeof features.switchChainError === 'boolean')\n throw new UserRejectedRequestError(\n new Error('Failed to switch chain.'),\n )\n throw features.switchChainError\n }\n type Params = [{ chainId: Hex }]\n connectedChainId = fromHex((params as Params)[0].chainId, 'number')\n this.onChainChanged(connectedChainId.toString())\n return\n }\n\n if (method === 'wallet_watchAsset') {\n if (features.watchAssetError) {\n if (typeof features.watchAssetError === 'boolean')\n throw new UserRejectedRequestError(\n new Error('Failed to switch chain.'),\n )\n throw features.watchAssetError\n }\n return connected\n }\n\n if (method === 'wallet_getCapabilities')\n return {\n '0x2105': {\n paymasterService: {\n supported:\n (params as [Hex])[0] ===\n '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\n },\n sessionKeys: {\n supported: true,\n },\n },\n '0x14A34': {\n paymasterService: {\n supported:\n (params as [Hex])[0] ===\n '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\n },\n },\n }\n\n if (method === 'wallet_sendCalls') {\n const hashes = []\n const calls = (params as any)[0].calls\n for (const call of calls) {\n const { result, error } = await rpc.http(url, {\n body: {\n method: 'eth_sendTransaction',\n params: [call],\n },\n })\n if (error)\n throw new RpcRequestError({\n body: { method, params },\n error,\n url,\n })\n hashes.push(result)\n }\n const id = keccak256(stringToHex(JSON.stringify(calls)))\n transactionCache.set(id, hashes)\n return id\n }\n\n if (method === 'wallet_getCallsStatus') {\n const hashes = transactionCache.get((params as any)[0])\n if (!hashes) return null\n const receipts = await Promise.all(\n hashes.map(async (hash) => {\n const { result, error } = await rpc.http(url, {\n body: {\n method: 'eth_getTransactionReceipt',\n params: [hash],\n id: 0,\n },\n })\n if (error)\n throw new RpcRequestError({\n body: { method, params },\n error,\n url,\n })\n if (!result) return null\n return {\n blockHash: result.blockHash,\n blockNumber: result.blockNumber,\n gasUsed: result.gasUsed,\n logs: result.logs,\n status: result.status,\n transactionHash: result.transactionHash,\n } satisfies WalletCallReceipt\n }),\n )\n if (receipts.some((x) => !x))\n return { status: 'PENDING', receipts: [] }\n return { status: 'CONFIRMED', receipts }\n }\n\n if (method === 'wallet_showCallsStatus') return\n\n // other methods\n if (method === 'personal_sign') {\n if (features.signMessageError) {\n if (typeof features.signMessageError === 'boolean')\n throw new UserRejectedRequestError(\n new Error('Failed to sign message.'),\n )\n throw features.signMessageError\n }\n // Change `personal_sign` to `eth_sign` and swap params\n method = 'eth_sign'\n type Params = [data: Hex, address: Address]\n params = [(params as Params)[1], (params as Params)[0]]\n }\n\n const body = { method, params }\n const { error, result } = await rpc.http(url, { body })\n if (error) throw new RpcRequestError({ body, error, url })\n\n return result\n }\n return custom({ request })({ retryCount: 0 })\n },\n }))\n}\n", "import FrameSDK from '@farcaster/frame-sdk';\nimport { ChainNotConfiguredError, createConnector, } from '@wagmi/core';\nimport { SwitchChainError, fromHex, getAddress, numberToHex } from 'viem';\nfarcasterFrame.type = 'farcasterFrame';\nlet accountsChanged;\nlet chainChanged;\nlet disconnect;\nexport function farcasterFrame() {\n return createConnector((config) => ({\n id: 'farcaster',\n name: 'Farcaster Frame',\n rdns: 'xyz.farcaster',\n icon: 'https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/055c25d6-7fe7-4a49-abf9-49772021cf00/original',\n type: farcasterFrame.type,\n async connect({ chainId } = {}) {\n const provider = await this.getProvider();\n const accounts = await provider.request({\n method: 'eth_requestAccounts',\n });\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this);\n // @ts-expect-error - provider type is stricter\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain({ chainId });\n currentChainId = chain.id;\n }\n return {\n accounts: accounts.map((x) => getAddress(x)),\n chainId: currentChainId,\n };\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (accountsChanged) {\n // @ts-expect-error - provider type is stricter\n provider.removeListener('accountsChanged', accountsChanged);\n accountsChanged = undefined;\n }\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n },\n async getAccounts() {\n const provider = await this.getProvider();\n const accounts = await provider.request({\n method: 'eth_accounts',\n });\n return accounts.map((x) => getAddress(x));\n },\n async getChainId() {\n const provider = await this.getProvider();\n const hexChainId = await provider.request({ method: 'eth_chainId' });\n return fromHex(hexChainId, 'number');\n },\n async isAuthorized() {\n try {\n const accounts = await this.getAccounts();\n return !!accounts.length;\n }\n catch {\n return false;\n }\n },\n async switchChain({ chainId }) {\n const provider = await this.getProvider();\n const chain = config.chains.find((x) => x.id === chainId);\n if (!chain) {\n throw new SwitchChainError(new ChainNotConfiguredError());\n }\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n });\n // providers should start emitting these events - remove when hosts have upgraded\n //\n // explicitly emit this event as a workaround for ethereum provider not\n // emitting events, can remove once events are flowing\n config.emitter.emit('change', { chainId });\n return chain;\n },\n onAccountsChanged(accounts) {\n if (accounts.length === 0) {\n this.onDisconnect();\n }\n else {\n config.emitter.emit('change', {\n accounts: accounts.map((x) => getAddress(x)),\n });\n }\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n config.emitter.emit('disconnect');\n },\n async getProvider() {\n return FrameSDK.wallet.ethProvider;\n },\n }));\n}\n", "import { farcasterFrame } from './connector';\nexport * from './connector';\nexport default farcasterFrame;\n"],
5
- "mappings": "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",
6
- "names": ["buffer", "shouldRetry", "uid", "body", "response", "BaseError", "_BaseError_walk", "BaseError", "BaseError", "size", "uid", "BaseError", "window", "accountsChanged", "chainChanged", "connect", "disconnect", "provider", "error", "call", "result", "error", "disconnect", "dist_default"]
7
- }
@@ -1,96 +0,0 @@
1
- import {
2
- CancelledError,
3
- HydrationBoundary,
4
- InfiniteQueryObserver,
5
- IsRestoringProvider,
6
- MutationCache,
7
- MutationObserver,
8
- QueriesObserver,
9
- Query,
10
- QueryCache,
11
- QueryClient,
12
- QueryClientContext,
13
- QueryClientProvider,
14
- QueryErrorResetBoundary,
15
- QueryObserver,
16
- defaultShouldDehydrateMutation,
17
- defaultShouldDehydrateQuery,
18
- dehydrate,
19
- focusManager,
20
- hashKey,
21
- hydrate,
22
- infiniteQueryOptions,
23
- isCancelledError,
24
- isServer,
25
- keepPreviousData,
26
- matchMutation,
27
- matchQuery,
28
- notifyManager,
29
- onlineManager,
30
- queryOptions,
31
- replaceEqualDeep,
32
- skipToken,
33
- useInfiniteQuery,
34
- useIsFetching,
35
- useIsMutating,
36
- useIsRestoring,
37
- useMutation,
38
- useMutationState,
39
- useQueries,
40
- useQuery,
41
- useQueryClient,
42
- useQueryErrorResetBoundary,
43
- useSuspenseInfiniteQuery,
44
- useSuspenseQueries,
45
- useSuspenseQuery
46
- } from "./chunk-6WYSWNQJ.js";
47
- import "./chunk-JDAHWTZP.js";
48
- import "./chunk-3MMZATWV.js";
49
- import "./chunk-WOOG5QLI.js";
50
- export {
51
- CancelledError,
52
- HydrationBoundary,
53
- InfiniteQueryObserver,
54
- IsRestoringProvider,
55
- MutationCache,
56
- MutationObserver,
57
- QueriesObserver,
58
- Query,
59
- QueryCache,
60
- QueryClient,
61
- QueryClientContext,
62
- QueryClientProvider,
63
- QueryErrorResetBoundary,
64
- QueryObserver,
65
- defaultShouldDehydrateMutation,
66
- defaultShouldDehydrateQuery,
67
- dehydrate,
68
- focusManager,
69
- hashKey,
70
- hydrate,
71
- infiniteQueryOptions,
72
- isCancelledError,
73
- isServer,
74
- keepPreviousData,
75
- matchMutation,
76
- matchQuery,
77
- notifyManager,
78
- onlineManager,
79
- queryOptions,
80
- replaceEqualDeep,
81
- skipToken,
82
- useInfiniteQuery,
83
- useIsFetching,
84
- useIsMutating,
85
- useIsRestoring,
86
- useMutation,
87
- useMutationState,
88
- useQueries,
89
- useQuery,
90
- useQueryClient,
91
- useQueryErrorResetBoundary,
92
- useSuspenseInfiniteQuery,
93
- useSuspenseQueries,
94
- useSuspenseQuery
95
- };
96
- //# sourceMappingURL=@tanstack_react-query.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }