viem 0.0.0-w-20230725184008 → 0.0.0-w-20230810155401
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 +6 -0
- package/chains/utils/package.json +5 -0
- package/dist/cjs/accounts/index.js +6 -2
- package/dist/cjs/accounts/index.js.map +1 -1
- package/dist/cjs/accounts/utils/privateKeyToAddress.js +12 -0
- package/dist/cjs/accounts/utils/privateKeyToAddress.js.map +1 -0
- package/dist/cjs/accounts/utils/signMessage.js +1 -1
- package/dist/cjs/accounts/utils/signMessage.js.map +1 -1
- package/dist/cjs/accounts/utils/signTransaction.js.map +1 -1
- package/dist/cjs/accounts/utils/signTypedData.js +1 -1
- package/dist/cjs/accounts/utils/signTypedData.js.map +1 -1
- package/dist/cjs/actions/ens/getEnsAddress.js +18 -13
- package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/cjs/actions/index.js.map +1 -1
- package/dist/cjs/actions/public/createContractEventFilter.js.map +1 -1
- package/dist/cjs/actions/public/createEventFilter.js +16 -8
- 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 -1
- package/dist/cjs/actions/public/estimateGas.js.map +1 -1
- package/dist/cjs/actions/public/getBlock.js +3 -1
- package/dist/cjs/actions/public/getBlock.js.map +1 -1
- package/dist/cjs/actions/public/getBlockNumber.js +2 -2
- package/dist/cjs/actions/public/getBlockNumber.js.map +1 -1
- package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
- package/dist/cjs/actions/public/getFilterLogs.js +1 -1
- package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
- package/dist/cjs/actions/public/getLogs.js +16 -10
- package/dist/cjs/actions/public/getLogs.js.map +1 -1
- package/dist/cjs/actions/public/getTransaction.js +2 -1
- package/dist/cjs/actions/public/getTransaction.js.map +1 -1
- package/dist/cjs/actions/public/watchBlockNumber.js +1 -1
- package/dist/cjs/actions/public/watchBlockNumber.js.map +1 -1
- package/dist/cjs/actions/public/watchBlocks.js +2 -1
- package/dist/cjs/actions/public/watchBlocks.js.map +1 -1
- package/dist/cjs/actions/public/watchContractEvent.js +135 -65
- package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
- package/dist/cjs/actions/public/watchEvent.js +138 -59
- package/dist/cjs/actions/public/watchEvent.js.map +1 -1
- package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
- package/dist/cjs/chains/{formatters/celo.js → celo/formatters.js} +1 -1
- package/dist/cjs/chains/celo/formatters.js.map +1 -0
- package/dist/cjs/chains/{serializers/celo.js → celo/serializers.js} +1 -1
- package/dist/cjs/chains/celo/serializers.js.map +1 -0
- package/dist/cjs/{types/formatter.js → chains/celo/types.js} +1 -1
- package/dist/cjs/chains/celo/types.js.map +1 -0
- package/dist/cjs/chains/index.js +30 -15
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/chains/optimism/fees.js +7 -0
- package/dist/cjs/chains/optimism/fees.js.map +1 -0
- package/dist/cjs/chains/{formatters/optimism.js → optimism/formatters.js} +13 -1
- package/dist/cjs/chains/optimism/formatters.js.map +1 -0
- package/dist/cjs/{types/serializer.js → chains/optimism/types.js} +1 -1
- package/dist/cjs/chains/optimism/types.js.map +1 -0
- package/dist/cjs/chains/utils.js +11 -0
- package/dist/cjs/chains/utils.js.map +1 -0
- package/dist/cjs/clients/createClient.js +2 -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/constants/abis.js +12 -2
- package/dist/cjs/constants/abis.js.map +1 -1
- package/dist/cjs/constants/number.js +101 -0
- package/dist/cjs/constants/number.js.map +1 -0
- package/dist/cjs/contract.js.map +1 -1
- package/dist/cjs/errors/abi.js +8 -1
- package/dist/cjs/errors/abi.js.map +1 -1
- package/dist/cjs/errors/contract.js +56 -32
- package/dist/cjs/errors/contract.js.map +1 -1
- package/dist/cjs/errors/node.js +1 -1
- package/dist/cjs/errors/node.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 +110 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/public.js.map +1 -1
- package/dist/cjs/utils/abi/encodeAbiParameters.js +11 -14
- package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/cjs/utils/abi/encodePacked.js +2 -0
- package/dist/cjs/utils/abi/encodePacked.js.map +1 -1
- package/dist/cjs/utils/chain.js +5 -3
- package/dist/cjs/utils/chain.js.map +1 -1
- package/dist/cjs/utils/formatters/block.js.map +1 -1
- package/dist/cjs/utils/formatters/extract.js.map +1 -1
- package/dist/cjs/utils/formatters/formatter.js +1 -0
- package/dist/cjs/utils/formatters/formatter.js.map +1 -1
- package/dist/cjs/utils/formatters/transaction.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/cjs/utils/hash/hashFunction.js +3 -2
- package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
- package/dist/cjs/utils/promise/withCache.js +3 -3
- package/dist/cjs/utils/promise/withCache.js.map +1 -1
- package/dist/cjs/utils/signature/hexToSignature.js +12 -0
- package/dist/cjs/utils/signature/hexToSignature.js.map +1 -0
- package/dist/cjs/utils/signature/signatureToHex.js.map +1 -0
- package/dist/cjs/utils/transaction/prepareRequest.js +19 -12
- package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
- package/dist/cjs/utils/unit/parseUnits.js +2 -1
- package/dist/cjs/utils/unit/parseUnits.js.map +1 -1
- package/dist/esm/accounts/index.js +3 -1
- package/dist/esm/accounts/index.js.map +1 -1
- package/dist/esm/accounts/utils/privateKeyToAddress.js +15 -0
- package/dist/esm/accounts/utils/privateKeyToAddress.js.map +1 -0
- package/dist/esm/accounts/utils/signMessage.js +1 -1
- package/dist/esm/accounts/utils/signMessage.js.map +1 -1
- package/dist/esm/accounts/utils/signTransaction.js.map +1 -1
- package/dist/esm/accounts/utils/signTypedData.js +1 -1
- package/dist/esm/accounts/utils/signTypedData.js.map +1 -1
- package/dist/esm/actions/ens/getEnsAddress.js +19 -14
- package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
- package/dist/esm/actions/public/createEventFilter.js +16 -8
- package/dist/esm/actions/public/createEventFilter.js.map +1 -1
- package/dist/esm/actions/public/estimateContractGas.js +1 -1
- package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
- package/dist/esm/actions/public/estimateGas.js +4 -2
- package/dist/esm/actions/public/estimateGas.js.map +1 -1
- package/dist/esm/actions/public/getBlock.js +3 -1
- package/dist/esm/actions/public/getBlock.js.map +1 -1
- package/dist/esm/actions/public/getBlockNumber.js +2 -2
- package/dist/esm/actions/public/getBlockNumber.js.map +1 -1
- package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
- package/dist/esm/actions/public/getFilterLogs.js +1 -1
- package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
- package/dist/esm/actions/public/getLogs.js +16 -10
- package/dist/esm/actions/public/getLogs.js.map +1 -1
- package/dist/esm/actions/public/getTransaction.js +2 -1
- package/dist/esm/actions/public/getTransaction.js.map +1 -1
- package/dist/esm/actions/public/watchBlockNumber.js +1 -1
- package/dist/esm/actions/public/watchBlockNumber.js.map +1 -1
- package/dist/esm/actions/public/watchBlocks.js +2 -1
- package/dist/esm/actions/public/watchBlocks.js.map +1 -1
- package/dist/esm/actions/public/watchContractEvent.js +145 -71
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/public/watchEvent.js +148 -65
- package/dist/esm/actions/public/watchEvent.js.map +1 -1
- package/dist/esm/actions/wallet/sendTransaction.js +1 -1
- package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/esm/actions/wallet/writeContract.js.map +1 -1
- package/dist/esm/chains/{formatters/celo.js → celo/formatters.js} +2 -2
- package/dist/esm/chains/celo/formatters.js.map +1 -0
- package/dist/esm/chains/{serializers/celo.js → celo/serializers.js} +1 -1
- package/dist/esm/chains/celo/serializers.js.map +1 -0
- package/dist/esm/chains/celo/types.js +2 -0
- package/dist/esm/chains/celo/types.js.map +1 -0
- package/dist/esm/chains/index.js +22 -7
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/chains/optimism/fees.js +4 -0
- package/dist/esm/chains/optimism/fees.js.map +1 -0
- package/dist/esm/chains/{formatters/optimism.js → optimism/formatters.js} +15 -2
- package/dist/esm/chains/optimism/formatters.js.map +1 -0
- package/dist/esm/chains/optimism/types.js +2 -0
- package/dist/esm/chains/optimism/types.js.map +1 -0
- package/dist/esm/chains/utils.js +4 -0
- package/dist/esm/chains/utils.js.map +1 -0
- package/dist/esm/clients/createClient.js +2 -1
- package/dist/esm/clients/createClient.js.map +1 -1
- package/dist/esm/clients/createPublicClient.js.map +1 -1
- package/dist/esm/clients/createTestClient.js.map +1 -1
- package/dist/esm/clients/createWalletClient.js.map +1 -1
- package/dist/esm/clients/decorators/public.js.map +1 -1
- package/dist/esm/constants/abis.js +11 -1
- package/dist/esm/constants/abis.js.map +1 -1
- package/dist/esm/constants/number.js +97 -0
- package/dist/esm/constants/number.js.map +1 -0
- package/dist/esm/contract.js.map +1 -1
- package/dist/esm/errors/abi.js +8 -1
- package/dist/esm/errors/abi.js.map +1 -1
- package/dist/esm/errors/contract.js +56 -32
- package/dist/esm/errors/contract.js.map +1 -1
- package/dist/esm/errors/node.js +1 -1
- package/dist/esm/errors/node.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 +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/public.js.map +1 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js +13 -14
- package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/abi/encodePacked.js +2 -0
- package/dist/esm/utils/abi/encodePacked.js.map +1 -1
- package/dist/esm/utils/chain.js +5 -3
- package/dist/esm/utils/chain.js.map +1 -1
- package/dist/esm/utils/formatters/block.js.map +1 -1
- package/dist/esm/utils/formatters/extract.js.map +1 -1
- package/dist/esm/utils/formatters/formatter.js +1 -0
- package/dist/esm/utils/formatters/formatter.js.map +1 -1
- package/dist/esm/utils/formatters/transaction.js.map +1 -1
- package/dist/esm/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/esm/utils/hash/hashFunction.js +3 -2
- package/dist/esm/utils/hash/hashFunction.js.map +1 -1
- package/dist/esm/utils/promise/withCache.js +3 -3
- package/dist/esm/utils/promise/withCache.js.map +1 -1
- package/dist/esm/utils/signature/hexToSignature.js +18 -0
- package/dist/esm/utils/signature/hexToSignature.js.map +1 -0
- package/dist/esm/utils/signature/signatureToHex.js +21 -0
- package/dist/esm/utils/signature/signatureToHex.js.map +1 -0
- package/dist/esm/utils/transaction/prepareRequest.js +20 -13
- package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
- package/dist/esm/utils/unit/parseUnits.js +2 -1
- package/dist/esm/utils/unit/parseUnits.js.map +1 -1
- package/dist/types/accounts/index.d.ts +3 -1
- package/dist/types/accounts/index.d.ts.map +1 -1
- package/dist/types/accounts/utils/privateKeyToAddress.d.ts +11 -0
- package/dist/types/accounts/utils/privateKeyToAddress.d.ts.map +1 -0
- package/dist/types/accounts/utils/signTransaction.d.ts +2 -2
- package/dist/types/accounts/utils/signTransaction.d.ts.map +1 -1
- package/dist/types/actions/ens/getEnsAddress.d.ts +3 -1
- package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
- package/dist/types/actions/index.d.ts +5 -1
- package/dist/types/actions/index.d.ts.map +1 -1
- package/dist/types/actions/public/createContractEventFilter.d.ts +5 -5
- package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/createEventFilter.d.ts +20 -7
- package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
- package/dist/types/actions/public/getBlock.d.ts +5 -5
- package/dist/types/actions/public/getBlock.d.ts.map +1 -1
- package/dist/types/actions/public/getBlockNumber.d.ts +4 -2
- package/dist/types/actions/public/getBlockNumber.d.ts.map +1 -1
- package/dist/types/actions/public/getFilterChanges.d.ts +5 -8
- package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
- package/dist/types/actions/public/getFilterLogs.d.ts +5 -4
- package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
- package/dist/types/actions/public/getLogs.d.ts +17 -6
- package/dist/types/actions/public/getLogs.d.ts.map +1 -1
- package/dist/types/actions/public/getTransaction.d.ts +4 -4
- package/dist/types/actions/public/getTransaction.d.ts.map +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
- package/dist/types/actions/public/simulateContract.d.ts +2 -2
- package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
- package/dist/types/actions/public/watchBlocks.d.ts +10 -10
- package/dist/types/actions/public/watchBlocks.d.ts.map +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts +35 -9
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts +48 -14
- package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
- package/dist/types/actions/wallet/sendTransaction.d.ts +2 -2
- package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/dist/types/actions/wallet/writeContract.d.ts +4 -2
- package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
- package/dist/types/chains/{formatters/celo.d.ts → celo/formatters.d.ts} +30 -85
- package/dist/types/chains/celo/formatters.d.ts.map +1 -0
- package/dist/types/chains/{serializers/celo.d.ts → celo/serializers.d.ts} +4 -4
- package/dist/types/chains/celo/serializers.d.ts.map +1 -0
- package/dist/types/chains/celo/types.d.ts +60 -0
- package/dist/types/chains/celo/types.d.ts.map +1 -0
- package/dist/types/chains/index.d.ts +2527 -2722
- package/dist/types/chains/index.d.ts.map +1 -1
- package/dist/types/chains/optimism/fees.d.ts +4 -0
- package/dist/types/chains/optimism/fees.d.ts.map +1 -0
- package/dist/types/chains/{formatters/optimism.d.ts → optimism/formatters.d.ts} +79 -54
- package/dist/types/chains/optimism/formatters.d.ts.map +1 -0
- package/dist/types/chains/optimism/types.d.ts +53 -0
- package/dist/types/chains/optimism/types.d.ts.map +1 -0
- package/dist/types/chains/utils.d.ts +6 -0
- package/dist/types/chains/utils.d.ts.map +1 -0
- package/dist/types/clients/createClient.d.ts +7 -0
- package/dist/types/clients/createClient.d.ts.map +1 -1
- package/dist/types/clients/createPublicClient.d.ts +1 -1
- package/dist/types/clients/createPublicClient.d.ts.map +1 -1
- package/dist/types/clients/createTestClient.d.ts +1 -1
- package/dist/types/clients/createTestClient.d.ts.map +1 -1
- package/dist/types/clients/createWalletClient.d.ts +1 -1
- package/dist/types/clients/createWalletClient.d.ts.map +1 -1
- package/dist/types/clients/decorators/public.d.ts +11 -10
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/constants/abis.d.ts +16 -1
- package/dist/types/constants/abis.d.ts.map +1 -1
- package/dist/types/constants/number.d.ts +97 -0
- package/dist/types/constants/number.d.ts.map +1 -0
- package/dist/types/contract.d.ts +5 -1
- package/dist/types/contract.d.ts.map +1 -1
- package/dist/types/errors/abi.d.ts +1 -0
- package/dist/types/errors/abi.d.ts.map +1 -1
- package/dist/types/errors/contract.d.ts +1 -0
- package/dist/types/errors/contract.d.ts.map +1 -1
- package/dist/types/errors/node.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 +24 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/public.d.ts +5 -1
- package/dist/types/public.d.ts.map +1 -1
- package/dist/types/types/block.d.ts +7 -7
- package/dist/types/types/block.d.ts.map +1 -1
- package/dist/types/types/chain.d.ts +52 -8
- package/dist/types/types/chain.d.ts.map +1 -1
- package/dist/types/types/contract.d.ts +1 -1
- package/dist/types/types/contract.d.ts.map +1 -1
- package/dist/types/types/filter.d.ts +7 -3
- package/dist/types/types/filter.d.ts.map +1 -1
- package/dist/types/types/log.d.ts +8 -8
- package/dist/types/types/log.d.ts.map +1 -1
- package/dist/types/types/misc.d.ts.map +1 -1
- package/dist/types/types/rpc.d.ts +3 -3
- package/dist/types/types/rpc.d.ts.map +1 -1
- package/dist/types/types/transaction.d.ts +8 -8
- package/dist/types/types/transaction.d.ts.map +1 -1
- package/dist/types/types/utils.d.ts +10 -0
- package/dist/types/types/utils.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
- package/dist/types/utils/chain.d.ts +3 -6
- package/dist/types/utils/chain.d.ts.map +1 -1
- package/dist/types/utils/formatters/block.d.ts +18 -4
- package/dist/types/utils/formatters/block.d.ts.map +1 -1
- package/dist/types/utils/formatters/extract.d.ts +2 -2
- package/dist/types/utils/formatters/extract.d.ts.map +1 -1
- package/dist/types/utils/formatters/formatter.d.ts +2 -1
- package/dist/types/utils/formatters/formatter.d.ts.map +1 -1
- package/dist/types/utils/formatters/transaction.d.ts +15 -4
- package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionReceipt.d.ts +4 -4
- package/dist/types/utils/formatters/transactionReceipt.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionRequest.d.ts +5 -5
- package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
- package/dist/types/utils/promise/withCache.d.ts +3 -3
- package/dist/types/utils/promise/withCache.d.ts.map +1 -1
- package/dist/types/utils/signature/hexToSignature.d.ts +13 -0
- package/dist/types/utils/signature/hexToSignature.d.ts.map +1 -0
- package/dist/types/utils/signature/signatureToHex.d.ts +17 -0
- package/dist/types/utils/signature/signatureToHex.d.ts.map +1 -0
- package/dist/types/utils/transaction/prepareRequest.d.ts +6 -11
- package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
- package/dist/types/utils/unit/parseUnits.d.ts.map +1 -1
- package/package.json +9 -2
- package/src/accounts/index.ts +7 -1
- package/src/accounts/utils/privateKeyToAddress.ts +20 -0
- package/src/accounts/utils/signMessage.ts +1 -1
- package/src/accounts/utils/signTransaction.ts +2 -2
- package/src/accounts/utils/signTypedData.ts +1 -1
- package/src/actions/ens/getEnsAddress.ts +24 -15
- package/src/actions/index.ts +6 -2
- package/src/actions/public/createContractEventFilter.ts +30 -7
- package/src/actions/public/createEventFilter.ts +78 -24
- package/src/actions/public/estimateContractGas.ts +1 -1
- package/src/actions/public/estimateGas.ts +11 -2
- package/src/actions/public/getBlock.ts +18 -8
- package/src/actions/public/getBlockNumber.ts +5 -3
- package/src/actions/public/getFilterChanges.ts +46 -10
- package/src/actions/public/getFilterLogs.ts +26 -10
- package/src/actions/public/getLogs.ts +73 -18
- package/src/actions/public/getTransaction.ts +15 -8
- package/src/actions/public/simulateContract.ts +2 -2
- package/src/actions/public/watchBlockNumber.ts +1 -1
- package/src/actions/public/watchBlocks.ts +37 -18
- package/src/actions/public/watchContractEvent.ts +208 -90
- package/src/actions/public/watchEvent.ts +262 -104
- package/src/actions/wallet/deployContract.ts +1 -1
- package/src/actions/wallet/sendTransaction.ts +9 -6
- package/src/actions/wallet/writeContract.ts +11 -7
- package/src/chains/{formatters/celo.ts → celo/formatters.ts} +29 -48
- package/src/chains/{serializers/celo.ts → celo/serializers.ts} +5 -5
- package/src/chains/celo/types.ts +111 -0
- package/src/chains/index.ts +22 -7
- package/src/chains/optimism/fees.ts +5 -0
- package/src/chains/optimism/formatters.ts +74 -0
- package/src/chains/optimism/types.ts +102 -0
- package/src/chains/utils.ts +41 -0
- package/src/clients/createClient.ts +9 -0
- package/src/clients/createPublicClient.ts +7 -1
- package/src/clients/createTestClient.ts +7 -1
- package/src/clients/createWalletClient.ts +7 -1
- package/src/clients/decorators/public.ts +117 -28
- package/src/constants/abis.ts +11 -1
- package/src/constants/number.ts +98 -0
- package/src/contract.ts +6 -2
- package/src/errors/abi.ts +5 -1
- package/src/errors/contract.ts +52 -31
- package/src/errors/node.ts +2 -1
- package/src/errors/version.ts +1 -1
- package/src/index.ts +133 -11
- package/src/public.ts +6 -2
- package/src/types/block.ts +25 -10
- package/src/types/chain.ts +91 -14
- package/src/types/contract.ts +7 -3
- package/src/types/filter.ts +32 -26
- package/src/types/log.ts +13 -8
- package/src/types/misc.ts +3 -0
- package/src/types/rpc.ts +16 -6
- package/src/types/transaction.ts +22 -11
- package/src/types/utils.ts +11 -0
- package/src/utils/abi/encodeAbiParameters.ts +14 -17
- package/src/utils/abi/encodePacked.ts +1 -0
- package/src/utils/chain.ts +21 -10
- package/src/utils/formatters/block.ts +34 -5
- package/src/utils/formatters/extract.ts +2 -2
- package/src/utils/formatters/formatter.ts +3 -2
- package/src/utils/formatters/transaction.ts +28 -3
- package/src/utils/formatters/transactionReceipt.ts +9 -3
- package/src/utils/formatters/transactionRequest.ts +9 -3
- package/src/utils/hash/hashFunction.ts +3 -2
- package/src/utils/promise/withCache.ts +5 -5
- package/src/utils/signature/hexToSignature.ts +20 -0
- package/src/utils/signature/signatureToHex.ts +26 -0
- package/src/utils/transaction/prepareRequest.ts +55 -30
- package/src/utils/unit/parseUnits.ts +2 -1
- package/dist/cjs/accounts/utils/signatureToHex.js.map +0 -1
- package/dist/cjs/chains/formatters/celo.js.map +0 -1
- package/dist/cjs/chains/formatters/optimism.js.map +0 -1
- package/dist/cjs/chains/serializers/celo.js.map +0 -1
- package/dist/cjs/types/formatter.js.map +0 -1
- package/dist/cjs/types/serializer.js.map +0 -1
- package/dist/esm/accounts/utils/signatureToHex.js +0 -7
- package/dist/esm/accounts/utils/signatureToHex.js.map +0 -1
- package/dist/esm/chains/formatters/celo.js.map +0 -1
- package/dist/esm/chains/formatters/optimism.js.map +0 -1
- package/dist/esm/chains/serializers/celo.js.map +0 -1
- package/dist/esm/types/formatter.js +0 -2
- package/dist/esm/types/formatter.js.map +0 -1
- package/dist/esm/types/serializer.js +0 -2
- package/dist/esm/types/serializer.js.map +0 -1
- package/dist/types/accounts/utils/signatureToHex.d.ts +0 -3
- package/dist/types/accounts/utils/signatureToHex.d.ts.map +0 -1
- package/dist/types/chains/formatters/celo.d.ts.map +0 -1
- package/dist/types/chains/formatters/optimism.d.ts.map +0 -1
- package/dist/types/chains/serializers/celo.d.ts.map +0 -1
- package/dist/types/types/formatter.d.ts +0 -14
- package/dist/types/types/formatter.d.ts.map +0 -1
- package/dist/types/types/serializer.d.ts +0 -7
- package/dist/types/types/serializer.d.ts.map +0 -1
- package/src/accounts/utils/signatureToHex.ts +0 -12
- package/src/chains/formatters/optimism.ts +0 -91
- package/src/types/formatter.ts +0 -33
- package/src/types/serializer.ts +0 -19
- /package/dist/cjs/{accounts/utils → utils/signature}/signatureToHex.js +0 -0
@@ -1,11 +1,14 @@
|
|
1
|
-
import type { Abi, Address, ExtractAbiEvent, Narrow } from 'abitype'
|
1
|
+
import type { Abi, AbiEvent, Address, ExtractAbiEvent, Narrow } from 'abitype'
|
2
2
|
|
3
3
|
import type { Client } from '../../clients/createClient.js'
|
4
4
|
import type { Transport } from '../../clients/transports/createTransport.js'
|
5
|
+
import type { EncodeEventTopicsParameters, LogTopic } from '../../index.js'
|
5
6
|
import type { Chain } from '../../types/chain.js'
|
6
7
|
import type { GetEventArgs, InferEventName } from '../../types/contract.js'
|
7
8
|
import type { Filter } from '../../types/filter.js'
|
8
9
|
import type { Log } from '../../types/log.js'
|
10
|
+
import type { GetTransportConfig } from '../../types/transport.js'
|
11
|
+
|
9
12
|
import {
|
10
13
|
type GetAbiItemParameters,
|
11
14
|
getAbiItem,
|
@@ -14,27 +17,48 @@ import { observe } from '../../utils/observe.js'
|
|
14
17
|
import { poll } from '../../utils/poll.js'
|
15
18
|
import { stringify } from '../../utils/stringify.js'
|
16
19
|
|
20
|
+
import { DecodeLogDataMismatch } from '../../errors/abi.js'
|
21
|
+
import {
|
22
|
+
DecodeLogTopicsMismatch,
|
23
|
+
InvalidInputRpcError,
|
24
|
+
decodeEventLog,
|
25
|
+
encodeEventTopics,
|
26
|
+
formatLog,
|
27
|
+
} from '../../index.js'
|
17
28
|
import {
|
18
29
|
type CreateContractEventFilterParameters,
|
19
30
|
createContractEventFilter,
|
20
31
|
} from './createContractEventFilter.js'
|
21
32
|
import { getBlockNumber } from './getBlockNumber.js'
|
22
33
|
import { getFilterChanges } from './getFilterChanges.js'
|
23
|
-
import {
|
34
|
+
import { getLogs } from './getLogs.js'
|
24
35
|
import { uninstallFilter } from './uninstallFilter.js'
|
25
36
|
|
26
|
-
|
37
|
+
type PollOptions = {
|
38
|
+
/**
|
39
|
+
* Whether or not the transaction hashes should be batched on each invocation.
|
40
|
+
* @default true
|
41
|
+
*/
|
42
|
+
batch?: boolean
|
43
|
+
/**
|
44
|
+
* Polling frequency (in ms). Defaults to Client's pollingInterval config.
|
45
|
+
* @default client.pollingInterval
|
46
|
+
*/
|
47
|
+
pollingInterval?: number
|
48
|
+
}
|
49
|
+
|
50
|
+
export type WatchContractEventOnLogsParameter<
|
27
51
|
TAbi extends Abi | readonly unknown[] = readonly unknown[],
|
28
52
|
TEventName extends string = string,
|
29
53
|
TStrict extends boolean | undefined = undefined,
|
30
54
|
> = TAbi extends Abi
|
31
|
-
? Log<bigint, number, ExtractAbiEvent<TAbi, TEventName>, TStrict>[]
|
55
|
+
? Log<bigint, number, false, ExtractAbiEvent<TAbi, TEventName>, TStrict>[]
|
32
56
|
: Log[]
|
33
|
-
export type
|
57
|
+
export type WatchContractEventOnLogsFn<
|
34
58
|
TAbi extends Abi | readonly unknown[] = readonly unknown[],
|
35
59
|
TEventName extends string = string,
|
36
60
|
TStrict extends boolean | undefined = undefined,
|
37
|
-
> = (logs:
|
61
|
+
> = (logs: WatchContractEventOnLogsParameter<TAbi, TEventName, TStrict>) => void
|
38
62
|
|
39
63
|
export type WatchContractEventParameters<
|
40
64
|
TAbi extends Abi | readonly unknown[] = readonly unknown[],
|
@@ -46,22 +70,38 @@ export type WatchContractEventParameters<
|
|
46
70
|
/** Contract ABI. */
|
47
71
|
abi: Narrow<TAbi>
|
48
72
|
args?: GetEventArgs<TAbi, TEventName>
|
49
|
-
/** Whether or not the event logs should be batched on each invocation. */
|
50
|
-
batch?: boolean
|
51
73
|
/** Contract event. */
|
52
74
|
eventName?: InferEventName<TAbi, TEventName>
|
53
75
|
/** The callback to call when an error occurred when trying to get for a new block. */
|
54
76
|
onError?: (error: Error) => void
|
55
77
|
/** The callback to call when new event logs are received. */
|
56
|
-
onLogs:
|
57
|
-
/** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
|
58
|
-
pollingInterval?: number
|
78
|
+
onLogs: WatchContractEventOnLogsFn<TAbi, TEventName, TStrict>
|
59
79
|
/**
|
60
80
|
* Whether or not the logs must match the indexed/non-indexed arguments on `event`.
|
61
81
|
* @default false
|
62
82
|
*/
|
63
83
|
strict?: TStrict
|
64
|
-
}
|
84
|
+
} & (GetTransportConfig<Transport>['type'] extends 'webSocket'
|
85
|
+
?
|
86
|
+
| {
|
87
|
+
batch?: never
|
88
|
+
/**
|
89
|
+
* Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`.
|
90
|
+
* @default false
|
91
|
+
*/
|
92
|
+
poll?: false
|
93
|
+
pollingInterval?: never
|
94
|
+
}
|
95
|
+
| (PollOptions & {
|
96
|
+
/**
|
97
|
+
* Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`.
|
98
|
+
* @default true
|
99
|
+
*/
|
100
|
+
poll?: true
|
101
|
+
})
|
102
|
+
: PollOptions & {
|
103
|
+
poll?: true
|
104
|
+
})
|
65
105
|
|
66
106
|
export type WatchContractEventReturnType = () => void
|
67
107
|
|
@@ -110,93 +150,171 @@ export function watchContractEvent<
|
|
110
150
|
eventName,
|
111
151
|
onError,
|
112
152
|
onLogs,
|
153
|
+
poll: poll_,
|
113
154
|
pollingInterval = client.pollingInterval,
|
114
155
|
strict: strict_,
|
115
156
|
}: WatchContractEventParameters<TAbi, TEventName, TStrict>,
|
116
157
|
): WatchContractEventReturnType {
|
117
|
-
const
|
118
|
-
'
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
let initialized = false
|
132
|
-
|
133
|
-
const unwatch = poll(
|
134
|
-
async () => {
|
135
|
-
if (!initialized) {
|
136
|
-
try {
|
137
|
-
filter = (await createContractEventFilter(client, {
|
138
|
-
abi,
|
139
|
-
address,
|
140
|
-
args,
|
141
|
-
eventName,
|
142
|
-
strict,
|
143
|
-
} as unknown as CreateContractEventFilterParameters)) as Filter<
|
144
|
-
'event',
|
145
|
-
TAbi,
|
146
|
-
TEventName
|
147
|
-
>
|
148
|
-
} catch {}
|
149
|
-
initialized = true
|
150
|
-
return
|
151
|
-
}
|
158
|
+
const enablePolling =
|
159
|
+
typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket'
|
160
|
+
|
161
|
+
const pollContractEvent = () => {
|
162
|
+
const observerId = stringify([
|
163
|
+
'watchContractEvent',
|
164
|
+
address,
|
165
|
+
args,
|
166
|
+
batch,
|
167
|
+
client.uid,
|
168
|
+
eventName,
|
169
|
+
pollingInterval,
|
170
|
+
])
|
171
|
+
const strict = strict_ ?? false
|
152
172
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
// If the block number has changed, we will need to fetch the logs.
|
165
|
-
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
166
|
-
// so do not emit any logs.
|
167
|
-
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
168
|
-
logs = await getLogs(client, {
|
173
|
+
return observe(observerId, { onLogs, onError }, (emit) => {
|
174
|
+
let previousBlockNumber: bigint
|
175
|
+
let filter: Filter<'event', TAbi, TEventName> | undefined
|
176
|
+
let initialized = false
|
177
|
+
|
178
|
+
const unwatch = poll(
|
179
|
+
async () => {
|
180
|
+
if (!initialized) {
|
181
|
+
try {
|
182
|
+
filter = (await createContractEventFilter(client, {
|
183
|
+
abi,
|
169
184
|
address,
|
170
185
|
args,
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
186
|
+
eventName,
|
187
|
+
strict,
|
188
|
+
} as unknown as CreateContractEventFilterParameters)) as Filter<
|
189
|
+
'event',
|
190
|
+
TAbi,
|
191
|
+
TEventName
|
192
|
+
>
|
193
|
+
} catch {}
|
194
|
+
initialized = true
|
195
|
+
return
|
196
|
+
}
|
197
|
+
|
198
|
+
try {
|
199
|
+
let logs: Log[]
|
200
|
+
if (filter) {
|
201
|
+
logs = await getFilterChanges(client, { filter })
|
178
202
|
} else {
|
179
|
-
|
203
|
+
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
204
|
+
// The fall back exists because some RPC Providers do not support filters.
|
205
|
+
|
206
|
+
// Fetch the block number to use for `getLogs`.
|
207
|
+
const blockNumber = await getBlockNumber(client)
|
208
|
+
|
209
|
+
// If the block number has changed, we will need to fetch the logs.
|
210
|
+
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
211
|
+
// so do not emit any logs.
|
212
|
+
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
213
|
+
logs = await getLogs(client, {
|
214
|
+
address,
|
215
|
+
args,
|
216
|
+
fromBlock: previousBlockNumber + 1n,
|
217
|
+
toBlock: blockNumber,
|
218
|
+
event: getAbiItem({
|
219
|
+
abi,
|
220
|
+
name: eventName,
|
221
|
+
} as unknown as GetAbiItemParameters) as AbiEvent,
|
222
|
+
})
|
223
|
+
} else {
|
224
|
+
logs = []
|
225
|
+
}
|
226
|
+
previousBlockNumber = blockNumber
|
180
227
|
}
|
181
|
-
|
228
|
+
|
229
|
+
if (logs.length === 0) return
|
230
|
+
if (batch) emit.onLogs(logs as any)
|
231
|
+
else logs.forEach((log) => emit.onLogs([log] as any))
|
232
|
+
} catch (err) {
|
233
|
+
// If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.
|
234
|
+
// Reinitalize the filter when this occurs
|
235
|
+
if (filter && err instanceof InvalidInputRpcError)
|
236
|
+
initialized = false
|
237
|
+
emit.onError?.(err as Error)
|
182
238
|
}
|
239
|
+
},
|
240
|
+
{
|
241
|
+
emitOnBegin: true,
|
242
|
+
interval: pollingInterval,
|
243
|
+
},
|
244
|
+
)
|
183
245
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
246
|
+
return async () => {
|
247
|
+
if (filter) await uninstallFilter(client, { filter })
|
248
|
+
unwatch()
|
249
|
+
}
|
250
|
+
})
|
251
|
+
}
|
252
|
+
|
253
|
+
const subscribeContractEvent = () => {
|
254
|
+
let active = true
|
255
|
+
let unsubscribe = () => (active = false)
|
256
|
+
;(async () => {
|
257
|
+
try {
|
258
|
+
const topics: LogTopic[] = eventName
|
259
|
+
? encodeEventTopics({
|
260
|
+
abi: abi,
|
261
|
+
eventName: eventName,
|
262
|
+
args,
|
263
|
+
} as EncodeEventTopicsParameters)
|
264
|
+
: []
|
265
|
+
|
266
|
+
const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({
|
267
|
+
params: ['logs', { address, topics }],
|
268
|
+
onData(data: any) {
|
269
|
+
if (!active) return
|
270
|
+
const log = data.result
|
271
|
+
try {
|
272
|
+
const { eventName, args } = decodeEventLog({
|
273
|
+
abi: abi,
|
274
|
+
data: log.data,
|
275
|
+
topics: log.topics as any,
|
276
|
+
strict: strict_,
|
277
|
+
})
|
278
|
+
const formatted = formatLog(log, {
|
279
|
+
args,
|
280
|
+
eventName: eventName as string,
|
281
|
+
})
|
282
|
+
onLogs([formatted] as any)
|
283
|
+
} catch (err) {
|
284
|
+
let eventName
|
285
|
+
let isUnnamed
|
286
|
+
if (
|
287
|
+
err instanceof DecodeLogDataMismatch ||
|
288
|
+
err instanceof DecodeLogTopicsMismatch
|
289
|
+
) {
|
290
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
291
|
+
if (strict_) return
|
292
|
+
eventName = err.abiItem.name
|
293
|
+
isUnnamed = err.abiItem.inputs?.some(
|
294
|
+
(x) => !('name' in x && x.name),
|
295
|
+
)
|
296
|
+
}
|
297
|
+
|
298
|
+
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
299
|
+
const formatted = formatLog(log, {
|
300
|
+
args: isUnnamed ? [] : {},
|
301
|
+
eventName,
|
302
|
+
})
|
303
|
+
onLogs([formatted] as any)
|
304
|
+
}
|
305
|
+
},
|
306
|
+
onError(error: Error) {
|
307
|
+
onError?.(error)
|
308
|
+
},
|
309
|
+
})
|
310
|
+
unsubscribe = unsubscribe_
|
311
|
+
if (!active) unsubscribe()
|
312
|
+
} catch (err) {
|
313
|
+
onError?.(err as Error)
|
314
|
+
}
|
315
|
+
})()
|
316
|
+
return unsubscribe
|
317
|
+
}
|
318
|
+
|
319
|
+
return enablePolling ? pollContractEvent() : subscribeContractEvent()
|
202
320
|
}
|