viem 0.0.1-alpha.2 → 0.0.1-alpha.20
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.
- package/chains/package.json +1 -1
- package/clients/package.json +1 -1
- package/dist/{rpc-655c0ba4.d.ts → chain-32f56cfa.d.ts} +78 -17
- package/dist/chain-f12cdc7f.d.ts +5 -0
- package/dist/chains.d.ts +1291 -74
- package/dist/chains.js +125 -129
- package/dist/chains.js.map +1 -0
- package/dist/chains.mjs +129 -0
- package/dist/chains.mjs.map +1 -0
- package/dist/{chunk-3EOU525X.js → chunk-5Q6FSUU2.mjs} +1199 -562
- package/dist/chunk-5Q6FSUU2.mjs.map +1 -0
- package/dist/chunk-FHXXG7I6.js +259 -0
- package/dist/chunk-FHXXG7I6.js.map +1 -0
- package/dist/chunk-IAQPMSGJ.js +176 -0
- package/dist/chunk-IAQPMSGJ.js.map +1 -0
- package/dist/{chunk-4HNVS7AM.js → chunk-MYQNZSWD.mjs} +330 -539
- package/dist/chunk-MYQNZSWD.mjs.map +1 -0
- package/dist/chunk-NHAKUPTF.js +889 -0
- package/dist/chunk-NHAKUPTF.js.map +1 -0
- package/dist/chunk-SF4I2NKC.js +2683 -0
- package/dist/chunk-SF4I2NKC.js.map +1 -0
- package/dist/chunk-T7CBAKLI.mjs +176 -0
- package/dist/chunk-T7CBAKLI.mjs.map +1 -0
- package/dist/chunk-YFKR74XG.js +256 -0
- package/dist/chunk-YFKR74XG.js.map +1 -0
- package/dist/chunk-YODUQCHJ.mjs +256 -0
- package/dist/chunk-YODUQCHJ.mjs.map +1 -0
- package/dist/{chunk-YQRTXQ2G.js → chunk-ZVGTYLKU.mjs} +3 -15
- package/dist/chunk-ZVGTYLKU.mjs.map +1 -0
- package/dist/clients/index.d.ts +8 -7
- package/dist/clients/index.js +24 -25
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/index.mjs +24 -0
- package/dist/clients/index.mjs.map +1 -0
- package/dist/contract-9af4608b.d.ts +142 -0
- package/dist/createClient-5d316c7e.d.ts +62 -0
- package/dist/createPublicClient-9d2b42e1.d.ts +19 -0
- package/dist/createTestClient-79498dab.d.ts +34 -0
- package/dist/createWalletClient-f69a5230.d.ts +30 -0
- package/dist/{eip1193-8f7c22ce.d.ts → eip1193-6c485d63.d.ts} +13 -10
- package/dist/index.d.ts +424 -11
- package/dist/index.js +395 -292
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +395 -0
- package/dist/index.mjs.map +1 -0
- package/dist/{parseGwei-fd7a0f7d.d.ts → parseGwei-4308ad80.d.ts} +82 -139
- package/dist/public.d.ts +11 -0
- package/dist/public.js +59 -0
- package/dist/public.js.map +1 -0
- package/dist/public.mjs +59 -0
- package/dist/public.mjs.map +1 -0
- package/dist/{rpc-3c0e3985.d.ts → rpc-26932bae.d.ts} +1 -38
- package/dist/sendTransaction-1c8290a9.d.ts +12 -0
- package/dist/stopImpersonatingAccount-7781842a.d.ts +156 -0
- package/dist/test.d.ts +6 -0
- package/dist/test.js +60 -0
- package/dist/test.js.map +1 -0
- package/dist/test.mjs +60 -0
- package/dist/test.mjs.map +1 -0
- package/dist/transactionRequest-341b6ed2.d.ts +15 -0
- package/dist/utils/index.d.ts +51 -8
- package/dist/utils/index.js +171 -156
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +171 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/wallet.d.ts +8 -0
- package/dist/wallet.js +24 -0
- package/dist/wallet.js.map +1 -0
- package/dist/wallet.mjs +24 -0
- package/dist/wallet.mjs.map +1 -0
- package/dist/watchAsset-afaad3c7.d.ts +38 -0
- package/dist/{watchAsset-04ab8db5.d.ts → watchPendingTransactions-3b722547.d.ts} +67 -217
- package/dist/{webSocket-c6e0d26f.d.ts → webSocket-b180e679.d.ts} +4 -9
- package/dist/window.d.ts +3 -2
- package/dist/window.js +1 -0
- package/dist/window.js.map +1 -0
- package/dist/window.mjs +1 -0
- package/dist/window.mjs.map +1 -0
- package/package.json +30 -66
- package/src/_test/abis.ts +1413 -0
- package/src/_test/bench.ts +15 -0
- package/src/_test/constants.ts +60 -0
- package/src/_test/globalSetup.ts +11 -0
- package/src/_test/index.ts +23 -0
- package/src/_test/setup.ts +8 -0
- package/src/_test/utils.ts +112 -0
- package/src/actions/index.test.ts +78 -0
- package/src/actions/index.ts +174 -0
- package/src/actions/public/call.bench.ts +48 -0
- package/src/actions/public/call.test.ts +99 -0
- package/src/actions/public/call.ts +97 -0
- package/src/actions/public/createBlockFilter.bench.ts +11 -0
- package/src/actions/public/createBlockFilter.test.ts +9 -0
- package/src/actions/public/createBlockFilter.ts +14 -0
- package/src/actions/public/createContractEventFilter.test.ts +119 -0
- package/src/actions/public/createContractEventFilter.ts +69 -0
- package/src/actions/public/createEventFilter.test.ts +245 -0
- package/src/actions/public/createEventFilter.ts +76 -0
- package/src/actions/public/createPendingTransactionFilter.bench.ts +11 -0
- package/src/actions/public/createPendingTransactionFilter.test.ts +9 -0
- package/src/actions/public/createPendingTransactionFilter.ts +14 -0
- package/src/actions/public/deployContract.test.ts +56 -0
- package/src/actions/public/deployContract.ts +38 -0
- package/src/actions/public/estimateGas.bench.ts +46 -0
- package/src/actions/public/estimateGas.test.ts +92 -0
- package/src/actions/public/estimateGas.ts +61 -0
- package/src/actions/public/getBalance.test.ts +83 -0
- package/src/actions/public/getBalance.ts +37 -0
- package/src/actions/public/getBlock.bench.ts +28 -0
- package/src/actions/public/getBlock.test.ts +575 -0
- package/src/actions/public/getBlock.ts +65 -0
- package/src/actions/public/getBlockNumber.bench.ts +28 -0
- package/src/actions/public/getBlockNumber.test.ts +27 -0
- package/src/actions/public/getBlockNumber.ts +32 -0
- package/src/actions/public/getBlockTransactionCount.bench.ts +15 -0
- package/src/actions/public/getBlockTransactionCount.test.ts +57 -0
- package/src/actions/public/getBlockTransactionCount.ts +52 -0
- package/src/actions/public/getBytecode.test.ts +27 -0
- package/src/actions/public/getBytecode.ts +32 -0
- package/src/actions/public/getChainId.bench.ts +15 -0
- package/src/actions/public/getChainId.test.ts +8 -0
- package/src/actions/public/getChainId.ts +7 -0
- package/src/actions/public/getFeeHistory.bench.ts +18 -0
- package/src/actions/public/getFeeHistory.test.ts +137 -0
- package/src/actions/public/getFeeHistory.ts +44 -0
- package/src/actions/public/getFilterChanges.bench.ts +13 -0
- package/src/actions/public/getFilterChanges.test.ts +189 -0
- package/src/actions/public/getFilterChanges.ts +23 -0
- package/src/actions/public/getFilterLogs.test.ts +104 -0
- package/src/actions/public/getFilterLogs.ts +20 -0
- package/src/actions/public/getGasPrice.bench.ts +28 -0
- package/src/actions/public/getGasPrice.test.ts +8 -0
- package/src/actions/public/getGasPrice.ts +15 -0
- package/src/actions/public/getLogs.test.ts +107 -0
- package/src/actions/public/getLogs.ts +84 -0
- package/src/actions/public/getStorageAt.test.ts +34 -0
- package/src/actions/public/getStorageAt.ts +32 -0
- package/src/actions/public/getTransaction.bench.ts +33 -0
- package/src/actions/public/getTransaction.test.ts +311 -0
- package/src/actions/public/getTransaction.ts +95 -0
- package/src/actions/public/getTransactionConfirmations.test.ts +69 -0
- package/src/actions/public/getTransactionConfirmations.ts +38 -0
- package/src/actions/public/getTransactionCount.test.ts +56 -0
- package/src/actions/public/getTransactionCount.ts +34 -0
- package/src/actions/public/getTransactionReceipt.bench.ts +33 -0
- package/src/actions/public/getTransactionReceipt.test.ts +179 -0
- package/src/actions/public/getTransactionReceipt.ts +34 -0
- package/src/actions/public/index.test.ts +43 -0
- package/src/actions/public/index.ts +149 -0
- package/src/actions/public/readContract.test.ts +128 -0
- package/src/actions/public/readContract.ts +87 -0
- package/src/actions/public/simulateContract.bench.ts +31 -0
- package/src/actions/public/simulateContract.test.ts +238 -0
- package/src/actions/public/simulateContract.ts +98 -0
- package/src/actions/public/uninstallFilter.bench.ts +13 -0
- package/src/actions/public/uninstallFilter.test.ts +65 -0
- package/src/actions/public/uninstallFilter.ts +17 -0
- package/src/actions/public/waitForTransactionReceipt.test.ts +322 -0
- package/src/actions/public/waitForTransactionReceipt.ts +170 -0
- package/src/actions/public/watchBlockNumber.test.ts +166 -0
- package/src/actions/public/watchBlockNumber.ts +79 -0
- package/src/actions/public/watchBlocks.test.ts +210 -0
- package/src/actions/public/watchBlocks.ts +114 -0
- package/src/actions/public/watchContractEvent.test.ts +301 -0
- package/src/actions/public/watchContractEvent.ts +108 -0
- package/src/actions/public/watchEvent.test.ts +190 -0
- package/src/actions/public/watchEvent.ts +95 -0
- package/src/actions/public/watchPendingTransactions.test.ts +116 -0
- package/src/actions/public/watchPendingTransactions.ts +74 -0
- package/src/actions/test/dropTransaction.test.ts +34 -0
- package/src/actions/test/dropTransaction.ts +17 -0
- package/src/actions/test/getAutomine.test.ts +14 -0
- package/src/actions/test/getAutomine.ts +11 -0
- package/src/actions/test/getTxpoolContent.test.ts +45 -0
- package/src/actions/test/getTxpoolContent.ts +7 -0
- package/src/actions/test/getTxpoolStatus.test.ts +41 -0
- package/src/actions/test/getTxpoolStatus.ts +12 -0
- package/src/actions/test/impersonateAccount.test.ts +28 -0
- package/src/actions/test/impersonateAccount.ts +17 -0
- package/src/actions/test/increaseTime.test.ts +18 -0
- package/src/actions/test/increaseTime.ts +17 -0
- package/src/actions/test/index.test.ts +38 -0
- package/src/actions/test/index.ts +77 -0
- package/src/actions/test/inspectTxpool.test.ts +50 -0
- package/src/actions/test/inspectTxpool.ts +7 -0
- package/src/actions/test/mine.test.ts +20 -0
- package/src/actions/test/mine.ts +16 -0
- package/src/actions/test/removeBlockTimestampInterval.test.ts +23 -0
- package/src/actions/test/removeBlockTimestampInterval.ts +7 -0
- package/src/actions/test/reset.test.ts +19 -0
- package/src/actions/test/reset.ts +18 -0
- package/src/actions/test/revert.test.ts +39 -0
- package/src/actions/test/revert.ts +14 -0
- package/src/actions/test/sendUnsignedTransaction.test.ts +52 -0
- package/src/actions/test/sendUnsignedTransaction.ts +19 -0
- package/src/actions/test/setAutomine.test.ts +14 -0
- package/src/actions/test/setAutomine.ts +8 -0
- package/src/actions/test/setBalance.test.ts +29 -0
- package/src/actions/test/setBalance.ts +20 -0
- package/src/actions/test/setBlockGasLimit.test.ts +21 -0
- package/src/actions/test/setBlockGasLimit.ts +17 -0
- package/src/actions/test/setBlockTimestampInterval.test.ts +23 -0
- package/src/actions/test/setBlockTimestampInterval.ts +16 -0
- package/src/actions/test/setCode.test.ts +26 -0
- package/src/actions/test/setCode.ts +19 -0
- package/src/actions/test/setCoinbase.test.ts +11 -0
- package/src/actions/test/setCoinbase.ts +17 -0
- package/src/actions/test/setIntervalMining.test.ts +30 -0
- package/src/actions/test/setIntervalMining.ts +16 -0
- package/src/actions/test/setLoggingEnabled.test.ts +10 -0
- package/src/actions/test/setLoggingEnabled.ts +8 -0
- package/src/actions/test/setMinGasPrice.test.ts +22 -0
- package/src/actions/test/setMinGasPrice.ts +17 -0
- package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +23 -0
- package/src/actions/test/setNextBlockBaseFeePerGas.ts +17 -0
- package/src/actions/test/setNextBlockTimestamp.test.ts +19 -0
- package/src/actions/test/setNextBlockTimestamp.ts +17 -0
- package/src/actions/test/setNonce.test.ts +28 -0
- package/src/actions/test/setNonce.ts +20 -0
- package/src/actions/test/setRpcUrl.test.ts +9 -0
- package/src/actions/test/setRpcUrl.ts +8 -0
- package/src/actions/test/setStorageAt.test.ts +36 -0
- package/src/actions/test/setStorageAt.ts +26 -0
- package/src/actions/test/snapshot.test.ts +18 -0
- package/src/actions/test/snapshot.ts +7 -0
- package/src/actions/test/stopImpersonatingAccount.test.ts +31 -0
- package/src/actions/test/stopImpersonatingAccount.ts +17 -0
- package/src/actions/wallet/addChain.test.ts +14 -0
- package/src/actions/wallet/addChain.ts +21 -0
- package/src/actions/wallet/getAccounts.test.ts +22 -0
- package/src/actions/wallet/getAccounts.ts +7 -0
- package/src/actions/wallet/getPermissions.test.ts +24 -0
- package/src/actions/wallet/getPermissions.ts +9 -0
- package/src/actions/wallet/index.test.ts +20 -0
- package/src/actions/wallet/index.ts +30 -0
- package/src/actions/wallet/requestAccounts.test.ts +13 -0
- package/src/actions/wallet/requestAccounts.ts +7 -0
- package/src/actions/wallet/requestPermissions.test.ts +26 -0
- package/src/actions/wallet/requestPermissions.ts +19 -0
- package/src/actions/wallet/sendTransaction.bench.ts +57 -0
- package/src/actions/wallet/sendTransaction.test.ts +440 -0
- package/src/actions/wallet/sendTransaction.ts +77 -0
- package/src/actions/wallet/signMessage.test.ts +62 -0
- package/src/actions/wallet/signMessage.ts +35 -0
- package/src/actions/wallet/switchChain.test.ts +22 -0
- package/src/actions/wallet/switchChain.ts +19 -0
- package/src/actions/wallet/watchAsset.test.ts +41 -0
- package/src/actions/wallet/watchAsset.ts +16 -0
- package/src/actions/wallet/writeContract.test.ts +54 -0
- package/src/actions/wallet/writeContract.ts +56 -0
- package/src/chains.test.ts +1912 -0
- package/src/chains.ts +99 -0
- package/src/clients/createClient.test.ts +295 -0
- package/src/clients/createClient.ts +81 -0
- package/src/clients/createPublicClient.test.ts +165 -0
- package/src/clients/createPublicClient.ts +49 -0
- package/src/clients/createTestClient.test.ts +145 -0
- package/src/clients/createTestClient.ts +72 -0
- package/src/clients/createWalletClient.test.ts +121 -0
- package/src/clients/createWalletClient.ts +54 -0
- package/src/clients/index.test.ts +19 -0
- package/src/clients/index.ts +31 -0
- package/src/clients/transports/createTransport.test.ts +58 -0
- package/src/clients/transports/createTransport.ts +48 -0
- package/src/clients/transports/custom.test.ts +98 -0
- package/src/clients/transports/custom.ts +34 -0
- package/src/clients/transports/fallback.test.ts +223 -0
- package/src/clients/transports/fallback.ts +48 -0
- package/src/clients/transports/http.test.ts +110 -0
- package/src/clients/transports/http.ts +51 -0
- package/src/clients/transports/index.test.ts +15 -0
- package/src/clients/transports/index.ts +17 -0
- package/src/clients/transports/webSocket.test.ts +164 -0
- package/src/clients/transports/webSocket.ts +117 -0
- package/src/errors/abi.test.ts +83 -0
- package/src/errors/abi.ts +238 -0
- package/src/errors/address.test.ts +14 -0
- package/src/errors/address.ts +9 -0
- package/src/errors/base.test.ts +72 -0
- package/src/errors/base.ts +57 -0
- package/src/errors/block.test.ts +24 -0
- package/src/errors/block.ts +18 -0
- package/src/errors/contract.ts +125 -0
- package/src/errors/data.ts +20 -0
- package/src/errors/encoding.ts +60 -0
- package/src/errors/index.ts +77 -0
- package/src/errors/log.ts +8 -0
- package/src/errors/request.test.ts +331 -0
- package/src/errors/request.ts +163 -0
- package/src/errors/rpc.test.ts +88 -0
- package/src/errors/rpc.ts +113 -0
- package/src/errors/transaction.test.ts +83 -0
- package/src/errors/transaction.ts +54 -0
- package/src/errors/transport.test.ts +12 -0
- package/src/errors/transport.ts +12 -0
- package/src/index.test.ts +214 -0
- package/src/index.ts +373 -0
- package/src/public.ts +80 -0
- package/src/test.ts +51 -0
- package/src/types/block.ts +71 -0
- package/src/types/chain.ts +6 -0
- package/src/types/contract.ts +342 -0
- package/src/types/eip1193.ts +1041 -0
- package/src/types/fee.ts +47 -0
- package/src/types/filter.ts +8 -0
- package/src/types/formatter.ts +23 -0
- package/src/types/index.ts +78 -0
- package/src/types/log.ts +22 -0
- package/src/types/misc.ts +5 -0
- package/src/types/rpc.ts +35 -0
- package/src/types/transaction.ts +145 -0
- package/src/types/utils.ts +67 -0
- package/src/types/window.ts +9 -0
- package/src/utils/abi/decodeAbi.bench.ts +135 -0
- package/src/utils/abi/decodeAbi.test.ts +1615 -0
- package/src/utils/abi/decodeAbi.ts +296 -0
- package/src/utils/abi/decodeDeployData.test.ts +159 -0
- package/src/utils/abi/decodeDeployData.ts +41 -0
- package/src/utils/abi/decodeErrorResult.test.ts +130 -0
- package/src/utils/abi/decodeErrorResult.ts +28 -0
- package/src/utils/abi/decodeFunctionData.test.ts +140 -0
- package/src/utils/abi/decodeFunctionData.ts +29 -0
- package/src/utils/abi/decodeFunctionResult.test.ts +262 -0
- package/src/utils/abi/decodeFunctionResult.ts +53 -0
- package/src/utils/abi/encodeAbi.bench.ts +163 -0
- package/src/utils/abi/encodeAbi.test.ts +1414 -0
- package/src/utils/abi/encodeAbi.ts +258 -0
- package/src/utils/abi/encodeDeployData.test.ts +131 -0
- package/src/utils/abi/encodeDeployData.ts +37 -0
- package/src/utils/abi/encodeErrorResult.test.ts +197 -0
- package/src/utils/abi/encodeErrorResult.ts +40 -0
- package/src/utils/abi/encodeEventTopics.test.ts +348 -0
- package/src/utils/abi/encodeEventTopics.ts +69 -0
- package/src/utils/abi/encodeFunctionData.test.ts +140 -0
- package/src/utils/abi/encodeFunctionData.ts +38 -0
- package/src/utils/abi/encodeFunctionResult.test.ts +284 -0
- package/src/utils/abi/encodeFunctionResult.ts +39 -0
- package/src/utils/abi/formatAbiItem.test.ts +335 -0
- package/src/utils/abi/formatAbiItem.ts +41 -0
- package/src/utils/abi/formatAbiItemWithArgs.test.ts +291 -0
- package/src/utils/abi/formatAbiItemWithArgs.ts +27 -0
- package/src/utils/abi/getAbiItem.ts +5 -0
- package/src/utils/abi/index.test.ts +23 -0
- package/src/utils/abi/index.ts +38 -0
- package/src/utils/address/getAddress.bench.ts +22 -0
- package/src/utils/address/getAddress.test.ts +46 -0
- package/src/utils/address/getAddress.ts +28 -0
- package/src/utils/address/getContractAddress.bench.ts +20 -0
- package/src/utils/address/getContractAddress.test.ts +78 -0
- package/src/utils/address/getContractAddress.ts +59 -0
- package/src/utils/address/index.test.ts +17 -0
- package/src/utils/address/index.ts +16 -0
- package/src/utils/address/isAddress.test.ts +10 -0
- package/src/utils/address/isAddress.ts +10 -0
- package/src/utils/address/isAddressEqual.test.ts +55 -0
- package/src/utils/address/isAddressEqual.ts +6 -0
- package/src/utils/buildRequest.test.ts +365 -0
- package/src/utils/buildRequest.ts +45 -0
- package/src/utils/chain.test.ts +43 -0
- package/src/utils/chain.ts +8 -0
- package/src/utils/contract/extractFunctionParts.test.ts +109 -0
- package/src/utils/contract/extractFunctionParts.ts +27 -0
- package/src/utils/contract/getContractError.test.ts +97 -0
- package/src/utils/contract/getContractError.ts +66 -0
- package/src/utils/contract/index.test.ts +15 -0
- package/src/utils/contract/index.ts +8 -0
- package/src/utils/data/concat.test.ts +35 -0
- package/src/utils/data/concat.ts +34 -0
- package/src/utils/data/index.test.ts +23 -0
- package/src/utils/data/index.ts +13 -0
- package/src/utils/data/isBytes.test.ts +9 -0
- package/src/utils/data/isBytes.ts +7 -0
- package/src/utils/data/isHex.test.ts +13 -0
- package/src/utils/data/isHex.ts +5 -0
- package/src/utils/data/pad.bench.ts +39 -0
- package/src/utils/data/pad.test.ts +367 -0
- package/src/utils/data/pad.ts +53 -0
- package/src/utils/data/size.test.ts +18 -0
- package/src/utils/data/size.ts +13 -0
- package/src/utils/data/slice.test.ts +203 -0
- package/src/utils/data/slice.ts +60 -0
- package/src/utils/data/trim.bench.ts +50 -0
- package/src/utils/data/trim.test.ts +175 -0
- package/src/utils/data/trim.ts +33 -0
- package/src/utils/encoding/decodeBytes.bench.ts +40 -0
- package/src/utils/encoding/decodeBytes.test.ts +144 -0
- package/src/utils/encoding/decodeBytes.ts +63 -0
- package/src/utils/encoding/decodeHex.bench.ts +24 -0
- package/src/utils/encoding/decodeHex.test.ts +167 -0
- package/src/utils/encoding/decodeHex.ts +76 -0
- package/src/utils/encoding/decodeRlp.bench.ts +34 -0
- package/src/utils/encoding/decodeRlp.test.ts +350 -0
- package/src/utils/encoding/decodeRlp.ts +121 -0
- package/src/utils/encoding/encodeBytes.bench.ts +41 -0
- package/src/utils/encoding/encodeBytes.test.ts +676 -0
- package/src/utils/encoding/encodeBytes.ts +59 -0
- package/src/utils/encoding/encodeHex.bench.ts +60 -0
- package/src/utils/encoding/encodeHex.test.ts +232 -0
- package/src/utils/encoding/encodeHex.ts +104 -0
- package/src/utils/encoding/encodeRlp.bench.ts +54 -0
- package/src/utils/encoding/encodeRlp.test.ts +254 -0
- package/src/utils/encoding/encodeRlp.ts +48 -0
- package/src/utils/encoding/index.test.ts +32 -0
- package/src/utils/encoding/index.ts +36 -0
- package/src/utils/formatters/block.bench.ts +51 -0
- package/src/utils/formatters/block.test.ts +115 -0
- package/src/utils/formatters/block.ts +37 -0
- package/src/utils/formatters/extract.test.ts +14 -0
- package/src/utils/formatters/extract.ts +18 -0
- package/src/utils/formatters/feeHistory.test.ts +66 -0
- package/src/utils/formatters/feeHistory.ts +12 -0
- package/src/utils/formatters/format.test.ts +93 -0
- package/src/utils/formatters/format.ts +90 -0
- package/src/utils/formatters/index.test.ts +27 -0
- package/src/utils/formatters/index.ts +34 -0
- package/src/utils/formatters/log.test.ts +79 -0
- package/src/utils/formatters/log.ts +12 -0
- package/src/utils/formatters/transaction.test.ts +271 -0
- package/src/utils/formatters/transaction.ts +63 -0
- package/src/utils/formatters/transactionReceipt.bench.ts +73 -0
- package/src/utils/formatters/transactionReceipt.test.ts +151 -0
- package/src/utils/formatters/transactionReceipt.ts +63 -0
- package/src/utils/formatters/transactionRequest.bench.ts +29 -0
- package/src/utils/formatters/transactionRequest.test.ts +237 -0
- package/src/utils/formatters/transactionRequest.ts +56 -0
- package/src/utils/hash/getEventSignature.test.ts +61 -0
- package/src/utils/hash/getEventSignature.ts +4 -0
- package/src/utils/hash/getFunctionSignature.test.ts +22 -0
- package/src/utils/hash/getFunctionSignature.ts +5 -0
- package/src/utils/hash/hashFunction.test.ts +65 -0
- package/src/utils/hash/hashFunction.ts +12 -0
- package/src/utils/hash/index.test.ts +13 -0
- package/src/utils/hash/index.ts +5 -0
- package/src/utils/hash/keccak256.test.ts +59 -0
- package/src/utils/hash/keccak256.ts +23 -0
- package/src/utils/index.test.ts +110 -0
- package/src/utils/index.ts +137 -0
- package/src/utils/observe.test.ts +176 -0
- package/src/utils/observe.ts +66 -0
- package/src/utils/poll.test.ts +127 -0
- package/src/utils/poll.ts +42 -0
- package/src/utils/promise/index.test.ts +14 -0
- package/src/utils/promise/index.ts +3 -0
- package/src/utils/promise/withCache.test.ts +97 -0
- package/src/utils/promise/withCache.ts +73 -0
- package/src/utils/promise/withRetry.test.ts +231 -0
- package/src/utils/promise/withRetry.ts +61 -0
- package/src/utils/promise/withTimeout.test.ts +37 -0
- package/src/utils/promise/withTimeout.ts +39 -0
- package/src/utils/rpc.test.ts +992 -0
- package/src/utils/rpc.ts +292 -0
- package/src/utils/stringify.test.ts +13 -0
- package/src/utils/stringify.ts +5 -0
- package/src/utils/uid.ts +14 -0
- package/src/utils/unit/constants.test.ts +22 -0
- package/src/utils/unit/constants.ts +12 -0
- package/src/utils/unit/formatEther.test.ts +75 -0
- package/src/utils/unit/formatEther.ts +6 -0
- package/src/utils/unit/formatGwei.test.ts +32 -0
- package/src/utils/unit/formatGwei.ts +6 -0
- package/src/utils/unit/formatUnit.bench.ts +26 -0
- package/src/utils/unit/formatUnit.test.ts +40 -0
- package/src/utils/unit/formatUnit.ts +16 -0
- package/src/utils/unit/index.test.ts +28 -0
- package/src/utils/unit/index.ts +7 -0
- package/src/utils/unit/parseEther.test.ts +126 -0
- package/src/utils/unit/parseEther.ts +6 -0
- package/src/utils/unit/parseGwei.test.ts +50 -0
- package/src/utils/unit/parseGwei.ts +6 -0
- package/src/utils/unit/parseUnit.bench.ts +26 -0
- package/src/utils/unit/parseUnit.test.ts +54 -0
- package/src/utils/unit/parseUnit.ts +27 -0
- package/src/utils/wait.ts +3 -0
- package/src/wallet.ts +23 -0
- package/src/window.ts +1 -0
- package/utils/package.json +1 -1
- package/window/package.json +1 -1
- package/actions/package.json +0 -4
- package/dist/BaseError-7688f84e.d.ts +0 -18
- package/dist/actions/index.d.ts +0 -8
- package/dist/actions/index.js +0 -123
- package/dist/createWalletClient-915223f3.d.ts +0 -130
- package/dist/transactionRequest-ade896ac.d.ts +0 -44
@@ -1,8 +1,17 @@
|
|
1
1
|
import {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
sendTransaction
|
3
|
+
} from "./chunk-T7CBAKLI.mjs";
|
4
|
+
import {
|
5
|
+
BlockNotFoundError,
|
6
|
+
InvalidGasArgumentsError,
|
7
|
+
TransactionNotFoundError,
|
8
|
+
TransactionReceiptNotFoundError,
|
9
|
+
WaitForTransactionReceiptTimeoutError,
|
10
|
+
decodeFunctionResult,
|
11
|
+
encodeDeployData,
|
12
|
+
encodeEventTopics,
|
13
|
+
encodeFunctionData,
|
14
|
+
extract,
|
6
15
|
format,
|
7
16
|
formatBlock,
|
8
17
|
formatFeeHistory,
|
@@ -10,147 +19,14 @@ import {
|
|
10
19
|
formatTransaction,
|
11
20
|
formatTransactionReceipt,
|
12
21
|
formatTransactionRequest,
|
13
|
-
getAddress,
|
14
22
|
getCache,
|
23
|
+
getContractError,
|
24
|
+
getEventSignature,
|
15
25
|
hexToNumber,
|
16
26
|
numberToHex,
|
17
27
|
wait,
|
18
28
|
withCache
|
19
|
-
} from "./chunk-
|
20
|
-
|
21
|
-
// src/actions/wallet/addChain.ts
|
22
|
-
async function addChain(client, chain) {
|
23
|
-
const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;
|
24
|
-
await client.request({
|
25
|
-
method: "wallet_addEthereumChain",
|
26
|
-
params: [
|
27
|
-
{
|
28
|
-
chainId: numberToHex(id),
|
29
|
-
chainName: name,
|
30
|
-
nativeCurrency,
|
31
|
-
rpcUrls: rpcUrls.default.http,
|
32
|
-
blockExplorerUrls: blockExplorers ? Object.values(blockExplorers).map(({ url }) => url) : void 0
|
33
|
-
}
|
34
|
-
]
|
35
|
-
});
|
36
|
-
}
|
37
|
-
|
38
|
-
// src/actions/wallet/getAccounts.ts
|
39
|
-
async function getAccounts(client) {
|
40
|
-
const addresses = await client.request({ method: "eth_accounts" });
|
41
|
-
return addresses.map((address) => checksumAddress(address));
|
42
|
-
}
|
43
|
-
|
44
|
-
// src/actions/wallet/getPermissions.ts
|
45
|
-
async function getPermissions(client) {
|
46
|
-
const permissions = await client.request({ method: "wallet_getPermissions" });
|
47
|
-
return permissions;
|
48
|
-
}
|
49
|
-
|
50
|
-
// src/actions/wallet/requestAccounts.ts
|
51
|
-
async function requestAccounts(client) {
|
52
|
-
const addresses = await client.request({ method: "eth_requestAccounts" });
|
53
|
-
return addresses.map((address) => getAddress(address));
|
54
|
-
}
|
55
|
-
|
56
|
-
// src/actions/wallet/requestPermissions.ts
|
57
|
-
async function requestPermissions(client, permissions) {
|
58
|
-
return client.request({
|
59
|
-
method: "wallet_requestPermissions",
|
60
|
-
params: [permissions]
|
61
|
-
});
|
62
|
-
}
|
63
|
-
|
64
|
-
// src/actions/wallet/sendTransaction.ts
|
65
|
-
async function sendTransaction(client, {
|
66
|
-
chain,
|
67
|
-
from,
|
68
|
-
accessList,
|
69
|
-
data,
|
70
|
-
gas,
|
71
|
-
gasPrice,
|
72
|
-
maxFeePerGas,
|
73
|
-
maxPriorityFeePerGas,
|
74
|
-
nonce,
|
75
|
-
to,
|
76
|
-
value,
|
77
|
-
...rest
|
78
|
-
}) {
|
79
|
-
if (maxFeePerGas !== void 0 && maxPriorityFeePerGas !== void 0 && maxFeePerGas < maxPriorityFeePerGas)
|
80
|
-
throw new InvalidGasArgumentsError();
|
81
|
-
const request_ = format(
|
82
|
-
{
|
83
|
-
from,
|
84
|
-
accessList,
|
85
|
-
data,
|
86
|
-
gas,
|
87
|
-
gasPrice,
|
88
|
-
maxFeePerGas,
|
89
|
-
maxPriorityFeePerGas,
|
90
|
-
nonce,
|
91
|
-
to,
|
92
|
-
value,
|
93
|
-
...rest
|
94
|
-
},
|
95
|
-
{
|
96
|
-
formatter: chain?.formatters?.transactionRequest || formatTransactionRequest
|
97
|
-
}
|
98
|
-
);
|
99
|
-
const hash = await client.request({
|
100
|
-
method: "eth_sendTransaction",
|
101
|
-
params: [request_]
|
102
|
-
});
|
103
|
-
return hash;
|
104
|
-
}
|
105
|
-
var InvalidGasArgumentsError = class extends BaseError {
|
106
|
-
constructor() {
|
107
|
-
super("`maxFeePerGas` cannot be less than `maxPriorityFeePerGas`");
|
108
|
-
__publicField(this, "name", "InvalidGasArgumentsError");
|
109
|
-
}
|
110
|
-
};
|
111
|
-
|
112
|
-
// src/actions/wallet/signMessage.ts
|
113
|
-
async function signMessage(client, { from, data: data_ }) {
|
114
|
-
let data;
|
115
|
-
if (typeof data_ === "string") {
|
116
|
-
if (!data_.startsWith("0x"))
|
117
|
-
throw new BaseError(
|
118
|
-
`data ("${data_}") must be a hex value. Encode it first to a hex with the \`encodeHex\` util.`,
|
119
|
-
{
|
120
|
-
docsPath: "/TODO"
|
121
|
-
}
|
122
|
-
);
|
123
|
-
data = data_;
|
124
|
-
} else {
|
125
|
-
data = encodeHex(data_);
|
126
|
-
}
|
127
|
-
const signed = await client.request({
|
128
|
-
method: "personal_sign",
|
129
|
-
params: [data, from]
|
130
|
-
});
|
131
|
-
return signed;
|
132
|
-
}
|
133
|
-
|
134
|
-
// src/actions/wallet/switchChain.ts
|
135
|
-
async function switchChain(client, { id }) {
|
136
|
-
await client.request({
|
137
|
-
method: "wallet_switchEthereumChain",
|
138
|
-
params: [
|
139
|
-
{
|
140
|
-
chainId: numberToHex(id)
|
141
|
-
}
|
142
|
-
]
|
143
|
-
});
|
144
|
-
}
|
145
|
-
|
146
|
-
// src/actions/wallet/watchAsset.ts
|
147
|
-
async function watchAsset(client, params) {
|
148
|
-
const added = await client.request({
|
149
|
-
method: "wallet_watchAsset",
|
150
|
-
params: [params]
|
151
|
-
});
|
152
|
-
return added;
|
153
|
-
}
|
29
|
+
} from "./chunk-5Q6FSUU2.mjs";
|
154
30
|
|
155
31
|
// src/actions/public/call.ts
|
156
32
|
async function call(client, {
|
@@ -172,6 +48,7 @@ async function call(client, {
|
|
172
48
|
if (maxFeePerGas !== void 0 && maxPriorityFeePerGas !== void 0 && maxFeePerGas < maxPriorityFeePerGas)
|
173
49
|
throw new InvalidGasArgumentsError();
|
174
50
|
const blockNumberHex = blockNumber ? numberToHex(blockNumber) : void 0;
|
51
|
+
const formatter = chain?.formatters?.transactionRequest;
|
175
52
|
const request_ = format(
|
176
53
|
{
|
177
54
|
from,
|
@@ -184,10 +61,10 @@ async function call(client, {
|
|
184
61
|
nonce,
|
185
62
|
to,
|
186
63
|
value,
|
187
|
-
...rest
|
64
|
+
...extract(rest, { formatter })
|
188
65
|
},
|
189
66
|
{
|
190
|
-
formatter:
|
67
|
+
formatter: formatter || formatTransactionRequest
|
191
68
|
}
|
192
69
|
);
|
193
70
|
const response = await client.request({
|
@@ -199,6 +76,51 @@ async function call(client, {
|
|
199
76
|
return { data: response };
|
200
77
|
}
|
201
78
|
|
79
|
+
// src/actions/public/simulateContract.ts
|
80
|
+
async function simulateContract(client, {
|
81
|
+
abi,
|
82
|
+
address,
|
83
|
+
args,
|
84
|
+
functionName,
|
85
|
+
...callRequest
|
86
|
+
}) {
|
87
|
+
const calldata = encodeFunctionData({
|
88
|
+
abi,
|
89
|
+
args,
|
90
|
+
functionName
|
91
|
+
});
|
92
|
+
try {
|
93
|
+
const { data } = await call(client, {
|
94
|
+
data: calldata,
|
95
|
+
to: address,
|
96
|
+
...callRequest
|
97
|
+
});
|
98
|
+
const result = decodeFunctionResult({
|
99
|
+
abi,
|
100
|
+
functionName,
|
101
|
+
data: data || "0x"
|
102
|
+
});
|
103
|
+
return {
|
104
|
+
result,
|
105
|
+
request: {
|
106
|
+
abi,
|
107
|
+
address,
|
108
|
+
args,
|
109
|
+
functionName,
|
110
|
+
...callRequest
|
111
|
+
}
|
112
|
+
};
|
113
|
+
} catch (err) {
|
114
|
+
throw getContractError(err, {
|
115
|
+
abi,
|
116
|
+
address,
|
117
|
+
args,
|
118
|
+
functionName,
|
119
|
+
sender: callRequest.from
|
120
|
+
});
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
202
124
|
// src/actions/public/createPendingTransactionFilter.ts
|
203
125
|
async function createPendingTransactionFilter(client) {
|
204
126
|
const id = await client.request({
|
@@ -215,6 +137,80 @@ async function createBlockFilter(client) {
|
|
215
137
|
return { id, type: "block" };
|
216
138
|
}
|
217
139
|
|
140
|
+
// src/actions/public/createEventFilter.ts
|
141
|
+
async function createEventFilter(client, {
|
142
|
+
address,
|
143
|
+
event,
|
144
|
+
args,
|
145
|
+
fromBlock,
|
146
|
+
toBlock
|
147
|
+
} = {}) {
|
148
|
+
let topics = [];
|
149
|
+
if (event) {
|
150
|
+
topics = buildFilterTopics({ event, args });
|
151
|
+
}
|
152
|
+
const id = await client.request({
|
153
|
+
method: "eth_newFilter",
|
154
|
+
params: [
|
155
|
+
{
|
156
|
+
address,
|
157
|
+
fromBlock: typeof fromBlock === "bigint" ? numberToHex(fromBlock) : fromBlock,
|
158
|
+
toBlock: typeof toBlock === "bigint" ? numberToHex(toBlock) : toBlock,
|
159
|
+
...topics.length ? { topics } : {}
|
160
|
+
}
|
161
|
+
]
|
162
|
+
});
|
163
|
+
return { id, type: "event" };
|
164
|
+
}
|
165
|
+
function buildFilterTopics({
|
166
|
+
event,
|
167
|
+
args: _args
|
168
|
+
}) {
|
169
|
+
const signature = getEventSignature(event);
|
170
|
+
return [signature];
|
171
|
+
}
|
172
|
+
|
173
|
+
// src/actions/public/createContractEventFilter.ts
|
174
|
+
async function createContractEventFilter(client, {
|
175
|
+
address,
|
176
|
+
abi,
|
177
|
+
args,
|
178
|
+
eventName,
|
179
|
+
fromBlock,
|
180
|
+
toBlock
|
181
|
+
}) {
|
182
|
+
const topics = eventName ? encodeEventTopics({
|
183
|
+
abi,
|
184
|
+
args,
|
185
|
+
eventName
|
186
|
+
}) : void 0;
|
187
|
+
const id = await client.request({
|
188
|
+
method: "eth_newFilter",
|
189
|
+
params: [
|
190
|
+
{
|
191
|
+
address,
|
192
|
+
fromBlock: typeof fromBlock === "bigint" ? numberToHex(fromBlock) : fromBlock,
|
193
|
+
toBlock: typeof toBlock === "bigint" ? numberToHex(toBlock) : toBlock,
|
194
|
+
topics
|
195
|
+
}
|
196
|
+
]
|
197
|
+
});
|
198
|
+
return { id, type: "event" };
|
199
|
+
}
|
200
|
+
|
201
|
+
// src/actions/public/deployContract.ts
|
202
|
+
function deployContract(walletClient, { abi, args, bytecode, ...request }) {
|
203
|
+
const calldata = encodeDeployData({
|
204
|
+
abi,
|
205
|
+
args,
|
206
|
+
bytecode
|
207
|
+
});
|
208
|
+
return sendTransaction(walletClient, {
|
209
|
+
...request,
|
210
|
+
data: calldata
|
211
|
+
});
|
212
|
+
}
|
213
|
+
|
218
214
|
// src/actions/public/estimateGas.ts
|
219
215
|
async function estimateGas(client, {
|
220
216
|
blockNumber,
|
@@ -282,20 +278,6 @@ async function getBlock(client, {
|
|
282
278
|
formatter: client.chain?.formatters?.block || formatBlock
|
283
279
|
});
|
284
280
|
}
|
285
|
-
var BlockNotFoundError = class extends BaseError {
|
286
|
-
constructor({
|
287
|
-
blockHash,
|
288
|
-
blockNumber
|
289
|
-
}) {
|
290
|
-
let identifier = "Block";
|
291
|
-
if (blockHash)
|
292
|
-
identifier = `Block at hash "${blockHash}"`;
|
293
|
-
if (blockNumber)
|
294
|
-
identifier = `Block at number "${blockNumber}"`;
|
295
|
-
super(`${identifier} could not be found.`);
|
296
|
-
__publicField(this, "name", "BlockNotFoundError");
|
297
|
-
}
|
298
|
-
};
|
299
281
|
|
300
282
|
// src/actions/public/getBlockNumber.ts
|
301
283
|
var cacheKey = (id) => `blockNumber.${id}`;
|
@@ -334,6 +316,18 @@ async function getBlockTransactionCount(client, {
|
|
334
316
|
return hexToNumber(count);
|
335
317
|
}
|
336
318
|
|
319
|
+
// src/actions/public/getBytecode.ts
|
320
|
+
async function getBytecode(client, { address, blockNumber, blockTag = "latest" }) {
|
321
|
+
const blockNumberHex = blockNumber !== void 0 ? numberToHex(blockNumber) : void 0;
|
322
|
+
const hex = await client.request({
|
323
|
+
method: "eth_getCode",
|
324
|
+
params: [address, blockNumberHex || blockTag]
|
325
|
+
});
|
326
|
+
if (hex === "0x")
|
327
|
+
return void 0;
|
328
|
+
return hex;
|
329
|
+
}
|
330
|
+
|
337
331
|
// src/actions/public/getChainId.ts
|
338
332
|
async function getChainId(client) {
|
339
333
|
const chainIdHex = await client.request({ method: "eth_chainId" });
|
@@ -387,6 +381,51 @@ async function getGasPrice(client) {
|
|
387
381
|
return BigInt(gasPrice);
|
388
382
|
}
|
389
383
|
|
384
|
+
// src/actions/public/getLogs.ts
|
385
|
+
async function getLogs(client, {
|
386
|
+
address,
|
387
|
+
blockHash,
|
388
|
+
fromBlock,
|
389
|
+
toBlock,
|
390
|
+
event,
|
391
|
+
args
|
392
|
+
} = {}) {
|
393
|
+
let topics = [];
|
394
|
+
if (event) {
|
395
|
+
topics = buildFilterTopics({ event, args });
|
396
|
+
}
|
397
|
+
let logs;
|
398
|
+
if (blockHash) {
|
399
|
+
logs = await client.request({
|
400
|
+
method: "eth_getLogs",
|
401
|
+
params: [{ address, topics, blockHash }]
|
402
|
+
});
|
403
|
+
} else {
|
404
|
+
logs = await client.request({
|
405
|
+
method: "eth_getLogs",
|
406
|
+
params: [
|
407
|
+
{
|
408
|
+
address,
|
409
|
+
topics,
|
410
|
+
fromBlock: typeof fromBlock === "bigint" ? numberToHex(fromBlock) : fromBlock,
|
411
|
+
toBlock: typeof toBlock === "bigint" ? numberToHex(toBlock) : toBlock
|
412
|
+
}
|
413
|
+
]
|
414
|
+
});
|
415
|
+
}
|
416
|
+
return logs.map(formatLog);
|
417
|
+
}
|
418
|
+
|
419
|
+
// src/actions/public/getStorageAt.ts
|
420
|
+
async function getStorageAt(client, { address, blockNumber, blockTag = "latest", slot }) {
|
421
|
+
const blockNumberHex = blockNumber !== void 0 ? numberToHex(blockNumber) : void 0;
|
422
|
+
const data = await client.request({
|
423
|
+
method: "eth_getStorageAt",
|
424
|
+
params: [address, slot, blockNumberHex || blockTag]
|
425
|
+
});
|
426
|
+
return data;
|
427
|
+
}
|
428
|
+
|
390
429
|
// src/actions/public/getTransaction.ts
|
391
430
|
async function getTransaction(client, {
|
392
431
|
blockHash,
|
@@ -425,27 +464,6 @@ async function getTransaction(client, {
|
|
425
464
|
formatter: client.chain?.formatters?.transaction || formatTransaction
|
426
465
|
});
|
427
466
|
}
|
428
|
-
var TransactionNotFoundError = class extends BaseError {
|
429
|
-
constructor({
|
430
|
-
blockHash,
|
431
|
-
blockNumber,
|
432
|
-
blockTag,
|
433
|
-
hash,
|
434
|
-
index
|
435
|
-
}) {
|
436
|
-
let identifier = "Transaction";
|
437
|
-
if (blockTag && index !== void 0)
|
438
|
-
identifier = `Transaction at block time "${blockTag}" at index "${index}"`;
|
439
|
-
if (blockHash && index !== void 0)
|
440
|
-
identifier = `Transaction at block hash "${blockHash}" at index "${index}"`;
|
441
|
-
if (blockNumber && index !== void 0)
|
442
|
-
identifier = `Transaction at block number "${blockNumber}" at index "${index}"`;
|
443
|
-
if (hash)
|
444
|
-
identifier = `Transaction with hash "${hash}"`;
|
445
|
-
super(`${identifier} could not be found.`);
|
446
|
-
__publicField(this, "name", "TransactionNotFoundError");
|
447
|
-
}
|
448
|
-
};
|
449
467
|
|
450
468
|
// src/actions/public/getTransactionConfirmations.ts
|
451
469
|
async function getTransactionConfirmations(client, { hash, transactionReceipt }) {
|
@@ -465,7 +483,7 @@ async function getTransactionCount(client, { address, blockTag = "latest", block
|
|
465
483
|
method: "eth_getTransactionCount",
|
466
484
|
params: [address, blockNumber ? numberToHex(blockNumber) : blockTag]
|
467
485
|
});
|
468
|
-
return hexToNumber(count
|
486
|
+
return hexToNumber(count);
|
469
487
|
}
|
470
488
|
|
471
489
|
// src/actions/public/getTransactionReceipt.ts
|
@@ -480,14 +498,40 @@ async function getTransactionReceipt(client, { hash }) {
|
|
480
498
|
formatter: client.chain?.formatters?.transactionReceipt || formatTransactionReceipt
|
481
499
|
});
|
482
500
|
}
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
501
|
+
|
502
|
+
// src/actions/public/readContract.ts
|
503
|
+
async function readContract(client, {
|
504
|
+
abi,
|
505
|
+
address,
|
506
|
+
args,
|
507
|
+
functionName,
|
508
|
+
...callRequest
|
509
|
+
}) {
|
510
|
+
const calldata = encodeFunctionData({
|
511
|
+
abi,
|
512
|
+
args,
|
513
|
+
functionName
|
514
|
+
});
|
515
|
+
try {
|
516
|
+
const { data } = await call(client, {
|
517
|
+
data: calldata,
|
518
|
+
to: address,
|
519
|
+
...callRequest
|
520
|
+
});
|
521
|
+
return decodeFunctionResult({
|
522
|
+
abi,
|
523
|
+
functionName,
|
524
|
+
data: data || "0x"
|
525
|
+
});
|
526
|
+
} catch (err) {
|
527
|
+
throw getContractError(err, {
|
528
|
+
abi,
|
529
|
+
address,
|
530
|
+
args,
|
531
|
+
functionName
|
532
|
+
});
|
489
533
|
}
|
490
|
-
}
|
534
|
+
}
|
491
535
|
|
492
536
|
// src/actions/public/uninstallFilter.ts
|
493
537
|
async function uninstallFilter(client, { filter }) {
|
@@ -539,106 +583,6 @@ function observe(observerId, callbacks, fn) {
|
|
539
583
|
return unwatch;
|
540
584
|
}
|
541
585
|
|
542
|
-
// src/actions/public/waitForTransactionReceipt.ts
|
543
|
-
async function waitForTransactionReceipt(client, {
|
544
|
-
confirmations = 1,
|
545
|
-
hash,
|
546
|
-
onReplaced,
|
547
|
-
pollingInterval = client.pollingInterval,
|
548
|
-
timeout
|
549
|
-
}) {
|
550
|
-
const observerId = JSON.stringify([
|
551
|
-
"waitForTransactionReceipt",
|
552
|
-
client.uid,
|
553
|
-
hash
|
554
|
-
]);
|
555
|
-
let transaction;
|
556
|
-
let replacedTransaction;
|
557
|
-
let receipt;
|
558
|
-
return new Promise((resolve, reject) => {
|
559
|
-
if (timeout)
|
560
|
-
setTimeout(
|
561
|
-
() => reject(new WaitForTransactionReceiptTimeoutError({ hash })),
|
562
|
-
timeout
|
563
|
-
);
|
564
|
-
const unobserve = observe(
|
565
|
-
observerId,
|
566
|
-
{ onReplaced, resolve, reject },
|
567
|
-
(emit) => {
|
568
|
-
const unwatch = watchBlockNumber(client, {
|
569
|
-
emitMissed: true,
|
570
|
-
emitOnBegin: true,
|
571
|
-
pollingInterval,
|
572
|
-
async onBlockNumber(blockNumber) {
|
573
|
-
const done = async (fn) => {
|
574
|
-
unwatch();
|
575
|
-
fn();
|
576
|
-
unobserve();
|
577
|
-
};
|
578
|
-
try {
|
579
|
-
if (receipt) {
|
580
|
-
if (blockNumber - receipt.blockNumber + 1n < confirmations)
|
581
|
-
return;
|
582
|
-
done(() => emit.resolve(receipt));
|
583
|
-
return;
|
584
|
-
}
|
585
|
-
transaction = await getTransaction(client, { hash });
|
586
|
-
receipt = await getTransactionReceipt(client, { hash });
|
587
|
-
if (blockNumber - receipt.blockNumber + 1n < confirmations)
|
588
|
-
return;
|
589
|
-
done(() => emit.resolve(receipt));
|
590
|
-
} catch (err) {
|
591
|
-
if (transaction && (err instanceof TransactionNotFoundError || err instanceof TransactionReceiptNotFoundError)) {
|
592
|
-
replacedTransaction = transaction;
|
593
|
-
const block = await getBlock(client, {
|
594
|
-
blockNumber,
|
595
|
-
includeTransactions: true
|
596
|
-
});
|
597
|
-
const replacementTransaction = block.transactions.find(
|
598
|
-
({ from, nonce }) => from === replacedTransaction.from && nonce === replacedTransaction.nonce
|
599
|
-
);
|
600
|
-
if (!replacementTransaction)
|
601
|
-
return;
|
602
|
-
receipt = await getTransactionReceipt(client, {
|
603
|
-
hash: replacementTransaction.hash
|
604
|
-
});
|
605
|
-
if (blockNumber - receipt.blockNumber + 1n < confirmations)
|
606
|
-
return;
|
607
|
-
let reason = "replaced";
|
608
|
-
if (replacementTransaction.to === replacedTransaction.to && replacementTransaction.value === replacedTransaction.value) {
|
609
|
-
reason = "repriced";
|
610
|
-
} else if (replacementTransaction.from === replacementTransaction.to && replacementTransaction.value === 0n) {
|
611
|
-
reason = "cancelled";
|
612
|
-
}
|
613
|
-
done(() => {
|
614
|
-
emit.onReplaced?.({
|
615
|
-
reason,
|
616
|
-
replacedTransaction,
|
617
|
-
transaction: replacementTransaction,
|
618
|
-
transactionReceipt: receipt
|
619
|
-
});
|
620
|
-
emit.resolve(receipt);
|
621
|
-
});
|
622
|
-
} else {
|
623
|
-
done(() => emit.reject(err));
|
624
|
-
}
|
625
|
-
}
|
626
|
-
}
|
627
|
-
});
|
628
|
-
return unwatch;
|
629
|
-
}
|
630
|
-
);
|
631
|
-
});
|
632
|
-
}
|
633
|
-
var WaitForTransactionReceiptTimeoutError = class extends BaseError {
|
634
|
-
constructor({ hash }) {
|
635
|
-
super(
|
636
|
-
`Timed out while waiting for transaction with hash "${hash}" to be confirmed.`
|
637
|
-
);
|
638
|
-
__publicField(this, "name", "WaitForTransactionReceiptTimeoutError");
|
639
|
-
}
|
640
|
-
};
|
641
|
-
|
642
586
|
// src/utils/poll.ts
|
643
587
|
function poll(fn, { emitOnBegin, initialWaitTime, interval }) {
|
644
588
|
let active = true;
|
@@ -794,6 +738,8 @@ function watchPendingTransactions(client, {
|
|
794
738
|
}
|
795
739
|
}
|
796
740
|
const hashes = await getFilterChanges(client, { filter });
|
741
|
+
if (hashes.length === 0)
|
742
|
+
return;
|
797
743
|
if (batch)
|
798
744
|
emit.onTransactions(hashes);
|
799
745
|
else
|
@@ -815,284 +761,129 @@ function watchPendingTransactions(client, {
|
|
815
761
|
});
|
816
762
|
}
|
817
763
|
|
818
|
-
// src/actions/
|
819
|
-
async function
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
}
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
}
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
}
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
}
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
const request_ = formatTransactionRequest(request);
|
908
|
-
const hash = await client.request({
|
909
|
-
method: "eth_sendUnsignedTransaction",
|
910
|
-
params: [request_]
|
911
|
-
});
|
912
|
-
return hash;
|
913
|
-
}
|
914
|
-
|
915
|
-
// src/actions/test/setAutomine.ts
|
916
|
-
async function setAutomine(client, enabled) {
|
917
|
-
return await client.request({
|
918
|
-
method: "evm_setAutomine",
|
919
|
-
params: [enabled]
|
920
|
-
});
|
921
|
-
}
|
922
|
-
|
923
|
-
// src/actions/test/setBalance.ts
|
924
|
-
async function setBalance(client, { address, value }) {
|
925
|
-
return await client.request({
|
926
|
-
method: `${client.mode}_setBalance`,
|
927
|
-
params: [address, numberToHex(value)]
|
928
|
-
});
|
929
|
-
}
|
930
|
-
|
931
|
-
// src/actions/test/setBlockGasLimit.ts
|
932
|
-
async function setBlockGasLimit(client, { gasLimit }) {
|
933
|
-
return await client.request({
|
934
|
-
method: "evm_setBlockGasLimit",
|
935
|
-
params: [numberToHex(gasLimit)]
|
936
|
-
});
|
937
|
-
}
|
938
|
-
|
939
|
-
// src/actions/test/setBlockTimestampInterval.ts
|
940
|
-
async function setBlockTimestampInterval(client, { interval }) {
|
941
|
-
return await client.request({
|
942
|
-
method: `${client.mode}_setBlockTimestampInterval`,
|
943
|
-
params: [interval]
|
944
|
-
});
|
945
|
-
}
|
946
|
-
|
947
|
-
// src/actions/test/setCode.ts
|
948
|
-
async function setCode(client, { address, bytecode }) {
|
949
|
-
return await client.request({
|
950
|
-
method: `${client.mode}_setCode`,
|
951
|
-
params: [address, bytecode]
|
952
|
-
});
|
953
|
-
}
|
954
|
-
|
955
|
-
// src/actions/test/setCoinbase.ts
|
956
|
-
async function setCoinbase(client, { address }) {
|
957
|
-
return await client.request({
|
958
|
-
method: `${client.mode}_setCoinbase`,
|
959
|
-
params: [address]
|
960
|
-
});
|
961
|
-
}
|
962
|
-
|
963
|
-
// src/actions/test/setIntervalMining.ts
|
964
|
-
async function setIntervalMining(client, { interval }) {
|
965
|
-
return await client.request({
|
966
|
-
method: "evm_setIntervalMining",
|
967
|
-
params: [interval]
|
968
|
-
});
|
969
|
-
}
|
970
|
-
|
971
|
-
// src/actions/test/setLoggingEnabled.ts
|
972
|
-
async function setLoggingEnabled(client, enabled) {
|
973
|
-
return await client.request({
|
974
|
-
method: `${client.mode}_setLoggingEnabled`,
|
975
|
-
params: [enabled]
|
976
|
-
});
|
977
|
-
}
|
978
|
-
|
979
|
-
// src/actions/test/setMinGasPrice.ts
|
980
|
-
async function setMinGasPrice(client, { gasPrice }) {
|
981
|
-
return await client.request({
|
982
|
-
method: `${client.mode}_setMinGasPrice`,
|
983
|
-
params: [numberToHex(gasPrice)]
|
984
|
-
});
|
985
|
-
}
|
986
|
-
|
987
|
-
// src/actions/test/setNextBlockBaseFeePerGas.ts
|
988
|
-
async function setNextBlockBaseFeePerGas(client, { baseFeePerGas }) {
|
989
|
-
return await client.request({
|
990
|
-
method: `${client.mode}_setNextBlockBaseFeePerGas`,
|
991
|
-
params: [numberToHex(baseFeePerGas)]
|
992
|
-
});
|
993
|
-
}
|
994
|
-
|
995
|
-
// src/actions/test/setNextBlockTimestamp.ts
|
996
|
-
async function setNextBlockTimestamp(client, { timestamp }) {
|
997
|
-
return await client.request({
|
998
|
-
method: "evm_setNextBlockTimestamp",
|
999
|
-
params: [numberToHex(timestamp)]
|
1000
|
-
});
|
1001
|
-
}
|
1002
|
-
|
1003
|
-
// src/actions/test/setNonce.ts
|
1004
|
-
async function setNonce(client, { address, nonce }) {
|
1005
|
-
return await client.request({
|
1006
|
-
method: `${client.mode}_setNonce`,
|
1007
|
-
params: [address, numberToHex(nonce)]
|
1008
|
-
});
|
1009
|
-
}
|
1010
|
-
|
1011
|
-
// src/actions/test/setStorageAt.ts
|
1012
|
-
async function setStorageAt(client, { address, index, value }) {
|
1013
|
-
return await client.request({
|
1014
|
-
method: `${client.mode}_setStorageAt`,
|
1015
|
-
params: [
|
1016
|
-
address,
|
1017
|
-
typeof index === "number" ? numberToHex(index) : index,
|
1018
|
-
value
|
1019
|
-
]
|
1020
|
-
});
|
1021
|
-
}
|
1022
|
-
|
1023
|
-
// src/actions/test/snapshot.ts
|
1024
|
-
async function snapshot(client) {
|
1025
|
-
return await client.request({
|
1026
|
-
method: "evm_snapshot"
|
1027
|
-
});
|
1028
|
-
}
|
1029
|
-
|
1030
|
-
// src/actions/test/stopImpersonatingAccount.ts
|
1031
|
-
async function stopImpersonatingAccount(client, { address }) {
|
1032
|
-
return await client.request({
|
1033
|
-
method: `${client.mode}_stopImpersonatingAccount`,
|
1034
|
-
params: [address]
|
764
|
+
// src/actions/public/waitForTransactionReceipt.ts
|
765
|
+
async function waitForTransactionReceipt(client, {
|
766
|
+
confirmations = 1,
|
767
|
+
hash,
|
768
|
+
onReplaced,
|
769
|
+
pollingInterval = client.pollingInterval,
|
770
|
+
timeout
|
771
|
+
}) {
|
772
|
+
const observerId = JSON.stringify([
|
773
|
+
"waitForTransactionReceipt",
|
774
|
+
client.uid,
|
775
|
+
hash
|
776
|
+
]);
|
777
|
+
let transaction;
|
778
|
+
let replacedTransaction;
|
779
|
+
let receipt;
|
780
|
+
return new Promise((resolve, reject) => {
|
781
|
+
if (timeout)
|
782
|
+
setTimeout(
|
783
|
+
() => reject(new WaitForTransactionReceiptTimeoutError({ hash })),
|
784
|
+
timeout
|
785
|
+
);
|
786
|
+
const unobserve = observe(
|
787
|
+
observerId,
|
788
|
+
{ onReplaced, resolve, reject },
|
789
|
+
(emit) => {
|
790
|
+
const unwatch = watchBlockNumber(client, {
|
791
|
+
emitMissed: true,
|
792
|
+
emitOnBegin: true,
|
793
|
+
pollingInterval,
|
794
|
+
async onBlockNumber(blockNumber) {
|
795
|
+
const done = async (fn) => {
|
796
|
+
unwatch();
|
797
|
+
fn();
|
798
|
+
unobserve();
|
799
|
+
};
|
800
|
+
try {
|
801
|
+
if (receipt) {
|
802
|
+
if (blockNumber - receipt.blockNumber + 1n < confirmations)
|
803
|
+
return;
|
804
|
+
done(() => emit.resolve(receipt));
|
805
|
+
return;
|
806
|
+
}
|
807
|
+
transaction = await getTransaction(client, { hash });
|
808
|
+
receipt = await getTransactionReceipt(client, { hash });
|
809
|
+
if (blockNumber - receipt.blockNumber + 1n < confirmations)
|
810
|
+
return;
|
811
|
+
done(() => emit.resolve(receipt));
|
812
|
+
} catch (err) {
|
813
|
+
if (transaction && (err instanceof TransactionNotFoundError || err instanceof TransactionReceiptNotFoundError)) {
|
814
|
+
replacedTransaction = transaction;
|
815
|
+
const block = await getBlock(client, {
|
816
|
+
blockNumber,
|
817
|
+
includeTransactions: true
|
818
|
+
});
|
819
|
+
const replacementTransaction = block.transactions.find(
|
820
|
+
({ from, nonce }) => from === replacedTransaction.from && nonce === replacedTransaction.nonce
|
821
|
+
);
|
822
|
+
if (!replacementTransaction)
|
823
|
+
return;
|
824
|
+
receipt = await getTransactionReceipt(client, {
|
825
|
+
hash: replacementTransaction.hash
|
826
|
+
});
|
827
|
+
if (blockNumber - receipt.blockNumber + 1n < confirmations)
|
828
|
+
return;
|
829
|
+
let reason = "replaced";
|
830
|
+
if (replacementTransaction.to === replacedTransaction.to && replacementTransaction.value === replacedTransaction.value) {
|
831
|
+
reason = "repriced";
|
832
|
+
} else if (replacementTransaction.from === replacementTransaction.to && replacementTransaction.value === 0n) {
|
833
|
+
reason = "cancelled";
|
834
|
+
}
|
835
|
+
done(() => {
|
836
|
+
emit.onReplaced?.({
|
837
|
+
reason,
|
838
|
+
replacedTransaction,
|
839
|
+
transaction: replacementTransaction,
|
840
|
+
transactionReceipt: receipt
|
841
|
+
});
|
842
|
+
emit.resolve(receipt);
|
843
|
+
});
|
844
|
+
} else {
|
845
|
+
done(() => emit.reject(err));
|
846
|
+
}
|
847
|
+
}
|
848
|
+
}
|
849
|
+
});
|
850
|
+
return unwatch;
|
851
|
+
}
|
852
|
+
);
|
1035
853
|
});
|
1036
854
|
}
|
1037
855
|
|
1038
856
|
export {
|
1039
|
-
addChain,
|
1040
|
-
getAccounts,
|
1041
|
-
getPermissions,
|
1042
|
-
requestAccounts,
|
1043
|
-
requestPermissions,
|
1044
|
-
sendTransaction,
|
1045
|
-
signMessage,
|
1046
|
-
switchChain,
|
1047
|
-
watchAsset,
|
1048
857
|
call,
|
858
|
+
simulateContract,
|
1049
859
|
createPendingTransactionFilter,
|
1050
860
|
createBlockFilter,
|
861
|
+
createEventFilter,
|
862
|
+
createContractEventFilter,
|
863
|
+
deployContract,
|
1051
864
|
estimateGas,
|
1052
865
|
getBalance,
|
1053
866
|
getBlock,
|
1054
867
|
getBlockNumberCache,
|
1055
868
|
getBlockNumber,
|
1056
869
|
getBlockTransactionCount,
|
870
|
+
getBytecode,
|
1057
871
|
getChainId,
|
1058
872
|
getFeeHistory,
|
1059
873
|
getFilterChanges,
|
1060
874
|
getFilterLogs,
|
1061
875
|
getGasPrice,
|
876
|
+
getLogs,
|
877
|
+
getStorageAt,
|
1062
878
|
getTransaction,
|
1063
879
|
getTransactionConfirmations,
|
1064
880
|
getTransactionCount,
|
1065
881
|
getTransactionReceipt,
|
882
|
+
readContract,
|
1066
883
|
uninstallFilter,
|
1067
884
|
waitForTransactionReceipt,
|
1068
885
|
watchBlockNumber,
|
1069
886
|
watchBlocks,
|
1070
|
-
watchPendingTransactions
|
1071
|
-
dropTransaction,
|
1072
|
-
getAutomine,
|
1073
|
-
getTxpoolContent,
|
1074
|
-
getTxpoolStatus,
|
1075
|
-
impersonateAccount,
|
1076
|
-
increaseTime,
|
1077
|
-
inspectTxpool,
|
1078
|
-
mine,
|
1079
|
-
removeBlockTimestampInterval,
|
1080
|
-
reset,
|
1081
|
-
revert,
|
1082
|
-
sendUnsignedTransaction,
|
1083
|
-
setAutomine,
|
1084
|
-
setBalance,
|
1085
|
-
setBlockGasLimit,
|
1086
|
-
setBlockTimestampInterval,
|
1087
|
-
setCode,
|
1088
|
-
setCoinbase,
|
1089
|
-
setIntervalMining,
|
1090
|
-
setLoggingEnabled,
|
1091
|
-
setMinGasPrice,
|
1092
|
-
setNextBlockBaseFeePerGas,
|
1093
|
-
setNextBlockTimestamp,
|
1094
|
-
setNonce,
|
1095
|
-
setStorageAt,
|
1096
|
-
snapshot,
|
1097
|
-
stopImpersonatingAccount
|
887
|
+
watchPendingTransactions
|
1098
888
|
};
|
889
|
+
//# sourceMappingURL=chunk-MYQNZSWD.mjs.map
|