viem 1.0.2 → 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/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/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/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/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
@@ -2,6 +2,30 @@ import { BlockNotFoundError } from '../../errors/block.js';
|
|
2
2
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
3
3
|
import { formatBlock, } from '../../utils/formatters/block.js';
|
4
4
|
import { format } from '../../utils/formatters/format.js';
|
5
|
+
/**
|
6
|
+
* Returns information about a block at a block number, hash, or tag.
|
7
|
+
*
|
8
|
+
* - Docs: https://viem.sh/docs/actions/public/getBlock.html
|
9
|
+
* - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/blocks/fetching-blocks
|
10
|
+
* - JSON-RPC Methods:
|
11
|
+
* - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.
|
12
|
+
* - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.
|
13
|
+
*
|
14
|
+
* @param client - Client to use
|
15
|
+
* @param parameters - {@link GetBlockParameters}
|
16
|
+
* @returns Information about the block. {@link GetBlockReturnType}
|
17
|
+
*
|
18
|
+
* @example
|
19
|
+
* import { createPublicClient, http } from 'viem'
|
20
|
+
* import { mainnet } from 'viem/chains'
|
21
|
+
* import { getBlock } from 'viem/public'
|
22
|
+
*
|
23
|
+
* const client = createPublicClient({
|
24
|
+
* chain: mainnet,
|
25
|
+
* transport: http(),
|
26
|
+
* })
|
27
|
+
* const block = await getBlock(client)
|
28
|
+
*/
|
5
29
|
export async function getBlock(client, { blockHash, blockNumber, blockTag = 'latest', includeTransactions = false, } = {}) {
|
6
30
|
const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;
|
7
31
|
let block = null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getBlock.js","sourceRoot":"","sources":["../../../../src/actions/public/getBlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAK1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAGL,WAAW,GACZ,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;
|
1
|
+
{"version":3,"file":"getBlock.js","sourceRoot":"","sources":["../../../../src/actions/public/getBlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAK1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAGL,WAAW,GACZ,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAiCzD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAI5B,MAE6C,EAC7C,EACE,SAAS,EACT,WAAW,EACX,QAAQ,GAAG,QAAQ,EACnB,mBAAmB,GAAG,KAAK,MACL,EAAE;IAE1B,MAAM,cAAc,GAClB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAElE,IAAI,KAAK,GAAoB,IAAI,CAAA;IACjC,IAAI,SAAS,EAAE;QACb,KAAK,GAAG,MAAO,MAAuB,CAAC,OAAO,CAAC;YAC7C,MAAM,EAAE,oBAAoB;YAC5B,MAAM,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC;SACzC,CAAC,CAAA;KACH;SAAM;QACL,KAAK,GAAG,MAAO,MAAuB,CAAC,OAAO,CAAC;YAC7C,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE,CAAC,cAAc,IAAI,QAAQ,EAAE,mBAAmB,CAAC;SAC1D,CAAC,CAAA;KACH;IAED,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IAEpE,OAAO,MAAM,CAAC,KAAK,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,WAAW;KAC1D,CAAC,CAAA;AACJ,CAAC"}
|
@@ -3,6 +3,29 @@ const cacheKey = (id) => `blockNumber.${id}`;
|
|
3
3
|
export function getBlockNumberCache(id) {
|
4
4
|
return getCache(cacheKey(id));
|
5
5
|
}
|
6
|
+
/**
|
7
|
+
* Returns the number of the most recent block seen.
|
8
|
+
*
|
9
|
+
* - Docs: https://viem.sh/docs/actions/public/getBlockNumber.html
|
10
|
+
* - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/blocks/fetching-blocks
|
11
|
+
* - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)
|
12
|
+
*
|
13
|
+
* @param client - Client to use
|
14
|
+
* @param parameters - {@link GetBlockNumberParameters}
|
15
|
+
* @returns The number of the block. {@link GetBlockNumberReturnType}
|
16
|
+
*
|
17
|
+
* @example
|
18
|
+
* import { createPublicClient, http } from 'viem'
|
19
|
+
* import { mainnet } from 'viem/chains'
|
20
|
+
* import { getBlockNumber } from 'viem/public'
|
21
|
+
*
|
22
|
+
* const client = createPublicClient({
|
23
|
+
* chain: mainnet,
|
24
|
+
* transport: http(),
|
25
|
+
* })
|
26
|
+
* const blockNumber = await getBlockNumber(client)
|
27
|
+
* // 69420n
|
28
|
+
*/
|
6
29
|
export async function getBlockNumber(client, { maxAge = client.pollingInterval } = {}) {
|
7
30
|
const blockNumberHex = await withCache(() => client.request({
|
8
31
|
method: 'eth_blockNumber',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getBlockNumber.js","sourceRoot":"","sources":["../../../../src/actions/public/getBlockNumber.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAStE,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,CAAA;AAEpD,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/B,CAAC;
|
1
|
+
{"version":3,"file":"getBlockNumber.js","sourceRoot":"","sources":["../../../../src/actions/public/getBlockNumber.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAStE,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,CAAA;AAEpD,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAuC,EACvC,EAAE,MAAM,GAAG,MAAM,CAAC,eAAe,KAA+B,EAAE;IAElE,MAAM,cAAc,GAAG,MAAM,SAAS,CACpC,GAAG,EAAE,CACH,MAAM,CAAC,OAAO,CAAC;QACb,MAAM,EAAE,iBAAiB;KAC1B,CAAC,EACJ,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAC3C,CAAA;IACD,OAAO,MAAM,CAAC,cAAc,CAAC,CAAA;AAC/B,CAAC"}
|
@@ -1,5 +1,28 @@
|
|
1
1
|
import { hexToNumber } from '../../utils/encoding/fromHex.js';
|
2
2
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
3
|
+
/**
|
4
|
+
* Returns the number of Transactions at a block number, hash, or tag.
|
5
|
+
*
|
6
|
+
* - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount.html
|
7
|
+
* - JSON-RPC Methods:
|
8
|
+
* - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.
|
9
|
+
* - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.
|
10
|
+
*
|
11
|
+
* @param client - Client to use
|
12
|
+
* @param parameters - {@link GetBlockTransactionCountParameters}
|
13
|
+
* @returns The block transaction count. {@link GetBlockTransactionCountReturnType}
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* import { createPublicClient, http } from 'viem'
|
17
|
+
* import { mainnet } from 'viem/chains'
|
18
|
+
* import { getBlockTransactionCount } from 'viem/public'
|
19
|
+
*
|
20
|
+
* const client = createPublicClient({
|
21
|
+
* chain: mainnet,
|
22
|
+
* transport: http(),
|
23
|
+
* })
|
24
|
+
* const count = await getBlockTransactionCount(client)
|
25
|
+
*/
|
3
26
|
export async function getBlockTransactionCount(client, { blockHash, blockNumber, blockTag = 'latest', } = {}) {
|
4
27
|
const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;
|
5
28
|
let count;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getBlockTransactionCount.js","sourceRoot":"","sources":["../../../../src/actions/public/getBlockTransactionCount.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"getBlockTransactionCount.js","sourceRoot":"","sources":["../../../../src/actions/public/getBlockTransactionCount.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAwB3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAG5C,MAAuC,EACvC,EACE,SAAS,EACT,WAAW,EACX,QAAQ,GAAG,QAAQ,MACmB,EAAE;IAE1C,MAAM,cAAc,GAClB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAElE,IAAI,KAAe,CAAA;IACnB,IAAI,SAAS,EAAE;QACb,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAC3B,MAAM,EAAE,oCAAoC;YAC5C,MAAM,EAAE,CAAC,SAAS,CAAC;SACpB,CAAC,CAAA;KACH;SAAM;QACL,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAC3B,MAAM,EAAE,sCAAsC;YAC9C,MAAM,EAAE,CAAC,cAAc,IAAI,QAAQ,CAAC;SACrC,CAAC,CAAA;KACH;IAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC"}
|
@@ -1,4 +1,27 @@
|
|
1
1
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
2
|
+
/**
|
3
|
+
* Retrieves the bytecode at an address.
|
4
|
+
*
|
5
|
+
* - Docs: https://viem.sh/docs/contract/getBytecode.html
|
6
|
+
* - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)
|
7
|
+
*
|
8
|
+
* @param client - Client to use
|
9
|
+
* @param parameters - {@link GetBytecodeParameters}
|
10
|
+
* @returns The contract's bytecode. {@link GetBytecodeReturnType}
|
11
|
+
*
|
12
|
+
* @example
|
13
|
+
* import { createPublicClient, http } from 'viem'
|
14
|
+
* import { mainnet } from 'viem/chains'
|
15
|
+
* import { getBytecode } from 'viem/contract'
|
16
|
+
*
|
17
|
+
* const client = createPublicClient({
|
18
|
+
* chain: mainnet,
|
19
|
+
* transport: http(),
|
20
|
+
* })
|
21
|
+
* const code = await getBytecode(client, {
|
22
|
+
* address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
|
23
|
+
* })
|
24
|
+
*/
|
2
25
|
export async function getBytecode(client, { address, blockNumber, blockTag = 'latest' }) {
|
3
26
|
const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;
|
4
27
|
const hex = await client.request({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getBytecode.js","sourceRoot":"","sources":["../../../../src/actions/public/getBytecode.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"getBytecode.js","sourceRoot":"","sources":["../../../../src/actions/public/getBytecode.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAiB3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAuC,EACvC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,QAAQ,EAAyB;IAEpE,MAAM,cAAc,GAClB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,IAAI,QAAQ,CAAC;KAC9C,CAAC,CAAA;IACF,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAClC,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
@@ -1,4 +1,25 @@
|
|
1
1
|
import { hexToNumber } from '../../utils/encoding/fromHex.js';
|
2
|
+
/**
|
3
|
+
* Returns the chain ID associated with the current network.
|
4
|
+
*
|
5
|
+
* - Docs: https://viem.sh/docs/actions/public/getChainId.html
|
6
|
+
* - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)
|
7
|
+
*
|
8
|
+
* @param client - Client to use
|
9
|
+
* @returns The current chain ID. {@link GetChainIdReturnType}
|
10
|
+
*
|
11
|
+
* @example
|
12
|
+
* import { createPublicClient, http } from 'viem'
|
13
|
+
* import { mainnet } from 'viem/chains'
|
14
|
+
* import { getChainId } from 'viem/public'
|
15
|
+
*
|
16
|
+
* const client = createPublicClient({
|
17
|
+
* chain: mainnet,
|
18
|
+
* transport: http(),
|
19
|
+
* })
|
20
|
+
* const chainId = await getChainId(client)
|
21
|
+
* // 1
|
22
|
+
*/
|
2
23
|
export async function getChainId(client) {
|
3
24
|
const chainIdHex = await client.request({
|
4
25
|
method: 'eth_chainId',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getChainId.js","sourceRoot":"","sources":["../../../../src/actions/public/getChainId.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;
|
1
|
+
{"version":3,"file":"getChainId.js","sourceRoot":"","sources":["../../../../src/actions/public/getChainId.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAI7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAI9B,MAE6C;IAE7C,MAAM,UAAU,GAAG,MAAO,MAAuB,CAAC,OAAO,CAAC;QACxD,MAAM,EAAE,aAAa;KACtB,CAAC,CAAA;IACF,OAAO,WAAW,CAAC,UAAU,CAAC,CAAA;AAChC,CAAC"}
|
@@ -1,5 +1,29 @@
|
|
1
1
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
2
2
|
import { formatFeeHistory } from '../../utils/formatters/feeHistory.js';
|
3
|
+
/**
|
4
|
+
* Returns a collection of historical gas information.
|
5
|
+
*
|
6
|
+
* - Docs: https://viem.sh/docs/actions/public/getFeeHistory.html
|
7
|
+
* - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)
|
8
|
+
*
|
9
|
+
* @param client - Client to use
|
10
|
+
* @param parameters - {@link GetFeeHistoryParameters}
|
11
|
+
* @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* import { createPublicClient, http } from 'viem'
|
15
|
+
* import { mainnet } from 'viem/chains'
|
16
|
+
* import { getFeeHistory } from 'viem/public'
|
17
|
+
*
|
18
|
+
* const client = createPublicClient({
|
19
|
+
* chain: mainnet,
|
20
|
+
* transport: http(),
|
21
|
+
* })
|
22
|
+
* const feeHistory = await getFeeHistory(client, {
|
23
|
+
* blockCount: 4,
|
24
|
+
* rewardPercentiles: [25, 75],
|
25
|
+
* })
|
26
|
+
*/
|
3
27
|
export async function getFeeHistory(client, { blockCount, blockNumber, blockTag = 'latest', rewardPercentiles, }) {
|
4
28
|
const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;
|
5
29
|
const feeHistory = await client.request({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getFeeHistory.js","sourceRoot":"","sources":["../../../../src/actions/public/getFeeHistory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;
|
1
|
+
{"version":3,"file":"getFeeHistory.js","sourceRoot":"","sources":["../../../../src/actions/public/getFeeHistory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AA4BvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAuC,EACvC,EACE,UAAU,EACV,WAAW,EACX,QAAQ,GAAG,QAAQ,EACnB,iBAAiB,GACO;IAE1B,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACzE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACtC,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE;YACN,WAAW,CAAC,UAAU,CAAC;YACvB,cAAc,IAAI,QAAQ;YAC1B,iBAAiB;SAClB;KACF,CAAC,CAAA;IACF,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAA;AACrC,CAAC"}
|
@@ -1,6 +1,88 @@
|
|
1
1
|
import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';
|
2
2
|
import { decodeEventLog } from '../../utils/abi/decodeEventLog.js';
|
3
3
|
import { formatLog } from '../../utils/formatters/log.js';
|
4
|
+
/**
|
5
|
+
* Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.
|
6
|
+
*
|
7
|
+
* - Docs: https://viem.sh/docs/actions/public/getFilterChanges.html
|
8
|
+
* - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)
|
9
|
+
*
|
10
|
+
* A Filter can be created from the following actions:
|
11
|
+
*
|
12
|
+
* - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter.html)
|
13
|
+
* - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter.html)
|
14
|
+
* - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter.html)
|
15
|
+
* - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter.html)
|
16
|
+
*
|
17
|
+
* Depending on the type of filter, the return value will be different:
|
18
|
+
*
|
19
|
+
* - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.
|
20
|
+
* - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.
|
21
|
+
* - If the filter was created with `createBlockFilter`, it returns a list of block hashes.
|
22
|
+
*
|
23
|
+
* @param client - Client to use
|
24
|
+
* @param parameters - {@link GetFilterChangesParameters}
|
25
|
+
* @returns Logs or hashes. {@link GetFilterChangesReturnType}
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* // Blocks
|
29
|
+
* import { createPublicClient, http } from 'viem'
|
30
|
+
* import { mainnet } from 'viem/chains'
|
31
|
+
* import { createBlockFilter, getFilterChanges } from 'viem/public'
|
32
|
+
*
|
33
|
+
* const client = createPublicClient({
|
34
|
+
* chain: mainnet,
|
35
|
+
* transport: http(),
|
36
|
+
* })
|
37
|
+
* const filter = await createBlockFilter(client)
|
38
|
+
* const hashes = await getFilterChanges(client, { filter })
|
39
|
+
*
|
40
|
+
* @example
|
41
|
+
* // Contract Events
|
42
|
+
* import { createPublicClient, http, parseAbi } from 'viem'
|
43
|
+
* import { mainnet } from 'viem/chains'
|
44
|
+
* import { createContractEventFilter, getFilterChanges } from 'viem/public'
|
45
|
+
*
|
46
|
+
* const client = createPublicClient({
|
47
|
+
* chain: mainnet,
|
48
|
+
* transport: http(),
|
49
|
+
* })
|
50
|
+
* const filter = await createContractEventFilter(client, {
|
51
|
+
* address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
52
|
+
* abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
|
53
|
+
* eventName: 'Transfer',
|
54
|
+
* })
|
55
|
+
* const logs = await getFilterChanges(client, { filter })
|
56
|
+
*
|
57
|
+
* @example
|
58
|
+
* // Raw Events
|
59
|
+
* import { createPublicClient, http, parseAbiItem } from 'viem'
|
60
|
+
* import { mainnet } from 'viem/chains'
|
61
|
+
* import { createEventFilter, getFilterChanges } from 'viem/public'
|
62
|
+
*
|
63
|
+
* const client = createPublicClient({
|
64
|
+
* chain: mainnet,
|
65
|
+
* transport: http(),
|
66
|
+
* })
|
67
|
+
* const filter = await createEventFilter(client, {
|
68
|
+
* address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
69
|
+
* event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
|
70
|
+
* })
|
71
|
+
* const logs = await getFilterChanges(client, { filter })
|
72
|
+
*
|
73
|
+
* @example
|
74
|
+
* // Transactions
|
75
|
+
* import { createPublicClient, http } from 'viem'
|
76
|
+
* import { mainnet } from 'viem/chains'
|
77
|
+
* import { createPendingTransactionFilter, getFilterChanges } from 'viem/public'
|
78
|
+
*
|
79
|
+
* const client = createPublicClient({
|
80
|
+
* chain: mainnet,
|
81
|
+
* transport: http(),
|
82
|
+
* })
|
83
|
+
* const filter = await createPendingTransactionFilter(client)
|
84
|
+
* const hashes = await getFilterChanges(client, { filter })
|
85
|
+
*/
|
4
86
|
export async function getFilterChanges(_client, { filter, }) {
|
5
87
|
const strict = 'strict' in filter && filter.strict;
|
6
88
|
const logs = await filter.request({
|
@@ -27,11 +109,13 @@ export async function getFilterChanges(_client, { filter, }) {
|
|
27
109
|
let isUnnamed;
|
28
110
|
if (err instanceof DecodeLogDataMismatch ||
|
29
111
|
err instanceof DecodeLogTopicsMismatch) {
|
112
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
30
113
|
if ('strict' in filter && filter.strict)
|
31
114
|
return;
|
32
115
|
eventName = err.abiItem.name;
|
33
116
|
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
34
117
|
}
|
118
|
+
// Set args undefined if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
35
119
|
return formatLog(log, { args: isUnnamed ? [] : {}, eventName });
|
36
120
|
}
|
37
121
|
})
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getFilterChanges.js","sourceRoot":"","sources":["../../../../src/actions/public/getFilterChanges.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAK5B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"getFilterChanges.js","sourceRoot":"","sources":["../../../../src/actions/public/getFilterChanges.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAK5B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAyBzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAQpC,OAAyC,EACzC,EACE,MAAM,GAC6D;IAErE,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAA;IAElD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,sBAAsB;QAC9B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KACpB,CAAC,CAAA;IACF,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAA;QACvC,IAAI;YACF,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GACvB,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG;gBAC3B,CAAC,CAAC,cAAc,CAAC;oBACb,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAa;oBACzB,MAAM;iBACP,CAAC;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAC/C,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,SAAS,CAAA;YACb,IAAI,SAAS,CAAA;YACb,IACE,GAAG,YAAY,qBAAqB;gBACpC,GAAG,YAAY,uBAAuB,EACtC;gBACA,iFAAiF;gBACjF,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM;oBAAE,OAAM;gBAC/C,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;gBAC5B,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;aACtE;YAED,+FAA+F;YAC/F,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;SAChE;IACH,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAKhB,CAAA;AACH,CAAC"}
|
@@ -1,6 +1,33 @@
|
|
1
1
|
import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';
|
2
2
|
import { decodeEventLog } from '../../utils/abi/decodeEventLog.js';
|
3
3
|
import { formatLog } from '../../utils/formatters/log.js';
|
4
|
+
/**
|
5
|
+
* Returns a list of event logs since the filter was created.
|
6
|
+
*
|
7
|
+
* - Docs: https://viem.sh/docs/actions/public/getFilterLogs.html
|
8
|
+
* - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)
|
9
|
+
*
|
10
|
+
* `getFilterLogs` is only compatible with **event filters**.
|
11
|
+
*
|
12
|
+
* @param client - Client to use
|
13
|
+
* @param parameters - {@link GetFilterLogsParameters}
|
14
|
+
* @returns A list of event logs. {@link GetFilterLogsReturnType}
|
15
|
+
*
|
16
|
+
* @example
|
17
|
+
* import { createPublicClient, http, parseAbiItem } from 'viem'
|
18
|
+
* import { mainnet } from 'viem/chains'
|
19
|
+
* import { createEventFilter, getFilterLogs } from 'viem/public'
|
20
|
+
*
|
21
|
+
* const client = createPublicClient({
|
22
|
+
* chain: mainnet,
|
23
|
+
* transport: http(),
|
24
|
+
* })
|
25
|
+
* const filter = await createEventFilter(client, {
|
26
|
+
* address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
27
|
+
* event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
|
28
|
+
* })
|
29
|
+
* const logs = await getFilterLogs(client, { filter })
|
30
|
+
*/
|
4
31
|
export async function getFilterLogs(_client, { filter }) {
|
5
32
|
const strict = filter.strict ?? false;
|
6
33
|
const logs = await filter.request({
|
@@ -25,11 +52,13 @@ export async function getFilterLogs(_client, { filter }) {
|
|
25
52
|
let isUnnamed;
|
26
53
|
if (err instanceof DecodeLogDataMismatch ||
|
27
54
|
err instanceof DecodeLogTopicsMismatch) {
|
55
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
28
56
|
if ('strict' in filter && filter.strict)
|
29
57
|
return;
|
30
58
|
eventName = err.abiItem.name;
|
31
59
|
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
32
60
|
}
|
61
|
+
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
33
62
|
return formatLog(log, { args: isUnnamed ? [] : {}, eventName });
|
34
63
|
}
|
35
64
|
})
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getFilterLogs.js","sourceRoot":"","sources":["../../../../src/actions/public/getFilterLogs.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"getFilterLogs.js","sourceRoot":"","sources":["../../../../src/actions/public/getFilterLogs.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAoBzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAMjC,OAAwC,EACxC,EAAE,MAAM,EAAsD;IAE9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAA;IAErC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KACpB,CAAC,CAAA;IACF,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI;YACF,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GACvB,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG;gBAC3B,CAAC,CAAC,cAAc,CAAC;oBACb,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAa;oBACzB,MAAM;iBACP,CAAC;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAC/C,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,SAAS,CAAA;YACb,IAAI,SAAS,CAAA;YACb,IACE,GAAG,YAAY,qBAAqB;gBACpC,GAAG,YAAY,uBAAuB,EACtC;gBACA,iFAAiF;gBACjF,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM;oBAAE,OAAM;gBAC/C,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;gBAC5B,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;aACtE;YAED,8FAA8F;YAC9F,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;SAChE;IACH,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAIhB,CAAA;AACH,CAAC"}
|
@@ -1,3 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* Returns the current price of gas (in wei).
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/docs/actions/public/getGasPrice.html
|
5
|
+
* - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)
|
6
|
+
*
|
7
|
+
* @param client - Client to use
|
8
|
+
* @returns The gas price (in wei). {@link GetGasPriceReturnType}
|
9
|
+
*
|
10
|
+
* @example
|
11
|
+
* import { createPublicClient, http } from 'viem'
|
12
|
+
* import { mainnet } from 'viem/chains'
|
13
|
+
* import { getGasPrice } from 'viem/public'
|
14
|
+
*
|
15
|
+
* const client = createPublicClient({
|
16
|
+
* chain: mainnet,
|
17
|
+
* transport: http(),
|
18
|
+
* })
|
19
|
+
* const gasPrice = await getGasPrice(client)
|
20
|
+
*/
|
1
21
|
export async function getGasPrice(client) {
|
2
22
|
const gasPrice = await client.request({
|
3
23
|
method: 'eth_gasPrice',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getGasPrice.js","sourceRoot":"","sources":["../../../../src/actions/public/getGasPrice.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"getGasPrice.js","sourceRoot":"","sources":["../../../../src/actions/public/getGasPrice.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAI/B,MAE6C;IAE7C,MAAM,QAAQ,GAAG,MAAO,MAAuB,CAAC,OAAO,CAAC;QACtD,MAAM,EAAE,cAAc;KACvB,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;AACzB,CAAC"}
|
@@ -3,6 +3,28 @@ import { decodeEventLog } from '../../utils/abi/decodeEventLog.js';
|
|
3
3
|
import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';
|
4
4
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
5
5
|
import { formatLog } from '../../utils/formatters/log.js';
|
6
|
+
/**
|
7
|
+
* Returns a list of event logs matching the provided parameters.
|
8
|
+
*
|
9
|
+
* - Docs: https://viem.sh/docs/actions/public/getLogs.html
|
10
|
+
* - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/filters-and-logs/event-logs
|
11
|
+
* - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)
|
12
|
+
*
|
13
|
+
* @param client - Client to use
|
14
|
+
* @param parameters - {@link GetLogsParameters}
|
15
|
+
* @returns A list of event logs. {@link GetLogsReturnType}
|
16
|
+
*
|
17
|
+
* @example
|
18
|
+
* import { createPublicClient, http, parseAbiItem } from 'viem'
|
19
|
+
* import { mainnet } from 'viem/chains'
|
20
|
+
* import { getLogs } from 'viem/public'
|
21
|
+
*
|
22
|
+
* const client = createPublicClient({
|
23
|
+
* chain: mainnet,
|
24
|
+
* transport: http(),
|
25
|
+
* })
|
26
|
+
* const logs = await getLogs(client)
|
27
|
+
*/
|
6
28
|
export async function getLogs(client, { address, blockHash, fromBlock, toBlock, event, args, strict: strict_, } = {}) {
|
7
29
|
const strict = strict_ ?? false;
|
8
30
|
let topics = [];
|
@@ -50,11 +72,13 @@ export async function getLogs(client, { address, blockHash, fromBlock, toBlock,
|
|
50
72
|
let isUnnamed;
|
51
73
|
if (err instanceof DecodeLogDataMismatch ||
|
52
74
|
err instanceof DecodeLogTopicsMismatch) {
|
75
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
53
76
|
if (strict)
|
54
77
|
return;
|
55
78
|
eventName = err.abiItem.name;
|
56
79
|
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
57
80
|
}
|
81
|
+
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
58
82
|
return formatLog(log, { args: isUnnamed ? [] : {}, eventName });
|
59
83
|
}
|
60
84
|
})
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getLogs.js","sourceRoot":"","sources":["../../../../src/actions/public/getLogs.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAU5B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAEL,iBAAiB,GAClB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"getLogs.js","sourceRoot":"","sources":["../../../../src/actions/public/getLogs.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAU5B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAEL,iBAAiB,GAClB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AA+CzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAK3B,MAAuC,EACvC,EACE,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EAAE,OAAO,MAC0B,EAAE;IAE7C,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,CAAA;IAE/B,IAAI,MAAM,GAAe,EAAE,CAAA;IAC3B,IAAI,KAAK;QACP,MAAM,GAAG,iBAAiB,CAAC;YACzB,GAAG,EAAE,CAAC,KAAK,CAAC;YACZ,SAAS,EAAG,KAAkB,CAAC,IAAI;YACnC,IAAI;SAC0B,CAAC,CAAA;IAEnC,IAAI,IAAc,CAAA;IAClB,IAAI,SAAS,EAAE;QACb,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAC1B,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;SACzC,CAAC,CAAA;KACH;SAAM;QACL,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAC1B,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE;gBACN;oBACE,OAAO;oBACP,MAAM;oBACN,SAAS,EACP,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;oBACpE,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;iBACtE;aACF;SACF,CAAC,CAAA;KACH;IAED,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI;YACF,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK;gBAC/B,CAAC,CAAC,cAAc,CAAC;oBACb,GAAG,EAAE,CAAC,KAAK,CAAe;oBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAa;oBACzB,MAAM;iBACP,CAAC;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAC7C,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,SAAS,CAAA;YACb,IAAI,SAAS,CAAA;YACb,IACE,GAAG,YAAY,qBAAqB;gBACpC,GAAG,YAAY,uBAAuB,EACtC;gBACA,iFAAiF;gBACjF,IAAI,MAAM;oBAAE,OAAM;gBAClB,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;gBAC5B,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;aACtE;YAED,8FAA8F;YAC9F,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;SAChE;IACH,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAqD,CAAA;AACxE,CAAC"}
|
@@ -1,4 +1,28 @@
|
|
1
1
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
2
|
+
/**
|
3
|
+
* Returns the value from a storage slot at a given address.
|
4
|
+
*
|
5
|
+
* - Docs: https://viem.sh/docs/contract/getStorageAt.html
|
6
|
+
* - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)
|
7
|
+
*
|
8
|
+
* @param client - Client to use
|
9
|
+
* @param parameters - {@link GetStorageAtParameters}
|
10
|
+
* @returns The value of the storage slot. {@link GetStorageAtReturnType}
|
11
|
+
*
|
12
|
+
* @example
|
13
|
+
* import { createPublicClient, http } from 'viem'
|
14
|
+
* import { mainnet } from 'viem/chains'
|
15
|
+
* import { getStorageAt } from 'viem/contract'
|
16
|
+
*
|
17
|
+
* const client = createPublicClient({
|
18
|
+
* chain: mainnet,
|
19
|
+
* transport: http(),
|
20
|
+
* })
|
21
|
+
* const code = await getStorageAt(client, {
|
22
|
+
* address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
|
23
|
+
* slot: toHex(0),
|
24
|
+
* })
|
25
|
+
*/
|
2
26
|
export async function getStorageAt(client, { address, blockNumber, blockTag = 'latest', slot }) {
|
3
27
|
const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;
|
4
28
|
const data = await client.request({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getStorageAt.js","sourceRoot":"","sources":["../../../../src/actions/public/getStorageAt.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"getStorageAt.js","sourceRoot":"","sources":["../../../../src/actions/public/getStorageAt.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAkB3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAuC,EACvC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAA0B;IAE3E,MAAM,cAAc,GAClB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,IAAI,QAAQ,CAAC;KACpD,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC"}
|
@@ -2,6 +2,30 @@ import { TransactionNotFoundError } from '../../errors/transaction.js';
|
|
2
2
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
3
3
|
import { format } from '../../utils/formatters/format.js';
|
4
4
|
import { formatTransaction, } from '../../utils/formatters/transaction.js';
|
5
|
+
/**
|
6
|
+
* Returns information about a [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) given a hash or block identifier.
|
7
|
+
*
|
8
|
+
* - Docs: https://viem.sh/docs/actions/public/getTransaction.html
|
9
|
+
* - Example: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/transactions/fetching-transactions
|
10
|
+
* - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)
|
11
|
+
*
|
12
|
+
* @param client - Client to use
|
13
|
+
* @param parameters - {@link GetTransactionParameters}
|
14
|
+
* @returns The transaction information. {@link GetTransactionReturnType}
|
15
|
+
*
|
16
|
+
* @example
|
17
|
+
* import { createPublicClient, http } from 'viem'
|
18
|
+
* import { mainnet } from 'viem/chains'
|
19
|
+
* import { getTransaction } from 'viem/public'
|
20
|
+
*
|
21
|
+
* const client = createPublicClient({
|
22
|
+
* chain: mainnet,
|
23
|
+
* transport: http(),
|
24
|
+
* })
|
25
|
+
* const transaction = await getTransaction(client, {
|
26
|
+
* hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
|
27
|
+
* })
|
28
|
+
*/
|
5
29
|
export async function getTransaction(client, { blockHash, blockNumber, blockTag = 'latest', hash, index, }) {
|
6
30
|
const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;
|
7
31
|
let transaction = null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTransaction.js","sourceRoot":"","sources":["../../../../src/actions/public/getTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAKtE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAGL,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;
|
1
|
+
{"version":3,"file":"getTransaction.js","sourceRoot":"","sources":["../../../../src/actions/public/getTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAKtE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAGL,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AA0C9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAuC,EACvC,EACE,SAAS,EACT,WAAW,EACX,QAAQ,GAAG,QAAQ,EACnB,IAAI,EACJ,KAAK,GACoB;IAE3B,MAAM,cAAc,GAClB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAElE,IAAI,WAAW,GAA0B,IAAI,CAAA;IAC7C,IAAI,IAAI,EAAE;QACR,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,0BAA0B;YAClC,MAAM,EAAE,CAAC,IAAI,CAAC;SACf,CAAC,CAAA;KACH;SAAM,IAAI,SAAS,EAAE;QACpB,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,uCAAuC;YAC/C,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;SACxC,CAAC,CAAA;KACH;SAAM,IAAI,cAAc,IAAI,QAAQ,EAAE;QACrC,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,yCAAyC;YACjD,MAAM,EAAE,CAAC,cAAc,IAAI,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;SACzD,CAAC,CAAA;KACH;IAED,IAAI,CAAC,WAAW;QACd,MAAM,IAAI,wBAAwB,CAAC;YACjC,SAAS;YACT,WAAW;YACX,QAAQ;YACR,IAAI;YACJ,KAAK;SACN,CAAC,CAAA;IAEJ,OAAO,MAAM,CAAC,WAAW,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,IAAI,iBAAiB;KACtE,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,5 +1,29 @@
|
|
1
1
|
import { getBlockNumber } from './getBlockNumber.js';
|
2
2
|
import { getTransaction } from './getTransaction.js';
|
3
|
+
/**
|
4
|
+
* Returns the number of blocks passed (confirmations) since the transaction was processed on a block.
|
5
|
+
*
|
6
|
+
* - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations.html
|
7
|
+
* - Example: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/transactions/fetching-transactions
|
8
|
+
* - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)
|
9
|
+
*
|
10
|
+
* @param client - Client to use
|
11
|
+
* @param parameters - {@link GetTransactionConfirmationsParameters}
|
12
|
+
* @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}
|
13
|
+
*
|
14
|
+
* @example
|
15
|
+
* import { createPublicClient, http } from 'viem'
|
16
|
+
* import { mainnet } from 'viem/chains'
|
17
|
+
* import { getTransactionConfirmations } from 'viem/public'
|
18
|
+
*
|
19
|
+
* const client = createPublicClient({
|
20
|
+
* chain: mainnet,
|
21
|
+
* transport: http(),
|
22
|
+
* })
|
23
|
+
* const confirmations = await getTransactionConfirmations(client, {
|
24
|
+
* hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
|
25
|
+
* })
|
26
|
+
*/
|
3
27
|
export async function getTransactionConfirmations(client, { hash, transactionReceipt }) {
|
4
28
|
const [blockNumber, transaction] = await Promise.all([
|
5
29
|
getBlockNumber(client),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTransactionConfirmations.js","sourceRoot":"","sources":["../../../../src/actions/public/getTransactionConfirmations.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
1
|
+
{"version":3,"file":"getTransactionConfirmations.js","sourceRoot":"","sources":["../../../../src/actions/public/getTransactionConfirmations.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAoBpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAG/C,MAAuC,EACvC,EAAE,IAAI,EAAE,kBAAkB,EAAiD;IAE3E,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,cAAc,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KACpD,CAAC,CAAA;IACF,MAAM,sBAAsB,GAC1B,kBAAkB,EAAE,WAAW,IAAI,WAAW,EAAE,WAAW,CAAA;IAC7D,IAAI,CAAC,sBAAsB;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO,WAAW,GAAG,sBAAuB,GAAG,EAAE,CAAA;AACnD,CAAC"}
|
@@ -1,5 +1,28 @@
|
|
1
1
|
import { hexToNumber } from '../../utils/encoding/fromHex.js';
|
2
2
|
import { numberToHex } from '../../utils/encoding/toHex.js';
|
3
|
+
/**
|
4
|
+
* Returns the number of [Transactions](https://viem.sh/docs/glossary/terms.html#transaction) an Account has broadcast / sent.
|
5
|
+
*
|
6
|
+
* - Docs: https://viem.sh/docs/actions/public/getTransactionCount.html
|
7
|
+
* - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)
|
8
|
+
*
|
9
|
+
* @param client - Client to use
|
10
|
+
* @param parameters - {@link GetTransactionCountParameters}
|
11
|
+
* @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* import { createPublicClient, http } from 'viem'
|
15
|
+
* import { mainnet } from 'viem/chains'
|
16
|
+
* import { getTransactionCount } from 'viem/public'
|
17
|
+
*
|
18
|
+
* const client = createPublicClient({
|
19
|
+
* chain: mainnet,
|
20
|
+
* transport: http(),
|
21
|
+
* })
|
22
|
+
* const transactionCount = await getTransactionCount(client, {
|
23
|
+
* address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
|
24
|
+
* })
|
25
|
+
*/
|
3
26
|
export async function getTransactionCount(client, { address, blockTag = 'latest', blockNumber }) {
|
4
27
|
const count = await client.request({
|
5
28
|
method: 'eth_getTransactionCount',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTransactionCount.js","sourceRoot":"","sources":["../../../../src/actions/public/getTransactionCount.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"getTransactionCount.js","sourceRoot":"","sources":["../../../../src/actions/public/getTransactionCount.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAmB3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAIvC,MAE6C,EAC7C,EAAE,OAAO,EAAE,QAAQ,GAAG,QAAQ,EAAE,WAAW,EAAiC;IAE5E,MAAM,KAAK,GAAG,MAAO,MAAuB,CAAC,OAAO,CAAC;QACnD,MAAM,EAAE,yBAAyB;QACjC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;KACrE,CAAC,CAAA;IACF,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC"}
|