viem 0.0.0-portable-types-20230522163654 → 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 +3 -2
- 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 +8 -2
- 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 +3 -3
- 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/buildRequest.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/prepareRequest.js +1 -2
- package/dist/cjs/utils/transaction/prepareRequest.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 +29 -2
- 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 +111 -2
- 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 -51
- 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 +3 -1
- 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 -2
- 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/createBlockFilter.d.ts +1 -1
- package/dist/types/actions/public/createContractEventFilter.d.ts +9 -4
- package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/createEventFilter.d.ts +18 -6
- package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/createPendingTransactionFilter.d.ts +1 -1
- package/dist/types/actions/public/estimateContractGas.d.ts +5 -3
- package/dist/types/actions/public/estimateContractGas.d.ts.map +1 -1
- package/dist/types/actions/public/estimateGas.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 +8 -8
- 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/getTransaction.d.ts +1 -1
- package/dist/types/actions/public/getTransactionCount.d.ts +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts +1 -1
- package/dist/types/actions/public/multicall.d.ts +1 -1
- package/dist/types/actions/public/readContract.d.ts +2 -2
- package/dist/types/actions/public/readContract.d.ts.map +1 -1
- package/dist/types/actions/public/simulateContract.d.ts +2 -2
- package/dist/types/actions/public/uninstallFilter.d.ts +3 -3
- 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 +11 -6
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts +13 -7
- 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/test/setBlockTimestampInterval.d.ts +1 -1
- package/dist/types/actions/test/stopImpersonatingAccount.d.ts +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts +1 -1
- package/dist/types/actions/wallet/signMessage.d.ts +4 -4
- 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/actions/wallet/writeContract.d.ts +3 -3
- 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 +4 -4
- package/dist/types/clients/createPublicClient.d.ts.map +1 -1
- package/dist/types/clients/createTestClient.d.ts +4 -4
- package/dist/types/clients/createTestClient.d.ts.map +1 -1
- package/dist/types/clients/createWalletClient.d.ts +4 -4
- package/dist/types/clients/createWalletClient.d.ts.map +1 -1
- package/dist/types/clients/decorators/public.d.ts +30 -30
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/clients/decorators/test.d.ts +3 -3
- package/dist/types/clients/decorators/test.d.ts.map +1 -1
- package/dist/types/clients/decorators/wallet.d.ts +7 -9
- 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 +12 -8
- 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 +56 -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 +1048 -834
- 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/buildRequest.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/transaction/prepareRequest.d.ts +1 -1
- package/dist/types/utils/transaction/prepareRequest.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/createBlockFilter.ts +1 -1
- package/src/actions/public/createContractEventFilter.ts +22 -5
- package/src/actions/public/createEventFilter.ts +35 -14
- package/src/actions/public/createPendingTransactionFilter.ts +1 -1
- package/src/actions/public/estimateContractGas.ts +11 -5
- package/src/actions/public/estimateGas.ts +4 -3
- 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 +36 -11
- 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/getTransaction.ts +1 -1
- package/src/actions/public/getTransactionCount.ts +2 -2
- package/src/actions/public/getTransactionReceipt.ts +1 -1
- package/src/actions/public/multicall.ts +1 -1
- package/src/actions/public/readContract.ts +2 -2
- package/src/actions/public/simulateContract.ts +2 -2
- package/src/actions/public/uninstallFilter.ts +3 -3
- package/src/actions/public/verifyMessage.ts +2 -2
- package/src/actions/public/verifyTypedData.ts +18 -6
- package/src/actions/public/watchContractEvent.ts +17 -5
- package/src/actions/public/watchEvent.ts +19 -6
- 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/test/setBlockTimestampInterval.ts +1 -1
- package/src/actions/test/stopImpersonatingAccount.ts +1 -1
- package/src/actions/wallet/deployContract.ts +1 -1
- package/src/actions/wallet/sendTransaction.ts +1 -1
- package/src/actions/wallet/signMessage.ts +13 -6
- package/src/actions/wallet/signTypedData.ts +5 -5
- package/src/actions/wallet/writeContract.ts +3 -3
- package/src/chains.ts +123 -88
- package/src/clients/createClient.ts +13 -11
- package/src/clients/createPublicClient.ts +4 -5
- package/src/clients/createTestClient.ts +4 -5
- package/src/clients/createWalletClient.ts +4 -5
- package/src/clients/decorators/public.ts +65 -39
- package/src/clients/decorators/test.ts +6 -5
- package/src/clients/decorators/wallet.ts +8 -8
- 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 +43 -15
- package/src/errors/version.ts +1 -1
- package/src/index.ts +266 -247
- package/src/types/account.ts +9 -9
- package/src/types/contract.ts +33 -15
- package/src/types/eip1193.ts +1093 -839
- 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/buildRequest.ts +5 -1
- 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/prepareRequest.ts +1 -2
- 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
package/dist/esm/utils/rpc.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { HttpRequestError,
|
1
|
+
import { HttpRequestError, TimeoutError, WebSocketRequestError, } from '../errors/request.js';
|
2
2
|
import { createBatchScheduler } from './promise/createBatchScheduler.js';
|
3
3
|
import { withTimeout } from './promise/withTimeout.js';
|
4
4
|
import { stringify } from './stringify.js';
|
@@ -9,7 +9,13 @@ async function http(url, { body, fetchOptions = {}, timeout = 10000 }) {
|
|
9
9
|
const response = await withTimeout(async ({ signal }) => {
|
10
10
|
const response = await fetch(url, {
|
11
11
|
...fetchOptions,
|
12
|
-
body:
|
12
|
+
body: Array.isArray(body)
|
13
|
+
? stringify(body.map((body) => ({
|
14
|
+
jsonrpc: '2.0',
|
15
|
+
id: id++,
|
16
|
+
...body,
|
17
|
+
})))
|
18
|
+
: stringify({ jsonrpc: '2.0', id: id++, ...body }),
|
13
19
|
headers: {
|
14
20
|
...headers,
|
15
21
|
'Content-Type': 'application/json',
|
@@ -39,16 +45,11 @@ async function http(url, { body, fetchOptions = {}, timeout = 10000 }) {
|
|
39
45
|
url,
|
40
46
|
});
|
41
47
|
}
|
42
|
-
if (data.error) {
|
43
|
-
throw new RpcRequestError({ body, error: data.error, url });
|
44
|
-
}
|
45
48
|
return data;
|
46
49
|
}
|
47
50
|
catch (err) {
|
48
51
|
if (err instanceof HttpRequestError)
|
49
52
|
throw err;
|
50
|
-
if (err instanceof RpcRequestError)
|
51
|
-
throw err;
|
52
53
|
if (err instanceof TimeoutError)
|
53
54
|
throw err;
|
54
55
|
throw new HttpRequestError({
|
@@ -58,17 +59,21 @@ async function http(url, { body, fetchOptions = {}, timeout = 10000 }) {
|
|
58
59
|
});
|
59
60
|
}
|
60
61
|
}
|
61
|
-
const sockets = new Map();
|
62
|
+
const sockets = /*#__PURE__*/ new Map();
|
62
63
|
export async function getSocket(url_) {
|
63
64
|
const url = new URL(url_);
|
64
65
|
const urlKey = url.toString();
|
65
66
|
let socket = sockets.get(urlKey);
|
67
|
+
// If the socket already exists, return it.
|
66
68
|
if (socket)
|
67
69
|
return socket;
|
68
70
|
const { schedule } = createBatchScheduler({
|
69
71
|
id: urlKey,
|
70
72
|
fn: async () => {
|
71
73
|
let WebSocket = await import('isomorphic-ws');
|
74
|
+
// Workaround for Vite.
|
75
|
+
// https://github.com/vitejs/vite/issues/9703
|
76
|
+
// TODO: Remove when issue is resolved.
|
72
77
|
if (WebSocket.default
|
73
78
|
?.constructor)
|
74
79
|
WebSocket = WebSocket
|
@@ -76,7 +81,9 @@ export async function getSocket(url_) {
|
|
76
81
|
else
|
77
82
|
WebSocket = WebSocket.WebSocket;
|
78
83
|
const webSocket = new WebSocket(url);
|
84
|
+
// Set up a cache for incoming "synchronous" requests.
|
79
85
|
const requests = new Map();
|
86
|
+
// Set up a cache for subscriptions (eth_subscribe).
|
80
87
|
const subscriptions = new Map();
|
81
88
|
const onMessage = ({ data }) => {
|
82
89
|
const message = JSON.parse(data);
|
@@ -94,8 +101,10 @@ export async function getSocket(url_) {
|
|
94
101
|
webSocket.removeEventListener('close', onClose);
|
95
102
|
webSocket.removeEventListener('message', onMessage);
|
96
103
|
};
|
104
|
+
// Setup event listeners for RPC & subscription responses.
|
97
105
|
webSocket.addEventListener('close', onClose);
|
98
106
|
webSocket.addEventListener('message', onMessage);
|
107
|
+
// Wait for the socket to open.
|
99
108
|
if (webSocket.readyState === WebSocket.CONNECTING) {
|
100
109
|
await new Promise((resolve, reject) => {
|
101
110
|
if (!webSocket)
|
@@ -104,6 +113,7 @@ export async function getSocket(url_) {
|
|
104
113
|
webSocket.onerror = reject;
|
105
114
|
});
|
106
115
|
}
|
116
|
+
// Create a new socket instance.
|
107
117
|
socket = Object.assign(webSocket, {
|
108
118
|
requests,
|
109
119
|
subscriptions,
|
@@ -115,7 +125,7 @@ export async function getSocket(url_) {
|
|
115
125
|
const [_, [socket_]] = await schedule();
|
116
126
|
return socket_;
|
117
127
|
}
|
118
|
-
function webSocket(socket, { body,
|
128
|
+
function webSocket(socket, { body, onResponse }) {
|
119
129
|
if (socket.readyState === socket.CLOSED ||
|
120
130
|
socket.readyState === socket.CLOSING)
|
121
131
|
throw new WebSocketRequestError({
|
@@ -128,15 +138,13 @@ function webSocket(socket, { body, onData, onError, }) {
|
|
128
138
|
const message = JSON.parse(data);
|
129
139
|
if (typeof message.id === 'number' && id_ !== message.id)
|
130
140
|
return;
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
else {
|
135
|
-
onData?.(message);
|
136
|
-
}
|
141
|
+
onResponse?.(message);
|
142
|
+
// If we are subscribing to a topic, we want to set up a listener for incoming
|
143
|
+
// messages.
|
137
144
|
if (body.method === 'eth_subscribe' && typeof message.result === 'string') {
|
138
145
|
socket.subscriptions.set(message.result, callback);
|
139
146
|
}
|
147
|
+
// If we are unsubscribing from a topic, we want to remove the listener.
|
140
148
|
if (body.method === 'eth_unsubscribe') {
|
141
149
|
socket.subscriptions.delete(body.params?.[0]);
|
142
150
|
}
|
@@ -145,16 +153,16 @@ function webSocket(socket, { body, onData, onError, }) {
|
|
145
153
|
socket.send(JSON.stringify({ jsonrpc: '2.0', ...body, id: id_ }));
|
146
154
|
return socket;
|
147
155
|
}
|
148
|
-
async function webSocketAsync(socket, { body, timeout = 10000
|
149
|
-
return withTimeout(() => new Promise((
|
156
|
+
async function webSocketAsync(socket, { body, timeout = 10000 }) {
|
157
|
+
return withTimeout(() => new Promise((onResponse) => rpc.webSocket(socket, {
|
150
158
|
body,
|
151
|
-
|
152
|
-
onError,
|
159
|
+
onResponse,
|
153
160
|
})), {
|
154
161
|
errorInstance: new TimeoutError({ body, url: socket.url }),
|
155
162
|
timeout,
|
156
163
|
});
|
157
164
|
}
|
165
|
+
///////////////////////////////////////////////////
|
158
166
|
export const rpc = {
|
159
167
|
http,
|
160
168
|
webSocket,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/utils/rpc.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/utils/rpc.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,14 @@
|
|
1
1
|
import { concat } from '../data/concat.js';
|
2
|
-
import { stringToBytes } from '../encoding/toBytes.js';
|
2
|
+
import { stringToBytes, toBytes } from '../encoding/toBytes.js';
|
3
3
|
import { keccak256 } from '../hash/keccak256.js';
|
4
4
|
export function hashMessage(message, to_) {
|
5
|
-
const messageBytes =
|
5
|
+
const messageBytes = (() => {
|
6
|
+
if (typeof message === 'string')
|
7
|
+
return stringToBytes(message);
|
8
|
+
if (message.raw instanceof Uint8Array)
|
9
|
+
return message.raw;
|
10
|
+
return toBytes(message.raw);
|
11
|
+
})();
|
6
12
|
const prefixBytes = stringToBytes(`\x19Ethereum Signed Message:\n${messageBytes.length}`);
|
7
13
|
return keccak256(concat([prefixBytes, messageBytes]), to_);
|
8
14
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hashMessage.js","sourceRoot":"","sources":["../../../../src/utils/signature/hashMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;
|
1
|
+
{"version":3,"file":"hashMessage.js","sourceRoot":"","sources":["../../../../src/utils/signature/hashMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAQhD,MAAM,UAAU,WAAW,CACzB,OAAwB,EACxB,GAAS;IAET,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;QAC9D,IAAI,OAAO,CAAC,GAAG,YAAY,UAAU;YAAE,OAAO,OAAO,CAAC,GAAG,CAAA;QACzD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,WAAW,GAAG,aAAa,CAC/B,iCAAiC,YAAY,CAAC,MAAM,EAAE,CACvD,CAAA;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC5D,CAAC"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts
|
1
2
|
import { encodeAbiParameters } from '../abi/encodeAbiParameters.js';
|
2
3
|
import { concat } from '../data/concat.js';
|
3
4
|
import { toHex } from '../encoding/toHex.js';
|
@@ -18,6 +19,8 @@ export function hashTypedData({ domain: domain_, message, primaryType, types: ty
|
|
18
19
|
].filter(Boolean),
|
19
20
|
...types_,
|
20
21
|
};
|
22
|
+
// Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc
|
23
|
+
// as we can't statically check this with TypeScript.
|
21
24
|
validateTypedData({
|
22
25
|
domain,
|
23
26
|
message,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hashTypedData.js","sourceRoot":"","sources":["../../../../src/utils/signature/hashTypedData.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"hashTypedData.js","sourceRoot":"","sources":["../../../../src/utils/signature/hashTypedData.ts"],"names":[],"mappings":"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"}
|
@@ -4,6 +4,8 @@ import { toHex } from '../encoding/toHex.js';
|
|
4
4
|
export async function recoverPublicKey({ hash, signature, }) {
|
5
5
|
const signatureHex = isHex(signature) ? signature : toHex(signature);
|
6
6
|
const hashHex = isHex(hash) ? hash : toHex(hash);
|
7
|
+
// Derive v = recoveryId + 27 from end of the signature (27 is added when signing the message)
|
8
|
+
// The recoveryId represents the y-coordinate on the secp256k1 elliptic curve and can have a value [0, 1].
|
7
9
|
let v = hexToNumber(`0x${signatureHex.slice(130)}`);
|
8
10
|
if (v === 0 || v === 1)
|
9
11
|
v += 27;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"recoverPublicKey.js","sourceRoot":"","sources":["../../../../src/utils/signature/recoverPublicKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAQ5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACkB;IAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"recoverPublicKey.js","sourceRoot":"","sources":["../../../../src/utils/signature/recoverPublicKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAQ5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACkB;IAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhD,8FAA8F;IAC9F,0GAA0G;IAC1G,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,CAAC,IAAI,EAAE,CAAA;IAE/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAC/C,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAC/B;SACE,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtC,KAAK,CAAC,KAAK,CAAC,CAAA;IACf,OAAO,KAAK,SAAS,EAAE,CAAA;AACzB,CAAC"}
|
@@ -1,6 +1,18 @@
|
|
1
1
|
import { getAddress } from '../address/getAddress.js';
|
2
2
|
import { isAddressEqual } from '../address/isAddressEqual.js';
|
3
3
|
import { recoverMessageAddress } from './recoverMessageAddress.js';
|
4
|
+
/**
|
5
|
+
* Verify that a message was signed by the provided address.
|
6
|
+
*
|
7
|
+
* Note: Only supports Externally Owned Accounts. Does not support Contract Accounts.
|
8
|
+
* It is highly recommended to use `publicClient.verifyMessage` instead to ensure
|
9
|
+
* wallet interoperability.
|
10
|
+
*
|
11
|
+
* - Docs {@link https://viem.sh/docs/utilities/verifyMessage.html}
|
12
|
+
*
|
13
|
+
* @param parameters - {@link VerifyMessageParameters}
|
14
|
+
* @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}
|
15
|
+
*/
|
4
16
|
export async function verifyMessage({ address, message, signature, }) {
|
5
17
|
return isAddressEqual(getAddress(address), await recoverMessageAddress({ message, signature }));
|
6
18
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../../src/utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;
|
1
|
+
{"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../../src/utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAalE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACe;IACxB,OAAO,cAAc,CACnB,UAAU,CAAC,OAAO,CAAC,EACnB,MAAM,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CACpD,CAAA;AACH,CAAC"}
|
@@ -1,6 +1,18 @@
|
|
1
1
|
import { getAddress } from '../address/getAddress.js';
|
2
2
|
import { isAddressEqual } from '../address/isAddressEqual.js';
|
3
3
|
import { recoverTypedDataAddress, } from './recoverTypedDataAddress.js';
|
4
|
+
/**
|
5
|
+
* Verify that typed data was signed by the provided address.
|
6
|
+
*
|
7
|
+
* Note: Only supports Externally Owned Accounts. Does not support Contract Accounts.
|
8
|
+
* It is highly recommended to use `publicClient.verifyTypedData` instead to ensure
|
9
|
+
* wallet interoperability.
|
10
|
+
*
|
11
|
+
* - Docs {@link https://viem.sh/docs/utilities/verifyTypedData.html}
|
12
|
+
*
|
13
|
+
* @param parameters - {@link VerifyTypedDataParameters}
|
14
|
+
* @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}
|
15
|
+
*/
|
4
16
|
export async function verifyTypedData({ address, domain, message, primaryType, signature, types, }) {
|
5
17
|
return isAddressEqual(getAddress(address), await recoverTypedDataAddress({
|
6
18
|
domain,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"verifyTypedData.js","sourceRoot":"","sources":["../../../../src/utils/signature/verifyTypedData.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAEL,uBAAuB,GACxB,MAAM,8BAA8B,CAAA;
|
1
|
+
{"version":3,"file":"verifyTypedData.js","sourceRoot":"","sources":["../../../../src/utils/signature/verifyTypedData.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAEL,uBAAuB,GACxB,MAAM,8BAA8B,CAAA;AAcrC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAGnC,EACA,OAAO,EACP,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,EACT,KAAK,GAIN;IACC,OAAO,cAAc,CACnB,UAAU,CAAC,OAAO,CAAC,EACnB,MAAM,uBAAuB,CAAC;QAC5B,MAAM;QACN,OAAO;QACP,WAAW;QACX,SAAS;QACT,KAAK;KAC+B,CAAC,CACxC,CAAA;AACH,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTransactionType.js","sourceRoot":"","sources":["../../../../src/utils/transaction/getTransactionType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,6BAA6B,CAAA;
|
1
|
+
{"version":3,"file":"getTransactionType.js","sourceRoot":"","sources":["../../../../src/utils/transaction/getTransactionType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,6BAA6B,CAAA;AAyBjF,MAAM,UAAU,kBAAkB,CAGhC,WAAqC;IAErC,IAAI,WAAW,CAAC,IAAI;QAClB,OAAO,WAAW,CAAC,IAAoD,CAAA;IAEzE,IACE,OAAO,WAAW,CAAC,YAAY,KAAK,WAAW;QAC/C,OAAO,WAAW,CAAC,oBAAoB,KAAK,WAAW;QAEvD,OAAO,SAAyD,CAAA;IAElE,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,WAAW,EAAE;QAC/C,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,WAAW;YAC/C,OAAO,SAAyD,CAAA;QAClE,OAAO,QAAwD,CAAA;KAChE;IAED,MAAM,IAAI,mCAAmC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;AAChE,CAAC"}
|
@@ -5,9 +5,8 @@ import { getGasPrice } from '../../actions/public/getGasPrice.js';
|
|
5
5
|
import { getTransactionCount } from '../../actions/public/getTransactionCount.js';
|
6
6
|
import { AccountNotFoundError } from '../../errors/account.js';
|
7
7
|
import { BaseError } from '../../errors/base.js';
|
8
|
-
import { parseGwei } from '../unit/parseGwei.js';
|
9
8
|
import { assertRequest } from './assertRequest.js';
|
10
|
-
export const defaultTip =
|
9
|
+
export const defaultTip = 1500000000n; // 1.5 gwei
|
11
10
|
export async function prepareRequest(client, args) {
|
12
11
|
const { account: account_, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, } = args;
|
13
12
|
if (!account_)
|
@@ -23,7 +22,9 @@ export async function prepareRequest(client, args) {
|
|
23
22
|
if (block.baseFeePerGas) {
|
24
23
|
if (typeof gasPrice !== 'undefined')
|
25
24
|
throw new BaseError('Chain does not support legacy `gasPrice`.');
|
25
|
+
// EIP-1559 fees
|
26
26
|
if (typeof maxFeePerGas === 'undefined') {
|
27
|
+
// Set a buffer of 1.2x on top of the base fee to account for fluctuations.
|
27
28
|
request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultTip;
|
28
29
|
request.maxFeePerGas =
|
29
30
|
(block.baseFeePerGas * 120n) / 100n + request.maxPriorityFeePerGas;
|
@@ -40,7 +41,9 @@ export async function prepareRequest(client, args) {
|
|
40
41
|
if (typeof maxFeePerGas !== 'undefined' ||
|
41
42
|
typeof maxPriorityFeePerGas !== 'undefined')
|
42
43
|
throw new BaseError('Chain does not support EIP-1559 fees.');
|
44
|
+
// Legacy fees
|
43
45
|
if (typeof gasPrice === 'undefined')
|
46
|
+
// Set a buffer of 1.2x on top of the base fee to account for fluctuations.
|
44
47
|
request.gasPrice = ((await getGasPrice(client)) * 120n) / 100n;
|
45
48
|
}
|
46
49
|
if (typeof gas === 'undefined')
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"prepareRequest.js","sourceRoot":"","sources":["../../../../src/utils/transaction/prepareRequest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAEL,WAAW,GACZ,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AAKjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;
|
1
|
+
{"version":3,"file":"prepareRequest.js","sourceRoot":"","sources":["../../../../src/utils/transaction/prepareRequest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAEL,WAAW,GACZ,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AAKjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAwBlD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAc,CAAA,CAAC,WAAW;AAEpD,MAAM,CAAC,KAAK,UAAU,cAAc,CAKlC,MAEmC,EACnC,IAAiB;IAEjB,MAAM,EACJ,OAAO,EAAE,QAAQ,EACjB,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,KAAK,GACN,GAAG,IAAI,CAAA;IACR,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAA;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAE5D,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAElD,IAAI,OAAO,KAAK,KAAK,WAAW;QAC9B,OAAO,CAAC,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;YAChD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAA;IAEJ,IAAI,KAAK,CAAC,aAAa,EAAE;QACvB,IAAI,OAAO,QAAQ,KAAK,WAAW;YACjC,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAA;QAElE,gBAAgB;QAChB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;YACvC,2EAA2E;YAC3E,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,IAAI,UAAU,CAAA;YACjE,OAAO,CAAC,YAAY;gBAClB,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAA;SACrE;aAAM;YACL,IACE,OAAO,oBAAoB,KAAK,WAAW;gBAC3C,YAAY,GAAG,UAAU;gBAEzB,MAAM,IAAI,SAAS,CACjB,mFAAmF,CACpF,CAAA;YACH,OAAO,CAAC,YAAY,GAAG,YAAY,CAAA;YACnC,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,IAAI,UAAU,CAAA;SAClE;KACF;SAAM;QACL,IACE,OAAO,YAAY,KAAK,WAAW;YACnC,OAAO,oBAAoB,KAAK,WAAW;YAE3C,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAA;QAE9D,cAAc;QACd,IAAI,OAAO,QAAQ,KAAK,WAAW;YACjC,2EAA2E;YAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;KACjE;IAED,IAAI,OAAO,GAAG,KAAK,WAAW;QAC5B,OAAO,CAAC,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;YACtC,GAAG,OAAO;YACV,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;SAC/B,CAAC,CAAA;IAE7B,aAAa,CAAC,OAAO,CAAC,CAAA;IAEtB,OAAO,OAA0D,CAAA;AACnE,CAAC"}
|
@@ -31,7 +31,8 @@ function serializeTransactionEIP1559(transaction, signature) {
|
|
31
31
|
serializedAccessList,
|
32
32
|
];
|
33
33
|
if (signature)
|
34
|
-
serializedTransaction.push(signature.v === 27n ? '0x' : toHex(1),
|
34
|
+
serializedTransaction.push(signature.v === 27n ? '0x' : toHex(1), // yParity
|
35
|
+
trim(signature.r), trim(signature.s));
|
35
36
|
return concatHex([
|
36
37
|
'0x02',
|
37
38
|
toRlp(serializedTransaction),
|
@@ -52,7 +53,8 @@ function serializeTransactionEIP2930(transaction, signature) {
|
|
52
53
|
serializedAccessList,
|
53
54
|
];
|
54
55
|
if (signature)
|
55
|
-
serializedTransaction.push(signature.v === 27n ? '0x' : toHex(1),
|
56
|
+
serializedTransaction.push(signature.v === 27n ? '0x' : toHex(1), // yParity
|
57
|
+
signature.r, signature.s);
|
56
58
|
return concatHex([
|
57
59
|
'0x01',
|
58
60
|
toRlp(serializedTransaction),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../../../../src/utils/transaction/serializeTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAA;AAcpC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAuB,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEL,kBAAkB,GACnB,MAAM,yBAAyB,CAAA;AAOhC,MAAM,UAAU,oBAAoB,CAGlC,WAAqC,EACrC,SAAqB;IAErB,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAuB,CAAA;IAElE,IAAI,IAAI,KAAK,SAAS;QACpB,OAAO,2BAA2B,CAChC,WAA6C,EAC7C,SAAS,
|
1
|
+
{"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../../../../src/utils/transaction/serializeTransaction.ts"],"names":[],"mappings":"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"}
|
@@ -15,6 +15,8 @@ export function validateTypedData({ domain, message, primaryType, types: types_,
|
|
15
15
|
if (integerMatch &&
|
16
16
|
(typeof value === 'number' || typeof value === 'bigint')) {
|
17
17
|
const [_type, base, size_] = integerMatch;
|
18
|
+
// If number cannot be cast to a sized hex value, it is out of range
|
19
|
+
// and will throw.
|
18
20
|
numberToHex(value, {
|
19
21
|
signed: base === 'int',
|
20
22
|
size: parseInt(size_) / 8,
|
@@ -36,9 +38,11 @@ export function validateTypedData({ domain, message, primaryType, types: types_,
|
|
36
38
|
validateData(struct, value);
|
37
39
|
}
|
38
40
|
};
|
41
|
+
// Validate domain types.
|
39
42
|
if (types['EIP712Domain'] && domain)
|
40
43
|
validateData(types['EIP712Domain'], domain);
|
41
44
|
if (primaryType !== 'EIP712Domain') {
|
45
|
+
// Validate message types.
|
42
46
|
const type = types[primaryType];
|
43
47
|
validateData(type, message);
|
44
48
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typedData.js","sourceRoot":"","sources":["../../../src/utils/typedData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,UAAU,iBAAiB,CAG/B,EACA,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,EAAE,MAAM,GACiC;IAC9C,MAAM,KAAK,GAAG,MAAmB,CAAA;IAEjC,MAAM,YAAY,GAAG,CACnB,MAAqC,EACrC,MAA+B,EAC/B,EAAE;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;YACnC,MAAM,IAAI,GAAG,KAAsB,CAAA;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC7C,IACE,YAAY;gBACZ,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EACxD;gBACA,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,YAAY,CAAA;
|
1
|
+
{"version":3,"file":"typedData.js","sourceRoot":"","sources":["../../../src/utils/typedData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,UAAU,iBAAiB,CAG/B,EACA,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,EAAE,MAAM,GACiC;IAC9C,MAAM,KAAK,GAAG,MAAmB,CAAA;IAEjC,MAAM,YAAY,GAAG,CACnB,MAAqC,EACrC,MAA+B,EAC/B,EAAE;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;YACnC,MAAM,IAAI,GAAG,KAAsB,CAAA;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC7C,IACE,YAAY;gBACZ,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EACxD;gBACA,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,YAAY,CAAA;gBACzC,oEAAoE;gBACpE,kBAAkB;gBAClB,WAAW,CAAC,KAAK,EAAE;oBACjB,MAAM,EAAE,IAAI,KAAK,KAAK;oBACtB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;iBAC1B,CAAC,CAAA;aACH;YAED,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBACtE,MAAM,IAAI,mBAAmB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;YAEnD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YACzC,IAAI,UAAU,EAAE;gBACd,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,UAAU,CAAA;gBACjC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAY,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC;oBACjD,MAAM,IAAI,sBAAsB,CAAC;wBAC/B,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;wBAC7B,SAAS,EAAE,IAAI,CAAC,KAAY,CAAC;qBAC9B,CAAC,CAAA;aACL;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAI,MAAM;gBAAE,YAAY,CAAC,MAAM,EAAE,KAAgC,CAAC,CAAA;SACnE;IACH,CAAC,CAAA;IAED,yBAAyB;IACzB,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,MAAM;QACjC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAA;IAE7C,IAAI,WAAW,KAAK,cAAc,EAAE;QAClC,0BAA0B;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,WAAqB,CAAC,CAAA;QACzC,YAAY,CAAC,IAAI,EAAE,OAAkC,CAAC,CAAA;KACvD;AACH,CAAC"}
|
@@ -3,17 +3,29 @@ export function parseUnits(value, decimals) {
|
|
3
3
|
const negative = integer.startsWith('-');
|
4
4
|
if (negative)
|
5
5
|
integer = integer.slice(1);
|
6
|
+
// trim leading zeros.
|
6
7
|
fraction = fraction.replace(/(0+)$/, '');
|
8
|
+
// round off if the fraction is larger than the number of decimals.
|
7
9
|
if (decimals === 0) {
|
8
10
|
integer = `${Math.round(Number(`${integer}.${fraction}`))}`;
|
9
11
|
fraction = '';
|
10
12
|
}
|
11
13
|
else if (fraction.length > decimals) {
|
12
|
-
const [
|
13
|
-
fraction.slice(0, decimals),
|
14
|
+
const [left, unit, right] = [
|
15
|
+
fraction.slice(0, decimals - 1),
|
16
|
+
fraction.slice(decimals - 1, decimals),
|
14
17
|
fraction.slice(decimals),
|
15
18
|
];
|
16
|
-
|
19
|
+
const rounded = Math.round(Number(`${unit}.${right}`));
|
20
|
+
if (rounded > 9)
|
21
|
+
fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0');
|
22
|
+
else
|
23
|
+
fraction = `${left}${rounded}`;
|
24
|
+
if (fraction.length > decimals) {
|
25
|
+
fraction = fraction.slice(1);
|
26
|
+
integer = `${BigInt(integer) + 1n}`;
|
27
|
+
}
|
28
|
+
fraction = fraction.slice(0, decimals);
|
17
29
|
}
|
18
30
|
else {
|
19
31
|
fraction = fraction.padEnd(decimals, '0');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parseUnits.js","sourceRoot":"","sources":["../../../../src/utils/unit/parseUnits.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAkB,EAAE,QAAgB;IAC7D,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEhD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,QAAQ;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"parseUnits.js","sourceRoot":"","sources":["../../../../src/utils/unit/parseUnits.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAkB,EAAE,QAAgB;IAC7D,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEhD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,QAAQ;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAExC,sBAAsB;IACtB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAExC,mEAAmE;IACnE,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAA;QAC3D,QAAQ,GAAG,EAAE,CAAA;KACd;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE;QACrC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG;YAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;YAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;SACzB,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAA;QACtD,IAAI,OAAO,GAAG,CAAC;YACb,QAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;;YACrE,QAAQ,GAAG,GAAG,IAAI,GAAG,OAAO,EAAE,CAAA;QAEnC,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE;YAC9B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5B,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAA;SACpC;QAED,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;KACvC;SAAM;QACL,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;KAC1C;IAED,OAAO,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAA;AAC9D,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { HDKey } from '@scure/bip32';
|
2
2
|
import type { Address, TypedData } from 'abitype';
|
3
|
-
import type { Hash, Hex } from '../types/misc.js';
|
3
|
+
import type { Hash, Hex, SignableMessage } from '../types/misc.js';
|
4
4
|
import type { TransactionSerializable } from '../types/transaction.js';
|
5
5
|
import type { TypedDataDefinition } from '../types/typedData.js';
|
6
6
|
export type Account<TAddress extends Address = Address> = JsonRpcAccount<TAddress> | LocalAccount<string, TAddress>;
|
@@ -8,12 +8,10 @@ export type AccountSource = Address | CustomSource;
|
|
8
8
|
export type CustomSource = {
|
9
9
|
address: Address;
|
10
10
|
signMessage: ({ message }: {
|
11
|
-
message:
|
11
|
+
message: SignableMessage;
|
12
12
|
}) => Promise<Hash>;
|
13
13
|
signTransaction: (transaction: TransactionSerializable) => Promise<Hash>;
|
14
|
-
signTypedData: <TTypedData extends TypedData |
|
15
|
-
[key: string]: unknown;
|
16
|
-
}, TPrimaryType extends string = string>(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) => Promise<Hash>;
|
14
|
+
signTypedData: <const TTypedData extends TypedData | Record<string, unknown>, TPrimaryType extends keyof TTypedData = keyof TTypedData>(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) => Promise<Hash>;
|
17
15
|
};
|
18
16
|
export type JsonRpcAccount<TAddress extends Address = Address> = {
|
19
17
|
address: TAddress;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/accounts/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/accounts/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,MAAM,MAAM,OAAO,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,IAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAElC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,YAAY,CAAA;AAClD,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE,eAAe,EAAE,CAAC,WAAW,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,aAAa,EAAE,CACb,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,YAAY,SAAS,MAAM,UAAU,GAAG,MAAM,UAAU,EAExD,SAAS,EAAE,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,KACrD,OAAO,CAAC,IAAI,CAAC,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,IAAI;IAC/D,OAAO,EAAE,QAAQ,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,MAAM,GAAG,QAAQ,EACjC,QAAQ,SAAS,OAAO,GAAG,OAAO,IAChC,YAAY,GAAG;IACjB,OAAO,EAAE,QAAQ,CAAA;IACjB,SAAS,EAAE,GAAG,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG;IAC3C,QAAQ,IAAI,KAAK,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,SAAS,GACjB;IACE,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,GACD;IACE,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,mBAAmB;IACnB,IAAI,EAAE,aAAa,MAAM,EAAE,CAAA;CAC5B,CAAA;AAEL,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import type { Hex } from '../../types/misc.js';
|
1
|
+
import type { Hex, SignableMessage } from '../../types/misc.js';
|
2
2
|
export type SignMessageParameters = {
|
3
3
|
/** The message to sign. */
|
4
|
-
message:
|
4
|
+
message: SignableMessage;
|
5
5
|
/** The private key to sign with. */
|
6
6
|
privateKey: Hex;
|
7
7
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../../src/accounts/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;
|
1
|
+
{"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../../src/accounts/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAM/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,2BAA2B;IAC3B,OAAO,EAAE,eAAe,CAAA;IACxB,oCAAoC;IACpC,UAAU,EAAE,GAAG,CAAA;CAChB,CAAA;AACD,MAAM,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAEvC;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,UAAU,GACX,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAGxD"}
|
@@ -1,9 +1,7 @@
|
|
1
1
|
import type { TypedData } from 'abitype';
|
2
2
|
import type { Hex } from '../../types/misc.js';
|
3
3
|
import type { TypedDataDefinition } from '../../types/typedData.js';
|
4
|
-
export type SignTypedDataParameters<TTypedData extends TypedData | {
|
5
|
-
[key: string]: unknown;
|
6
|
-
} = TypedData, TPrimaryType extends string = string> = TypedDataDefinition<TTypedData, TPrimaryType> & {
|
4
|
+
export type SignTypedDataParameters<TTypedData extends TypedData | Record<string, unknown> = TypedData, TPrimaryType extends keyof TTypedData = keyof TTypedData> = TypedDataDefinition<TTypedData, TPrimaryType> & {
|
7
5
|
/** The private key to sign with. */
|
8
6
|
privateKey: Hex;
|
9
7
|
};
|
@@ -14,7 +12,6 @@ export type SignTypedDataReturnType = Hex;
|
|
14
12
|
*
|
15
13
|
* @returns The signature.
|
16
14
|
*/
|
17
|
-
export declare function signTypedData<TTypedData extends TypedData |
|
18
|
-
|
19
|
-
}, TPrimaryType extends string = string>({ privateKey, ...typedData }: SignTypedDataParameters<TTypedData, TPrimaryType>): Promise<SignTypedDataReturnType>;
|
15
|
+
export declare function signTypedData<const TTypedData extends TypedData | Record<string, unknown>, // `Record<string, unknown>` allows for non-const asserted types
|
16
|
+
TPrimaryType extends keyof TTypedData>({ privateKey, ...typedData }: SignTypedDataParameters<TTypedData, TPrimaryType>): Promise<SignTypedDataReturnType>;
|
20
17
|
//# sourceMappingURL=signTypedData.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../../src/accounts/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AASnE,MAAM,MAAM,uBAAuB,CACjC,UAAU,SAAS,SAAS,GAAG
|
1
|
+
{"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../../src/accounts/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AASnE,MAAM,MAAM,uBAAuB,CACjC,UAAU,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAClE,YAAY,SAAS,MAAM,UAAU,GAAG,MAAM,UAAU,IACtD,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG;IAClD,oCAAoC;IACpC,UAAU,EAAE,GAAG,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAEzC;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,gEAAgE;AAC9H,YAAY,SAAS,MAAM,UAAU,EACrC,EACA,UAAU,EACV,GAAG,SAAS,EACb,EAAE,uBAAuB,CACxB,UAAU,EACV,YAAY,CACb,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAMnC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsAddress.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;
|
1
|
+
{"version":3,"file":"getEnsAddress.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAS5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAQpD,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAA;AAElC,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC5C,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,UAAU,CAAC,GAAG;IACzD,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,CACF,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAClE,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,EACvC,EACE,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,wBAAwB,EAAE,yBAAyB,GACpD,EAAE,uBAAuB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAmDlC"}
|