viem 1.0.1 → 1.0.3
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/dist/cjs/chains.js.map +1 -1
- package/dist/cjs/errors/base.js +4 -11
- package/dist/cjs/errors/base.js.map +1 -1
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/utils/encoding/toBytes.js.map +1 -1
- package/dist/cjs/utils/encoding/toHex.js.map +1 -1
- package/dist/cjs/utils/formatters/block.js +3 -1
- package/dist/cjs/utils/formatters/block.js.map +1 -1
- package/dist/cjs/utils/formatters/transaction.js +3 -1
- package/dist/cjs/utils/formatters/transaction.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/cjs/utils/hash/getEventSelector.js +5 -1
- package/dist/cjs/utils/hash/getEventSelector.js.map +1 -1
- package/dist/cjs/utils/hash/getFunctionSelector.js +5 -1
- package/dist/cjs/utils/hash/getFunctionSelector.js.map +1 -1
- package/dist/cjs/utils/hash/hashFunction.js +5 -1
- package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
- package/dist/cjs/utils/observe.js.map +1 -1
- package/dist/cjs/utils/promise/createBatchScheduler.js.map +1 -1
- package/dist/cjs/utils/promise/withCache.js.map +1 -1
- package/dist/cjs/utils/rpc.js.map +1 -1
- package/dist/cjs/utils/unit/parseUnits.js +1 -2
- package/dist/cjs/utils/unit/parseUnits.js.map +1 -1
- package/dist/esm/accounts/generateMnemonic.js +7 -0
- package/dist/esm/accounts/generateMnemonic.js.map +1 -1
- package/dist/esm/accounts/generatePrivateKey.js +5 -0
- package/dist/esm/accounts/generatePrivateKey.js.map +1 -1
- package/dist/esm/accounts/hdKeyToAccount.js +5 -0
- package/dist/esm/accounts/hdKeyToAccount.js.map +1 -1
- package/dist/esm/accounts/mnemonicToAccount.js +5 -0
- package/dist/esm/accounts/mnemonicToAccount.js.map +1 -1
- package/dist/esm/accounts/privateKeyToAccount.js +5 -0
- package/dist/esm/accounts/privateKeyToAccount.js.map +1 -1
- package/dist/esm/accounts/toAccount.js +5 -0
- package/dist/esm/accounts/toAccount.js.map +1 -1
- package/dist/esm/accounts/utils/publicKeyToAddress.js +7 -0
- package/dist/esm/accounts/utils/publicKeyToAddress.js.map +1 -1
- package/dist/esm/accounts/utils/sign.js +8 -0
- package/dist/esm/accounts/utils/sign.js.map +1 -1
- package/dist/esm/accounts/utils/signMessage.js +6 -0
- package/dist/esm/accounts/utils/signMessage.js.map +1 -1
- package/dist/esm/accounts/utils/signTypedData.js +6 -0
- package/dist/esm/accounts/utils/signTypedData.js.map +1 -1
- package/dist/esm/actions/ens/getEnsAddress.js +28 -0
- package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/esm/actions/ens/getEnsAvatar.js +28 -0
- package/dist/esm/actions/ens/getEnsAvatar.js.map +1 -1
- package/dist/esm/actions/ens/getEnsName.js +27 -0
- package/dist/esm/actions/ens/getEnsName.js.map +1 -1
- package/dist/esm/actions/ens/getEnsResolver.js +28 -0
- package/dist/esm/actions/ens/getEnsResolver.js.map +1 -1
- package/dist/esm/actions/ens/getEnsText.js +29 -0
- package/dist/esm/actions/ens/getEnsText.js.map +1 -1
- package/dist/esm/actions/getContract.js +36 -0
- package/dist/esm/actions/getContract.js.map +1 -1
- package/dist/esm/actions/public/call.js +31 -0
- package/dist/esm/actions/public/call.js.map +1 -1
- package/dist/esm/actions/public/createBlockFilter.js +21 -0
- package/dist/esm/actions/public/createBlockFilter.js.map +1 -1
- package/dist/esm/actions/public/createContractEventFilter.js +22 -0
- package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
- package/dist/esm/actions/public/createEventFilter.js +23 -0
- package/dist/esm/actions/public/createEventFilter.js.map +1 -1
- package/dist/esm/actions/public/createPendingTransactionFilter.js +21 -0
- package/dist/esm/actions/public/createPendingTransactionFilter.js.map +1 -1
- package/dist/esm/actions/public/estimateContractGas.js +27 -0
- package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
- package/dist/esm/actions/public/estimateGas.js +26 -0
- package/dist/esm/actions/public/estimateGas.js.map +1 -1
- package/dist/esm/actions/public/getBalance.js +35 -0
- package/dist/esm/actions/public/getBalance.js.map +1 -1
- package/dist/esm/actions/public/getBlock.js +24 -0
- package/dist/esm/actions/public/getBlock.js.map +1 -1
- package/dist/esm/actions/public/getBlockNumber.js +23 -0
- package/dist/esm/actions/public/getBlockNumber.js.map +1 -1
- package/dist/esm/actions/public/getBlockTransactionCount.js +23 -0
- package/dist/esm/actions/public/getBlockTransactionCount.js.map +1 -1
- package/dist/esm/actions/public/getBytecode.js +23 -0
- package/dist/esm/actions/public/getBytecode.js.map +1 -1
- package/dist/esm/actions/public/getChainId.js +21 -0
- package/dist/esm/actions/public/getChainId.js.map +1 -1
- package/dist/esm/actions/public/getFeeHistory.js +24 -0
- package/dist/esm/actions/public/getFeeHistory.js.map +1 -1
- package/dist/esm/actions/public/getFilterChanges.js +84 -0
- package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
- package/dist/esm/actions/public/getFilterLogs.js +29 -0
- package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
- package/dist/esm/actions/public/getGasPrice.js +20 -0
- package/dist/esm/actions/public/getGasPrice.js.map +1 -1
- package/dist/esm/actions/public/getLogs.js +24 -0
- package/dist/esm/actions/public/getLogs.js.map +1 -1
- package/dist/esm/actions/public/getStorageAt.js +24 -0
- package/dist/esm/actions/public/getStorageAt.js.map +1 -1
- package/dist/esm/actions/public/getTransaction.js +24 -0
- package/dist/esm/actions/public/getTransaction.js.map +1 -1
- package/dist/esm/actions/public/getTransactionConfirmations.js +24 -0
- package/dist/esm/actions/public/getTransactionConfirmations.js.map +1 -1
- package/dist/esm/actions/public/getTransactionCount.js +23 -0
- package/dist/esm/actions/public/getTransactionCount.js.map +1 -1
- package/dist/esm/actions/public/getTransactionReceipt.js +24 -0
- package/dist/esm/actions/public/getTransactionReceipt.js.map +1 -1
- package/dist/esm/actions/public/multicall.js +40 -0
- package/dist/esm/actions/public/multicall.js.map +1 -1
- package/dist/esm/actions/public/readContract.js +31 -0
- package/dist/esm/actions/public/readContract.js.map +1 -1
- package/dist/esm/actions/public/simulateContract.js +31 -0
- package/dist/esm/actions/public/simulateContract.js.map +1 -1
- package/dist/esm/actions/public/uninstallFilter.js +24 -0
- package/dist/esm/actions/public/uninstallFilter.js.map +1 -1
- package/dist/esm/actions/public/verifyHash.js +10 -0
- package/dist/esm/actions/public/verifyHash.js.map +1 -1
- package/dist/esm/actions/public/verifyMessage.js +11 -0
- package/dist/esm/actions/public/verifyMessage.js.map +1 -1
- package/dist/esm/actions/public/verifyTypedData.js +9 -0
- package/dist/esm/actions/public/verifyTypedData.js.map +1 -1
- package/dist/esm/actions/public/waitForTransactionReceipt.js +52 -0
- package/dist/esm/actions/public/waitForTransactionReceipt.js.map +1 -1
- package/dist/esm/actions/public/watchBlockNumber.js +31 -0
- package/dist/esm/actions/public/watchBlockNumber.js.map +1 -1
- package/dist/esm/actions/public/watchBlocks.js +35 -1
- package/dist/esm/actions/public/watchBlocks.js.map +1 -1
- package/dist/esm/actions/public/watchContractEvent.js +36 -0
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/public/watchEvent.js +38 -0
- package/dist/esm/actions/public/watchEvent.js.map +1 -1
- package/dist/esm/actions/public/watchPendingTransactions.js +29 -0
- package/dist/esm/actions/public/watchPendingTransactions.js.map +1 -1
- package/dist/esm/actions/test/dropTransaction.js +22 -0
- package/dist/esm/actions/test/dropTransaction.js.map +1 -1
- package/dist/esm/actions/test/getAutomine.js +20 -0
- package/dist/esm/actions/test/getAutomine.js.map +1 -1
- package/dist/esm/actions/test/getTxpoolContent.js +20 -0
- package/dist/esm/actions/test/getTxpoolContent.js.map +1 -1
- package/dist/esm/actions/test/getTxpoolStatus.js +20 -0
- package/dist/esm/actions/test/getTxpoolStatus.js.map +1 -1
- package/dist/esm/actions/test/impersonateAccount.js +22 -0
- package/dist/esm/actions/test/impersonateAccount.js.map +1 -1
- package/dist/esm/actions/test/increaseTime.js +22 -0
- package/dist/esm/actions/test/increaseTime.js.map +1 -1
- package/dist/esm/actions/test/inspectTxpool.js +20 -0
- package/dist/esm/actions/test/inspectTxpool.js.map +1 -1
- package/dist/esm/actions/test/mine.js +20 -0
- package/dist/esm/actions/test/mine.js.map +1 -1
- package/dist/esm/actions/test/removeBlockTimestampInterval.js +19 -0
- package/dist/esm/actions/test/removeBlockTimestampInterval.js.map +1 -1
- package/dist/esm/actions/test/reset.js +20 -0
- package/dist/esm/actions/test/reset.js.map +1 -1
- package/dist/esm/actions/test/revert.js +20 -0
- package/dist/esm/actions/test/revert.js.map +1 -1
- package/dist/esm/actions/test/sendUnsignedTransaction.js +25 -0
- package/dist/esm/actions/test/sendUnsignedTransaction.js.map +1 -1
- package/dist/esm/actions/test/setAutomine.js +19 -0
- package/dist/esm/actions/test/setAutomine.js.map +1 -1
- package/dist/esm/actions/test/setBalance.js +23 -0
- package/dist/esm/actions/test/setBalance.js.map +1 -1
- package/dist/esm/actions/test/setBlockGasLimit.js +20 -0
- package/dist/esm/actions/test/setBlockGasLimit.js.map +1 -1
- package/dist/esm/actions/test/setBlockTimestampInterval.js +20 -0
- package/dist/esm/actions/test/setBlockTimestampInterval.js.map +1 -1
- package/dist/esm/actions/test/setCode.js +23 -0
- package/dist/esm/actions/test/setCode.js.map +1 -1
- package/dist/esm/actions/test/setCoinbase.js +22 -0
- package/dist/esm/actions/test/setCoinbase.js.map +1 -1
- package/dist/esm/actions/test/setIntervalMining.js +20 -0
- package/dist/esm/actions/test/setIntervalMining.js.map +1 -1
- package/dist/esm/actions/test/setLoggingEnabled.js +19 -0
- package/dist/esm/actions/test/setLoggingEnabled.js.map +1 -1
- package/dist/esm/actions/test/setMinGasPrice.js +24 -0
- package/dist/esm/actions/test/setMinGasPrice.js.map +1 -1
- package/dist/esm/actions/test/setNextBlockBaseFeePerGas.js +22 -0
- package/dist/esm/actions/test/setNextBlockBaseFeePerGas.js.map +1 -1
- package/dist/esm/actions/test/setNextBlockTimestamp.js +20 -0
- package/dist/esm/actions/test/setNextBlockTimestamp.js.map +1 -1
- package/dist/esm/actions/test/setNonce.js +23 -0
- package/dist/esm/actions/test/setNonce.js.map +1 -1
- package/dist/esm/actions/test/setRpcUrl.js +20 -0
- package/dist/esm/actions/test/setRpcUrl.js.map +1 -1
- package/dist/esm/actions/test/setStorageAt.js +24 -0
- package/dist/esm/actions/test/setStorageAt.js.map +1 -1
- package/dist/esm/actions/test/snapshot.js +19 -0
- package/dist/esm/actions/test/snapshot.js.map +1 -1
- package/dist/esm/actions/test/stopImpersonatingAccount.js +22 -0
- package/dist/esm/actions/test/stopImpersonatingAccount.js.map +1 -1
- package/dist/esm/actions/wallet/addChain.js +19 -0
- package/dist/esm/actions/wallet/addChain.js.map +1 -1
- package/dist/esm/actions/wallet/deployContract.js +27 -0
- package/dist/esm/actions/wallet/deployContract.js.map +1 -1
- package/dist/esm/actions/wallet/getAddresses.js +20 -0
- package/dist/esm/actions/wallet/getAddresses.js.map +1 -1
- package/dist/esm/actions/wallet/getPermissions.js +20 -0
- package/dist/esm/actions/wallet/getPermissions.js.map +1 -1
- package/dist/esm/actions/wallet/requestAddresses.js +24 -0
- package/dist/esm/actions/wallet/requestAddresses.js.map +1 -1
- package/dist/esm/actions/wallet/requestPermissions.js +23 -0
- package/dist/esm/actions/wallet/requestPermissions.js.map +1 -1
- package/dist/esm/actions/wallet/sendTransaction.js +47 -0
- package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/esm/actions/wallet/signMessage.js +46 -0
- package/dist/esm/actions/wallet/signMessage.js.map +1 -1
- package/dist/esm/actions/wallet/signTypedData.js +100 -0
- package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
- package/dist/esm/actions/wallet/switchChain.js +20 -0
- package/dist/esm/actions/wallet/switchChain.js.map +1 -1
- package/dist/esm/actions/wallet/watchAsset.js +28 -0
- package/dist/esm/actions/wallet/watchAsset.js.map +1 -1
- package/dist/esm/actions/wallet/writeContract.js +50 -0
- package/dist/esm/actions/wallet/writeContract.js.map +1 -1
- package/dist/esm/chains.js +96 -96
- package/dist/esm/chains.js.map +1 -1
- package/dist/esm/clients/createClient.js +3 -0
- package/dist/esm/clients/createClient.js.map +1 -1
- package/dist/esm/clients/createPublicClient.js +19 -0
- package/dist/esm/clients/createPublicClient.js.map +1 -1
- package/dist/esm/clients/createTestClient.js +23 -0
- package/dist/esm/clients/createTestClient.js.map +1 -1
- package/dist/esm/clients/createWalletClient.js +36 -0
- package/dist/esm/clients/createWalletClient.js.map +1 -1
- package/dist/esm/clients/transports/createTransport.js +3 -0
- package/dist/esm/clients/transports/createTransport.js.map +1 -1
- package/dist/esm/clients/transports/custom.js +3 -0
- package/dist/esm/clients/transports/custom.js.map +1 -1
- package/dist/esm/clients/transports/fallback.js +11 -0
- package/dist/esm/clients/transports/fallback.js.map +1 -1
- package/dist/esm/clients/transports/http.js +6 -1
- package/dist/esm/clients/transports/http.js.map +1 -1
- package/dist/esm/clients/transports/webSocket.js +6 -1
- package/dist/esm/clients/transports/webSocket.js.map +1 -1
- package/dist/esm/constants/abis.js +6 -0
- package/dist/esm/constants/abis.js.map +1 -1
- package/dist/esm/constants/solidity.js +1 -0
- package/dist/esm/constants/solidity.js.map +1 -1
- package/dist/esm/contract.js +0 -1
- package/dist/esm/contract.js.map +1 -1
- package/dist/esm/errors/base.js +4 -11
- package/dist/esm/errors/base.js.map +1 -1
- package/dist/esm/errors/node.js +9 -0
- package/dist/esm/errors/node.js.map +1 -1
- package/dist/esm/errors/rpc.js +103 -0
- package/dist/esm/errors/rpc.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/index.js +0 -52
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/types/account.js +1 -1
- package/dist/esm/types/account.js.map +1 -1
- package/dist/esm/types/eip1193.js +2 -0
- package/dist/esm/types/eip1193.js.map +1 -1
- package/dist/esm/utils/abi/decodeAbiParameters.js +29 -0
- package/dist/esm/utils/abi/decodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/abi/decodeEventLog.js +2 -0
- package/dist/esm/utils/abi/decodeEventLog.js.map +1 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js +10 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/abi/getAbiItem.js +7 -0
- package/dist/esm/utils/abi/getAbiItem.js.map +1 -1
- package/dist/esm/utils/accounts.js +3 -0
- package/dist/esm/utils/accounts.js.map +1 -1
- package/dist/esm/utils/buildRequest.js +2 -0
- package/dist/esm/utils/buildRequest.js.map +1 -1
- package/dist/esm/utils/data/size.js +6 -0
- package/dist/esm/utils/data/size.js.map +1 -1
- package/dist/esm/utils/data/slice.js +21 -0
- package/dist/esm/utils/data/slice.js.map +1 -1
- package/dist/esm/utils/encoding/fromBytes.js +79 -0
- package/dist/esm/utils/encoding/fromBytes.js.map +1 -1
- package/dist/esm/utils/encoding/fromHex.js +106 -0
- package/dist/esm/utils/encoding/fromHex.js.map +1 -1
- package/dist/esm/utils/encoding/toBytes.js +102 -1
- package/dist/esm/utils/encoding/toBytes.js.map +1 -1
- package/dist/esm/utils/encoding/toHex.js +108 -2
- package/dist/esm/utils/encoding/toHex.js.map +1 -1
- package/dist/esm/utils/ens/avatar/parseAvatarRecord.js +6 -2
- package/dist/esm/utils/ens/avatar/parseAvatarRecord.js.map +1 -1
- package/dist/esm/utils/ens/avatar/utils.js +10 -0
- package/dist/esm/utils/ens/avatar/utils.js.map +1 -1
- package/dist/esm/utils/ens/labelhash.js +9 -0
- package/dist/esm/utils/ens/labelhash.js.map +1 -1
- package/dist/esm/utils/ens/namehash.js +12 -0
- package/dist/esm/utils/ens/namehash.js.map +1 -1
- package/dist/esm/utils/ens/normalize.js +10 -0
- package/dist/esm/utils/ens/normalize.js.map +1 -1
- package/dist/esm/utils/ens/packetToBytes.js +6 -0
- package/dist/esm/utils/ens/packetToBytes.js.map +1 -1
- package/dist/esm/utils/filters/createFilterRequestScope.js +5 -0
- package/dist/esm/utils/filters/createFilterRequestScope.js.map +1 -1
- package/dist/esm/utils/formatters/block.js +4 -1
- package/dist/esm/utils/formatters/block.js.map +1 -1
- package/dist/esm/utils/formatters/extract.js +3 -0
- package/dist/esm/utils/formatters/extract.js.map +1 -1
- package/dist/esm/utils/formatters/format.js +3 -0
- package/dist/esm/utils/formatters/format.js.map +1 -1
- package/dist/esm/utils/formatters/transaction.js +3 -1
- package/dist/esm/utils/formatters/transaction.js.map +1 -1
- package/dist/esm/utils/formatters/transactionReceipt.js +1 -1
- package/dist/esm/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/esm/utils/formatters/transactionRequest.js +1 -1
- package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/esm/utils/hash/getEventSelector.js +6 -2
- package/dist/esm/utils/hash/getEventSelector.js.map +1 -1
- package/dist/esm/utils/hash/getFunctionSelector.js +6 -2
- package/dist/esm/utils/hash/getFunctionSelector.js.map +1 -1
- package/dist/esm/utils/hash/hashFunction.js +3 -0
- package/dist/esm/utils/hash/hashFunction.js.map +1 -1
- package/dist/esm/utils/observe.js +7 -2
- package/dist/esm/utils/observe.js.map +1 -1
- package/dist/esm/utils/poll.js +3 -0
- package/dist/esm/utils/poll.js.map +1 -1
- package/dist/esm/utils/promise/createBatchScheduler.js +1 -1
- package/dist/esm/utils/promise/createBatchScheduler.js.map +1 -1
- package/dist/esm/utils/promise/withCache.js +15 -2
- package/dist/esm/utils/promise/withCache.js.map +1 -1
- package/dist/esm/utils/regex.js +4 -0
- package/dist/esm/utils/regex.js.map +1 -1
- package/dist/esm/utils/rpc.js +14 -1
- package/dist/esm/utils/rpc.js.map +1 -1
- package/dist/esm/utils/signature/hashTypedData.js +3 -0
- package/dist/esm/utils/signature/hashTypedData.js.map +1 -1
- package/dist/esm/utils/signature/recoverPublicKey.js +2 -0
- package/dist/esm/utils/signature/recoverPublicKey.js.map +1 -1
- package/dist/esm/utils/signature/verifyMessage.js +12 -0
- package/dist/esm/utils/signature/verifyMessage.js.map +1 -1
- package/dist/esm/utils/signature/verifyTypedData.js +12 -0
- package/dist/esm/utils/signature/verifyTypedData.js.map +1 -1
- package/dist/esm/utils/transaction/prepareRequest.js +5 -1
- package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
- package/dist/esm/utils/transaction/serializeTransaction.js +4 -2
- package/dist/esm/utils/transaction/serializeTransaction.js.map +1 -1
- package/dist/esm/utils/typedData.js +4 -0
- package/dist/esm/utils/typedData.js.map +1 -1
- package/dist/esm/utils/unit/parseUnits.js +3 -2
- package/dist/esm/utils/unit/parseUnits.js.map +1 -1
- package/dist/types/actions/public/getBlockNumber.d.ts +2 -2
- package/dist/types/actions/public/getBlockNumber.d.ts.map +1 -1
- package/dist/types/chains.d.ts.map +1 -1
- package/dist/types/contract.d.ts +1 -1
- package/dist/types/contract.d.ts.map +1 -1
- package/dist/types/errors/base.d.ts +0 -1
- package/dist/types/errors/base.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/index.d.ts +52 -52
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/account.d.ts +1 -1
- package/dist/types/types/account.d.ts.map +1 -1
- package/dist/types/utils/formatters/block.d.ts.map +1 -1
- package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
- package/dist/types/utils/hash/getEventSelector.d.ts +2 -1
- package/dist/types/utils/hash/getEventSelector.d.ts.map +1 -1
- package/dist/types/utils/hash/getFunctionSelector.d.ts +2 -1
- package/dist/types/utils/hash/getFunctionSelector.d.ts.map +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts +2 -0
- package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
- package/dist/types/utils/observe.d.ts.map +1 -1
- package/dist/types/utils/promise/withCache.d.ts.map +1 -1
- package/dist/types/utils/unit/parseUnits.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/chains.ts +120 -97
- package/src/contract.ts +3 -3
- package/src/errors/base.ts +6 -6
- package/src/errors/version.ts +1 -1
- package/src/index.ts +221 -221
- package/src/types/account.ts +9 -9
- package/src/utils/encoding/toBytes.ts +1 -1
- package/src/utils/encoding/toHex.ts +2 -2
- package/src/utils/formatters/block.ts +3 -1
- package/src/utils/formatters/transaction.ts +3 -1
- package/src/utils/formatters/transactionReceipt.ts +1 -1
- package/src/utils/formatters/transactionRequest.ts +1 -1
- package/src/utils/hash/getEventSelector.ts +6 -2
- package/src/utils/hash/getFunctionSelector.ts +6 -2
- package/src/utils/hash/hashFunction.ts +5 -0
- package/src/utils/observe.ts +2 -2
- package/src/utils/promise/createBatchScheduler.ts +1 -1
- package/src/utils/promise/withCache.ts +2 -2
- package/src/utils/rpc.ts +1 -1
- package/src/utils/unit/parseUnits.ts +1 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchBlocks.js","sourceRoot":"","sources":["../../../../src/actions/public/watchBlocks.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAA2B,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"watchBlocks.js","sourceRoot":"","sources":["../../../../src/actions/public/watchBlocks.ts"],"names":[],"mappings":"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"}
|
@@ -7,6 +7,36 @@ import { getBlockNumber } from './getBlockNumber.js';
|
|
7
7
|
import { getFilterChanges } from './getFilterChanges.js';
|
8
8
|
import { getLogs } from './getLogs.js';
|
9
9
|
import { uninstallFilter } from './uninstallFilter.js';
|
10
|
+
/**
|
11
|
+
* Watches and returns emitted contract event logs.
|
12
|
+
*
|
13
|
+
* - Docs: https://viem.sh/docs/contract/watchContractEvent.html
|
14
|
+
*
|
15
|
+
* This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent.html#onLogs).
|
16
|
+
*
|
17
|
+
* `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter.html) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.
|
18
|
+
*
|
19
|
+
* @param client - Client to use
|
20
|
+
* @param parameters - {@link WatchContractEventParameters}
|
21
|
+
* @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}
|
22
|
+
*
|
23
|
+
* @example
|
24
|
+
* import { createPublicClient, http, parseAbi } from 'viem'
|
25
|
+
* import { mainnet } from 'viem/chains'
|
26
|
+
* import { watchContractEvent } from 'viem/contract'
|
27
|
+
*
|
28
|
+
* const client = createPublicClient({
|
29
|
+
* chain: mainnet,
|
30
|
+
* transport: http(),
|
31
|
+
* })
|
32
|
+
* const unwatch = watchContractEvent(client, {
|
33
|
+
* address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
|
34
|
+
* abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),
|
35
|
+
* eventName: 'Transfer',
|
36
|
+
* args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },
|
37
|
+
* onLogs: (logs) => console.log(logs),
|
38
|
+
* })
|
39
|
+
*/
|
10
40
|
export function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
11
41
|
const observerId = stringify([
|
12
42
|
'watchContractEvent',
|
@@ -43,7 +73,13 @@ export function watchContractEvent(client, { abi, address, args, batch = true, e
|
|
43
73
|
logs = await getFilterChanges(client, { filter });
|
44
74
|
}
|
45
75
|
else {
|
76
|
+
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
77
|
+
// The fall back exists because some RPC Providers do not support filters.
|
78
|
+
// Fetch the block number to use for `getLogs`.
|
46
79
|
const blockNumber = await getBlockNumber(client);
|
80
|
+
// If the block number has changed, we will need to fetch the logs.
|
81
|
+
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
82
|
+
// so do not emit any logs.
|
47
83
|
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
48
84
|
logs = await getLogs(client, {
|
49
85
|
address,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,UAAU,GACX,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAEL,yBAAyB,GAC1B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAA0B,OAAO,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;
|
1
|
+
{"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"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"}
|
@@ -6,6 +6,38 @@ import { getBlockNumber } from './getBlockNumber.js';
|
|
6
6
|
import { getFilterChanges } from './getFilterChanges.js';
|
7
7
|
import { getLogs } from './getLogs.js';
|
8
8
|
import { uninstallFilter } from './uninstallFilter.js';
|
9
|
+
/**
|
10
|
+
* Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms.html#event-log).
|
11
|
+
*
|
12
|
+
* - Docs: https://viem.sh/docs/actions/public/watchEvent.html
|
13
|
+
* - JSON-RPC Methods:
|
14
|
+
* - **RPC Provider supports `eth_newFilter`:**
|
15
|
+
* - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).
|
16
|
+
* - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).
|
17
|
+
* - **RPC Provider does not support `eth_newFilter`:**
|
18
|
+
* - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.
|
19
|
+
*
|
20
|
+
* This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent.html#onLogs).
|
21
|
+
*
|
22
|
+
* `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter.html) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs.html) instead.
|
23
|
+
*
|
24
|
+
* @param client - Client to use
|
25
|
+
* @param parameters - {@link WatchEventParameters}
|
26
|
+
* @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}
|
27
|
+
*
|
28
|
+
* @example
|
29
|
+
* import { createPublicClient, http } from 'viem'
|
30
|
+
* import { mainnet } from 'viem/chains'
|
31
|
+
* import { watchEvent } from 'viem/public'
|
32
|
+
*
|
33
|
+
* const client = createPublicClient({
|
34
|
+
* chain: mainnet,
|
35
|
+
* transport: http(),
|
36
|
+
* })
|
37
|
+
* const unwatch = watchEvent(client, {
|
38
|
+
* onLogs: (logs) => console.log(logs),
|
39
|
+
* })
|
40
|
+
*/
|
9
41
|
export function watchEvent(client, { address, args, batch = true, event, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
10
42
|
const observerId = stringify([
|
11
43
|
'watchEvent',
|
@@ -41,7 +73,13 @@ export function watchEvent(client, { address, args, batch = true, event, onError
|
|
41
73
|
logs = await getFilterChanges(client, { filter });
|
42
74
|
}
|
43
75
|
else {
|
76
|
+
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
77
|
+
// The fall back exists because some RPC Providers do not support filters.
|
78
|
+
// Fetch the block number to use for `getLogs`.
|
44
79
|
const blockNumber = await getBlockNumber(client);
|
80
|
+
// If the block number has changed, we will need to fetch the logs.
|
81
|
+
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
82
|
+
// so do not emit any logs.
|
45
83
|
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
46
84
|
logs = await getLogs(client, {
|
47
85
|
address,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchEvent.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAEL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;
|
1
|
+
{"version":3,"file":"watchEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchEvent.ts"],"names":[],"mappings":"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"}
|
@@ -4,6 +4,35 @@ import { stringify } from '../../utils/stringify.js';
|
|
4
4
|
import { createPendingTransactionFilter } from './createPendingTransactionFilter.js';
|
5
5
|
import { getFilterChanges } from './getFilterChanges.js';
|
6
6
|
import { uninstallFilter } from './uninstallFilter.js';
|
7
|
+
/**
|
8
|
+
* Watches and returns pending transaction hashes.
|
9
|
+
*
|
10
|
+
* - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions.html
|
11
|
+
* - JSON-RPC Methods:
|
12
|
+
* - When `poll: true`
|
13
|
+
* - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.
|
14
|
+
* - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.
|
15
|
+
* - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newPendingTransactions"` event.
|
16
|
+
*
|
17
|
+
* This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#ontransactions).
|
18
|
+
*
|
19
|
+
* @param client - Client to use
|
20
|
+
* @param parameters - {@link WatchPendingTransactionsParameters}
|
21
|
+
* @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}
|
22
|
+
*
|
23
|
+
* @example
|
24
|
+
* import { createPublicClient, http } from 'viem'
|
25
|
+
* import { mainnet } from 'viem/chains'
|
26
|
+
* import { watchPendingTransactions } from 'viem/public'
|
27
|
+
*
|
28
|
+
* const client = createPublicClient({
|
29
|
+
* chain: mainnet,
|
30
|
+
* transport: http(),
|
31
|
+
* })
|
32
|
+
* const unwatch = await watchPendingTransactions(client, {
|
33
|
+
* onTransactions: (hashes) => console.log(hashes),
|
34
|
+
* })
|
35
|
+
*/
|
7
36
|
export function watchPendingTransactions(client, { batch = true, onError, onTransactions, poll: poll_, pollingInterval = client.pollingInterval, }) {
|
8
37
|
const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';
|
9
38
|
const pollPendingTransactions = () => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchPendingTransactions.js","sourceRoot":"","sources":["../../../../src/actions/public/watchPendingTransactions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;
|
1
|
+
{"version":3,"file":"watchPendingTransactions.js","sourceRoot":"","sources":["../../../../src/actions/public/watchPendingTransactions.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,25 @@
|
|
1
|
+
/**
|
2
|
+
* Removes a transaction from the mempool.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/dropTransaction.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
* @param parameters - {@link DropTransactionParameters}
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createTestClient, http } from 'viem'
|
11
|
+
* import { foundry } from 'viem/chains'
|
12
|
+
* import { dropTransaction } from 'viem/test'
|
13
|
+
*
|
14
|
+
* const client = createTestClient({
|
15
|
+
* mode: 'anvil',
|
16
|
+
* chain: 'foundry',
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* await dropTransaction(client, {
|
20
|
+
* hash: '0xe58dceb6b20b03965bb678e27d141e151d7d4efc2334c2d6a49b9fac523f7364'
|
21
|
+
* })
|
22
|
+
*/
|
1
23
|
export async function dropTransaction(client, { hash }) {
|
2
24
|
await client.request({
|
3
25
|
method: `${client.mode}_dropTransaction`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dropTransaction.js","sourceRoot":"","sources":["../../../../src/actions/test/dropTransaction.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"dropTransaction.js","sourceRoot":"","sources":["../../../../src/actions/test/dropTransaction.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqD,EACrD,EAAE,IAAI,EAA6B;IAEnC,MAAM,MAAM,CAAC,OAAO,CAAC;QACnB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,kBAAkB;QACxC,MAAM,EAAE,CAAC,IAAI,CAAC;KACf,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,3 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Returns the automatic mining status of the node.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/getAutomine.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
* @returns Whether or not the node is auto mining. {@link GetAutomineReturnType}
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createTestClient, http } from 'viem'
|
11
|
+
* import { foundry } from 'viem/chains'
|
12
|
+
* import { getAutomine } from 'viem/test'
|
13
|
+
*
|
14
|
+
* const client = createTestClient({
|
15
|
+
* mode: 'anvil',
|
16
|
+
* chain: 'foundry',
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* const isAutomining = await getAutomine(client)
|
20
|
+
*/
|
1
21
|
export async function getAutomine(client) {
|
2
22
|
if (client.mode === 'ganache')
|
3
23
|
return await client.request({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getAutomine.js","sourceRoot":"","sources":["../../../../src/actions/test/getAutomine.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"getAutomine.js","sourceRoot":"","sources":["../../../../src/actions/test/getAutomine.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqD;IAErD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAC3B,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;YAC1B,MAAM,EAAE,YAAY;SACrB,CAAC,CAAA;IACJ,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,cAAc;KACrC,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,3 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Returns the details of all transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
* @returns Transaction pool content. {@link GetTxpoolContentReturnType}
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createTestClient, http } from 'viem'
|
11
|
+
* import { foundry } from 'viem/chains'
|
12
|
+
* import { getTxpoolContent } from 'viem/test'
|
13
|
+
*
|
14
|
+
* const client = createTestClient({
|
15
|
+
* mode: 'anvil',
|
16
|
+
* chain: 'foundry',
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* const content = await getTxpoolContent(client)
|
20
|
+
*/
|
1
21
|
export async function getTxpoolContent(client) {
|
2
22
|
return await client.request({
|
3
23
|
method: 'txpool_content',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTxpoolContent.js","sourceRoot":"","sources":["../../../../src/actions/test/getTxpoolContent.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"getTxpoolContent.js","sourceRoot":"","sources":["../../../../src/actions/test/getTxpoolContent.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAqD;IAErD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,gBAAgB;KACzB,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,4 +1,24 @@
|
|
1
1
|
import { hexToNumber } from '../../utils/encoding/fromHex.js';
|
2
|
+
/**
|
3
|
+
* Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
|
4
|
+
*
|
5
|
+
* - Docs: https://viem.sh/docs/actions/test/getTxpoolStatus.html
|
6
|
+
*
|
7
|
+
* @param client - Client to use
|
8
|
+
* @returns Transaction pool status. {@link GetTxpoolStatusReturnType}
|
9
|
+
*
|
10
|
+
* @example
|
11
|
+
* import { createTestClient, http } from 'viem'
|
12
|
+
* import { foundry } from 'viem/chains'
|
13
|
+
* import { getTxpoolStatus } from 'viem/test'
|
14
|
+
*
|
15
|
+
* const client = createTestClient({
|
16
|
+
* mode: 'anvil',
|
17
|
+
* chain: 'foundry',
|
18
|
+
* transport: http(),
|
19
|
+
* })
|
20
|
+
* const status = await getTxpoolStatus(client)
|
21
|
+
*/
|
2
22
|
export async function getTxpoolStatus(client) {
|
3
23
|
const { pending, queued } = await client.request({
|
4
24
|
method: 'txpool_status',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTxpoolStatus.js","sourceRoot":"","sources":["../../../../src/actions/test/getTxpoolStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;
|
1
|
+
{"version":3,"file":"getTxpoolStatus.js","sourceRoot":"","sources":["../../../../src/actions/test/getTxpoolStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAO7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqD;IAErD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAC/C,MAAM,EAAE,eAAe;KACxB,CAAC,CAAA;IACF,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;KAC5B,CAAA;AACH,CAAC"}
|
@@ -1,3 +1,25 @@
|
|
1
|
+
/**
|
2
|
+
* Impersonate an account or contract address. This lets you send transactions from that account even if you don't have access to its private key.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/impersonateAccount.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
* @param parameters - {@link ImpersonateAccountParameters}
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createTestClient, http } from 'viem'
|
11
|
+
* import { foundry } from 'viem/chains'
|
12
|
+
* import { impersonateAccount } from 'viem/test'
|
13
|
+
*
|
14
|
+
* const client = createTestClient({
|
15
|
+
* mode: 'anvil',
|
16
|
+
* chain: 'foundry',
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* const content = await impersonateAccount(client, {
|
20
|
+
* address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
|
21
|
+
* })
|
22
|
+
*/
|
1
23
|
export async function impersonateAccount(client, { address }) {
|
2
24
|
await client.request({
|
3
25
|
method: `${client.mode}_impersonateAccount`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"impersonateAccount.js","sourceRoot":"","sources":["../../../../src/actions/test/impersonateAccount.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"impersonateAccount.js","sourceRoot":"","sources":["../../../../src/actions/test/impersonateAccount.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAqD,EACrD,EAAE,OAAO,EAAgC;IAEzC,MAAM,MAAM,CAAC,OAAO,CAAC;QACnB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,qBAAqB;QAC3C,MAAM,EAAE,CAAC,OAAO,CAAC;KAClB,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,4 +1,26 @@
|
|
1
1
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
2
|
+
/**
|
3
|
+
* Jump forward in time by the given amount of time, in seconds.
|
4
|
+
*
|
5
|
+
* - Docs: https://viem.sh/docs/actions/test/increaseTime.html
|
6
|
+
*
|
7
|
+
* @param client - Client to use
|
8
|
+
* @param parameters – {@link IncreaseTimeParameters}
|
9
|
+
*
|
10
|
+
* @example
|
11
|
+
* import { createTestClient, http } from 'viem'
|
12
|
+
* import { foundry } from 'viem/chains'
|
13
|
+
* import { increaseTime } from 'viem/test'
|
14
|
+
*
|
15
|
+
* const client = createTestClient({
|
16
|
+
* mode: 'anvil',
|
17
|
+
* chain: 'foundry',
|
18
|
+
* transport: http(),
|
19
|
+
* })
|
20
|
+
* await increaseTime(client, {
|
21
|
+
* seconds: 420,
|
22
|
+
* })
|
23
|
+
*/
|
2
24
|
export async function increaseTime(client, { seconds }) {
|
3
25
|
return await client.request({
|
4
26
|
method: 'evm_increaseTime',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"increaseTime.js","sourceRoot":"","sources":["../../../../src/actions/test/increaseTime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"increaseTime.js","sourceRoot":"","sources":["../../../../src/actions/test/increaseTime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAO3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqD,EACrD,EAAE,OAAO,EAA0B;IAEnC,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC/B,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,3 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/inspectTxpool.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
* @returns Transaction pool inspection data. {@link InspectTxpoolReturnType}
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createTestClient, http } from 'viem'
|
11
|
+
* import { foundry } from 'viem/chains'
|
12
|
+
* import { inspectTxpool } from 'viem/test'
|
13
|
+
*
|
14
|
+
* const client = createTestClient({
|
15
|
+
* mode: 'anvil',
|
16
|
+
* chain: 'foundry',
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* const data = await inspectTxpool(client)
|
20
|
+
*/
|
1
21
|
export async function inspectTxpool(client) {
|
2
22
|
return await client.request({
|
3
23
|
method: 'txpool_inspect',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"inspectTxpool.js","sourceRoot":"","sources":["../../../../src/actions/test/inspectTxpool.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"inspectTxpool.js","sourceRoot":"","sources":["../../../../src/actions/test/inspectTxpool.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAqD;IAErD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,gBAAgB;KACzB,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,4 +1,24 @@
|
|
1
1
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
2
|
+
/**
|
3
|
+
* Mine a specified number of blocks.
|
4
|
+
*
|
5
|
+
* - Docs: https://viem.sh/docs/actions/test/mine.html
|
6
|
+
*
|
7
|
+
* @param client - Client to use
|
8
|
+
* @param parameters – {@link MineParameters}
|
9
|
+
*
|
10
|
+
* @example
|
11
|
+
* import { createTestClient, http } from 'viem'
|
12
|
+
* import { foundry } from 'viem/chains'
|
13
|
+
* import { mine } from 'viem/test'
|
14
|
+
*
|
15
|
+
* const client = createTestClient({
|
16
|
+
* mode: 'anvil',
|
17
|
+
* chain: 'foundry',
|
18
|
+
* transport: http(),
|
19
|
+
* })
|
20
|
+
* await mine(client, { blocks: 1 })
|
21
|
+
*/
|
2
22
|
export async function mine(client, { blocks, interval }) {
|
3
23
|
if (client.mode === 'ganache')
|
4
24
|
await client.request({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mine.js","sourceRoot":"","sources":["../../../../src/actions/test/mine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"mine.js","sourceRoot":"","sources":["../../../../src/actions/test/mine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAS3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,MAAqD,EACrD,EAAE,MAAM,EAAE,QAAQ,EAAkB;IAEpC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAC3B,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAA;;QAEF,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,OAAO;YAC7B,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;SAC1D,CAAC,CAAA;AACN,CAAC"}
|
@@ -1,3 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* Removes [`setBlockTimestampInterval`](https://viem.sh/docs/actions/test/setBlockTimestampInterval.html) if it exists.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/removeBlockTimestampInterval.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
*
|
8
|
+
* @example
|
9
|
+
* import { createTestClient, http } from 'viem'
|
10
|
+
* import { foundry } from 'viem/chains'
|
11
|
+
* import { removeBlockTimestampInterval } from 'viem/test'
|
12
|
+
*
|
13
|
+
* const client = createTestClient({
|
14
|
+
* mode: 'anvil',
|
15
|
+
* chain: 'foundry',
|
16
|
+
* transport: http(),
|
17
|
+
* })
|
18
|
+
* await removeBlockTimestampInterval(client)
|
19
|
+
*/
|
1
20
|
export async function removeBlockTimestampInterval(client) {
|
2
21
|
await client.request({
|
3
22
|
method: `${client.mode}_removeBlockTimestampInterval`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"removeBlockTimestampInterval.js","sourceRoot":"","sources":["../../../../src/actions/test/removeBlockTimestampInterval.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"removeBlockTimestampInterval.js","sourceRoot":"","sources":["../../../../src/actions/test/removeBlockTimestampInterval.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAEhD,MAAqD;IACrD,MAAM,MAAM,CAAC,OAAO,CAAC;QACnB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,+BAA+B;KACtD,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,3 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Resets fork back to its original state.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/reset.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
* @param parameters – {@link ResetParameters}
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createTestClient, http } from 'viem'
|
11
|
+
* import { foundry } from 'viem/chains'
|
12
|
+
* import { reset } from 'viem/test'
|
13
|
+
*
|
14
|
+
* const client = createTestClient({
|
15
|
+
* mode: 'anvil',
|
16
|
+
* chain: 'foundry',
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* await reset(client, { blockNumber: 69420n })
|
20
|
+
*/
|
1
21
|
export async function reset(client, { blockNumber, jsonRpcUrl } = {}) {
|
2
22
|
await client.request({
|
3
23
|
method: `${client.mode}_reset`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/actions/test/reset.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/actions/test/reset.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,MAAqD,EACrD,EAAE,WAAW,EAAE,UAAU,KAAsB,EAAE;IAEjD,MAAM,MAAM,CAAC,OAAO,CAAC;QACnB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,QAAQ;QAC9B,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC;KACxE,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,3 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Revert the state of the blockchain at the current block.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/revert.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
* @param parameters – {@link RevertParameters}
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createTestClient, http } from 'viem'
|
11
|
+
* import { foundry } from 'viem/chains'
|
12
|
+
* import { revert } from 'viem/test'
|
13
|
+
*
|
14
|
+
* const client = createTestClient({
|
15
|
+
* mode: 'anvil',
|
16
|
+
* chain: 'foundry',
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* await revert(client, { id: '0x…' })
|
20
|
+
*/
|
1
21
|
export async function revert(client, { id }) {
|
2
22
|
await client.request({
|
3
23
|
method: 'evm_revert',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"revert.js","sourceRoot":"","sources":["../../../../src/actions/test/revert.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"revert.js","sourceRoot":"","sources":["../../../../src/actions/test/revert.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAqD,EACrD,EAAE,EAAE,EAAoB;IAExB,MAAM,MAAM,CAAC,OAAO,CAAC;QACnB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,CAAC,EAAE,CAAC;KACb,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,4 +1,29 @@
|
|
1
1
|
import { formatTransactionRequest } from '../../utils/formatters/transactionRequest.js';
|
2
|
+
/**
|
3
|
+
* Returns the details of all transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.
|
4
|
+
*
|
5
|
+
* - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html
|
6
|
+
*
|
7
|
+
* @param client - Client to use
|
8
|
+
* @param parameters – {@link SendUnsignedTransactionParameters}
|
9
|
+
* @returns The transaction hash. {@link SendUnsignedTransactionReturnType}
|
10
|
+
*
|
11
|
+
* @example
|
12
|
+
* import { createTestClient, http } from 'viem'
|
13
|
+
* import { foundry } from 'viem/chains'
|
14
|
+
* import { sendUnsignedTransaction } from 'viem/test'
|
15
|
+
*
|
16
|
+
* const client = createTestClient({
|
17
|
+
* mode: 'anvil',
|
18
|
+
* chain: 'foundry',
|
19
|
+
* transport: http(),
|
20
|
+
* })
|
21
|
+
* const hash = await sendUnsignedTransaction(client, {
|
22
|
+
* from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
|
23
|
+
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
24
|
+
* value: 1000000000000000000n,
|
25
|
+
* })
|
26
|
+
*/
|
2
27
|
export async function sendUnsignedTransaction(client, request) {
|
3
28
|
const request_ = formatTransactionRequest(request);
|
4
29
|
const hash = await client.request({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sendUnsignedTransaction.js","sourceRoot":"","sources":["../../../../src/actions/test/sendUnsignedTransaction.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;
|
1
|
+
{"version":3,"file":"sendUnsignedTransaction.js","sourceRoot":"","sources":["../../../../src/actions/test/sendUnsignedTransaction.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AAMvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAG3C,MAAqD,EACrD,OAA0C;IAE1C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE,CAAC,QAAQ,CAAC;KACnB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC"}
|
@@ -1,3 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* Enables or disables the automatic mining of new blocks with each new transaction submitted to the network.
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/test/setAutomine.html
|
5
|
+
*
|
6
|
+
* @param client - Client to use
|
7
|
+
*
|
8
|
+
* @example
|
9
|
+
* import { createTestClient, http } from 'viem'
|
10
|
+
* import { foundry } from 'viem/chains'
|
11
|
+
* import { setAutomine } from 'viem/test'
|
12
|
+
*
|
13
|
+
* const client = createTestClient({
|
14
|
+
* mode: 'anvil',
|
15
|
+
* chain: 'foundry',
|
16
|
+
* transport: http(),
|
17
|
+
* })
|
18
|
+
* await setAutomine(client)
|
19
|
+
*/
|
1
20
|
export async function setAutomine(client, enabled) {
|
2
21
|
if (client.mode === 'ganache') {
|
3
22
|
if (enabled)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setAutomine.js","sourceRoot":"","sources":["../../../../src/actions/test/setAutomine.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"setAutomine.js","sourceRoot":"","sources":["../../../../src/actions/test/setAutomine.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqD,EACrD,OAAgB;IAEhB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;QAC7B,IAAI,OAAO;YAAE,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;;YACvD,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;KACpD;;QACC,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB,CAAC,CAAA;AACN,CAAC"}
|