viem 0.0.0-portable-types-20230523145621 → 0.0.0-tmm-sign-typed-data-types.20230619T221425
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/README.md +12 -0
- package/dist/cjs/actions/ens/getEnsAddress.js +34 -23
- package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/cjs/actions/getContract.js +22 -16
- package/dist/cjs/actions/getContract.js.map +1 -1
- package/dist/cjs/actions/public/call.js +1 -1
- package/dist/cjs/actions/public/call.js.map +1 -1
- package/dist/cjs/actions/public/createContractEventFilter.js +2 -1
- package/dist/cjs/actions/public/createContractEventFilter.js.map +1 -1
- package/dist/cjs/actions/public/createEventFilter.js +2 -1
- package/dist/cjs/actions/public/createEventFilter.js.map +1 -1
- package/dist/cjs/actions/public/estimateContractGas.js +1 -1
- package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
- package/dist/cjs/actions/public/estimateGas.js.map +1 -1
- package/dist/cjs/actions/public/getBlock.js.map +1 -1
- package/dist/cjs/actions/public/getBlockTransactionCount.js +1 -1
- package/dist/cjs/actions/public/getBlockTransactionCount.js.map +1 -1
- package/dist/cjs/actions/public/getChainId.js +3 -1
- package/dist/cjs/actions/public/getChainId.js.map +1 -1
- package/dist/cjs/actions/public/getFilterChanges.js +15 -3
- package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
- package/dist/cjs/actions/public/getFilterLogs.js +14 -2
- package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
- package/dist/cjs/actions/public/getGasPrice.js.map +1 -1
- package/dist/cjs/actions/public/getLogs.js +15 -3
- package/dist/cjs/actions/public/getLogs.js.map +1 -1
- package/dist/cjs/actions/public/getTransactionCount.js.map +1 -1
- package/dist/cjs/actions/public/verifyTypedData.js +6 -1
- package/dist/cjs/actions/public/verifyTypedData.js.map +1 -1
- package/dist/cjs/actions/public/watchContractEvent.js +3 -1
- package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
- package/dist/cjs/actions/public/watchEvent.js +3 -1
- package/dist/cjs/actions/public/watchEvent.js.map +1 -1
- package/dist/cjs/actions/test/getAutomine.js +4 -0
- package/dist/cjs/actions/test/getAutomine.js.map +1 -1
- package/dist/cjs/actions/test/mine.js +10 -4
- package/dist/cjs/actions/test/mine.js.map +1 -1
- package/dist/cjs/actions/test/sendUnsignedTransaction.js +21 -3
- package/dist/cjs/actions/test/sendUnsignedTransaction.js.map +1 -1
- package/dist/cjs/actions/test/setAutomine.js +11 -4
- package/dist/cjs/actions/test/setAutomine.js.map +1 -1
- package/dist/cjs/actions/test/setBalance.js +10 -4
- package/dist/cjs/actions/test/setBalance.js.map +1 -1
- package/dist/cjs/actions/wallet/sendTransaction.js +1 -1
- package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/cjs/actions/wallet/signMessage.js +8 -1
- package/dist/cjs/actions/wallet/signMessage.js.map +1 -1
- package/dist/cjs/chains.js +14 -2
- package/dist/cjs/chains.js.map +1 -1
- package/dist/cjs/clients/createClient.js +1 -1
- package/dist/cjs/clients/createClient.js.map +1 -1
- package/dist/cjs/clients/createPublicClient.js.map +1 -1
- package/dist/cjs/clients/createTestClient.js.map +1 -1
- package/dist/cjs/clients/createWalletClient.js.map +1 -1
- package/dist/cjs/clients/decorators/public.js.map +1 -1
- package/dist/cjs/clients/decorators/test.js.map +1 -1
- package/dist/cjs/clients/transports/createTransport.js.map +1 -1
- package/dist/cjs/clients/transports/custom.js.map +1 -1
- package/dist/cjs/clients/transports/fallback.js.map +1 -1
- package/dist/cjs/clients/transports/http.js +25 -7
- package/dist/cjs/clients/transports/http.js.map +1 -1
- package/dist/cjs/clients/transports/webSocket.js +22 -14
- package/dist/cjs/clients/transports/webSocket.js.map +1 -1
- package/dist/cjs/errors/abi.js +15 -1
- package/dist/cjs/errors/abi.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/request.js.map +1 -1
- package/dist/cjs/errors/rpc.js.map +1 -1
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/errors/version.js.map +1 -1
- package/dist/cjs/index.js +26 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/eip1193.js.map +1 -1
- package/dist/cjs/utils/abi/decodeEventLog.js +33 -19
- package/dist/cjs/utils/abi/decodeEventLog.js.map +1 -1
- package/dist/cjs/utils/abi/encodeEventTopics.js +11 -7
- package/dist/cjs/utils/abi/encodeEventTopics.js.map +1 -1
- package/dist/cjs/utils/abi/getAbiItem.js +2 -0
- package/dist/cjs/utils/abi/getAbiItem.js.map +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/ens/encodeLabelhash.js +8 -0
- package/dist/cjs/utils/ens/encodeLabelhash.js.map +1 -0
- package/dist/cjs/utils/ens/encodedLabelToLabelhash.js +18 -0
- package/dist/cjs/utils/ens/encodedLabelToLabelhash.js.map +1 -0
- package/dist/cjs/utils/ens/labelhash.js +2 -1
- package/dist/cjs/utils/ens/labelhash.js.map +1 -1
- package/dist/cjs/utils/ens/namehash.js +5 -1
- package/dist/cjs/utils/ens/namehash.js.map +1 -1
- package/dist/cjs/utils/ens/packetToBytes.js +10 -9
- package/dist/cjs/utils/ens/packetToBytes.js.map +1 -1
- package/dist/cjs/utils/filters/createFilterRequestScope.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/log.js +2 -2
- 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 +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 +6 -4
- package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
- package/dist/cjs/utils/index.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 +8 -4
- package/dist/cjs/utils/promise/withCache.js.map +1 -1
- package/dist/cjs/utils/rpc.js +12 -17
- package/dist/cjs/utils/rpc.js.map +1 -1
- package/dist/cjs/utils/signature/hashMessage.js +7 -1
- package/dist/cjs/utils/signature/hashMessage.js.map +1 -1
- package/dist/cjs/utils/transaction/getTransactionType.js.map +1 -1
- package/dist/cjs/utils/transaction/serializeTransaction.js.map +1 -1
- package/dist/cjs/utils/typedData.js.map +1 -1
- package/dist/cjs/utils/unit/parseUnits.js +13 -3
- 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 +62 -23
- 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 +58 -16
- package/dist/esm/actions/getContract.js.map +1 -1
- package/dist/esm/actions/public/call.js +32 -1
- 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 +24 -1
- package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
- package/dist/esm/actions/public/createEventFilter.js +25 -1
- 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 +28 -1
- 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 +24 -1
- 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 +24 -1
- 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 +99 -3
- package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
- package/dist/esm/actions/public/getFilterLogs.js +43 -2
- 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 +39 -3
- 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 +16 -2
- 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 +39 -1
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/public/watchEvent.js +41 -1
- 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 +24 -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 +30 -4
- 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 +48 -4
- package/dist/esm/actions/test/sendUnsignedTransaction.js.map +1 -1
- package/dist/esm/actions/test/setAutomine.js +30 -4
- package/dist/esm/actions/test/setAutomine.js.map +1 -1
- package/dist/esm/actions/test/setBalance.js +33 -4
- 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 +48 -1
- package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/esm/actions/wallet/signMessage.js +55 -2
- 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 +99 -87
- package/dist/esm/chains.js.map +1 -1
- package/dist/esm/clients/createClient.js +4 -1
- 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/decorators/public.js.map +1 -1
- package/dist/esm/clients/decorators/test.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 +31 -8
- package/dist/esm/clients/transports/http.js.map +1 -1
- package/dist/esm/clients/transports/webSocket.js +28 -15
- 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/abi.js +15 -1
- package/dist/esm/errors/abi.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/request.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/errors/version.js.map +1 -1
- package/dist/esm/index.js +2 -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 +35 -19
- 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/encodeEventTopics.js +11 -7
- package/dist/esm/utils/abi/encodeEventTopics.js.map +1 -1
- package/dist/esm/utils/abi/getAbiItem.js +9 -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/encodeLabelhash.js +4 -0
- package/dist/esm/utils/ens/encodeLabelhash.js.map +1 -0
- package/dist/esm/utils/ens/encodedLabelToLabelhash.js +14 -0
- package/dist/esm/utils/ens/encodedLabelToLabelhash.js.map +1 -0
- package/dist/esm/utils/ens/labelhash.js +11 -1
- package/dist/esm/utils/ens/labelhash.js.map +1 -1
- package/dist/esm/utils/ens/namehash.js +18 -2
- 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 +16 -9
- 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/log.js +2 -2
- 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 +2 -2
- 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 +4 -3
- package/dist/esm/utils/hash/hashFunction.js.map +1 -1
- package/dist/esm/utils/index.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 +23 -6
- 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 +27 -19
- package/dist/esm/utils/rpc.js.map +1 -1
- package/dist/esm/utils/signature/hashMessage.js +8 -2
- package/dist/esm/utils/signature/hashMessage.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/getTransactionType.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 +15 -3
- package/dist/esm/utils/unit/parseUnits.js.map +1 -1
- package/dist/types/accounts/types.d.ts +3 -5
- package/dist/types/accounts/types.d.ts.map +1 -1
- package/dist/types/accounts/utils/signMessage.d.ts +2 -2
- package/dist/types/accounts/utils/signMessage.d.ts.map +1 -1
- package/dist/types/accounts/utils/signTypedData.d.ts +3 -6
- package/dist/types/accounts/utils/signTypedData.d.ts.map +1 -1
- package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
- package/dist/types/actions/getContract.d.ts +65 -21
- package/dist/types/actions/getContract.d.ts.map +1 -1
- package/dist/types/actions/public/createContractEventFilter.d.ts +8 -3
- package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/createEventFilter.d.ts +17 -5
- package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/estimateContractGas.d.ts +4 -2
- package/dist/types/actions/public/estimateContractGas.d.ts.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/actions/public/getChainId.d.ts.map +1 -1
- package/dist/types/actions/public/getFilterChanges.d.ts +4 -4
- package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
- package/dist/types/actions/public/getFilterLogs.d.ts +4 -4
- package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
- package/dist/types/actions/public/getLogs.d.ts +10 -4
- package/dist/types/actions/public/getLogs.d.ts.map +1 -1
- package/dist/types/actions/public/verifyMessage.d.ts +2 -2
- package/dist/types/actions/public/verifyMessage.d.ts.map +1 -1
- package/dist/types/actions/public/verifyTypedData.d.ts +3 -4
- package/dist/types/actions/public/verifyTypedData.d.ts.map +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts +10 -5
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts +11 -5
- package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
- package/dist/types/actions/test/getAutomine.d.ts.map +1 -1
- package/dist/types/actions/test/mine.d.ts.map +1 -1
- package/dist/types/actions/test/sendUnsignedTransaction.d.ts +8 -2
- package/dist/types/actions/test/sendUnsignedTransaction.d.ts.map +1 -1
- package/dist/types/actions/test/setAutomine.d.ts.map +1 -1
- package/dist/types/actions/test/setBalance.d.ts.map +1 -1
- package/dist/types/actions/wallet/signMessage.d.ts +2 -2
- package/dist/types/actions/wallet/signMessage.d.ts.map +1 -1
- package/dist/types/actions/wallet/signTypedData.d.ts +4 -7
- package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
- package/dist/types/chains.d.ts +364 -16
- package/dist/types/chains.d.ts.map +1 -1
- package/dist/types/clients/createClient.d.ts +5 -5
- package/dist/types/clients/createClient.d.ts.map +1 -1
- package/dist/types/clients/createPublicClient.d.ts +3 -3
- package/dist/types/clients/createPublicClient.d.ts.map +1 -1
- package/dist/types/clients/createTestClient.d.ts +2 -2
- package/dist/types/clients/createTestClient.d.ts.map +1 -1
- package/dist/types/clients/createWalletClient.d.ts +2 -2
- package/dist/types/clients/createWalletClient.d.ts.map +1 -1
- package/dist/types/clients/decorators/public.d.ts +8 -8
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/clients/decorators/test.d.ts +1 -1
- package/dist/types/clients/decorators/test.d.ts.map +1 -1
- package/dist/types/clients/decorators/wallet.d.ts +1 -3
- package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
- package/dist/types/clients/transports/createTransport.d.ts +5 -8
- package/dist/types/clients/transports/createTransport.d.ts.map +1 -1
- package/dist/types/clients/transports/custom.d.ts +2 -2
- package/dist/types/clients/transports/custom.d.ts.map +1 -1
- package/dist/types/clients/transports/http.d.ts +11 -0
- package/dist/types/clients/transports/http.d.ts.map +1 -1
- package/dist/types/clients/transports/webSocket.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/abi.d.ts +6 -4
- package/dist/types/errors/abi.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/request.d.ts +16 -8
- package/dist/types/errors/request.d.ts.map +1 -1
- package/dist/types/errors/rpc.d.ts +2 -2
- package/dist/types/errors/rpc.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/errors/version.d.ts.map +1 -1
- package/dist/types/index.d.ts +55 -53
- 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/types/contract.d.ts +11 -6
- package/dist/types/types/contract.d.ts.map +1 -1
- package/dist/types/types/eip1193.d.ts +1042 -827
- package/dist/types/types/eip1193.d.ts.map +1 -1
- package/dist/types/types/filter.d.ts +12 -3
- package/dist/types/types/filter.d.ts.map +1 -1
- package/dist/types/types/log.d.ts +5 -3
- package/dist/types/types/log.d.ts.map +1 -1
- package/dist/types/types/misc.d.ts +4 -0
- package/dist/types/types/misc.d.ts.map +1 -1
- package/dist/types/types/rpc.d.ts +1 -1
- package/dist/types/types/rpc.d.ts.map +1 -1
- package/dist/types/types/transaction.d.ts +14 -5
- package/dist/types/types/transaction.d.ts.map +1 -1
- package/dist/types/types/typedData.d.ts +17 -29
- package/dist/types/types/typedData.d.ts.map +1 -1
- package/dist/types/types/utils.d.ts +11 -0
- package/dist/types/types/utils.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeEventLog.d.ts +6 -5
- package/dist/types/utils/abi/decodeEventLog.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeEventTopics.d.ts.map +1 -1
- package/dist/types/utils/abi/getAbiItem.d.ts.map +1 -1
- package/dist/types/utils/ens/encodeLabelhash.d.ts +3 -0
- package/dist/types/utils/ens/encodeLabelhash.d.ts.map +1 -0
- package/dist/types/utils/ens/encodedLabelToLabelhash.d.ts +3 -0
- package/dist/types/utils/ens/encodedLabelToLabelhash.d.ts.map +1 -0
- package/dist/types/utils/ens/labelhash.d.ts.map +1 -1
- package/dist/types/utils/ens/namehash.d.ts.map +1 -1
- package/dist/types/utils/ens/packetToBytes.d.ts.map +1 -1
- package/dist/types/utils/filters/createFilterRequestScope.d.ts +6 -2
- package/dist/types/utils/filters/createFilterRequestScope.d.ts.map +1 -1
- package/dist/types/utils/formatters/block.d.ts.map +1 -1
- package/dist/types/utils/formatters/transaction.d.ts +1 -1
- package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionReceipt.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/index.d.ts +1 -1
- package/dist/types/utils/index.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/rpc.d.ts +18 -10
- package/dist/types/utils/rpc.d.ts.map +1 -1
- package/dist/types/utils/signature/hashMessage.d.ts +2 -2
- package/dist/types/utils/signature/hashMessage.d.ts.map +1 -1
- package/dist/types/utils/signature/hashTypedData.d.ts +3 -6
- package/dist/types/utils/signature/hashTypedData.d.ts.map +1 -1
- package/dist/types/utils/signature/recoverMessageAddress.d.ts +2 -2
- package/dist/types/utils/signature/recoverMessageAddress.d.ts.map +1 -1
- package/dist/types/utils/signature/recoverTypedDataAddress.d.ts +3 -6
- package/dist/types/utils/signature/recoverTypedDataAddress.d.ts.map +1 -1
- package/dist/types/utils/signature/verifyTypedData.d.ts +3 -6
- package/dist/types/utils/signature/verifyTypedData.d.ts.map +1 -1
- package/dist/types/utils/transaction/getTransactionType.d.ts +2 -2
- package/dist/types/utils/transaction/getTransactionType.d.ts.map +1 -1
- package/dist/types/utils/typedData.d.ts +2 -3
- package/dist/types/utils/typedData.d.ts.map +1 -1
- package/dist/types/utils/unit/parseUnits.d.ts.map +1 -1
- package/package.json +7 -13
- package/src/accounts/types.ts +4 -4
- package/src/accounts/utils/signMessage.ts +2 -2
- package/src/accounts/utils/signTypedData.ts +4 -4
- package/src/actions/ens/getEnsAddress.ts +37 -22
- package/src/actions/getContract.ts +133 -69
- package/src/actions/public/call.ts +1 -1
- package/src/actions/public/createContractEventFilter.ts +21 -4
- package/src/actions/public/createEventFilter.ts +34 -13
- package/src/actions/public/estimateContractGas.ts +10 -4
- package/src/actions/public/estimateGas.ts +1 -1
- package/src/actions/public/getBlock.ts +2 -2
- package/src/actions/public/getBlockTransactionCount.ts +1 -1
- package/src/actions/public/getChainId.ts +3 -1
- package/src/actions/public/getFilterChanges.ts +32 -7
- package/src/actions/public/getFilterLogs.ts +34 -8
- package/src/actions/public/getGasPrice.ts +1 -1
- package/src/actions/public/getLogs.ts +39 -10
- package/src/actions/public/getTransactionCount.ts +1 -1
- package/src/actions/public/verifyMessage.ts +2 -2
- package/src/actions/public/verifyTypedData.ts +18 -6
- package/src/actions/public/watchContractEvent.ts +16 -4
- package/src/actions/public/watchEvent.ts +17 -4
- package/src/actions/test/getAutomine.ts +4 -0
- package/src/actions/test/mine.ts +10 -4
- package/src/actions/test/sendUnsignedTransaction.ts +54 -5
- package/src/actions/test/setAutomine.ts +8 -4
- package/src/actions/test/setBalance.ts +10 -4
- package/src/actions/wallet/sendTransaction.ts +1 -1
- package/src/actions/wallet/signMessage.ts +11 -4
- package/src/actions/wallet/signTypedData.ts +5 -5
- package/src/chains.ts +123 -88
- package/src/clients/createClient.ts +13 -11
- package/src/clients/createPublicClient.ts +3 -4
- package/src/clients/createTestClient.ts +2 -3
- package/src/clients/createWalletClient.ts +2 -3
- package/src/clients/decorators/public.ts +43 -17
- package/src/clients/decorators/test.ts +4 -3
- package/src/clients/decorators/wallet.ts +2 -2
- package/src/clients/transports/createTransport.ts +5 -9
- package/src/clients/transports/custom.ts +1 -2
- package/src/clients/transports/fallback.ts +1 -1
- package/src/clients/transports/http.ts +44 -7
- package/src/clients/transports/webSocket.ts +23 -15
- package/src/contract.ts +3 -3
- package/src/errors/abi.ts +16 -4
- package/src/errors/base.ts +6 -6
- package/src/errors/request.ts +4 -4
- package/src/errors/rpc.ts +3 -2
- package/src/errors/version.ts +1 -1
- package/src/index.ts +263 -249
- package/src/types/account.ts +9 -9
- package/src/types/contract.ts +33 -15
- package/src/types/eip1193.ts +1084 -827
- package/src/types/filter.ts +15 -3
- package/src/types/log.ts +13 -3
- package/src/types/misc.ts +6 -0
- package/src/types/rpc.ts +1 -1
- package/src/types/transaction.ts +24 -6
- package/src/types/typedData.ts +36 -45
- package/src/types/utils.ts +15 -0
- package/src/utils/abi/decodeEventLog.ts +47 -22
- package/src/utils/abi/encodeEventTopics.ts +16 -11
- package/src/utils/abi/getAbiItem.ts +1 -0
- package/src/utils/encoding/toBytes.ts +1 -1
- package/src/utils/encoding/toHex.ts +2 -2
- package/src/utils/ens/encodeLabelhash.ts +5 -0
- package/src/utils/ens/encodedLabelToLabelhash.ts +11 -0
- package/src/utils/ens/labelhash.ts +2 -1
- package/src/utils/ens/namehash.ts +6 -2
- package/src/utils/ens/packetToBytes.ts +12 -8
- package/src/utils/filters/createFilterRequestScope.ts +12 -4
- package/src/utils/formatters/block.ts +3 -1
- package/src/utils/formatters/log.ts +2 -2
- package/src/utils/formatters/transaction.ts +3 -1
- package/src/utils/formatters/transactionReceipt.ts +4 -2
- 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 +6 -2
- package/src/utils/index.ts +6 -0
- package/src/utils/observe.ts +2 -2
- package/src/utils/promise/createBatchScheduler.ts +1 -1
- package/src/utils/promise/withCache.ts +13 -11
- package/src/utils/rpc.ts +53 -53
- package/src/utils/signature/hashMessage.ts +8 -4
- package/src/utils/signature/hashTypedData.ts +4 -4
- package/src/utils/signature/recoverMessageAddress.ts +2 -2
- package/src/utils/signature/recoverTypedDataAddress.ts +4 -4
- package/src/utils/signature/verifyTypedData.ts +4 -4
- package/src/utils/transaction/getTransactionType.ts +10 -9
- package/src/utils/transaction/serializeTransaction.ts +3 -3
- package/src/utils/typedData.ts +3 -3
- package/src/utils/unit/parseUnits.ts +15 -5
- package/dist/cjs/adapters/ethers.js +0 -49
- package/dist/cjs/adapters/ethers.js.map +0 -1
- package/dist/cjs/ethers.js +0 -6
- package/dist/cjs/ethers.js.map +0 -1
- package/dist/esm/adapters/ethers.js +0 -45
- package/dist/esm/adapters/ethers.js.map +0 -1
- package/dist/esm/ethers.js +0 -2
- package/dist/esm/ethers.js.map +0 -1
- package/dist/types/adapters/ethers.d.ts +0 -27
- package/dist/types/adapters/ethers.d.ts.map +0 -1
- package/dist/types/ethers.d.ts +0 -2
- package/dist/types/ethers.d.ts.map +0 -1
- package/ethers/package.json +0 -5
- package/src/adapters/ethers.ts +0 -94
- package/src/ethers.ts +0 -1
@@ -71,11 +71,13 @@ export function buildRequest(request, { retryDelay = 150, retryCount = 3, } = {}
|
|
71
71
|
}
|
72
72
|
}, {
|
73
73
|
delay: ({ count, error }) => {
|
74
|
+
// If we find a Retry-After header, let's retry after the given time.
|
74
75
|
if (error && error instanceof HttpRequestError) {
|
75
76
|
const retryAfter = error?.headers?.get('Retry-After');
|
76
77
|
if (retryAfter?.match(/\d/))
|
77
78
|
return parseInt(retryAfter) * 1000;
|
78
79
|
}
|
80
|
+
// Otherwise, let's retry with an exponential backoff.
|
79
81
|
return ~~(1 << count) * retryDelay;
|
80
82
|
},
|
81
83
|
retryCount,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"buildRequest.js","sourceRoot":"","sources":["../../../src/utils/buildRequest.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"buildRequest.js","sourceRoot":"","sources":["../../../src/utils/buildRequest.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,10 @@
|
|
1
1
|
import { isHex } from './isHex.js';
|
2
|
+
/**
|
3
|
+
* @description Retrieves the size of the value (in bytes).
|
4
|
+
*
|
5
|
+
* @param value The value (hex or byte array) to retrieve the size of.
|
6
|
+
* @returns The size of the value (in bytes).
|
7
|
+
*/
|
2
8
|
export function size(value) {
|
3
9
|
if (isHex(value, { strict: false }))
|
4
10
|
return Math.ceil((value.length - 2) / 2);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"size.js","sourceRoot":"","sources":["../../../../src/utils/data/size.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
1
|
+
{"version":3,"file":"size.js","sourceRoot":"","sources":["../../../../src/utils/data/size.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,KAAsB;IACzC,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7E,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC"}
|
@@ -1,6 +1,13 @@
|
|
1
1
|
import { SliceOffsetOutOfBoundsError } from '../../errors/data.js';
|
2
2
|
import { isHex } from './isHex.js';
|
3
3
|
import { size } from './size.js';
|
4
|
+
/**
|
5
|
+
* @description Returns a section of the hex or byte array given a start/end bytes offset.
|
6
|
+
*
|
7
|
+
* @param value The hex or byte array to slice.
|
8
|
+
* @param start The start offset (in bytes).
|
9
|
+
* @param end The end offset (in bytes).
|
10
|
+
*/
|
4
11
|
export function slice(value, start, end, { strict } = {}) {
|
5
12
|
if (isHex(value, { strict: false }))
|
6
13
|
return sliceHex(value, start, end, {
|
@@ -29,6 +36,13 @@ function assertEndOffset(value, start, end) {
|
|
29
36
|
});
|
30
37
|
}
|
31
38
|
}
|
39
|
+
/**
|
40
|
+
* @description Returns a section of the byte array given a start/end bytes offset.
|
41
|
+
*
|
42
|
+
* @param value The byte array to slice.
|
43
|
+
* @param start The start offset (in bytes).
|
44
|
+
* @param end The end offset (in bytes).
|
45
|
+
*/
|
32
46
|
export function sliceBytes(value_, start, end, { strict } = {}) {
|
33
47
|
assertStartOffset(value_, start);
|
34
48
|
const value = value_.slice(start, end);
|
@@ -36,6 +50,13 @@ export function sliceBytes(value_, start, end, { strict } = {}) {
|
|
36
50
|
assertEndOffset(value, start, end);
|
37
51
|
return value;
|
38
52
|
}
|
53
|
+
/**
|
54
|
+
* @description Returns a section of the hex value given a start/end bytes offset.
|
55
|
+
*
|
56
|
+
* @param value The hex value to slice.
|
57
|
+
* @param start The start offset (in bytes).
|
58
|
+
* @param end The end offset (in bytes).
|
59
|
+
*/
|
39
60
|
export function sliceHex(value_, start, end, { strict } = {}) {
|
40
61
|
assertStartOffset(value_, start);
|
41
62
|
const value = `0x${value_
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../../../src/utils/data/slice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
1
|
+
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../../../src/utils/data/slice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CACnB,KAAa,EACb,KAAc,EACd,GAAY,EACZ,EAAE,MAAM,KAA2B,EAAE;IAErC,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,KAAY,EAAE,KAAK,EAAE,GAAG,EAAE;YACxC,MAAM;SACP,CAA4B,CAAA;IAC/B,OAAO,UAAU,CAAC,KAAkB,EAAE,KAAK,EAAE,GAAG,EAAE;QAChD,MAAM;KACP,CAA4B,CAAA;AAC/B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAsB,EAAE,KAAc;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACnE,MAAM,IAAI,2BAA2B,CAAC;YACpC,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;SAClB,CAAC,CAAA;AACN,CAAC;AAED,SAAS,eAAe,CAAC,KAAsB,EAAE,KAAc,EAAE,GAAY;IAC3E,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,GAAG,KAAK,QAAQ;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,EAC3B;QACA,MAAM,IAAI,2BAA2B,CAAC;YACpC,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;SAClB,CAAC,CAAA;KACH;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,MAAiB,EACjB,KAAc,EACd,GAAY,EACZ,EAAE,MAAM,KAA2B,EAAE;IAErC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACtC,IAAI,MAAM;QAAE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAW,EACX,KAAc,EACd,GAAY,EACZ,EAAE,MAAM,KAA2B,EAAE;IAErC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChC,MAAM,KAAK,GAAG,KAAK,MAAM;SACtB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAW,CAAA;IACjE,IAAI,MAAM;QAAE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAA;AACd,CAAC"}
|
@@ -2,6 +2,29 @@ import { InvalidBytesBooleanError } from '../../errors/encoding.js';
|
|
2
2
|
import { trim } from '../data/trim.js';
|
3
3
|
import { assertSize, hexToBigInt, hexToNumber } from './fromHex.js';
|
4
4
|
import { bytesToHex } from './toHex.js';
|
5
|
+
/**
|
6
|
+
* Decodes a byte array into a UTF-8 string, hex value, number, bigint or boolean.
|
7
|
+
*
|
8
|
+
* - Docs: https://viem.sh/docs/utilities/fromBytes.html
|
9
|
+
* - Example: https://viem.sh/docs/utilities/fromBytes.html#usage
|
10
|
+
*
|
11
|
+
* @param bytes Byte array to decode.
|
12
|
+
* @param toOrOpts Type to convert to or options.
|
13
|
+
* @returns Decoded value.
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* import { fromBytes } from 'viem'
|
17
|
+
* const data = fromBytes(new Uint8Array([1, 164]), 'number')
|
18
|
+
* // 420
|
19
|
+
*
|
20
|
+
* @example
|
21
|
+
* import { fromBytes } from 'viem'
|
22
|
+
* const data = fromBytes(
|
23
|
+
* new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),
|
24
|
+
* 'string'
|
25
|
+
* )
|
26
|
+
* // 'Hello world'
|
27
|
+
*/
|
5
28
|
export function fromBytes(bytes, toOrOpts) {
|
6
29
|
const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;
|
7
30
|
const to = opts.to;
|
@@ -15,12 +38,40 @@ export function fromBytes(bytes, toOrOpts) {
|
|
15
38
|
return bytesToString(bytes, opts);
|
16
39
|
return bytesToHex(bytes, opts);
|
17
40
|
}
|
41
|
+
/**
|
42
|
+
* Decodes a byte array into a bigint.
|
43
|
+
*
|
44
|
+
* - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestobigint
|
45
|
+
*
|
46
|
+
* @param bytes Byte array to decode.
|
47
|
+
* @param opts Options.
|
48
|
+
* @returns BigInt value.
|
49
|
+
*
|
50
|
+
* @example
|
51
|
+
* import { bytesToBigint } from 'viem'
|
52
|
+
* const data = bytesToBigint(new Uint8Array([1, 164]))
|
53
|
+
* // 420n
|
54
|
+
*/
|
18
55
|
export function bytesToBigint(bytes, opts = {}) {
|
19
56
|
if (typeof opts.size !== 'undefined')
|
20
57
|
assertSize(bytes, { size: opts.size });
|
21
58
|
const hex = bytesToHex(bytes, opts);
|
22
59
|
return hexToBigInt(hex);
|
23
60
|
}
|
61
|
+
/**
|
62
|
+
* Decodes a byte array into a boolean.
|
63
|
+
*
|
64
|
+
* - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestobool
|
65
|
+
*
|
66
|
+
* @param bytes Byte array to decode.
|
67
|
+
* @param opts Options.
|
68
|
+
* @returns Boolean value.
|
69
|
+
*
|
70
|
+
* @example
|
71
|
+
* import { bytesToBool } from 'viem'
|
72
|
+
* const data = bytesToBool(new Uint8Array([1]))
|
73
|
+
* // true
|
74
|
+
*/
|
24
75
|
export function bytesToBool(bytes_, opts = {}) {
|
25
76
|
let bytes = bytes_;
|
26
77
|
if (typeof opts.size !== 'undefined') {
|
@@ -31,12 +82,40 @@ export function bytesToBool(bytes_, opts = {}) {
|
|
31
82
|
throw new InvalidBytesBooleanError(bytes);
|
32
83
|
return Boolean(bytes[0]);
|
33
84
|
}
|
85
|
+
/**
|
86
|
+
* Decodes a byte array into a number.
|
87
|
+
*
|
88
|
+
* - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestonumber
|
89
|
+
*
|
90
|
+
* @param bytes Byte array to decode.
|
91
|
+
* @param opts Options.
|
92
|
+
* @returns Number value.
|
93
|
+
*
|
94
|
+
* @example
|
95
|
+
* import { bytesToNumber } from 'viem'
|
96
|
+
* const data = bytesToNumber(new Uint8Array([1, 164]))
|
97
|
+
* // 420
|
98
|
+
*/
|
34
99
|
export function bytesToNumber(bytes, opts = {}) {
|
35
100
|
if (typeof opts.size !== 'undefined')
|
36
101
|
assertSize(bytes, { size: opts.size });
|
37
102
|
const hex = bytesToHex(bytes, opts);
|
38
103
|
return hexToNumber(hex);
|
39
104
|
}
|
105
|
+
/**
|
106
|
+
* Decodes a byte array into a UTF-8 string.
|
107
|
+
*
|
108
|
+
* - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestostring
|
109
|
+
*
|
110
|
+
* @param bytes Byte array to decode.
|
111
|
+
* @param opts Options.
|
112
|
+
* @returns String value.
|
113
|
+
*
|
114
|
+
* @example
|
115
|
+
* import { bytesToString } from 'viem'
|
116
|
+
* const data = bytesToString(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))
|
117
|
+
* // 'Hello world'
|
118
|
+
*/
|
40
119
|
export function bytesToString(bytes_, opts = {}) {
|
41
120
|
let bytes = bytes_;
|
42
121
|
if (typeof opts.size !== 'undefined') {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fromBytes.js","sourceRoot":"","sources":["../../../../src/utils/encoding/fromBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
1
|
+
{"version":3,"file":"fromBytes.js","sourceRoot":"","sources":["../../../../src/utils/encoding/fromBytes.ts"],"names":[],"mappings":"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"}
|
@@ -9,6 +9,34 @@ export function assertSize(hexOrBytes, { size }) {
|
|
9
9
|
maxSize: size,
|
10
10
|
});
|
11
11
|
}
|
12
|
+
/**
|
13
|
+
* Decodes a hex string into a string, number, bigint, boolean, or byte array.
|
14
|
+
*
|
15
|
+
* - Docs: https://viem.sh/docs/utilities/fromHex.html
|
16
|
+
* - Example: https://viem.sh/docs/utilities/fromHex.html#usage
|
17
|
+
*
|
18
|
+
* @param hex Hex string to decode.
|
19
|
+
* @param toOrOpts Type to convert to or options.
|
20
|
+
* @returns Decoded value.
|
21
|
+
*
|
22
|
+
* @example
|
23
|
+
* import { fromHex } from 'viem'
|
24
|
+
* const data = fromHex('0x1a4', 'number')
|
25
|
+
* // 420
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* import { fromHex } from 'viem'
|
29
|
+
* const data = fromHex('0x48656c6c6f20576f726c6421', 'string')
|
30
|
+
* // 'Hello world'
|
31
|
+
*
|
32
|
+
* @example
|
33
|
+
* import { fromHex } from 'viem'
|
34
|
+
* const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {
|
35
|
+
* size: 32,
|
36
|
+
* to: 'string'
|
37
|
+
* })
|
38
|
+
* // 'Hello world'
|
39
|
+
*/
|
12
40
|
export function fromHex(hex, toOrOpts) {
|
13
41
|
const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;
|
14
42
|
const to = opts.to;
|
@@ -22,6 +50,25 @@ export function fromHex(hex, toOrOpts) {
|
|
22
50
|
return hexToBool(hex, opts);
|
23
51
|
return hexToBytes(hex, opts);
|
24
52
|
}
|
53
|
+
/**
|
54
|
+
* Decodes a hex value into a bigint.
|
55
|
+
*
|
56
|
+
* - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobigint
|
57
|
+
*
|
58
|
+
* @param hex Hex value to decode.
|
59
|
+
* @param opts Options.
|
60
|
+
* @returns BigInt value.
|
61
|
+
*
|
62
|
+
* @example
|
63
|
+
* import { hexToBigInt } from 'viem'
|
64
|
+
* const data = hexToBigInt('0x1a4', { signed: true })
|
65
|
+
* // 420n
|
66
|
+
*
|
67
|
+
* @example
|
68
|
+
* import { hexToBigInt } from 'viem'
|
69
|
+
* const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })
|
70
|
+
* // 420n
|
71
|
+
*/
|
25
72
|
export function hexToBigInt(hex, opts = {}) {
|
26
73
|
const { signed } = opts;
|
27
74
|
if (opts.size)
|
@@ -35,6 +82,25 @@ export function hexToBigInt(hex, opts = {}) {
|
|
35
82
|
return value;
|
36
83
|
return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;
|
37
84
|
}
|
85
|
+
/**
|
86
|
+
* Decodes a hex value into a boolean.
|
87
|
+
*
|
88
|
+
* - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobool
|
89
|
+
*
|
90
|
+
* @param hex Hex value to decode.
|
91
|
+
* @param opts Options.
|
92
|
+
* @returns Boolean value.
|
93
|
+
*
|
94
|
+
* @example
|
95
|
+
* import { hexToBool } from 'viem'
|
96
|
+
* const data = hexToBool('0x01')
|
97
|
+
* // true
|
98
|
+
*
|
99
|
+
* @example
|
100
|
+
* import { hexToBool } from 'viem'
|
101
|
+
* const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })
|
102
|
+
* // true
|
103
|
+
*/
|
38
104
|
export function hexToBool(hex_, opts = {}) {
|
39
105
|
let hex = hex_;
|
40
106
|
if (opts.size) {
|
@@ -47,9 +113,49 @@ export function hexToBool(hex_, opts = {}) {
|
|
47
113
|
return true;
|
48
114
|
throw new InvalidHexBooleanError(hex);
|
49
115
|
}
|
116
|
+
/**
|
117
|
+
* Decodes a hex string into a number.
|
118
|
+
*
|
119
|
+
* - Docs: https://viem.sh/docs/utilities/fromHex.html#hextonumber
|
120
|
+
*
|
121
|
+
* @param hex Hex value to decode.
|
122
|
+
* @param opts Options.
|
123
|
+
* @returns Number value.
|
124
|
+
*
|
125
|
+
* @example
|
126
|
+
* import { hexToNumber } from 'viem'
|
127
|
+
* const data = hexToNumber('0x1a4')
|
128
|
+
* // 420
|
129
|
+
*
|
130
|
+
* @example
|
131
|
+
* import { hexToNumber } from 'viem'
|
132
|
+
* const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })
|
133
|
+
* // 420
|
134
|
+
*/
|
50
135
|
export function hexToNumber(hex, opts = {}) {
|
51
136
|
return Number(hexToBigInt(hex, opts));
|
52
137
|
}
|
138
|
+
/**
|
139
|
+
* Decodes a hex value into a UTF-8 string.
|
140
|
+
*
|
141
|
+
* - Docs: https://viem.sh/docs/utilities/fromHex.html#hextostring
|
142
|
+
*
|
143
|
+
* @param hex Hex value to decode.
|
144
|
+
* @param opts Options.
|
145
|
+
* @returns String value.
|
146
|
+
*
|
147
|
+
* @example
|
148
|
+
* import { hexToString } from 'viem'
|
149
|
+
* const data = hexToString('0x48656c6c6f20576f726c6421')
|
150
|
+
* // 'Hello world!'
|
151
|
+
*
|
152
|
+
* @example
|
153
|
+
* import { hexToString } from 'viem'
|
154
|
+
* const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {
|
155
|
+
* size: 32,
|
156
|
+
* })
|
157
|
+
* // 'Hello world'
|
158
|
+
*/
|
53
159
|
export function hexToString(hex, opts = {}) {
|
54
160
|
let bytes = hexToBytes(hex);
|
55
161
|
if (opts.size) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fromHex.js","sourceRoot":"","sources":["../../../../src/utils/encoding/fromHex.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,UAAU,UAAU,CACxB,UAA2B,EAC3B,EAAE,IAAI,EAAoB;IAE1B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI;QAC1B,MAAM,IAAI,iBAAiB,CAAC;YAC1B,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC;YAC5B,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;AACN,CAAC;
|
1
|
+
{"version":3,"file":"fromHex.js","sourceRoot":"","sources":["../../../../src/utils/encoding/fromHex.ts"],"names":[],"mappings":"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"}
|
@@ -3,7 +3,32 @@ import { isHex } from '../data/isHex.js';
|
|
3
3
|
import { pad } from '../data/pad.js';
|
4
4
|
import { assertSize } from './fromHex.js';
|
5
5
|
import { numberToHex } from './toHex.js';
|
6
|
-
const encoder = new TextEncoder();
|
6
|
+
const encoder = /*#__PURE__*/ new TextEncoder();
|
7
|
+
/**
|
8
|
+
* Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.
|
9
|
+
*
|
10
|
+
* - Docs: https://viem.sh/docs/utilities/toBytes.html
|
11
|
+
* - Example: https://viem.sh/docs/utilities/toBytes.html#usage
|
12
|
+
*
|
13
|
+
* @param value Value to encode.
|
14
|
+
* @param opts Options.
|
15
|
+
* @returns Byte array value.
|
16
|
+
*
|
17
|
+
* @example
|
18
|
+
* import { toBytes } from 'viem'
|
19
|
+
* const data = toBytes('Hello world')
|
20
|
+
* // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
|
21
|
+
*
|
22
|
+
* @example
|
23
|
+
* import { toBytes } from 'viem'
|
24
|
+
* const data = toBytes(420)
|
25
|
+
* // Uint8Array([1, 164])
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* import { toBytes } from 'viem'
|
29
|
+
* const data = toBytes(420, { size: 4 })
|
30
|
+
* // Uint8Array([0, 0, 1, 164])
|
31
|
+
*/
|
7
32
|
export function toBytes(value, opts = {}) {
|
8
33
|
if (typeof value === 'number' || typeof value === 'bigint')
|
9
34
|
return numberToBytes(value, opts);
|
@@ -13,6 +38,25 @@ export function toBytes(value, opts = {}) {
|
|
13
38
|
return hexToBytes(value, opts);
|
14
39
|
return stringToBytes(value, opts);
|
15
40
|
}
|
41
|
+
/**
|
42
|
+
* Encodes a boolean into a byte array.
|
43
|
+
*
|
44
|
+
* - Docs: https://viem.sh/docs/utilities/toBytes.html#booltobytes
|
45
|
+
*
|
46
|
+
* @param value Boolean value to encode.
|
47
|
+
* @param opts Options.
|
48
|
+
* @returns Byte array value.
|
49
|
+
*
|
50
|
+
* @example
|
51
|
+
* import { boolToBytes } from 'viem'
|
52
|
+
* const data = boolToBytes(true)
|
53
|
+
* // Uint8Array([1])
|
54
|
+
*
|
55
|
+
* @example
|
56
|
+
* import { boolToBytes } from 'viem'
|
57
|
+
* const data = boolToBytes(true, { size: 32 })
|
58
|
+
* // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])
|
59
|
+
*/
|
16
60
|
export function boolToBytes(value, opts = {}) {
|
17
61
|
const bytes = new Uint8Array(1);
|
18
62
|
bytes[0] = Number(value);
|
@@ -22,6 +66,25 @@ export function boolToBytes(value, opts = {}) {
|
|
22
66
|
}
|
23
67
|
return bytes;
|
24
68
|
}
|
69
|
+
/**
|
70
|
+
* Encodes a hex string into a byte array.
|
71
|
+
*
|
72
|
+
* - Docs: https://viem.sh/docs/utilities/toBytes.html#hextobytes
|
73
|
+
*
|
74
|
+
* @param hex Hex string to encode.
|
75
|
+
* @param opts Options.
|
76
|
+
* @returns Byte array value.
|
77
|
+
*
|
78
|
+
* @example
|
79
|
+
* import { hexToBytes } from 'viem'
|
80
|
+
* const data = hexToBytes('0x48656c6c6f20776f726c6421')
|
81
|
+
* // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
|
82
|
+
*
|
83
|
+
* @example
|
84
|
+
* import { hexToBytes } from 'viem'
|
85
|
+
* const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })
|
86
|
+
* // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
|
87
|
+
*/
|
25
88
|
export function hexToBytes(hex_, opts = {}) {
|
26
89
|
let hex = hex_;
|
27
90
|
if (opts.size) {
|
@@ -42,10 +105,48 @@ export function hexToBytes(hex_, opts = {}) {
|
|
42
105
|
}
|
43
106
|
return bytes;
|
44
107
|
}
|
108
|
+
/**
|
109
|
+
* Encodes a number into a byte array.
|
110
|
+
*
|
111
|
+
* - Docs: https://viem.sh/docs/utilities/toBytes.html#numbertobytes
|
112
|
+
*
|
113
|
+
* @param value Number to encode.
|
114
|
+
* @param opts Options.
|
115
|
+
* @returns Byte array value.
|
116
|
+
*
|
117
|
+
* @example
|
118
|
+
* import { numberToBytes } from 'viem'
|
119
|
+
* const data = numberToBytes(420)
|
120
|
+
* // Uint8Array([1, 164])
|
121
|
+
*
|
122
|
+
* @example
|
123
|
+
* import { numberToBytes } from 'viem'
|
124
|
+
* const data = numberToBytes(420, { size: 4 })
|
125
|
+
* // Uint8Array([0, 0, 1, 164])
|
126
|
+
*/
|
45
127
|
export function numberToBytes(value, opts) {
|
46
128
|
const hex = numberToHex(value, opts);
|
47
129
|
return hexToBytes(hex);
|
48
130
|
}
|
131
|
+
/**
|
132
|
+
* Encodes a UTF-8 string into a byte array.
|
133
|
+
*
|
134
|
+
* - Docs: https://viem.sh/docs/utilities/toBytes.html#stringtobytes
|
135
|
+
*
|
136
|
+
* @param value String to encode.
|
137
|
+
* @param opts Options.
|
138
|
+
* @returns Byte array value.
|
139
|
+
*
|
140
|
+
* @example
|
141
|
+
* import { stringToBytes } from 'viem'
|
142
|
+
* const data = stringToBytes('Hello world!')
|
143
|
+
* // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])
|
144
|
+
*
|
145
|
+
* @example
|
146
|
+
* import { stringToBytes } from 'viem'
|
147
|
+
* const data = stringToBytes('Hello world!', { size: 32 })
|
148
|
+
* // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
|
149
|
+
*/
|
49
150
|
export function stringToBytes(value, opts = {}) {
|
50
151
|
const bytes = encoder.encode(value);
|
51
152
|
if (typeof opts.size === 'number') {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../../src/utils/encoding/toBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAwB,WAAW,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;
|
1
|
+
{"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../../src/utils/encoding/toBytes.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,32 @@
|
|
1
1
|
import { IntegerOutOfRangeError } from '../../errors/encoding.js';
|
2
2
|
import { pad } from '../data/pad.js';
|
3
3
|
import { assertSize } from './fromHex.js';
|
4
|
-
const hexes = Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));
|
4
|
+
const hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));
|
5
|
+
/**
|
6
|
+
* Encodes a string, number, bigint, or ByteArray into a hex string
|
7
|
+
*
|
8
|
+
* - Docs: https://viem.sh/docs/utilities/toHex.html
|
9
|
+
* - Example: https://viem.sh/docs/utilities/toHex.html#usage
|
10
|
+
*
|
11
|
+
* @param value Value to encode.
|
12
|
+
* @param opts Options.
|
13
|
+
* @returns Hex value.
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* import { toHex } from 'viem'
|
17
|
+
* const data = toHex('Hello world')
|
18
|
+
* // '0x48656c6c6f20776f726c6421'
|
19
|
+
*
|
20
|
+
* @example
|
21
|
+
* import { toHex } from 'viem'
|
22
|
+
* const data = toHex(420)
|
23
|
+
* // '0x1a4'
|
24
|
+
*
|
25
|
+
* @example
|
26
|
+
* import { toHex } from 'viem'
|
27
|
+
* const data = toHex('Hello world', { size: 32 })
|
28
|
+
* // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'
|
29
|
+
*/
|
5
30
|
export function toHex(value, opts = {}) {
|
6
31
|
if (typeof value === 'number' || typeof value === 'bigint')
|
7
32
|
return numberToHex(value, opts);
|
@@ -12,6 +37,30 @@ export function toHex(value, opts = {}) {
|
|
12
37
|
return boolToHex(value, opts);
|
13
38
|
return bytesToHex(value, opts);
|
14
39
|
}
|
40
|
+
/**
|
41
|
+
* Encodes a boolean into a hex string
|
42
|
+
*
|
43
|
+
* - Docs: https://viem.sh/docs/utilities/toHex.html#booltohex
|
44
|
+
*
|
45
|
+
* @param value Value to encode.
|
46
|
+
* @param opts Options.
|
47
|
+
* @returns Hex value.
|
48
|
+
*
|
49
|
+
* @example
|
50
|
+
* import { boolToHex } from 'viem'
|
51
|
+
* const data = boolToHex(true)
|
52
|
+
* // '0x1'
|
53
|
+
*
|
54
|
+
* @example
|
55
|
+
* import { boolToHex } from 'viem'
|
56
|
+
* const data = boolToHex(false)
|
57
|
+
* // '0x0'
|
58
|
+
*
|
59
|
+
* @example
|
60
|
+
* import { boolToHex } from 'viem'
|
61
|
+
* const data = boolToHex(true, { size: 32 })
|
62
|
+
* // '0x0000000000000000000000000000000000000000000000000000000000000001'
|
63
|
+
*/
|
15
64
|
export function boolToHex(value, opts = {}) {
|
16
65
|
const hex = `0x${Number(value)}`;
|
17
66
|
if (typeof opts.size === 'number') {
|
@@ -20,6 +69,25 @@ export function boolToHex(value, opts = {}) {
|
|
20
69
|
}
|
21
70
|
return hex;
|
22
71
|
}
|
72
|
+
/**
|
73
|
+
* Encodes a bytes array into a hex string
|
74
|
+
*
|
75
|
+
* - Docs: https://viem.sh/docs/utilities/toHex.html#bytestohex
|
76
|
+
*
|
77
|
+
* @param value Value to encode.
|
78
|
+
* @param opts Options.
|
79
|
+
* @returns Hex value.
|
80
|
+
*
|
81
|
+
* @example
|
82
|
+
* import { bytesToHex } from 'viem'
|
83
|
+
* const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
|
84
|
+
* // '0x48656c6c6f20576f726c6421'
|
85
|
+
*
|
86
|
+
* @example
|
87
|
+
* import { bytesToHex } from 'viem'
|
88
|
+
* const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })
|
89
|
+
* // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
|
90
|
+
*/
|
23
91
|
export function bytesToHex(value, opts = {}) {
|
24
92
|
let hexString = '';
|
25
93
|
for (let i = 0; i < value.length; i++) {
|
@@ -32,6 +100,25 @@ export function bytesToHex(value, opts = {}) {
|
|
32
100
|
}
|
33
101
|
return hex;
|
34
102
|
}
|
103
|
+
/**
|
104
|
+
* Encodes a number or bigint into a hex string
|
105
|
+
*
|
106
|
+
* - Docs: https://viem.sh/docs/utilities/toHex.html#numbertohex
|
107
|
+
*
|
108
|
+
* @param value Value to encode.
|
109
|
+
* @param opts Options.
|
110
|
+
* @returns Hex value.
|
111
|
+
*
|
112
|
+
* @example
|
113
|
+
* import { numberToHex } from 'viem'
|
114
|
+
* const data = numberToHex(420)
|
115
|
+
* // '0x1a4'
|
116
|
+
*
|
117
|
+
* @example
|
118
|
+
* import { numberToHex } from 'viem'
|
119
|
+
* const data = numberToHex(420, { size: 32 })
|
120
|
+
* // '0x00000000000000000000000000000000000000000000000000000000000001a4'
|
121
|
+
*/
|
35
122
|
export function numberToHex(value_, opts = {}) {
|
36
123
|
const { signed, size } = opts;
|
37
124
|
const value = BigInt(value_);
|
@@ -63,7 +150,26 @@ export function numberToHex(value_, opts = {}) {
|
|
63
150
|
return pad(hex, { size });
|
64
151
|
return hex;
|
65
152
|
}
|
66
|
-
const encoder = new TextEncoder();
|
153
|
+
const encoder = /*#__PURE__*/ new TextEncoder();
|
154
|
+
/**
|
155
|
+
* Encodes a UTF-8 string into a hex string
|
156
|
+
*
|
157
|
+
* - Docs: https://viem.sh/docs/utilities/toHex.html#stringtohex
|
158
|
+
*
|
159
|
+
* @param value Value to encode.
|
160
|
+
* @param opts Options.
|
161
|
+
* @returns Hex value.
|
162
|
+
*
|
163
|
+
* @example
|
164
|
+
* import { stringToHex } from 'viem'
|
165
|
+
* const data = stringToHex('Hello World!')
|
166
|
+
* // '0x48656c6c6f20576f726c6421'
|
167
|
+
*
|
168
|
+
* @example
|
169
|
+
* import { stringToHex } from 'viem'
|
170
|
+
* const data = stringToHex('Hello World!', { size: 32 })
|
171
|
+
* // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
|
172
|
+
*/
|
67
173
|
export function stringToHex(value_, opts = {}) {
|
68
174
|
const value = encoder.encode(value_);
|
69
175
|
return bytesToHex(value, opts);
|