viem 0.0.0-w-20230829165118 → 0.0.0-w-20230904174840
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/dist/cjs/accounts/index.js +19 -19
- package/dist/cjs/accounts/index.js.map +1 -1
- 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/getLogs.js.map +1 -1
- package/dist/cjs/actions/public/multicall.js +54 -31
- package/dist/cjs/actions/public/multicall.js.map +1 -1
- package/dist/cjs/actions/public/watchContractEvent.js +3 -2
- package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
- package/dist/cjs/actions/public/watchEvent.js +2 -5
- package/dist/cjs/actions/public/watchEvent.js.map +1 -1
- package/dist/cjs/actions/wallet/deployContract.js +3 -6
- package/dist/cjs/actions/wallet/deployContract.js.map +1 -1
- package/dist/cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/dist/cjs/actions/wallet/signTypedData.js +1 -13
- package/dist/cjs/actions/wallet/signTypedData.js.map +1 -1
- package/dist/cjs/chains/definitions/base.js +1 -3
- package/dist/cjs/chains/definitions/base.js.map +1 -1
- package/dist/cjs/chains/definitions/baseGoerli.js +1 -3
- package/dist/cjs/chains/definitions/baseGoerli.js.map +1 -1
- package/dist/cjs/chains/definitions/meter.js +22 -0
- package/dist/cjs/chains/definitions/meter.js.map +1 -0
- package/dist/cjs/chains/definitions/meterTestnet.js +25 -0
- package/dist/cjs/chains/definitions/meterTestnet.js.map +1 -0
- package/dist/cjs/chains/definitions/opBNB.js +28 -0
- package/dist/cjs/chains/definitions/opBNB.js.map +1 -0
- package/dist/cjs/chains/definitions/opBNBTestnet.js +29 -0
- package/dist/cjs/chains/definitions/opBNBTestnet.js.map +1 -0
- package/dist/cjs/chains/definitions/optimism.js +0 -2
- package/dist/cjs/chains/definitions/optimism.js.map +1 -1
- package/dist/cjs/chains/definitions/optimismGoerli.js +0 -2
- package/dist/cjs/chains/definitions/optimismGoerli.js.map +1 -1
- package/dist/cjs/chains/definitions/plinga.js +31 -0
- package/dist/cjs/chains/definitions/plinga.js.map +1 -0
- package/dist/cjs/chains/definitions/scrollSepolia.js +6 -0
- package/dist/cjs/chains/definitions/scrollSepolia.js.map +1 -1
- package/dist/cjs/chains/definitions/sepolia.js +5 -0
- package/dist/cjs/chains/definitions/sepolia.js.map +1 -1
- package/dist/cjs/chains/definitions/vechain.js +29 -0
- package/dist/cjs/chains/definitions/vechain.js.map +1 -0
- package/dist/cjs/chains/definitions/zora.js +0 -2
- package/dist/cjs/chains/definitions/zora.js.map +1 -1
- package/dist/cjs/chains/definitions/zoraTestnet.js +0 -2
- package/dist/cjs/chains/definitions/zoraTestnet.js.map +1 -1
- package/dist/cjs/chains/index.js +14 -2
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/clients/decorators/public.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/utils.js +1 -1
- package/dist/cjs/errors/utils.js.map +1 -1
- package/dist/cjs/{version.js → errors/version.js} +1 -1
- package/dist/cjs/errors/version.js.map +1 -0
- package/dist/cjs/index.js +2 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/abi/decodeDeployData.js +2 -1
- package/dist/cjs/utils/abi/decodeDeployData.js.map +1 -1
- package/dist/cjs/utils/abi/decodeErrorResult.js +4 -3
- package/dist/cjs/utils/abi/decodeErrorResult.js.map +1 -1
- package/dist/cjs/utils/abi/decodeEventLog.js +4 -7
- package/dist/cjs/utils/abi/decodeEventLog.js.map +1 -1
- package/dist/cjs/utils/abi/decodeFunctionData.js +2 -1
- package/dist/cjs/utils/abi/decodeFunctionData.js.map +1 -1
- package/dist/cjs/utils/abi/decodeFunctionResult.js +5 -7
- package/dist/cjs/utils/abi/decodeFunctionResult.js.map +1 -1
- package/dist/cjs/utils/abi/encodeDeployData.js +2 -1
- package/dist/cjs/utils/abi/encodeDeployData.js.map +1 -1
- package/dist/cjs/utils/abi/encodeErrorResult.js +5 -7
- package/dist/cjs/utils/abi/encodeErrorResult.js.map +1 -1
- package/dist/cjs/utils/abi/encodeEventTopics.js +8 -13
- package/dist/cjs/utils/abi/encodeEventTopics.js.map +1 -1
- package/dist/cjs/utils/abi/encodeFunctionData.js +9 -10
- package/dist/cjs/utils/abi/encodeFunctionData.js.map +1 -1
- package/dist/cjs/utils/abi/encodeFunctionResult.js +7 -12
- package/dist/cjs/utils/abi/encodeFunctionResult.js.map +1 -1
- package/dist/cjs/utils/abi/getAbiItem.js +2 -1
- package/dist/cjs/utils/abi/getAbiItem.js.map +1 -1
- package/dist/cjs/utils/buildRequest.js +2 -0
- package/dist/cjs/utils/buildRequest.js.map +1 -1
- package/dist/cjs/utils/ccip.js.map +1 -1
- package/dist/cjs/utils/errors/getCallError.js +4 -3
- package/dist/cjs/utils/errors/getCallError.js.map +1 -1
- package/dist/cjs/utils/errors/getContractError.js +2 -1
- package/dist/cjs/utils/errors/getContractError.js.map +1 -1
- package/dist/cjs/utils/errors/getEstimateGasError.js +4 -3
- package/dist/cjs/utils/errors/getEstimateGasError.js.map +1 -1
- package/dist/cjs/utils/errors/getNodeError.js +16 -10
- package/dist/cjs/utils/errors/getNodeError.js.map +1 -1
- package/dist/cjs/utils/errors/getTransactionError.js +4 -3
- package/dist/cjs/utils/errors/getTransactionError.js.map +1 -1
- package/dist/cjs/utils/formatters/transaction.js +5 -5
- package/dist/cjs/utils/formatters/transaction.js.map +1 -1
- package/dist/cjs/utils/hash/getFunctionSelector.js.map +1 -1
- package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
- package/dist/cjs/utils/rpc.js +10 -16
- package/dist/cjs/utils/rpc.js.map +1 -1
- package/dist/cjs/utils/signature/hashTypedData.js +3 -14
- package/dist/cjs/utils/signature/hashTypedData.js.map +1 -1
- package/dist/cjs/utils/signature/hexToSignature.js +1 -1
- package/dist/cjs/utils/signature/hexToSignature.js.map +1 -1
- package/dist/cjs/utils/typedData.js +27 -1
- package/dist/cjs/utils/typedData.js.map +1 -1
- package/dist/esm/accounts/index.js +9 -9
- package/dist/esm/accounts/index.js.map +1 -1
- package/dist/esm/actions/getContract.js.map +1 -1
- package/dist/esm/actions/public/call.js +1 -1
- package/dist/esm/actions/public/call.js.map +1 -1
- package/dist/esm/actions/public/getLogs.js.map +1 -1
- package/dist/esm/actions/public/multicall.js +66 -31
- package/dist/esm/actions/public/multicall.js.map +1 -1
- package/dist/esm/actions/public/watchContractEvent.js +3 -2
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/public/watchEvent.js +2 -5
- package/dist/esm/actions/public/watchEvent.js.map +1 -1
- package/dist/esm/actions/wallet/deployContract.js +3 -6
- package/dist/esm/actions/wallet/deployContract.js.map +1 -1
- package/dist/esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/dist/esm/actions/wallet/signTypedData.js +2 -14
- package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
- package/dist/esm/chains/definitions/base.js +1 -3
- package/dist/esm/chains/definitions/base.js.map +1 -1
- package/dist/esm/chains/definitions/baseGoerli.js +1 -3
- package/dist/esm/chains/definitions/baseGoerli.js.map +1 -1
- package/dist/esm/chains/definitions/meter.js +19 -0
- package/dist/esm/chains/definitions/meter.js.map +1 -0
- package/dist/esm/chains/definitions/meterTestnet.js +22 -0
- package/dist/esm/chains/definitions/meterTestnet.js.map +1 -0
- package/dist/esm/chains/definitions/opBNB.js +25 -0
- package/dist/esm/chains/definitions/opBNB.js.map +1 -0
- package/dist/esm/chains/definitions/opBNBTestnet.js +26 -0
- package/dist/esm/chains/definitions/opBNBTestnet.js.map +1 -0
- package/dist/esm/chains/definitions/optimism.js +0 -2
- package/dist/esm/chains/definitions/optimism.js.map +1 -1
- package/dist/esm/chains/definitions/optimismGoerli.js +0 -2
- package/dist/esm/chains/definitions/optimismGoerli.js.map +1 -1
- package/dist/esm/chains/definitions/plinga.js +28 -0
- package/dist/esm/chains/definitions/plinga.js.map +1 -0
- package/dist/esm/chains/definitions/scrollSepolia.js +6 -0
- package/dist/esm/chains/definitions/scrollSepolia.js.map +1 -1
- package/dist/esm/chains/definitions/sepolia.js +5 -0
- package/dist/esm/chains/definitions/sepolia.js.map +1 -1
- package/dist/esm/chains/definitions/vechain.js +26 -0
- package/dist/esm/chains/definitions/vechain.js.map +1 -0
- package/dist/esm/chains/definitions/zora.js +0 -2
- package/dist/esm/chains/definitions/zora.js.map +1 -1
- package/dist/esm/chains/definitions/zoraTestnet.js +0 -2
- package/dist/esm/chains/definitions/zoraTestnet.js.map +1 -1
- package/dist/esm/chains/index.js +6 -0
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/clients/decorators/public.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/utils.js +1 -1
- package/dist/esm/errors/utils.js.map +1 -1
- package/dist/esm/errors/version.js +2 -0
- package/dist/esm/errors/version.js.map +1 -0
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/contract.js.map +1 -1
- package/dist/esm/utils/abi/decodeDeployData.js +2 -1
- package/dist/esm/utils/abi/decodeDeployData.js.map +1 -1
- package/dist/esm/utils/abi/decodeErrorResult.js +4 -3
- package/dist/esm/utils/abi/decodeErrorResult.js.map +1 -1
- package/dist/esm/utils/abi/decodeEventLog.js +4 -7
- package/dist/esm/utils/abi/decodeEventLog.js.map +1 -1
- package/dist/esm/utils/abi/decodeFunctionData.js +2 -1
- package/dist/esm/utils/abi/decodeFunctionData.js.map +1 -1
- package/dist/esm/utils/abi/decodeFunctionResult.js +5 -7
- package/dist/esm/utils/abi/decodeFunctionResult.js.map +1 -1
- package/dist/esm/utils/abi/encodeDeployData.js +2 -1
- package/dist/esm/utils/abi/encodeDeployData.js.map +1 -1
- package/dist/esm/utils/abi/encodeErrorResult.js +5 -7
- package/dist/esm/utils/abi/encodeErrorResult.js.map +1 -1
- package/dist/esm/utils/abi/encodeEventTopics.js +8 -13
- package/dist/esm/utils/abi/encodeEventTopics.js.map +1 -1
- package/dist/esm/utils/abi/encodeFunctionData.js +9 -10
- package/dist/esm/utils/abi/encodeFunctionData.js.map +1 -1
- package/dist/esm/utils/abi/encodeFunctionResult.js +7 -12
- package/dist/esm/utils/abi/encodeFunctionResult.js.map +1 -1
- package/dist/esm/utils/abi/getAbiItem.js +2 -1
- package/dist/esm/utils/abi/getAbiItem.js.map +1 -1
- package/dist/esm/utils/buildRequest.js +4 -0
- package/dist/esm/utils/buildRequest.js.map +1 -1
- package/dist/esm/utils/ccip.js.map +1 -1
- package/dist/esm/utils/errors/getCallError.js +5 -4
- package/dist/esm/utils/errors/getCallError.js.map +1 -1
- package/dist/esm/utils/errors/getContractError.js +2 -1
- package/dist/esm/utils/errors/getContractError.js.map +1 -1
- package/dist/esm/utils/errors/getEstimateGasError.js +5 -4
- package/dist/esm/utils/errors/getEstimateGasError.js.map +1 -1
- package/dist/esm/utils/errors/getNodeError.js +16 -10
- package/dist/esm/utils/errors/getNodeError.js.map +1 -1
- package/dist/esm/utils/errors/getTransactionError.js +5 -4
- package/dist/esm/utils/errors/getTransactionError.js.map +1 -1
- package/dist/esm/utils/formatters/transaction.js +5 -5
- package/dist/esm/utils/formatters/transaction.js.map +1 -1
- package/dist/esm/utils/hash/getFunctionSelector.js.map +1 -1
- package/dist/esm/utils/hash/hashFunction.js.map +1 -1
- package/dist/esm/utils/rpc.js +7 -16
- package/dist/esm/utils/rpc.js.map +1 -1
- package/dist/esm/utils/signature/hashTypedData.js +3 -15
- package/dist/esm/utils/signature/hashTypedData.js.map +1 -1
- package/dist/esm/utils/signature/hexToSignature.js +1 -1
- package/dist/esm/utils/signature/hexToSignature.js.map +1 -1
- package/dist/esm/utils/typedData.js +24 -0
- package/dist/esm/utils/typedData.js.map +1 -1
- package/dist/types/accounts/index.d.ts +9 -9
- package/dist/types/accounts/index.d.ts.map +1 -1
- package/dist/types/actions/getContract.d.ts +3 -3
- package/dist/types/actions/getContract.d.ts.map +1 -1
- package/dist/types/actions/public/getLogs.d.ts.map +1 -1
- package/dist/types/actions/public/multicall.d.ts.map +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts +29 -29
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts +10 -6
- package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
- package/dist/types/actions/wallet/prepareTransactionRequest.d.ts +1 -1
- package/dist/types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
- package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
- package/dist/types/chains/definitions/base.d.ts +1 -1
- package/dist/types/chains/definitions/base.d.ts.map +1 -1
- package/dist/types/chains/definitions/baseGoerli.d.ts +1 -1
- package/dist/types/chains/definitions/baseGoerli.d.ts.map +1 -1
- package/dist/types/chains/definitions/meter.d.ts +28 -0
- package/dist/types/chains/definitions/meter.d.ts.map +1 -0
- package/dist/types/chains/definitions/meterTestnet.d.ts +28 -0
- package/dist/types/chains/definitions/meterTestnet.d.ts.map +1 -0
- package/dist/types/chains/definitions/opBNB.d.ts +34 -0
- package/dist/types/chains/definitions/opBNB.d.ts.map +1 -0
- package/dist/types/chains/definitions/opBNBTestnet.d.ts +35 -0
- package/dist/types/chains/definitions/opBNBTestnet.d.ts.map +1 -0
- package/dist/types/chains/definitions/optimism.d.ts.map +1 -1
- package/dist/types/chains/definitions/optimismGoerli.d.ts.map +1 -1
- package/dist/types/chains/definitions/plinga.d.ts +34 -0
- package/dist/types/chains/definitions/plinga.d.ts.map +1 -0
- package/dist/types/chains/definitions/scrollSepolia.d.ts +6 -0
- package/dist/types/chains/definitions/scrollSepolia.d.ts.map +1 -1
- package/dist/types/chains/definitions/sepolia.d.ts +7 -0
- package/dist/types/chains/definitions/sepolia.d.ts.map +1 -1
- package/dist/types/chains/definitions/vechain.d.ts +32 -0
- package/dist/types/chains/definitions/vechain.d.ts.map +1 -0
- package/dist/types/chains/definitions/zora.d.ts.map +1 -1
- package/dist/types/chains/definitions/zoraTestnet.d.ts.map +1 -1
- package/dist/types/chains/index.d.ts +6 -0
- package/dist/types/chains/index.d.ts.map +1 -1
- package/dist/types/clients/decorators/public.d.ts +2 -2
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/clients/decorators/wallet.d.ts +1 -1
- package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +2 -0
- package/dist/types/errors/version.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/chain.d.ts +4 -0
- package/dist/types/types/chain.d.ts.map +1 -1
- package/dist/types/types/contract.d.ts +48 -82
- package/dist/types/types/contract.d.ts.map +1 -1
- package/dist/types/types/multicall.d.ts +4 -4
- package/dist/types/types/multicall.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeDeployData.d.ts +7 -6
- package/dist/types/utils/abi/decodeDeployData.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeErrorResult.d.ts +16 -11
- package/dist/types/utils/abi/decodeErrorResult.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeEventLog.d.ts +24 -17
- package/dist/types/utils/abi/decodeEventLog.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeFunctionData.d.ts +14 -10
- package/dist/types/utils/abi/decodeFunctionData.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeFunctionResult.d.ts +18 -11
- package/dist/types/utils/abi/decodeFunctionResult.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeDeployData.d.ts +13 -5
- package/dist/types/utils/abi/encodeDeployData.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeErrorResult.d.ts +16 -10
- package/dist/types/utils/abi/encodeErrorResult.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeEventTopics.d.ts +14 -12
- package/dist/types/utils/abi/encodeEventTopics.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeFunctionData.d.ts +19 -10
- package/dist/types/utils/abi/encodeFunctionData.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeFunctionResult.d.ts +16 -12
- package/dist/types/utils/abi/encodeFunctionResult.d.ts.map +1 -1
- package/dist/types/utils/abi/getAbiItem.d.ts +11 -8
- 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/ccip.d.ts.map +1 -1
- package/dist/types/utils/errors/getCallError.d.ts.map +1 -1
- package/dist/types/utils/errors/getContractError.d.ts.map +1 -1
- package/dist/types/utils/errors/getEstimateGasError.d.ts.map +1 -1
- package/dist/types/utils/errors/getNodeError.d.ts +1 -1
- package/dist/types/utils/errors/getNodeError.d.ts.map +1 -1
- package/dist/types/utils/errors/getTransactionError.d.ts.map +1 -1
- package/dist/types/utils/hash/getEventSelector.d.ts +1 -1
- package/dist/types/utils/hash/getEventSelector.d.ts.map +1 -1
- package/dist/types/utils/hash/getFunctionSelector.d.ts.map +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
- package/dist/types/utils/rpc.d.ts +3 -1
- package/dist/types/utils/rpc.d.ts.map +1 -1
- package/dist/types/utils/signature/hashTypedData.d.ts +10 -1
- package/dist/types/utils/signature/hashTypedData.d.ts.map +1 -1
- package/dist/types/utils/signature/verifyMessage.d.ts +2 -2
- package/dist/types/utils/signature/verifyMessage.d.ts.map +1 -1
- package/dist/types/utils/typedData.d.ts +8 -1
- package/dist/types/utils/typedData.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/accounts/index.ts +10 -9
- package/src/actions/getContract.ts +5 -2
- package/src/actions/public/call.ts +1 -1
- package/src/actions/public/getLogs.ts +3 -3
- package/src/actions/public/multicall.ts +72 -29
- package/src/actions/public/watchContractEvent.ts +58 -52
- package/src/actions/public/watchEvent.ts +4 -7
- package/src/actions/wallet/deployContract.ts +29 -34
- package/src/actions/wallet/prepareTransactionRequest.ts +3 -6
- package/src/actions/wallet/signTypedData.ts +5 -14
- package/src/chains/definitions/base.ts +1 -3
- package/src/chains/definitions/baseGoerli.ts +1 -3
- package/src/chains/definitions/meter.ts +19 -0
- package/src/chains/definitions/meterTestnet.ts +22 -0
- package/src/chains/definitions/opBNB.ts +26 -0
- package/src/chains/definitions/opBNBTestnet.ts +26 -0
- package/src/chains/definitions/optimism.ts +0 -2
- package/src/chains/definitions/optimismGoerli.ts +0 -2
- package/src/chains/definitions/plinga.ts +28 -0
- package/src/chains/definitions/scrollSepolia.ts +6 -0
- package/src/chains/definitions/sepolia.ts +5 -0
- package/src/chains/definitions/vechain.ts +26 -0
- package/src/chains/definitions/zora.ts +0 -2
- package/src/chains/definitions/zoraTestnet.ts +0 -2
- package/src/chains/index.ts +6 -0
- package/src/clients/decorators/public.ts +2 -1
- package/src/clients/decorators/wallet.ts +3 -3
- package/src/errors/node.ts +1 -1
- package/src/errors/utils.ts +1 -1
- package/src/errors/version.ts +1 -0
- package/src/index.ts +10 -11
- package/src/types/chain.ts +2 -0
- package/src/types/contract.ts +183 -216
- package/src/types/multicall.ts +19 -13
- package/src/utils/abi/decodeDeployData.ts +16 -15
- package/src/utils/abi/decodeErrorResult.ts +41 -25
- package/src/utils/abi/decodeEventLog.ts +65 -67
- package/src/utils/abi/decodeFunctionData.ts +30 -22
- package/src/utils/abi/decodeFunctionResult.ts +124 -46
- package/src/utils/abi/encodeDeployData.ts +27 -16
- package/src/utils/abi/encodeErrorResult.ts +47 -26
- package/src/utils/abi/encodeEventTopics.ts +49 -30
- package/src/utils/abi/encodeFunctionData.ts +58 -32
- package/src/utils/abi/encodeFunctionResult.ts +53 -36
- package/src/utils/abi/getAbiItem.ts +68 -32
- package/src/utils/buildRequest.ts +4 -0
- package/src/utils/ccip.ts +1 -5
- package/src/utils/errors/getCallError.ts +4 -8
- package/src/utils/errors/getContractError.ts +2 -1
- package/src/utils/errors/getEstimateGasError.ts +4 -8
- package/src/utils/errors/getNodeError.ts +18 -13
- package/src/utils/errors/getTransactionError.ts +4 -8
- package/src/utils/formatters/transaction.ts +5 -5
- package/src/utils/hash/getEventSelector.ts +1 -1
- package/src/utils/hash/getFunctionSelector.ts +1 -1
- package/src/utils/hash/hashFunction.ts +1 -1
- package/src/utils/rpc.ts +9 -20
- package/src/utils/signature/hashTypedData.ts +4 -16
- package/src/utils/signature/hexToSignature.ts +1 -1
- package/src/utils/signature/verifyMessage.ts +2 -2
- package/src/utils/typedData.ts +29 -1
- package/dist/cjs/accounts/wordlists/czech.js +0 -6
- package/dist/cjs/accounts/wordlists/czech.js.map +0 -1
- package/dist/cjs/accounts/wordlists/english.js +0 -6
- package/dist/cjs/accounts/wordlists/english.js.map +0 -1
- package/dist/cjs/accounts/wordlists/french.js +0 -6
- package/dist/cjs/accounts/wordlists/french.js.map +0 -1
- package/dist/cjs/accounts/wordlists/italian.js +0 -6
- package/dist/cjs/accounts/wordlists/italian.js.map +0 -1
- package/dist/cjs/accounts/wordlists/japanese.js +0 -6
- package/dist/cjs/accounts/wordlists/japanese.js.map +0 -1
- package/dist/cjs/accounts/wordlists/korean.js +0 -6
- package/dist/cjs/accounts/wordlists/korean.js.map +0 -1
- package/dist/cjs/accounts/wordlists/simplifiedChinese.js +0 -6
- package/dist/cjs/accounts/wordlists/simplifiedChinese.js.map +0 -1
- package/dist/cjs/accounts/wordlists/spanish.js +0 -6
- package/dist/cjs/accounts/wordlists/spanish.js.map +0 -1
- package/dist/cjs/accounts/wordlists/traditionalChinese.js +0 -6
- package/dist/cjs/accounts/wordlists/traditionalChinese.js.map +0 -1
- package/dist/cjs/chains/optimism/fees.js +0 -7
- package/dist/cjs/chains/optimism/fees.js.map +0 -1
- package/dist/cjs/version.js.map +0 -1
- package/dist/esm/accounts/wordlists/czech.js +0 -2
- package/dist/esm/accounts/wordlists/czech.js.map +0 -1
- package/dist/esm/accounts/wordlists/english.js +0 -2
- package/dist/esm/accounts/wordlists/english.js.map +0 -1
- package/dist/esm/accounts/wordlists/french.js +0 -2
- package/dist/esm/accounts/wordlists/french.js.map +0 -1
- package/dist/esm/accounts/wordlists/italian.js +0 -2
- package/dist/esm/accounts/wordlists/italian.js.map +0 -1
- package/dist/esm/accounts/wordlists/japanese.js +0 -2
- package/dist/esm/accounts/wordlists/japanese.js.map +0 -1
- package/dist/esm/accounts/wordlists/korean.js +0 -2
- package/dist/esm/accounts/wordlists/korean.js.map +0 -1
- package/dist/esm/accounts/wordlists/simplifiedChinese.js +0 -2
- package/dist/esm/accounts/wordlists/simplifiedChinese.js.map +0 -1
- package/dist/esm/accounts/wordlists/spanish.js +0 -2
- package/dist/esm/accounts/wordlists/spanish.js.map +0 -1
- package/dist/esm/accounts/wordlists/traditionalChinese.js +0 -2
- package/dist/esm/accounts/wordlists/traditionalChinese.js.map +0 -1
- package/dist/esm/chains/optimism/fees.js +0 -4
- package/dist/esm/chains/optimism/fees.js.map +0 -1
- package/dist/esm/version.js +0 -2
- package/dist/esm/version.js.map +0 -1
- package/dist/types/accounts/wordlists/czech.d.ts +0 -2
- package/dist/types/accounts/wordlists/czech.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/english.d.ts +0 -2
- package/dist/types/accounts/wordlists/english.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/french.d.ts +0 -2
- package/dist/types/accounts/wordlists/french.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/italian.d.ts +0 -2
- package/dist/types/accounts/wordlists/italian.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/japanese.d.ts +0 -2
- package/dist/types/accounts/wordlists/japanese.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/korean.d.ts +0 -2
- package/dist/types/accounts/wordlists/korean.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/simplifiedChinese.d.ts +0 -2
- package/dist/types/accounts/wordlists/simplifiedChinese.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/spanish.d.ts +0 -2
- package/dist/types/accounts/wordlists/spanish.d.ts.map +0 -1
- package/dist/types/accounts/wordlists/traditionalChinese.d.ts +0 -2
- package/dist/types/accounts/wordlists/traditionalChinese.d.ts.map +0 -1
- package/dist/types/chains/optimism/fees.d.ts +0 -4
- package/dist/types/chains/optimism/fees.d.ts.map +0 -1
- package/dist/types/version.d.ts +0 -2
- package/dist/types/version.d.ts.map +0 -1
- package/src/accounts/wordlists/czech.ts +0 -1
- package/src/accounts/wordlists/english.ts +0 -1
- package/src/accounts/wordlists/french.ts +0 -1
- package/src/accounts/wordlists/italian.ts +0 -1
- package/src/accounts/wordlists/japanese.ts +0 -1
- package/src/accounts/wordlists/korean.ts +0 -1
- package/src/accounts/wordlists/simplifiedChinese.ts +0 -1
- package/src/accounts/wordlists/spanish.ts +0 -1
- package/src/accounts/wordlists/traditionalChinese.ts +0 -1
- package/src/chains/optimism/fees.ts +0 -5
- package/src/version.ts +0 -1
package/src/types/contract.ts
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
import {
|
2
2
|
type Abi,
|
3
|
-
type AbiConstructor,
|
4
|
-
type AbiError,
|
5
3
|
type AbiEvent,
|
6
4
|
type AbiFunction,
|
7
5
|
type AbiParameter,
|
@@ -43,6 +41,24 @@ export type ContractFunctionName<
|
|
43
41
|
: functionName
|
44
42
|
: string
|
45
43
|
|
44
|
+
export type ContractErrorName<abi extends Abi | readonly unknown[] = Abi> =
|
45
|
+
ExtractAbiErrorNames<
|
46
|
+
abi extends Abi ? abi : Abi
|
47
|
+
> extends infer errorName extends string
|
48
|
+
? [errorName] extends [never]
|
49
|
+
? string
|
50
|
+
: errorName
|
51
|
+
: string
|
52
|
+
|
53
|
+
export type ContractEventName<abi extends Abi | readonly unknown[] = Abi> =
|
54
|
+
ExtractAbiEventNames<
|
55
|
+
abi extends Abi ? abi : Abi
|
56
|
+
> extends infer eventName extends string
|
57
|
+
? [eventName] extends [never]
|
58
|
+
? string
|
59
|
+
: eventName
|
60
|
+
: string
|
61
|
+
|
46
62
|
export type ContractFunctionArgs<
|
47
63
|
abi extends Abi | readonly unknown[] = Abi,
|
48
64
|
mutability extends AbiStateMutability = AbiStateMutability,
|
@@ -63,6 +79,56 @@ export type ContractFunctionArgs<
|
|
63
79
|
: args
|
64
80
|
: readonly unknown[]
|
65
81
|
|
82
|
+
export type ContractConstructorArgs<
|
83
|
+
abi extends Abi | readonly unknown[] = Abi,
|
84
|
+
> = AbiParametersToPrimitiveTypes<
|
85
|
+
Extract<
|
86
|
+
(abi extends Abi ? abi : Abi)[number],
|
87
|
+
{ type: 'constructor' }
|
88
|
+
>['inputs'],
|
89
|
+
'inputs'
|
90
|
+
> extends infer args
|
91
|
+
? [args] extends [never]
|
92
|
+
? readonly unknown[]
|
93
|
+
: args
|
94
|
+
: readonly unknown[]
|
95
|
+
|
96
|
+
export type ContractErrorArgs<
|
97
|
+
abi extends Abi | readonly unknown[] = Abi,
|
98
|
+
errorName extends ContractErrorName<abi> = ContractErrorName<abi>,
|
99
|
+
> = AbiParametersToPrimitiveTypes<
|
100
|
+
ExtractAbiError<abi extends Abi ? abi : Abi, errorName>['inputs'],
|
101
|
+
'inputs'
|
102
|
+
> extends infer args
|
103
|
+
? [args] extends [never]
|
104
|
+
? readonly unknown[]
|
105
|
+
: args
|
106
|
+
: readonly unknown[]
|
107
|
+
|
108
|
+
export type ContractEventArgs<
|
109
|
+
abi extends Abi | readonly unknown[] = Abi,
|
110
|
+
eventName extends ContractErrorName<abi> = ContractErrorName<abi>,
|
111
|
+
> = AbiEventParametersToPrimitiveTypes<
|
112
|
+
ExtractAbiEvent<abi extends Abi ? abi : Abi, eventName>['inputs']
|
113
|
+
> extends infer args
|
114
|
+
? [args] extends [never]
|
115
|
+
? readonly unknown[] | Record<string, unknown>
|
116
|
+
: args
|
117
|
+
: readonly unknown[] | Record<string, unknown>
|
118
|
+
|
119
|
+
export type ContractEventArgsFromTopics<
|
120
|
+
abi extends Abi | readonly unknown[] = Abi,
|
121
|
+
eventName extends ContractEventName<abi> = ContractEventName<abi>,
|
122
|
+
strict extends boolean = true,
|
123
|
+
> = AbiEventParametersToPrimitiveTypes<
|
124
|
+
ExtractAbiEvent<abi extends Abi ? abi : Abi, eventName>['inputs'],
|
125
|
+
{ EnableUnion: false; IndexedOnly: false; Required: strict }
|
126
|
+
> extends infer args
|
127
|
+
? [args] extends [never]
|
128
|
+
? readonly unknown[] | Record<string, unknown>
|
129
|
+
: args
|
130
|
+
: readonly unknown[] | Record<string, unknown>
|
131
|
+
|
66
132
|
export type Widen<type> =
|
67
133
|
| ([unknown] extends [type] ? unknown : never)
|
68
134
|
| (type extends Function ? type : never)
|
@@ -101,7 +167,11 @@ export type ExtractAbiFunctionForArgs<
|
|
101
167
|
? IsUnion<abiFunction> extends true // narrow overloads using `args` by converting to tuple and filtering out overloads that don't match
|
102
168
|
? UnionToTuple<abiFunction> extends infer abiFunctions extends readonly AbiFunction[]
|
103
169
|
? {
|
104
|
-
[k in keyof abiFunctions]:
|
170
|
+
[k in keyof abiFunctions]: (
|
171
|
+
readonly [] extends args
|
172
|
+
? readonly [] // fallback to `readonly []` if `args` has no value (e.g. `args` property not provided)
|
173
|
+
: args
|
174
|
+
) extends AbiParametersToPrimitiveTypes<
|
105
175
|
abiFunctions[k]['inputs'],
|
106
176
|
'inputs'
|
107
177
|
>
|
@@ -135,16 +205,17 @@ export type ContractFunctionParameters<
|
|
135
205
|
functionName:
|
136
206
|
| allFunctionNames // show all options
|
137
207
|
| (functionName extends allFunctionNames ? functionName : never) // infer value
|
138
|
-
args?:
|
139
|
-
| allArgs // show all options
|
140
|
-
| (args extends allArgs ? Widen<args> : never) // infer value, widen inferred value of `args` conditionally to match `allArgs`
|
141
|
-
| undefined
|
142
208
|
} & UnionEvaluate<
|
143
209
|
readonly [] extends allArgs
|
144
210
|
? {
|
145
211
|
args?:
|
146
212
|
| allArgs // show all options
|
147
|
-
|
213
|
+
// infer value, widen inferred value of `args` conditionally to match `allArgs`
|
214
|
+
| (abi extends Abi
|
215
|
+
? args extends allArgs
|
216
|
+
? Widen<args>
|
217
|
+
: never
|
218
|
+
: never)
|
148
219
|
| undefined
|
149
220
|
}
|
150
221
|
: {
|
@@ -174,7 +245,7 @@ export type ContractFunctionReturnType<
|
|
174
245
|
abi,
|
175
246
|
mutability,
|
176
247
|
functionName,
|
177
|
-
|
248
|
+
args
|
178
249
|
>['outputs']
|
179
250
|
> extends infer types
|
180
251
|
? types extends readonly []
|
@@ -187,25 +258,59 @@ export type ContractFunctionReturnType<
|
|
187
258
|
|
188
259
|
export type AbiItem = Abi[number]
|
189
260
|
|
190
|
-
export type
|
261
|
+
export type ExtractAbiItemNames<abi extends Abi> = Extract<
|
262
|
+
abi[number],
|
263
|
+
{ name: string }
|
264
|
+
>['name']
|
191
265
|
|
192
|
-
export type
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
> =
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
?
|
208
|
-
|
266
|
+
export type ExtractAbiItem<
|
267
|
+
abi extends Abi,
|
268
|
+
name extends ExtractAbiItemNames<abi>,
|
269
|
+
> = Extract<abi[number], { name: name }>
|
270
|
+
|
271
|
+
export type AbiItemName<abi extends Abi | readonly unknown[] = Abi> =
|
272
|
+
abi extends Abi ? ExtractAbiItemNames<abi> : string
|
273
|
+
|
274
|
+
export type AbiItemArgs<
|
275
|
+
abi extends Abi | readonly unknown[] = Abi,
|
276
|
+
name extends AbiItemName<abi> = AbiItemName<abi>,
|
277
|
+
> = AbiParametersToPrimitiveTypes<
|
278
|
+
ExtractAbiItem<abi extends Abi ? abi : Abi, name>['inputs'],
|
279
|
+
'inputs'
|
280
|
+
> extends infer args
|
281
|
+
? [args] extends [never]
|
282
|
+
? readonly unknown[]
|
283
|
+
: args
|
284
|
+
: readonly unknown[]
|
285
|
+
|
286
|
+
export type ExtractAbiItemForArgs<
|
287
|
+
abi extends Abi,
|
288
|
+
name extends AbiItemName<abi>,
|
289
|
+
args extends AbiItemArgs<abi, name>,
|
290
|
+
> = ExtractAbiItem<abi, name> extends infer abiItem extends AbiItem & {
|
291
|
+
inputs: readonly AbiParameter[]
|
292
|
+
}
|
293
|
+
? IsUnion<abiItem> extends true // narrow overloads using `args` by converting to tuple and filtering out overloads that don't match
|
294
|
+
? UnionToTuple<abiItem> extends infer abiItems extends readonly (AbiItem & {
|
295
|
+
inputs: readonly AbiParameter[]
|
296
|
+
})[]
|
297
|
+
? {
|
298
|
+
[k in keyof abiItems]: (
|
299
|
+
readonly [] extends args
|
300
|
+
? readonly [] // fallback to `readonly []` if `args` has no value (e.g. `args` property not provided)
|
301
|
+
: args
|
302
|
+
) extends AbiParametersToPrimitiveTypes<
|
303
|
+
abiItems[k]['inputs'],
|
304
|
+
'inputs'
|
305
|
+
>
|
306
|
+
? abiItems[k]
|
307
|
+
: never
|
308
|
+
}[number] // convert back to union (removes `never` tuple entries: `['foo', never, 'bar'][number]` => `'foo' | 'bar'`)
|
309
|
+
: never
|
310
|
+
: abiItem
|
311
|
+
: never
|
312
|
+
|
313
|
+
export type EventDefinition = `${string}(${string})`
|
209
314
|
|
210
315
|
export type GetValue<
|
211
316
|
TAbi extends Abi | readonly unknown[],
|
@@ -223,6 +328,8 @@ export type GetValue<
|
|
223
328
|
: { value?: never }
|
224
329
|
: { value?: TValueType }
|
225
330
|
|
331
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
332
|
+
|
226
333
|
export type MaybeAbiEventName<TAbiEvent extends AbiEvent | undefined> =
|
227
334
|
TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined
|
228
335
|
|
@@ -235,21 +342,6 @@ export type MaybeExtractEventArgsFromAbi<
|
|
235
342
|
: undefined
|
236
343
|
: undefined
|
237
344
|
|
238
|
-
//////////////////////////////////////////////////////////////////////
|
239
|
-
// ABI item name
|
240
|
-
|
241
|
-
export type InferErrorName<
|
242
|
-
TAbi extends Abi | readonly unknown[] = Abi,
|
243
|
-
TErrorName extends string | undefined = string,
|
244
|
-
> = TAbi extends Abi
|
245
|
-
? ExtractAbiErrorNames<TAbi> extends infer AbiErrorNames
|
246
|
-
?
|
247
|
-
| AbiErrorNames
|
248
|
-
| (TErrorName extends AbiErrorNames ? TErrorName : never)
|
249
|
-
| (Abi extends TAbi ? string : never)
|
250
|
-
: never
|
251
|
-
: TErrorName
|
252
|
-
|
253
345
|
export type InferEventName<
|
254
346
|
TAbi extends Abi | readonly unknown[] = Abi,
|
255
347
|
TEventName extends string | undefined = string,
|
@@ -259,115 +351,9 @@ export type InferEventName<
|
|
259
351
|
: never
|
260
352
|
: TEventName
|
261
353
|
|
262
|
-
export type InferFunctionName<
|
263
|
-
TAbi extends Abi | readonly unknown[] = Abi,
|
264
|
-
TFunctionName extends string | undefined = string,
|
265
|
-
TAbiStateMutability extends AbiStateMutability = AbiStateMutability,
|
266
|
-
> = TAbi extends Abi
|
267
|
-
? ExtractAbiFunctionNames<
|
268
|
-
TAbi,
|
269
|
-
TAbiStateMutability
|
270
|
-
> extends infer AbiFunctionNames
|
271
|
-
?
|
272
|
-
| AbiFunctionNames
|
273
|
-
| (TFunctionName extends AbiFunctionNames ? TFunctionName : never)
|
274
|
-
| (Abi extends TAbi ? string : never)
|
275
|
-
: never
|
276
|
-
: TFunctionName
|
277
|
-
|
278
|
-
export type InferItemName<
|
279
|
-
TAbi extends Abi | readonly unknown[] = Abi,
|
280
|
-
TName extends string = string,
|
281
|
-
> = TAbi extends Abi
|
282
|
-
? ExtractAbiItemNames<TAbi> extends infer AbiNames
|
283
|
-
?
|
284
|
-
| AbiNames
|
285
|
-
| (TName extends AbiNames ? TName : never)
|
286
|
-
| (Abi extends TAbi ? string : never)
|
287
|
-
: never
|
288
|
-
: TName
|
289
|
-
type ExtractAbiItemNames<TAbi extends Abi> =
|
290
|
-
| ExtractAbiFunctionNames<TAbi>
|
291
|
-
| ExtractAbiEventNames<TAbi>
|
292
|
-
| ExtractAbiErrorNames<TAbi>
|
293
|
-
|
294
354
|
//////////////////////////////////////////////////////////////////////
|
295
355
|
// ABI item args
|
296
356
|
|
297
|
-
export type GetFunctionArgs<
|
298
|
-
TAbi extends Abi | readonly unknown[],
|
299
|
-
TFunctionName extends string,
|
300
|
-
TAbiFunction extends AbiFunction = TAbi extends Abi
|
301
|
-
? ExtractAbiFunction<TAbi, TFunctionName>
|
302
|
-
: AbiFunction,
|
303
|
-
TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>,
|
304
|
-
FailedToParseArgs =
|
305
|
-
| ([TArgs] extends [never] ? true : false)
|
306
|
-
| (readonly unknown[] extends TArgs ? true : false),
|
307
|
-
> = true extends FailedToParseArgs
|
308
|
-
? {
|
309
|
-
/**
|
310
|
-
* Arguments to pass contract method
|
311
|
-
*
|
312
|
-
* Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
|
313
|
-
*/
|
314
|
-
args?: readonly unknown[]
|
315
|
-
}
|
316
|
-
: TArgs extends readonly []
|
317
|
-
? { args?: never }
|
318
|
-
: {
|
319
|
-
/** Arguments to pass contract method */ args: TArgs
|
320
|
-
}
|
321
|
-
|
322
|
-
export type GetConstructorArgs<
|
323
|
-
TAbi extends Abi | readonly unknown[],
|
324
|
-
TAbiConstructor extends AbiConstructor = TAbi extends Abi
|
325
|
-
? Extract<TAbi[number], { type: 'constructor' }>
|
326
|
-
: AbiConstructor,
|
327
|
-
TArgs = AbiParametersToPrimitiveTypes<TAbiConstructor['inputs']>,
|
328
|
-
FailedToParseArgs =
|
329
|
-
| ([TArgs] extends [never] ? true : false)
|
330
|
-
| (readonly unknown[] extends TArgs ? true : false),
|
331
|
-
> = true extends FailedToParseArgs
|
332
|
-
? {
|
333
|
-
/**
|
334
|
-
* Arguments to pass contract constructor
|
335
|
-
*
|
336
|
-
* Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
|
337
|
-
*/
|
338
|
-
args?: readonly unknown[]
|
339
|
-
}
|
340
|
-
: TArgs extends readonly []
|
341
|
-
? { args?: never }
|
342
|
-
: {
|
343
|
-
/** Arguments to pass contract constructor */ args: TArgs
|
344
|
-
}
|
345
|
-
|
346
|
-
export type GetErrorArgs<
|
347
|
-
TAbi extends Abi | readonly unknown[],
|
348
|
-
TErrorName extends string,
|
349
|
-
TAbiError extends AbiError = TAbi extends Abi
|
350
|
-
? ExtractAbiError<TAbi, TErrorName>
|
351
|
-
: AbiError,
|
352
|
-
TArgs = AbiParametersToPrimitiveTypes<TAbiError['inputs']>,
|
353
|
-
FailedToParseArgs =
|
354
|
-
| ([TArgs] extends [never] ? true : false)
|
355
|
-
| (readonly unknown[] extends TArgs ? true : false),
|
356
|
-
> = true extends FailedToParseArgs
|
357
|
-
? {
|
358
|
-
/**
|
359
|
-
* Arguments to pass contract method
|
360
|
-
*
|
361
|
-
* Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
|
362
|
-
*/
|
363
|
-
args?: readonly unknown[]
|
364
|
-
}
|
365
|
-
: TArgs extends readonly []
|
366
|
-
? { args?: never }
|
367
|
-
: {
|
368
|
-
/** Arguments to pass contract method */ args: TArgs
|
369
|
-
}
|
370
|
-
|
371
357
|
export type GetEventArgs<
|
372
358
|
TAbi extends Abi | readonly unknown[],
|
373
359
|
TEventName extends string,
|
@@ -383,25 +369,6 @@ export type GetEventArgs<
|
|
383
369
|
? readonly unknown[] | Record<string, unknown>
|
384
370
|
: TArgs
|
385
371
|
|
386
|
-
export type GetEventArgsFromTopics<
|
387
|
-
TAbi extends Abi | readonly unknown[],
|
388
|
-
TEventName extends string,
|
389
|
-
TTopics extends LogTopic[],
|
390
|
-
TData extends Hex | undefined,
|
391
|
-
TStrict extends boolean = true,
|
392
|
-
TAbiEvent extends AbiEvent & { type: 'event' } = TAbi extends Abi
|
393
|
-
? ExtractAbiEvent<TAbi, TEventName>
|
394
|
-
: AbiEvent & { type: 'event' },
|
395
|
-
TArgs = AbiEventParametersToPrimitiveTypes<
|
396
|
-
TAbiEvent['inputs'],
|
397
|
-
{ EnableUnion: false; IndexedOnly: false; Required: TStrict }
|
398
|
-
>,
|
399
|
-
> = TTopics extends readonly []
|
400
|
-
? TData extends undefined
|
401
|
-
? { args?: never }
|
402
|
-
: { args?: TArgs }
|
403
|
-
: { args: TArgs }
|
404
|
-
|
405
372
|
//////////////////////////////////////////////////////////////////////
|
406
373
|
// ABI event types
|
407
374
|
|
@@ -416,55 +383,6 @@ type DefaultEventParameterOptions = {
|
|
416
383
|
Required: false
|
417
384
|
}
|
418
385
|
|
419
|
-
type HashedEventTypes = 'bytes' | 'string' | 'tuple' | `${string}[${string}]`
|
420
|
-
|
421
|
-
// TODO: Speed up by returning immediately as soon as named parameter is found.
|
422
|
-
type _HasUnnamedAbiParameter<TAbiParameters extends readonly AbiParameter[]> =
|
423
|
-
TAbiParameters extends readonly [
|
424
|
-
infer Head extends AbiParameter,
|
425
|
-
...infer Tail extends readonly AbiParameter[],
|
426
|
-
]
|
427
|
-
? Head extends { name: string }
|
428
|
-
? Head['name'] extends ''
|
429
|
-
? true
|
430
|
-
: _HasUnnamedAbiParameter<Tail>
|
431
|
-
: true
|
432
|
-
: false
|
433
|
-
|
434
|
-
/**
|
435
|
-
* @internal
|
436
|
-
*/
|
437
|
-
export type LogTopicType<
|
438
|
-
TPrimitiveType = Hex,
|
439
|
-
TTopic extends LogTopic = LogTopic,
|
440
|
-
> = TTopic extends Hex
|
441
|
-
? TPrimitiveType
|
442
|
-
: TTopic extends Hex[]
|
443
|
-
? TPrimitiveType[]
|
444
|
-
: TTopic extends null
|
445
|
-
? null
|
446
|
-
: never
|
447
|
-
|
448
|
-
/**
|
449
|
-
* @internal
|
450
|
-
*/
|
451
|
-
export type AbiEventParameterToPrimitiveType<
|
452
|
-
TAbiParameter extends AbiParameter,
|
453
|
-
Options extends EventParameterOptions = DefaultEventParameterOptions,
|
454
|
-
_Type = AbiParameterToPrimitiveType<TAbiParameter>,
|
455
|
-
> = Options['EnableUnion'] extends true ? LogTopicType<_Type> : _Type
|
456
|
-
|
457
|
-
/**
|
458
|
-
* @internal
|
459
|
-
*/
|
460
|
-
export type AbiEventTopicToPrimitiveType<
|
461
|
-
TAbiParameter extends AbiParameter,
|
462
|
-
TTopic extends LogTopic,
|
463
|
-
TPrimitiveType = TAbiParameter['type'] extends HashedEventTypes
|
464
|
-
? TTopic
|
465
|
-
: AbiParameterToPrimitiveType<TAbiParameter>,
|
466
|
-
> = LogTopicType<TPrimitiveType, TTopic>
|
467
|
-
|
468
386
|
export type AbiEventParametersToPrimitiveTypes<
|
469
387
|
TAbiParameters extends readonly AbiParameter[],
|
470
388
|
Options extends EventParameterOptions = DefaultEventParameterOptions,
|
@@ -515,3 +433,52 @@ export type AbiEventParametersToPrimitiveTypes<
|
|
515
433
|
>
|
516
434
|
: never
|
517
435
|
: never
|
436
|
+
|
437
|
+
// TODO: Speed up by returning immediately as soon as named parameter is found.
|
438
|
+
type _HasUnnamedAbiParameter<TAbiParameters extends readonly AbiParameter[]> =
|
439
|
+
TAbiParameters extends readonly [
|
440
|
+
infer Head extends AbiParameter,
|
441
|
+
...infer Tail extends readonly AbiParameter[],
|
442
|
+
]
|
443
|
+
? Head extends { name: string }
|
444
|
+
? Head['name'] extends ''
|
445
|
+
? true
|
446
|
+
: _HasUnnamedAbiParameter<Tail>
|
447
|
+
: true
|
448
|
+
: false
|
449
|
+
|
450
|
+
/**
|
451
|
+
* @internal
|
452
|
+
*/
|
453
|
+
export type LogTopicType<
|
454
|
+
TPrimitiveType = Hex,
|
455
|
+
TTopic extends LogTopic = LogTopic,
|
456
|
+
> = TTopic extends Hex
|
457
|
+
? TPrimitiveType
|
458
|
+
: TTopic extends Hex[]
|
459
|
+
? TPrimitiveType[]
|
460
|
+
: TTopic extends null
|
461
|
+
? null
|
462
|
+
: never
|
463
|
+
|
464
|
+
/**
|
465
|
+
* @internal
|
466
|
+
*/
|
467
|
+
export type AbiEventParameterToPrimitiveType<
|
468
|
+
TAbiParameter extends AbiParameter,
|
469
|
+
Options extends EventParameterOptions = DefaultEventParameterOptions,
|
470
|
+
_Type = AbiParameterToPrimitiveType<TAbiParameter>,
|
471
|
+
> = Options['EnableUnion'] extends true ? LogTopicType<_Type> : _Type
|
472
|
+
|
473
|
+
type HashedEventTypes = 'bytes' | 'string' | 'tuple' | `${string}[${string}]`
|
474
|
+
|
475
|
+
/**
|
476
|
+
* @internal
|
477
|
+
*/
|
478
|
+
export type AbiEventTopicToPrimitiveType<
|
479
|
+
TAbiParameter extends AbiParameter,
|
480
|
+
TTopic extends LogTopic,
|
481
|
+
TPrimitiveType = TAbiParameter['type'] extends HashedEventTypes
|
482
|
+
? TTopic
|
483
|
+
: AbiParameterToPrimitiveType<TAbiParameter>,
|
484
|
+
> = LogTopicType<TPrimitiveType, TTopic>
|
package/src/types/multicall.ts
CHANGED
@@ -6,7 +6,7 @@ import type {
|
|
6
6
|
ContractFunctionParameters,
|
7
7
|
ContractFunctionReturnType,
|
8
8
|
} from './contract.js'
|
9
|
-
import type { MaybePartial } from './utils.js'
|
9
|
+
import type { MaybePartial, Prettify } from './utils.js'
|
10
10
|
|
11
11
|
export type MulticallContracts<
|
12
12
|
contracts extends readonly unknown[],
|
@@ -23,8 +23,10 @@ export type MulticallContracts<
|
|
23
23
|
? readonly [
|
24
24
|
...result,
|
25
25
|
MaybePartial<
|
26
|
-
|
27
|
-
options['
|
26
|
+
Prettify<
|
27
|
+
GetMulticallContractParameters<contract, options['mutability']> &
|
28
|
+
options['properties']
|
29
|
+
>,
|
28
30
|
options['optional']
|
29
31
|
>,
|
30
32
|
]
|
@@ -35,8 +37,10 @@ export type MulticallContracts<
|
|
35
37
|
[
|
36
38
|
...result,
|
37
39
|
MaybePartial<
|
38
|
-
|
39
|
-
options['
|
40
|
+
Prettify<
|
41
|
+
GetMulticallContractParameters<contract, options['mutability']> &
|
42
|
+
options['properties']
|
43
|
+
>,
|
40
44
|
options['optional']
|
41
45
|
>,
|
42
46
|
]
|
@@ -52,18 +56,20 @@ export type MulticallContracts<
|
|
52
56
|
infer args
|
53
57
|
>[]
|
54
58
|
? readonly MaybePartial<
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
Prettify<
|
60
|
+
ContractFunctionParameters<
|
61
|
+
abi,
|
62
|
+
options['mutability'],
|
63
|
+
functionName,
|
64
|
+
args
|
65
|
+
> &
|
66
|
+
options['properties']
|
67
|
+
>,
|
62
68
|
options['optional']
|
63
69
|
>[]
|
64
70
|
: // Fallback
|
65
71
|
readonly MaybePartial<
|
66
|
-
ContractFunctionParameters & options['properties']
|
72
|
+
Prettify<ContractFunctionParameters & options['properties']>,
|
67
73
|
options['optional']
|
68
74
|
>[]
|
69
75
|
|
@@ -4,7 +4,7 @@ import {
|
|
4
4
|
AbiConstructorNotFoundError,
|
5
5
|
AbiConstructorParamsNotFoundError,
|
6
6
|
} from '../../errors/abi.js'
|
7
|
-
import type {
|
7
|
+
import type { ContractConstructorArgs } from '../../types/contract.js'
|
8
8
|
import type { Hex } from '../../types/misc.js'
|
9
9
|
|
10
10
|
import { decodeAbiParameters } from './decodeAbiParameters.js'
|
@@ -12,28 +12,29 @@ import { decodeAbiParameters } from './decodeAbiParameters.js'
|
|
12
12
|
const docsPath = '/docs/contract/decodeDeployData'
|
13
13
|
|
14
14
|
export type DecodeDeployDataParameters<
|
15
|
-
|
15
|
+
abi extends Abi | readonly unknown[] = Abi,
|
16
16
|
> = {
|
17
|
-
abi:
|
17
|
+
abi: abi
|
18
18
|
bytecode: Hex
|
19
19
|
data: Hex
|
20
20
|
}
|
21
|
+
|
21
22
|
export type DecodeDeployDataReturnType<
|
22
|
-
|
23
|
+
abi extends Abi | readonly unknown[] = Abi,
|
24
|
+
///
|
25
|
+
allArgs = ContractConstructorArgs<abi>,
|
23
26
|
> = {
|
24
27
|
bytecode: Hex
|
25
|
-
|
28
|
+
args: allArgs
|
29
|
+
}
|
26
30
|
|
27
|
-
export function decodeDeployData<const
|
28
|
-
abi
|
29
|
-
|
30
|
-
data
|
31
|
-
|
32
|
-
if (data === bytecode) return { bytecode } as DecodeDeployDataReturnType<TAbi>
|
31
|
+
export function decodeDeployData<const abi extends Abi | readonly unknown[]>(
|
32
|
+
parameters: DecodeDeployDataParameters<abi>,
|
33
|
+
): DecodeDeployDataReturnType<abi> {
|
34
|
+
const { abi, bytecode, data } = parameters as DecodeDeployDataParameters
|
35
|
+
if (data === bytecode) return { bytecode } as DecodeDeployDataReturnType<abi>
|
33
36
|
|
34
|
-
const description = (
|
35
|
-
(x) => 'type' in x && x.type === 'constructor',
|
36
|
-
)
|
37
|
+
const description = abi.find((x) => 'type' in x && x.type === 'constructor')
|
37
38
|
if (!description) throw new AbiConstructorNotFoundError({ docsPath })
|
38
39
|
if (!('inputs' in description))
|
39
40
|
throw new AbiConstructorParamsNotFoundError({ docsPath })
|
@@ -44,5 +45,5 @@ export function decodeDeployData<const TAbi extends Abi | readonly unknown[]>({
|
|
44
45
|
description.inputs,
|
45
46
|
`0x${data.replace(bytecode, '')}`,
|
46
47
|
)
|
47
|
-
return { args, bytecode } as unknown as DecodeDeployDataReturnType<
|
48
|
+
return { args, bytecode } as unknown as DecodeDeployDataReturnType<abi>
|
48
49
|
}
|