viem 0.0.1-cjs.10 → 0.0.1-sushi.26
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/contract/package.json +4 -0
- package/dist/call-ac509982.d.ts +23 -0
- package/dist/chain-c4ccb458.d.ts +5 -0
- package/dist/{rpc-b77c5aee.d.ts → chain-f16512e8.d.ts} +97 -17
- package/dist/chains.d.ts +1303 -74
- package/dist/chains.js +81 -85
- package/dist/chains.js.map +1 -0
- package/dist/chains.mjs +121 -125
- package/dist/chains.mjs.map +1 -0
- package/dist/chunk-2PFNLP3F.js +192 -0
- package/dist/chunk-2PFNLP3F.js.map +1 -0
- package/dist/chunk-5ND4P6QL.mjs +192 -0
- package/dist/chunk-5ND4P6QL.mjs.map +1 -0
- package/dist/{chunk-5ZBNF5WM.js → chunk-NXCI5KQC.js} +769 -359
- package/dist/chunk-NXCI5KQC.js.map +1 -0
- package/dist/{chunk-HLVCJ7RV.mjs → chunk-O7T5NQLB.mjs} +484 -477
- package/dist/chunk-O7T5NQLB.mjs.map +1 -0
- package/dist/{chunk-2FDH6XP5.mjs → chunk-SD5X7F4U.mjs} +777 -367
- package/dist/chunk-SD5X7F4U.mjs.map +1 -0
- package/dist/{chunk-46ZFLVHC.js → chunk-UTL6F7UN.js} +519 -512
- package/dist/chunk-UTL6F7UN.js.map +1 -0
- package/dist/contract-9e76e561.d.ts +166 -0
- package/dist/contract.d.ts +123 -0
- package/dist/contract.js +53 -0
- package/dist/contract.js.map +1 -0
- package/dist/contract.mjs +53 -0
- package/dist/contract.mjs.map +1 -0
- package/dist/createClient-68ee4bb4.d.ts +62 -0
- package/dist/createPublicClient-b732194e.d.ts +19 -0
- package/dist/createTestClient-dedf321e.d.ts +34 -0
- package/dist/createWalletClient-75813d83.d.ts +30 -0
- package/dist/decodeErrorResult-0b934d23.d.ts +16 -0
- package/dist/{eip1193-020a6f13.d.ts → eip1193-6f9ba163.d.ts} +12 -9
- package/dist/ens.d.ts +82 -0
- package/dist/ens.js +216 -0
- package/dist/ens.js.map +1 -0
- package/dist/ens.mjs +216 -0
- package/dist/ens.mjs.map +1 -0
- package/dist/getAbiItem-c8e6e7d4.d.ts +97 -0
- package/dist/index.d.ts +128 -33
- package/dist/index.js +240 -244
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +257 -261
- package/dist/index.mjs.map +1 -0
- package/dist/public.d.ts +353 -0
- package/dist/public.js +58 -0
- package/dist/public.js.map +1 -0
- package/dist/public.mjs +58 -0
- package/dist/public.mjs.map +1 -0
- package/dist/readContract-4f6e2692.d.ts +10 -0
- package/dist/rpc-a5a7f376.d.ts +121 -0
- package/dist/sendTransaction-e713f90c.d.ts +12 -0
- package/dist/test.d.ts +161 -0
- package/dist/test.js +264 -0
- package/dist/test.js.map +1 -0
- package/dist/test.mjs +264 -0
- package/dist/test.mjs.map +1 -0
- package/dist/transactionReceipt-2a86c7c7.d.ts +26 -0
- package/dist/transactionRequest-c7794f5e.d.ts +15 -0
- package/dist/utils/index.d.ts +238 -24
- package/dist/utils/index.js +27 -2
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +30 -5
- package/dist/utils/index.mjs.map +1 -0
- package/dist/wallet.d.ts +42 -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/watchEvent-c346c12d.d.ts +41 -0
- package/dist/window.d.ts +3 -2
- package/dist/window.js +1 -1
- package/dist/window.js.map +1 -0
- package/dist/window.mjs +1 -0
- package/dist/window.mjs.map +1 -0
- package/ens/package.json +4 -0
- package/package.json +40 -72
- package/src/_test/abis.ts +1420 -0
- package/src/_test/bench.ts +15 -0
- package/src/_test/constants.ts +63 -0
- package/src/_test/generated.ts +128 -0
- package/src/_test/globalSetup.ts +11 -0
- package/src/_test/index.ts +25 -0
- package/src/_test/setup.ts +8 -0
- package/src/_test/utils.ts +155 -0
- package/src/actions/ens/getEnsAddress.bench.ts +26 -0
- package/src/actions/ens/getEnsAddress.test.ts +97 -0
- package/src/actions/ens/getEnsAddress.ts +122 -0
- package/src/actions/ens/getEnsName.bench.ts +30 -0
- package/src/actions/ens/getEnsName.test.ts +101 -0
- package/src/actions/ens/getEnsName.ts +106 -0
- package/src/actions/ens/index.test.ts +12 -0
- package/src/actions/ens/index.ts +3 -0
- package/src/actions/index.test.ts +81 -0
- package/src/actions/index.ts +182 -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 +277 -0
- package/src/actions/public/createEventFilter.ts +93 -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/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 +383 -0
- package/src/actions/public/getFilterChanges.ts +23 -0
- package/src/actions/public/getFilterLogs.test.ts +297 -0
- package/src/actions/public/getFilterLogs.ts +20 -0
- package/src/actions/public/getGasPrice.bench.ts +19 -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 +306 -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 +146 -0
- package/src/actions/public/multicall.test.ts +452 -0
- package/src/actions/public/multicall.ts +108 -0
- package/src/actions/public/readContract.test.ts +328 -0
- package/src/actions/public/readContract.ts +73 -0
- package/src/actions/public/simulateContract.bench.ts +41 -0
- package/src/actions/public/simulateContract.test.ts +410 -0
- package/src/actions/public/simulateContract.ts +91 -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 +305 -0
- package/src/actions/public/watchContractEvent.ts +108 -0
- package/src/actions/public/watchEvent.test.ts +195 -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 +26 -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 +29 -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/deployContract.test.ts +55 -0
- package/src/actions/wallet/deployContract.ts +38 -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 +21 -0
- package/src/actions/wallet/index.ts +36 -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 +61 -0
- package/src/actions/wallet/signMessage.ts +35 -0
- package/src/actions/wallet/switchChain.test.ts +21 -0
- package/src/actions/wallet/switchChain.ts +19 -0
- package/src/actions/wallet/watchAsset.test.ts +40 -0
- package/src/actions/wallet/watchAsset.ts +16 -0
- package/src/actions/wallet/writeContract.test.ts +84 -0
- package/src/actions/wallet/writeContract.ts +47 -0
- package/src/chains.test.ts +439 -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 +393 -0
- package/src/clients/transports/fallback.ts +58 -0
- package/src/clients/transports/http.test.ts +109 -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 +118 -0
- package/src/constants/abis.test.ts +53 -0
- package/src/constants/abis.ts +44 -0
- package/src/constants/index.test.ts +14 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/solidity.test.ts +41 -0
- package/src/constants/solidity.ts +35 -0
- package/src/contract.test.ts +32 -0
- package/src/contract.ts +68 -0
- package/src/ens.test.ts +15 -0
- package/src/ens.ts +8 -0
- package/src/errors/abi.test.ts +81 -0
- package/src/errors/abi.ts +254 -0
- package/src/errors/address.test.ts +14 -0
- package/src/errors/address.ts +9 -0
- package/src/errors/base.test.ts +114 -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/chain.test.ts +46 -0
- package/src/errors/chain.ts +33 -0
- package/src/errors/contract.test.ts +233 -0
- package/src/errors/contract.ts +178 -0
- package/src/errors/data.ts +20 -0
- package/src/errors/encoding.ts +60 -0
- package/src/errors/index.ts +82 -0
- package/src/errors/log.ts +8 -0
- package/src/errors/request.test.ts +330 -0
- package/src/errors/request.ts +163 -0
- package/src/errors/rpc.test.ts +87 -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 +11 -0
- package/src/errors/transport.ts +12 -0
- package/src/index.test.ts +116 -0
- package/src/index.ts +132 -0
- package/src/public.test.ts +36 -0
- package/src/public.ts +76 -0
- package/src/test.test.ts +38 -0
- package/src/test.ts +52 -0
- package/src/types/block.ts +71 -0
- package/src/types/chain.ts +6 -0
- package/src/types/contract.ts +497 -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 +84 -0
- package/src/types/log.ts +22 -0
- package/src/types/misc.ts +5 -0
- package/src/types/multicall.ts +82 -0
- package/src/types/rpc.ts +35 -0
- package/src/types/transaction.ts +145 -0
- package/src/types/utils.ts +88 -0
- package/src/types/window.ts +9 -0
- package/src/utils/abi/decodeAbi.bench.ts +135 -0
- package/src/utils/abi/decodeAbi.test.ts +1614 -0
- package/src/utils/abi/decodeAbi.ts +300 -0
- package/src/utils/abi/decodeDeployData.test.ts +151 -0
- package/src/utils/abi/decodeDeployData.ts +44 -0
- package/src/utils/abi/decodeErrorResult.test.ts +230 -0
- package/src/utils/abi/decodeErrorResult.ts +45 -0
- package/src/utils/abi/decodeEventLog.test.ts +542 -0
- package/src/utils/abi/decodeEventLog.ts +107 -0
- package/src/utils/abi/decodeFunctionData.test.ts +138 -0
- package/src/utils/abi/decodeFunctionData.ts +32 -0
- package/src/utils/abi/decodeFunctionResult.test.ts +333 -0
- package/src/utils/abi/decodeFunctionResult.ts +57 -0
- package/src/utils/abi/encodeAbi.bench.ts +163 -0
- package/src/utils/abi/encodeAbi.test.ts +1447 -0
- package/src/utils/abi/encodeAbi.ts +273 -0
- package/src/utils/abi/encodeDeployData.test.ts +124 -0
- package/src/utils/abi/encodeDeployData.ts +40 -0
- package/src/utils/abi/encodeErrorResult.test.ts +192 -0
- package/src/utils/abi/encodeErrorResult.ts +47 -0
- package/src/utils/abi/encodeEventTopics.test.ts +345 -0
- package/src/utils/abi/encodeEventTopics.ts +75 -0
- package/src/utils/abi/encodeFunctionData.test.ts +138 -0
- package/src/utils/abi/encodeFunctionData.ts +42 -0
- package/src/utils/abi/encodeFunctionResult.test.ts +279 -0
- package/src/utils/abi/encodeFunctionResult.ts +41 -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.test.ts +547 -0
- package/src/utils/abi/getAbiItem.ts +95 -0
- package/src/utils/abi/index.test.ts +24 -0
- package/src/utils/abi/index.ts +48 -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 +428 -0
- package/src/utils/buildRequest.ts +72 -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 +282 -0
- package/src/utils/contract/getContractError.ts +58 -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 +30 -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 +34 -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 +29 -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 +49 -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/ens/index.test.ts +14 -0
- package/src/utils/ens/index.ts +7 -0
- package/src/utils/ens/labelhash.test.ts +55 -0
- package/src/utils/ens/labelhash.ts +16 -0
- package/src/utils/ens/namehash.test.ts +65 -0
- package/src/utils/ens/namehash.ts +28 -0
- package/src/utils/ens/normalize.bench.ts +14 -0
- package/src/utils/ens/normalize.test.ts +35 -0
- package/src/utils/ens/normalize.ts +14 -0
- package/src/utils/ens/packetToBytes.test.ts +11 -0
- package/src/utils/ens/packetToBytes.ts +29 -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 +21 -0
- package/src/utils/index.test.ts +111 -0
- package/src/utils/index.ts +142 -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 +990 -0
- package/src/utils/rpc.ts +294 -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 +21 -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 +21 -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.test.ts +19 -0
- package/src/wallet.ts +23 -0
- package/src/window.ts +1 -0
- package/wallet/package.json +4 -0
- package/actions/package.json +0 -4
- package/clients/package.json +0 -4
- package/dist/actions/index.d.ts +0 -8
- package/dist/actions/index.js +0 -125
- package/dist/actions/index.mjs +0 -125
- package/dist/chunk-CWCWWGBC.mjs +0 -258
- package/dist/chunk-SGTIBKHG.js +0 -258
- package/dist/clients/index.d.ts +0 -7
- package/dist/clients/index.js +0 -23
- package/dist/clients/index.mjs +0 -23
- package/dist/createWalletClient-d612fe08.d.ts +0 -130
- package/dist/parseGwei-7c87ff41.d.ts +0 -278
- package/dist/rpc-26932bae.d.ts +0 -61
- package/dist/transactionRequest-08d30731.d.ts +0 -132
- package/dist/watchAsset-bc6373f4.d.ts +0 -534
- package/dist/webSocket-7f88e9e0.d.ts +0 -83
@@ -0,0 +1,254 @@
|
|
1
|
+
import { Hex } from '../types'
|
2
|
+
import { BaseError } from './base'
|
3
|
+
|
4
|
+
export class AbiConstructorNotFoundError extends BaseError {
|
5
|
+
name = 'AbiConstructorNotFoundError'
|
6
|
+
constructor({ docsPath }: { docsPath: string }) {
|
7
|
+
super(
|
8
|
+
[
|
9
|
+
'A constructor was not found on the ABI.',
|
10
|
+
'Make sure you are using the correct ABI and that the constructor exists on it.',
|
11
|
+
].join('\n'),
|
12
|
+
{
|
13
|
+
docsPath,
|
14
|
+
},
|
15
|
+
)
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
export class AbiConstructorParamsNotFoundError extends BaseError {
|
20
|
+
name = 'AbiConstructorParamsNotFoundError'
|
21
|
+
constructor({ docsPath }: { docsPath: string }) {
|
22
|
+
super(
|
23
|
+
[
|
24
|
+
'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',
|
25
|
+
'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',
|
26
|
+
].join('\n'),
|
27
|
+
{
|
28
|
+
docsPath,
|
29
|
+
},
|
30
|
+
)
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
export class AbiDecodingDataSizeInvalidError extends BaseError {
|
35
|
+
name = 'AbiDecodingDataSizeInvalidError'
|
36
|
+
constructor(size: number) {
|
37
|
+
super(
|
38
|
+
[
|
39
|
+
`Data size of ${size} bytes is invalid.`,
|
40
|
+
'Size must be in increments of 32 bytes (size % 32 === 0).',
|
41
|
+
].join('\n'),
|
42
|
+
)
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
export class AbiDecodingZeroDataError extends BaseError {
|
47
|
+
name = 'AbiDecodingZeroDataError'
|
48
|
+
constructor() {
|
49
|
+
super('Cannot decode zero data ("0x") with ABI parameters.')
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
export class AbiEncodingArrayLengthMismatchError extends BaseError {
|
54
|
+
name = 'AbiEncodingArrayLengthMismatchError'
|
55
|
+
constructor({
|
56
|
+
expectedLength,
|
57
|
+
givenLength,
|
58
|
+
type,
|
59
|
+
}: { expectedLength: number; givenLength: number; type: string }) {
|
60
|
+
super(
|
61
|
+
[
|
62
|
+
`ABI encoding array length mismatch for type ${type}.`,
|
63
|
+
`Expected length: ${expectedLength}`,
|
64
|
+
`Given length: ${givenLength}`,
|
65
|
+
].join('\n'),
|
66
|
+
)
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
export class AbiEncodingLengthMismatchError extends BaseError {
|
71
|
+
name = 'AbiEncodingLengthMismatchError'
|
72
|
+
constructor({
|
73
|
+
expectedLength,
|
74
|
+
givenLength,
|
75
|
+
}: { expectedLength: number; givenLength: number }) {
|
76
|
+
super(
|
77
|
+
[
|
78
|
+
'ABI encoding params/values length mismatch.',
|
79
|
+
`Expected length (params): ${expectedLength}`,
|
80
|
+
`Given length (values): ${givenLength}`,
|
81
|
+
].join('\n'),
|
82
|
+
)
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
export class AbiErrorInputsNotFoundError extends BaseError {
|
87
|
+
name = 'AbiErrorInputsNotFoundError'
|
88
|
+
constructor(errorName: string, { docsPath }: { docsPath: string }) {
|
89
|
+
super(
|
90
|
+
[
|
91
|
+
`Arguments (\`args\`) were provided to "${errorName}", but "${errorName}" on the ABI does not contain any parameters (\`inputs\`).`,
|
92
|
+
'Cannot encode error result without knowing what the parameter types are.',
|
93
|
+
'Make sure you are using the correct ABI and that the inputs exist on it.',
|
94
|
+
].join('\n'),
|
95
|
+
{
|
96
|
+
docsPath,
|
97
|
+
},
|
98
|
+
)
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
export class AbiErrorNotFoundError extends BaseError {
|
103
|
+
name = 'AbiErrorNotFoundError'
|
104
|
+
constructor(errorName: string, { docsPath }: { docsPath: string }) {
|
105
|
+
super(
|
106
|
+
[
|
107
|
+
`Error "${errorName}" not found on ABI.`,
|
108
|
+
'Make sure you are using the correct ABI and that the error exists on it.',
|
109
|
+
].join('\n'),
|
110
|
+
{
|
111
|
+
docsPath,
|
112
|
+
},
|
113
|
+
)
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
export class AbiErrorSignatureNotFoundError extends BaseError {
|
118
|
+
name = 'AbiErrorSignatureNotFoundError'
|
119
|
+
constructor(signature: Hex, { docsPath }: { docsPath: string }) {
|
120
|
+
super(
|
121
|
+
[
|
122
|
+
`Encoded error signature "${signature}" not found on ABI.`,
|
123
|
+
'Make sure you are using the correct ABI and that the error exists on it.',
|
124
|
+
`You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,
|
125
|
+
].join('\n'),
|
126
|
+
{
|
127
|
+
docsPath,
|
128
|
+
},
|
129
|
+
)
|
130
|
+
}
|
131
|
+
}
|
132
|
+
|
133
|
+
export class AbiEventSignatureNotFoundError extends BaseError {
|
134
|
+
name = 'AbiEventSignatureNotFoundError'
|
135
|
+
constructor(signature: Hex, { docsPath }: { docsPath: string }) {
|
136
|
+
super(
|
137
|
+
[
|
138
|
+
`Encoded event signature "${signature}" not found on ABI.`,
|
139
|
+
'Make sure you are using the correct ABI and that the event exists on it.',
|
140
|
+
`You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,
|
141
|
+
].join('\n'),
|
142
|
+
{
|
143
|
+
docsPath,
|
144
|
+
},
|
145
|
+
)
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
export class AbiEventNotFoundError extends BaseError {
|
150
|
+
name = 'AbiEventNotFoundError'
|
151
|
+
constructor(eventName: string, { docsPath }: { docsPath: string }) {
|
152
|
+
super(
|
153
|
+
[
|
154
|
+
`Event "${eventName}" not found on ABI.`,
|
155
|
+
'Make sure you are using the correct ABI and that the event exists on it.',
|
156
|
+
].join('\n'),
|
157
|
+
{
|
158
|
+
docsPath,
|
159
|
+
},
|
160
|
+
)
|
161
|
+
}
|
162
|
+
}
|
163
|
+
|
164
|
+
export class AbiFunctionNotFoundError extends BaseError {
|
165
|
+
name = 'AbiFunctionNotFoundError'
|
166
|
+
constructor(functionName: string, { docsPath }: { docsPath: string }) {
|
167
|
+
super(
|
168
|
+
[
|
169
|
+
`Function "${functionName}" not found on ABI.`,
|
170
|
+
'Make sure you are using the correct ABI and that the function exists on it.',
|
171
|
+
].join('\n'),
|
172
|
+
{
|
173
|
+
docsPath,
|
174
|
+
},
|
175
|
+
)
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
179
|
+
export class AbiFunctionOutputsNotFoundError extends BaseError {
|
180
|
+
name = 'AbiFunctionOutputsNotFoundError'
|
181
|
+
constructor(functionName: string, { docsPath }: { docsPath: string }) {
|
182
|
+
super(
|
183
|
+
[
|
184
|
+
`Function "${functionName}" does not contain any \`outputs\` on ABI.`,
|
185
|
+
'Cannot decode function result without knowing what the parameter types are.',
|
186
|
+
'Make sure you are using the correct ABI and that the function exists on it.',
|
187
|
+
].join('\n'),
|
188
|
+
{
|
189
|
+
docsPath,
|
190
|
+
},
|
191
|
+
)
|
192
|
+
}
|
193
|
+
}
|
194
|
+
|
195
|
+
export class AbiFunctionSignatureNotFoundError extends BaseError {
|
196
|
+
name = 'AbiFunctionSignatureNotFoundError'
|
197
|
+
constructor(signature: Hex, { docsPath }: { docsPath: string }) {
|
198
|
+
super(
|
199
|
+
[
|
200
|
+
`Encoded function signature "${signature}" not found on ABI.`,
|
201
|
+
'Make sure you are using the correct ABI and that the function exists on it.',
|
202
|
+
`You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,
|
203
|
+
].join('\n'),
|
204
|
+
{
|
205
|
+
docsPath,
|
206
|
+
},
|
207
|
+
)
|
208
|
+
}
|
209
|
+
}
|
210
|
+
|
211
|
+
export class InvalidAbiEncodingTypeError extends BaseError {
|
212
|
+
name = 'InvalidAbiEncodingType'
|
213
|
+
constructor(type: string, { docsPath }: { docsPath: string }) {
|
214
|
+
super(
|
215
|
+
[
|
216
|
+
`Type "${type}" is not a valid encoding type.`,
|
217
|
+
'Please provide a valid ABI type.',
|
218
|
+
].join('\n'),
|
219
|
+
{ docsPath },
|
220
|
+
)
|
221
|
+
}
|
222
|
+
}
|
223
|
+
|
224
|
+
export class InvalidAbiDecodingTypeError extends BaseError {
|
225
|
+
name = 'InvalidAbiDecodingType'
|
226
|
+
constructor(type: string, { docsPath }: { docsPath: string }) {
|
227
|
+
super(
|
228
|
+
[
|
229
|
+
`Type "${type}" is not a valid decoding type.`,
|
230
|
+
'Please provide a valid ABI type.',
|
231
|
+
].join('\n'),
|
232
|
+
{ docsPath },
|
233
|
+
)
|
234
|
+
}
|
235
|
+
}
|
236
|
+
|
237
|
+
export class InvalidArrayError extends BaseError {
|
238
|
+
name = 'InvalidArrayError'
|
239
|
+
constructor(value: unknown) {
|
240
|
+
super([`Value "${value}" is not a valid array.`].join('\n'))
|
241
|
+
}
|
242
|
+
}
|
243
|
+
|
244
|
+
export class InvalidDefinitionTypeError extends BaseError {
|
245
|
+
name = 'InvalidDefinitionTypeError'
|
246
|
+
constructor(type: string) {
|
247
|
+
super(
|
248
|
+
[
|
249
|
+
`"${type}" is not a valid definition type.`,
|
250
|
+
'Valid types: "function", "event", "error"',
|
251
|
+
].join('\n'),
|
252
|
+
)
|
253
|
+
}
|
254
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { expect, test } from 'vitest'
|
2
|
+
import { InvalidAddressError } from './address'
|
3
|
+
|
4
|
+
test('InvalidAddressError', () => {
|
5
|
+
expect(
|
6
|
+
new InvalidAddressError({
|
7
|
+
address: '0xa5cc3c03994db5b0d9a5eEdD10Cabab0813678az',
|
8
|
+
}),
|
9
|
+
).toMatchInlineSnapshot(`
|
10
|
+
[InvalidAddressError: Address "0xa5cc3c03994db5b0d9a5eEdD10Cabab0813678az" is invalid.
|
11
|
+
|
12
|
+
Version: viem@1.0.2]
|
13
|
+
`)
|
14
|
+
})
|
@@ -0,0 +1,114 @@
|
|
1
|
+
import { expect, test } from 'vitest'
|
2
|
+
|
3
|
+
import { BaseError } from './base'
|
4
|
+
|
5
|
+
test('BaseError', () => {
|
6
|
+
expect(new BaseError('An error occurred.')).toMatchInlineSnapshot(`
|
7
|
+
[ViemError: An error occurred.
|
8
|
+
|
9
|
+
Version: viem@1.0.2]
|
10
|
+
`)
|
11
|
+
|
12
|
+
expect(
|
13
|
+
new BaseError('An error occurred.', { details: 'details' }),
|
14
|
+
).toMatchInlineSnapshot(`
|
15
|
+
[ViemError: An error occurred.
|
16
|
+
|
17
|
+
Details: details
|
18
|
+
Version: viem@1.0.2]
|
19
|
+
`)
|
20
|
+
|
21
|
+
expect(new BaseError('', { details: 'details' })).toMatchInlineSnapshot(`
|
22
|
+
[ViemError: An error occurred.
|
23
|
+
|
24
|
+
Details: details
|
25
|
+
Version: viem@1.0.2]
|
26
|
+
`)
|
27
|
+
})
|
28
|
+
|
29
|
+
test('BaseError (w/ docsPath)', () => {
|
30
|
+
expect(
|
31
|
+
new BaseError('An error occurred.', {
|
32
|
+
details: 'details',
|
33
|
+
docsPath: '/lol',
|
34
|
+
}),
|
35
|
+
).toMatchInlineSnapshot(`
|
36
|
+
[ViemError: An error occurred.
|
37
|
+
|
38
|
+
Docs: https://viem.sh/lol
|
39
|
+
Details: details
|
40
|
+
Version: viem@1.0.2]
|
41
|
+
`)
|
42
|
+
expect(
|
43
|
+
new BaseError('An error occurred.', {
|
44
|
+
cause: new BaseError('error', { docsPath: '/docs' }),
|
45
|
+
}),
|
46
|
+
).toMatchInlineSnapshot(`
|
47
|
+
[ViemError: An error occurred.
|
48
|
+
|
49
|
+
Docs: https://viem.sh/docs
|
50
|
+
Version: viem@1.0.2]
|
51
|
+
`)
|
52
|
+
expect(
|
53
|
+
new BaseError('An error occurred.', {
|
54
|
+
cause: new BaseError('error'),
|
55
|
+
docsPath: '/lol',
|
56
|
+
}),
|
57
|
+
).toMatchInlineSnapshot(`
|
58
|
+
[ViemError: An error occurred.
|
59
|
+
|
60
|
+
Docs: https://viem.sh/lol
|
61
|
+
Version: viem@1.0.2]
|
62
|
+
`)
|
63
|
+
})
|
64
|
+
|
65
|
+
test('BaseError (w/ metaMessages)', () => {
|
66
|
+
expect(
|
67
|
+
new BaseError('An error occurred.', {
|
68
|
+
details: 'details',
|
69
|
+
metaMessages: ['Reason: idk', 'Cause: lol'],
|
70
|
+
}),
|
71
|
+
).toMatchInlineSnapshot(`
|
72
|
+
[ViemError: An error occurred.
|
73
|
+
|
74
|
+
Reason: idk
|
75
|
+
Cause: lol
|
76
|
+
|
77
|
+
Details: details
|
78
|
+
Version: viem@1.0.2]
|
79
|
+
`)
|
80
|
+
})
|
81
|
+
|
82
|
+
test('inherited BaseError', () => {
|
83
|
+
const err = new BaseError('An error occurred.', {
|
84
|
+
details: 'details',
|
85
|
+
docsPath: '/lol',
|
86
|
+
})
|
87
|
+
expect(
|
88
|
+
new BaseError('An internal error occurred.', {
|
89
|
+
cause: err,
|
90
|
+
}),
|
91
|
+
).toMatchInlineSnapshot(`
|
92
|
+
[ViemError: An internal error occurred.
|
93
|
+
|
94
|
+
Docs: https://viem.sh/lol
|
95
|
+
Details: details
|
96
|
+
Version: viem@1.0.2]
|
97
|
+
`)
|
98
|
+
})
|
99
|
+
|
100
|
+
test('inherited Error', () => {
|
101
|
+
const err = new Error('details')
|
102
|
+
expect(
|
103
|
+
new BaseError('An internal error occurred.', {
|
104
|
+
cause: err,
|
105
|
+
docsPath: '/lol',
|
106
|
+
}),
|
107
|
+
).toMatchInlineSnapshot(`
|
108
|
+
[ViemError: An internal error occurred.
|
109
|
+
|
110
|
+
Docs: https://viem.sh/lol
|
111
|
+
Details: details
|
112
|
+
Version: viem@1.0.2]
|
113
|
+
`)
|
114
|
+
})
|
@@ -0,0 +1,57 @@
|
|
1
|
+
// @ts-ignore
|
2
|
+
import pkg from '../../package.json'
|
3
|
+
|
4
|
+
/* c8 ignore next */
|
5
|
+
const version = process.env.TEST ? '1.0.2' : pkg.version
|
6
|
+
|
7
|
+
type BaseErrorArgs = {
|
8
|
+
docsPath?: string
|
9
|
+
metaMessages?: string[]
|
10
|
+
} & (
|
11
|
+
| {
|
12
|
+
cause?: never
|
13
|
+
details?: string
|
14
|
+
}
|
15
|
+
| {
|
16
|
+
cause: BaseError | Error
|
17
|
+
details?: never
|
18
|
+
}
|
19
|
+
)
|
20
|
+
|
21
|
+
export class BaseError extends Error {
|
22
|
+
details: string
|
23
|
+
docsPath?: string
|
24
|
+
metaMessages?: string[]
|
25
|
+
shortMessage: string
|
26
|
+
|
27
|
+
name = 'ViemError'
|
28
|
+
|
29
|
+
constructor(shortMessage: string, args: BaseErrorArgs = {}) {
|
30
|
+
const details =
|
31
|
+
args.cause instanceof BaseError
|
32
|
+
? args.cause.details
|
33
|
+
: args.cause?.message
|
34
|
+
? args.cause.message
|
35
|
+
: args.details!
|
36
|
+
const docsPath =
|
37
|
+
args.cause instanceof BaseError
|
38
|
+
? args.cause.docsPath || args.docsPath
|
39
|
+
: args.docsPath
|
40
|
+
const message = [
|
41
|
+
shortMessage || 'An error occurred.',
|
42
|
+
'',
|
43
|
+
...(args.metaMessages ? [...args.metaMessages, ''] : []),
|
44
|
+
...(docsPath ? [`Docs: https://viem.sh${docsPath}`] : []),
|
45
|
+
...(details ? [`Details: ${details}`] : []),
|
46
|
+
`Version: viem@${version}`,
|
47
|
+
].join('\n')
|
48
|
+
|
49
|
+
super(message)
|
50
|
+
|
51
|
+
if (args.cause) this.cause = args.cause
|
52
|
+
this.details = details
|
53
|
+
this.docsPath = docsPath
|
54
|
+
this.metaMessages = args.metaMessages
|
55
|
+
this.shortMessage = shortMessage
|
56
|
+
}
|
57
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { expect, test } from 'vitest'
|
2
|
+
import { BlockNotFoundError } from './block'
|
3
|
+
|
4
|
+
test('BlockNotFoundError', () => {
|
5
|
+
expect(
|
6
|
+
new BlockNotFoundError({ blockNumber: 69420n }),
|
7
|
+
).toMatchInlineSnapshot(`
|
8
|
+
[BlockNotFoundError: Block at number "69420" could not be found.
|
9
|
+
|
10
|
+
Version: viem@1.0.2]
|
11
|
+
`)
|
12
|
+
expect(
|
13
|
+
new BlockNotFoundError({ blockHash: '0x69420' }),
|
14
|
+
).toMatchInlineSnapshot(`
|
15
|
+
[BlockNotFoundError: Block at hash "0x69420" could not be found.
|
16
|
+
|
17
|
+
Version: viem@1.0.2]
|
18
|
+
`)
|
19
|
+
expect(new BlockNotFoundError({})).toMatchInlineSnapshot(`
|
20
|
+
[BlockNotFoundError: Block could not be found.
|
21
|
+
|
22
|
+
Version: viem@1.0.2]
|
23
|
+
`)
|
24
|
+
})
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Hash } from '../types'
|
2
|
+
import { BaseError } from './base'
|
3
|
+
|
4
|
+
export class BlockNotFoundError extends BaseError {
|
5
|
+
name = 'BlockNotFoundError'
|
6
|
+
constructor({
|
7
|
+
blockHash,
|
8
|
+
blockNumber,
|
9
|
+
}: {
|
10
|
+
blockHash?: Hash
|
11
|
+
blockNumber?: bigint
|
12
|
+
}) {
|
13
|
+
let identifier = 'Block'
|
14
|
+
if (blockHash) identifier = `Block at hash "${blockHash}"`
|
15
|
+
if (blockNumber) identifier = `Block at number "${blockNumber}"`
|
16
|
+
super(`${identifier} could not be found.`)
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import { expect, test } from 'vitest'
|
2
|
+
import { mainnet } from '../chains'
|
3
|
+
import { ChainDoesNotSupportContract } from './chain'
|
4
|
+
|
5
|
+
test('ChainDoesNotSupportContract', () => {
|
6
|
+
expect(
|
7
|
+
new ChainDoesNotSupportContract({
|
8
|
+
chain: mainnet,
|
9
|
+
contract: { name: 'ensUniversalResolver' },
|
10
|
+
}),
|
11
|
+
).toMatchInlineSnapshot(`
|
12
|
+
[ChainDoesNotSupportContract: Chain "Ethereum" does not support contract "ensUniversalResolver".
|
13
|
+
|
14
|
+
This could be due to any of the following:
|
15
|
+
- The chain does not have the contract "ensUniversalResolver" configured.
|
16
|
+
|
17
|
+
Version: viem@1.0.2]
|
18
|
+
`)
|
19
|
+
expect(
|
20
|
+
new ChainDoesNotSupportContract({
|
21
|
+
chain: mainnet,
|
22
|
+
contract: { name: 'ensUniversalResolver', blockCreated: 16172161 },
|
23
|
+
}),
|
24
|
+
).toMatchInlineSnapshot(`
|
25
|
+
[ChainDoesNotSupportContract: Chain "Ethereum" does not support contract "ensUniversalResolver".
|
26
|
+
|
27
|
+
This could be due to any of the following:
|
28
|
+
- The chain does not have the contract "ensUniversalResolver" configured.
|
29
|
+
|
30
|
+
Version: viem@1.0.2]
|
31
|
+
`)
|
32
|
+
expect(
|
33
|
+
new ChainDoesNotSupportContract({
|
34
|
+
blockNumber: 16172160n,
|
35
|
+
chain: mainnet,
|
36
|
+
contract: { name: 'ensUniversalResolver', blockCreated: 16172161 },
|
37
|
+
}),
|
38
|
+
).toMatchInlineSnapshot(`
|
39
|
+
[ChainDoesNotSupportContract: Chain "Ethereum" does not support contract "ensUniversalResolver".
|
40
|
+
|
41
|
+
This could be due to any of the following:
|
42
|
+
- The contract "ensUniversalResolver" was not deployed until block 16172161 (current block 16172160).
|
43
|
+
|
44
|
+
Version: viem@1.0.2]
|
45
|
+
`)
|
46
|
+
})
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { Chain } from '../types'
|
2
|
+
import { BaseError } from './base'
|
3
|
+
|
4
|
+
export class ChainDoesNotSupportContract extends BaseError {
|
5
|
+
name = 'ChainDoesNotSupportContract'
|
6
|
+
constructor({
|
7
|
+
blockNumber,
|
8
|
+
chain,
|
9
|
+
contract,
|
10
|
+
}: {
|
11
|
+
blockNumber?: bigint
|
12
|
+
chain: Chain
|
13
|
+
contract: { name: string; blockCreated?: number }
|
14
|
+
}) {
|
15
|
+
super(
|
16
|
+
`Chain "${chain.name}" does not support contract "${contract.name}".`,
|
17
|
+
{
|
18
|
+
metaMessages: [
|
19
|
+
'This could be due to any of the following:',
|
20
|
+
...(blockNumber &&
|
21
|
+
contract.blockCreated &&
|
22
|
+
contract.blockCreated > blockNumber
|
23
|
+
? [
|
24
|
+
`- The contract "${contract.name}" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,
|
25
|
+
]
|
26
|
+
: [
|
27
|
+
`- The chain does not have the contract "${contract.name}" configured.`,
|
28
|
+
]),
|
29
|
+
],
|
30
|
+
},
|
31
|
+
)
|
32
|
+
}
|
33
|
+
}
|