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
@@ -1,48 +1,69 @@
|
|
1
|
-
import type { Abi } from 'abitype'
|
1
|
+
import type { Abi, ExtractAbiErrors } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiErrorInputsNotFoundError,
|
5
5
|
AbiErrorNotFoundError,
|
6
6
|
} from '../../errors/abi.js'
|
7
7
|
import type {
|
8
|
-
|
9
|
-
|
10
|
-
InferErrorName,
|
8
|
+
ContractErrorArgs,
|
9
|
+
ContractErrorName,
|
11
10
|
} from '../../types/contract.js'
|
12
11
|
import type { Hex } from '../../types/misc.js'
|
13
12
|
import { concatHex } from '../data/concat.js'
|
14
13
|
import { getFunctionSelector } from '../hash/getFunctionSelector.js'
|
15
14
|
|
15
|
+
import type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'
|
16
16
|
import { encodeAbiParameters } from './encodeAbiParameters.js'
|
17
17
|
import { formatAbiItem } from './formatAbiItem.js'
|
18
|
-
import {
|
18
|
+
import { getAbiItem } from './getAbiItem.js'
|
19
19
|
|
20
20
|
const docsPath = '/docs/contract/encodeErrorResult'
|
21
21
|
|
22
22
|
export type EncodeErrorResultParameters<
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
abi extends Abi | readonly unknown[] = Abi,
|
24
|
+
errorName extends ContractErrorName<abi> | undefined = ContractErrorName<abi>,
|
25
|
+
///
|
26
|
+
hasErrors = abi extends Abi
|
27
|
+
? Abi extends abi
|
28
|
+
? true
|
29
|
+
: [ExtractAbiErrors<abi>] extends [never]
|
30
|
+
? false
|
31
|
+
: true
|
32
|
+
: true,
|
33
|
+
allArgs = ContractErrorArgs<
|
34
|
+
abi,
|
35
|
+
errorName extends ContractErrorName<abi>
|
36
|
+
? errorName
|
37
|
+
: ContractErrorName<abi>
|
38
|
+
>,
|
39
|
+
allErrorNames = ContractErrorName<abi>,
|
26
40
|
> = {
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
41
|
+
abi: abi
|
42
|
+
args?: allArgs | undefined
|
43
|
+
} & UnionEvaluate<
|
44
|
+
IsNarrowable<abi, Abi> extends true
|
45
|
+
? abi['length'] extends 1
|
46
|
+
? { errorName?: errorName | allErrorNames }
|
47
|
+
: { errorName: errorName | allErrorNames }
|
48
|
+
: { errorName?: errorName | allErrorNames }
|
49
|
+
> &
|
50
|
+
(hasErrors extends true ? unknown : never)
|
51
|
+
|
52
|
+
export type EncodeErrorResultReturnType = Hex
|
33
53
|
|
34
54
|
export function encodeErrorResult<
|
35
|
-
const
|
36
|
-
|
37
|
-
>(
|
38
|
-
|
55
|
+
const abi extends Abi | readonly unknown[],
|
56
|
+
errorName extends ContractErrorName<abi> | undefined = undefined,
|
57
|
+
>(
|
58
|
+
parameters: EncodeErrorResultParameters<abi, errorName>,
|
59
|
+
): EncodeErrorResultReturnType {
|
60
|
+
const { abi, errorName, args } = parameters as EncodeErrorResultParameters
|
61
|
+
|
62
|
+
let abiItem = abi[0]
|
39
63
|
if (errorName) {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
name: errorName,
|
44
|
-
} as GetAbiItemParameters)
|
45
|
-
if (!abiItem) throw new AbiErrorNotFoundError(errorName, { docsPath })
|
64
|
+
const item = getAbiItem({ abi, args, name: errorName })
|
65
|
+
if (!item) throw new AbiErrorNotFoundError(errorName, { docsPath })
|
66
|
+
abiItem = item
|
46
67
|
}
|
47
68
|
|
48
69
|
if (abiItem.type !== 'error')
|
@@ -52,10 +73,10 @@ export function encodeErrorResult<
|
|
52
73
|
const signature = getFunctionSelector(definition)
|
53
74
|
|
54
75
|
let data: Hex = '0x'
|
55
|
-
if (args &&
|
76
|
+
if (args && args.length > 0) {
|
56
77
|
if (!abiItem.inputs)
|
57
78
|
throw new AbiErrorInputsNotFoundError(abiItem.name, { docsPath })
|
58
|
-
data = encodeAbiParameters(abiItem.inputs, args
|
79
|
+
data = encodeAbiParameters(abiItem.inputs, args)
|
59
80
|
}
|
60
81
|
return concatHex([signature, data])
|
61
82
|
}
|
@@ -1,55 +1,74 @@
|
|
1
|
-
import type {
|
1
|
+
import type {
|
2
|
+
Abi,
|
3
|
+
AbiParameter,
|
4
|
+
AbiParameterToPrimitiveType,
|
5
|
+
ExtractAbiEvents,
|
6
|
+
} from 'abitype'
|
2
7
|
|
3
8
|
import { AbiEventNotFoundError } from '../../errors/abi.js'
|
4
9
|
import { FilterTypeNotSupportedError } from '../../errors/log.js'
|
5
10
|
import type {
|
6
|
-
|
11
|
+
ContractEventArgs,
|
12
|
+
ContractEventName,
|
7
13
|
EventDefinition,
|
8
|
-
GetEventArgs,
|
9
|
-
InferEventName,
|
10
14
|
} from '../../types/contract.js'
|
11
15
|
import type { Hex } from '../../types/misc.js'
|
12
16
|
import { toBytes } from '../encoding/toBytes.js'
|
13
17
|
import { getEventSelector } from '../hash/getEventSelector.js'
|
14
18
|
import { keccak256 } from '../hash/keccak256.js'
|
15
19
|
|
20
|
+
import type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'
|
16
21
|
import { encodeAbiParameters } from './encodeAbiParameters.js'
|
17
22
|
import { formatAbiItem } from './formatAbiItem.js'
|
18
|
-
import {
|
23
|
+
import { getAbiItem } from './getAbiItem.js'
|
24
|
+
|
25
|
+
const docsPath = '/docs/contract/encodeEventTopics'
|
19
26
|
|
20
27
|
export type EncodeEventTopicsParameters<
|
21
|
-
|
22
|
-
|
23
|
-
|
28
|
+
abi extends Abi | readonly unknown[] = Abi,
|
29
|
+
eventName extends ContractEventName<abi> | undefined = ContractEventName<abi>,
|
30
|
+
///
|
31
|
+
hasEvents = abi extends Abi
|
32
|
+
? Abi extends abi
|
33
|
+
? true
|
34
|
+
: [ExtractAbiEvents<abi>] extends [never]
|
35
|
+
? false
|
36
|
+
: true
|
37
|
+
: true,
|
38
|
+
allArgs = ContractEventArgs<
|
39
|
+
abi,
|
40
|
+
eventName extends ContractEventName<abi>
|
41
|
+
? eventName
|
42
|
+
: ContractEventName<abi>
|
43
|
+
>,
|
44
|
+
allErrorNames = ContractEventName<abi>,
|
24
45
|
> = {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
46
|
+
abi: abi
|
47
|
+
args?: allArgs | undefined
|
48
|
+
} & UnionEvaluate<
|
49
|
+
IsNarrowable<abi, Abi> extends true
|
50
|
+
? abi['length'] extends 1
|
51
|
+
? { eventName?: eventName | allErrorNames }
|
52
|
+
: { eventName: eventName | allErrorNames }
|
53
|
+
: { eventName?: eventName | allErrorNames }
|
54
|
+
> &
|
55
|
+
(hasEvents extends true ? unknown : never)
|
31
56
|
|
32
57
|
export function encodeEventTopics<
|
33
|
-
const
|
34
|
-
|
35
|
-
>(
|
36
|
-
|
58
|
+
const abi extends Abi | readonly unknown[],
|
59
|
+
eventName extends ContractEventName<abi> | undefined = undefined,
|
60
|
+
>(parameters: EncodeEventTopicsParameters<abi, eventName>) {
|
61
|
+
const { abi, eventName, args } = parameters as EncodeEventTopicsParameters
|
62
|
+
|
63
|
+
let abiItem = abi[0]
|
37
64
|
if (eventName) {
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
name: eventName,
|
42
|
-
} as GetAbiItemParameters)
|
43
|
-
if (!abiItem)
|
44
|
-
throw new AbiEventNotFoundError(eventName, {
|
45
|
-
docsPath: '/docs/contract/encodeEventTopics',
|
46
|
-
})
|
65
|
+
const item = getAbiItem({ abi, name: eventName })
|
66
|
+
if (!item) throw new AbiEventNotFoundError(eventName, { docsPath })
|
67
|
+
abiItem = item
|
47
68
|
}
|
48
69
|
|
49
70
|
if (abiItem.type !== 'event')
|
50
|
-
throw new AbiEventNotFoundError(undefined, {
|
51
|
-
docsPath: '/docs/contract/encodeEventTopics',
|
52
|
-
})
|
71
|
+
throw new AbiEventNotFoundError(undefined, { docsPath })
|
53
72
|
|
54
73
|
const definition = formatAbiItem(abiItem)
|
55
74
|
const signature = getEventSelector(definition as EventDefinition)
|
@@ -1,61 +1,87 @@
|
|
1
|
-
import type { Abi } from 'abitype'
|
1
|
+
import type { Abi, AbiStateMutability, ExtractAbiFunctions } from 'abitype'
|
2
2
|
|
3
3
|
import { AbiFunctionNotFoundError } from '../../errors/abi.js'
|
4
4
|
import type {
|
5
|
-
|
6
|
-
|
7
|
-
InferFunctionName,
|
5
|
+
ContractFunctionArgs,
|
6
|
+
ContractFunctionName,
|
8
7
|
} from '../../types/contract.js'
|
9
8
|
import { concatHex } from '../data/concat.js'
|
10
9
|
import { getFunctionSelector } from '../hash/getFunctionSelector.js'
|
11
10
|
|
11
|
+
import type { Hex } from '../../types/misc.js'
|
12
|
+
import type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'
|
12
13
|
import { encodeAbiParameters } from './encodeAbiParameters.js'
|
13
14
|
import { formatAbiItem } from './formatAbiItem.js'
|
14
|
-
import {
|
15
|
+
import { getAbiItem } from './getAbiItem.js'
|
16
|
+
|
17
|
+
const docsPath = '/docs/contract/encodeFunctionData'
|
15
18
|
|
16
19
|
export type EncodeFunctionDataParameters<
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
+
abi extends Abi | readonly unknown[] = Abi,
|
21
|
+
functionName extends
|
22
|
+
| ContractFunctionName<abi>
|
23
|
+
| undefined = ContractFunctionName<abi>,
|
24
|
+
///
|
25
|
+
hasFunctions = abi extends Abi
|
26
|
+
? Abi extends abi
|
27
|
+
? true
|
28
|
+
: [ExtractAbiFunctions<abi>] extends [never]
|
29
|
+
? false
|
30
|
+
: true
|
31
|
+
: true,
|
32
|
+
allArgs = ContractFunctionArgs<
|
33
|
+
abi,
|
34
|
+
AbiStateMutability,
|
35
|
+
functionName extends ContractFunctionName<abi>
|
36
|
+
? functionName
|
37
|
+
: ContractFunctionName<abi>
|
38
|
+
>,
|
39
|
+
allFunctionNames = ContractFunctionName<abi>,
|
20
40
|
> = {
|
21
|
-
|
22
|
-
} &
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
41
|
+
abi: abi
|
42
|
+
} & UnionEvaluate<
|
43
|
+
IsNarrowable<abi, Abi> extends true
|
44
|
+
? abi['length'] extends 1
|
45
|
+
? { functionName?: functionName | allFunctionNames }
|
46
|
+
: { functionName: functionName | allFunctionNames }
|
47
|
+
: { functionName?: functionName | allFunctionNames }
|
48
|
+
> &
|
49
|
+
UnionEvaluate<
|
50
|
+
readonly [] extends allArgs
|
51
|
+
? { args?: allArgs | undefined }
|
52
|
+
: { args: allArgs }
|
53
|
+
> &
|
54
|
+
(hasFunctions extends true ? unknown : never)
|
55
|
+
|
56
|
+
export type EncodeFunctionDataReturnType = Hex
|
27
57
|
|
28
58
|
export function encodeFunctionData<
|
29
|
-
const
|
30
|
-
|
31
|
-
>(
|
32
|
-
abi,
|
33
|
-
|
34
|
-
functionName
|
35
|
-
|
36
|
-
let abiItem = abi[0]
|
59
|
+
const abi extends Abi | readonly unknown[],
|
60
|
+
functionName extends ContractFunctionName<abi> | undefined = undefined,
|
61
|
+
>(
|
62
|
+
parameters: EncodeFunctionDataParameters<abi, functionName>,
|
63
|
+
): EncodeFunctionDataReturnType {
|
64
|
+
const { abi, args, functionName } = parameters as EncodeFunctionDataParameters
|
65
|
+
|
66
|
+
let abiItem = abi[0]
|
37
67
|
if (functionName) {
|
38
|
-
|
68
|
+
const item = getAbiItem({
|
39
69
|
abi,
|
40
70
|
args,
|
41
71
|
name: functionName,
|
42
|
-
}
|
43
|
-
if (!
|
44
|
-
|
45
|
-
docsPath: '/docs/contract/encodeFunctionData',
|
46
|
-
})
|
72
|
+
})
|
73
|
+
if (!item) throw new AbiFunctionNotFoundError(functionName, { docsPath })
|
74
|
+
abiItem = item
|
47
75
|
}
|
48
76
|
|
49
77
|
if (abiItem.type !== 'function')
|
50
|
-
throw new AbiFunctionNotFoundError(undefined, {
|
51
|
-
docsPath: '/docs/contract/encodeFunctionData',
|
52
|
-
})
|
78
|
+
throw new AbiFunctionNotFoundError(undefined, { docsPath })
|
53
79
|
|
54
80
|
const definition = formatAbiItem(abiItem)
|
55
81
|
const signature = getFunctionSelector(definition)
|
56
82
|
const data =
|
57
83
|
'inputs' in abiItem && abiItem.inputs
|
58
|
-
? encodeAbiParameters(abiItem.inputs,
|
84
|
+
? encodeAbiParameters(abiItem.inputs, args ?? [])
|
59
85
|
: undefined
|
60
86
|
return concatHex([signature, data ?? '0x'])
|
61
87
|
}
|
@@ -1,59 +1,76 @@
|
|
1
|
-
import type { Abi } from 'abitype'
|
1
|
+
import type { Abi, AbiStateMutability, ExtractAbiFunctions } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiFunctionNotFoundError,
|
5
5
|
AbiFunctionOutputsNotFoundError,
|
6
6
|
} from '../../errors/abi.js'
|
7
7
|
import type {
|
8
|
-
|
9
|
-
|
10
|
-
InferFunctionName,
|
8
|
+
ContractFunctionName,
|
9
|
+
ContractFunctionReturnType,
|
11
10
|
} from '../../types/contract.js'
|
12
11
|
|
12
|
+
import type { Hex } from '../../types/misc.js'
|
13
|
+
import type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'
|
13
14
|
import { encodeAbiParameters } from './encodeAbiParameters.js'
|
14
|
-
import {
|
15
|
+
import { getAbiItem } from './getAbiItem.js'
|
15
16
|
|
16
17
|
const docsPath = '/docs/contract/encodeFunctionResult'
|
17
18
|
|
18
19
|
export type EncodeFunctionResultParameters<
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
abi extends Abi | readonly unknown[] = Abi,
|
21
|
+
functionName extends
|
22
|
+
| ContractFunctionName<abi>
|
23
|
+
| undefined = ContractFunctionName<abi>,
|
24
|
+
///
|
25
|
+
hasFunctions = abi extends Abi
|
26
|
+
? Abi extends abi
|
27
|
+
? true
|
28
|
+
: [ExtractAbiFunctions<abi>] extends [never]
|
29
|
+
? false
|
30
|
+
: true
|
31
|
+
: true,
|
32
|
+
allFunctionNames = ContractFunctionName<abi>,
|
22
33
|
> = {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
34
|
+
abi: abi
|
35
|
+
result?:
|
36
|
+
| ContractFunctionReturnType<
|
37
|
+
abi,
|
38
|
+
AbiStateMutability,
|
39
|
+
functionName extends ContractFunctionName<abi>
|
40
|
+
? functionName
|
41
|
+
: ContractFunctionName<abi>,
|
42
|
+
never // allow all args. required for overloads to work.
|
43
|
+
>
|
44
|
+
| undefined
|
45
|
+
} & UnionEvaluate<
|
46
|
+
IsNarrowable<abi, Abi> extends true
|
47
|
+
? abi['length'] extends 1
|
48
|
+
? { functionName?: functionName | allFunctionNames }
|
49
|
+
: { functionName: functionName | allFunctionNames }
|
50
|
+
: { functionName?: functionName | allFunctionNames }
|
51
|
+
> &
|
52
|
+
(hasFunctions extends true ? unknown : never)
|
53
|
+
|
54
|
+
export type EncodeFunctionResultReturnType = Hex
|
32
55
|
|
33
56
|
export function encodeFunctionResult<
|
34
|
-
const
|
35
|
-
|
36
|
-
>(
|
37
|
-
abi,
|
38
|
-
|
39
|
-
result
|
40
|
-
|
41
|
-
|
57
|
+
const abi extends Abi | readonly unknown[],
|
58
|
+
functionName extends ContractFunctionName<abi> | undefined = undefined,
|
59
|
+
>(
|
60
|
+
parameters: EncodeFunctionResultParameters<abi, functionName>,
|
61
|
+
): EncodeFunctionResultReturnType {
|
62
|
+
const { abi, functionName, result } =
|
63
|
+
parameters as EncodeFunctionResultParameters
|
64
|
+
|
65
|
+
let abiItem = abi[0]
|
42
66
|
if (functionName) {
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
} as GetAbiItemParameters)
|
47
|
-
if (!abiItem)
|
48
|
-
throw new AbiFunctionNotFoundError(functionName, {
|
49
|
-
docsPath: '/docs/contract/encodeFunctionResult',
|
50
|
-
})
|
67
|
+
const item = getAbiItem({ abi, name: functionName })
|
68
|
+
if (!item) throw new AbiFunctionNotFoundError(functionName, { docsPath })
|
69
|
+
abiItem = item
|
51
70
|
}
|
52
71
|
|
53
72
|
if (abiItem.type !== 'function')
|
54
|
-
throw new AbiFunctionNotFoundError(undefined, {
|
55
|
-
docsPath: '/docs/contract/encodeFunctionResult',
|
56
|
-
})
|
73
|
+
throw new AbiFunctionNotFoundError(undefined, { docsPath })
|
57
74
|
|
58
75
|
if (!abiItem.outputs)
|
59
76
|
throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath })
|
@@ -1,59 +1,95 @@
|
|
1
1
|
import type { Abi, AbiParameter, Address } from 'abitype'
|
2
2
|
|
3
|
-
import type {
|
3
|
+
import type {
|
4
|
+
AbiItem,
|
5
|
+
AbiItemArgs,
|
6
|
+
AbiItemName,
|
7
|
+
ExtractAbiItemForArgs,
|
8
|
+
Widen,
|
9
|
+
} from '../../types/contract.js'
|
10
|
+
import type { UnionEvaluate } from '../../types/utils.js'
|
4
11
|
import { isAddress } from '../address/isAddress.js'
|
5
12
|
|
6
13
|
export type GetAbiItemParameters<
|
7
|
-
|
8
|
-
|
14
|
+
abi extends Abi | readonly unknown[] = Abi,
|
15
|
+
name extends AbiItemName<abi> = AbiItemName<abi>,
|
16
|
+
args extends AbiItemArgs<abi, name> | undefined = AbiItemArgs<abi, name>,
|
17
|
+
///
|
18
|
+
allArgs = AbiItemArgs<abi, name>,
|
19
|
+
allNames = AbiItemName<abi>,
|
9
20
|
> = {
|
10
|
-
abi:
|
11
|
-
name:
|
12
|
-
|
21
|
+
abi: abi
|
22
|
+
name:
|
23
|
+
| allNames // show all options
|
24
|
+
| (name extends allNames ? name : never) // infer value
|
25
|
+
} & UnionEvaluate<
|
26
|
+
readonly [] extends allArgs
|
27
|
+
? {
|
28
|
+
args?:
|
29
|
+
| allArgs // show all options
|
30
|
+
// infer value, widen inferred value of `args` conditionally to match `allArgs`
|
31
|
+
| (abi extends Abi
|
32
|
+
? args extends allArgs
|
33
|
+
? Widen<args>
|
34
|
+
: never
|
35
|
+
: never)
|
36
|
+
| undefined
|
37
|
+
}
|
38
|
+
: {
|
39
|
+
args?:
|
40
|
+
| allArgs // show all options
|
41
|
+
| (Widen<args> & (args extends allArgs ? unknown : never)) // infer value, widen inferred value of `args` match `allArgs` (e.g. avoid union `args: readonly [123n] | readonly [bigint]`)
|
42
|
+
| undefined
|
43
|
+
}
|
44
|
+
>
|
13
45
|
|
14
46
|
export type GetAbiItemReturnType<
|
15
|
-
|
16
|
-
|
17
|
-
> =
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
47
|
+
abi extends Abi | readonly unknown[] = Abi,
|
48
|
+
name extends AbiItemName<abi> = AbiItemName<abi>,
|
49
|
+
args extends AbiItemArgs<abi, name> | undefined = AbiItemArgs<abi, name>,
|
50
|
+
> = abi extends Abi
|
51
|
+
? Abi extends abi
|
52
|
+
? AbiItem | undefined
|
53
|
+
: ExtractAbiItemForArgs<
|
54
|
+
abi,
|
55
|
+
name,
|
56
|
+
args extends AbiItemArgs<abi, name> ? args : AbiItemArgs<abi, name>
|
57
|
+
>
|
58
|
+
: AbiItem | undefined
|
23
59
|
|
24
60
|
export function getAbiItem<
|
25
|
-
const
|
26
|
-
|
27
|
-
>
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
TItemName
|
34
|
-
> {
|
35
|
-
const abiItems = (abi as Abi).filter((x) => 'name' in x && x.name === name)
|
61
|
+
const abi extends Abi | readonly unknown[],
|
62
|
+
name extends AbiItemName<abi>,
|
63
|
+
args extends AbiItemArgs<abi, name> | undefined = undefined,
|
64
|
+
>(
|
65
|
+
parameters: GetAbiItemParameters<abi, name, args>,
|
66
|
+
): GetAbiItemReturnType<abi, name, args> {
|
67
|
+
const { abi, args = [], name } = parameters as unknown as GetAbiItemParameters
|
68
|
+
const abiItems = abi.filter((x) => 'name' in x && x.name === name)
|
36
69
|
|
37
|
-
if (abiItems.length === 0)
|
38
|
-
|
70
|
+
if (abiItems.length === 0)
|
71
|
+
return undefined as GetAbiItemReturnType<abi, name, args>
|
72
|
+
if (abiItems.length === 1)
|
73
|
+
return abiItems[0] as GetAbiItemReturnType<abi, name, args>
|
39
74
|
|
40
75
|
for (const abiItem of abiItems) {
|
41
76
|
if (!('inputs' in abiItem)) continue
|
42
77
|
if (!args || args.length === 0) {
|
43
|
-
if (!abiItem.inputs || abiItem.inputs.length === 0)
|
78
|
+
if (!abiItem.inputs || abiItem.inputs.length === 0)
|
79
|
+
return abiItem as GetAbiItemReturnType<abi, name, args>
|
44
80
|
continue
|
45
81
|
}
|
46
82
|
if (!abiItem.inputs) continue
|
47
83
|
if (abiItem.inputs.length === 0) continue
|
48
84
|
if (abiItem.inputs.length !== args.length) continue
|
49
|
-
const matched =
|
85
|
+
const matched = args.every((arg, index) => {
|
50
86
|
const abiParameter = 'inputs' in abiItem && abiItem.inputs![index]
|
51
87
|
if (!abiParameter) return false
|
52
|
-
return isArgOfType(arg, abiParameter
|
88
|
+
return isArgOfType(arg, abiParameter)
|
53
89
|
})
|
54
|
-
if (matched) return abiItem as
|
90
|
+
if (matched) return abiItem as GetAbiItemReturnType<abi, name, args>
|
55
91
|
}
|
56
|
-
return abiItems[0] as
|
92
|
+
return abiItems[0] as GetAbiItemReturnType<abi, name, args>
|
57
93
|
}
|
58
94
|
|
59
95
|
export function isArgOfType(arg: unknown, abiParameter: AbiParameter): boolean {
|
@@ -126,6 +126,10 @@ export function buildRequest<TRequest extends (args: any) => Promise<any>>(
|
|
126
126
|
// 4902
|
127
127
|
case SwitchChainError.code:
|
128
128
|
throw new SwitchChainError(err)
|
129
|
+
// CAIP-25: User Rejected Error
|
130
|
+
// https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25
|
131
|
+
case 5000:
|
132
|
+
throw new UserRejectedRequestError(err)
|
129
133
|
default:
|
130
134
|
if (err_ instanceof BaseError) throw err_
|
131
135
|
throw new UnknownRpcError(err as Error)
|
package/src/utils/ccip.ts
CHANGED
@@ -10,7 +10,6 @@ import {
|
|
10
10
|
} from '../errors/ccip.js'
|
11
11
|
import { HttpRequestError } from '../errors/request.js'
|
12
12
|
import type { Chain } from '../types/chain.js'
|
13
|
-
import type { GetErrorArgs } from '../types/contract.js'
|
14
13
|
import type { Hex } from '../types/misc.js'
|
15
14
|
|
16
15
|
import type { Client } from '../clients/createClient.js'
|
@@ -64,10 +63,7 @@ export async function offchainLookup<TChain extends Chain | undefined,>(
|
|
64
63
|
const { args } = decodeErrorResult({
|
65
64
|
data,
|
66
65
|
abi: [offchainLookupAbiItem],
|
67
|
-
})
|
68
|
-
[typeof offchainLookupAbiItem],
|
69
|
-
'OffchainLookup'
|
70
|
-
>
|
66
|
+
})
|
71
67
|
const [sender, urls, callData, callbackSelector, extraData] = args
|
72
68
|
|
73
69
|
try {
|
@@ -1,13 +1,10 @@
|
|
1
1
|
import type { CallParameters } from '../../actions/public/call.js'
|
2
2
|
import type { BaseError } from '../../errors/base.js'
|
3
3
|
import { CallExecutionError } from '../../errors/contract.js'
|
4
|
+
import { UnknownNodeError } from '../../errors/node.js'
|
4
5
|
import type { Chain } from '../../types/chain.js'
|
5
6
|
|
6
|
-
import {
|
7
|
-
type GetNodeErrorParameters,
|
8
|
-
containsNodeError,
|
9
|
-
getNodeError,
|
10
|
-
} from './getNodeError.js'
|
7
|
+
import { type GetNodeErrorParameters, getNodeError } from './getNodeError.js'
|
11
8
|
|
12
9
|
export function getCallError(
|
13
10
|
err: BaseError,
|
@@ -19,9 +16,8 @@ export function getCallError(
|
|
19
16
|
docsPath?: string
|
20
17
|
},
|
21
18
|
) {
|
22
|
-
let cause = err
|
23
|
-
if (
|
24
|
-
cause = getNodeError(err, args as GetNodeErrorParameters)
|
19
|
+
let cause = getNodeError(err, args as GetNodeErrorParameters)
|
20
|
+
if (cause instanceof UnknownNodeError) cause = err
|
25
21
|
return new CallExecutionError(cause, {
|
26
22
|
docsPath,
|
27
23
|
...args,
|
@@ -8,6 +8,7 @@ import {
|
|
8
8
|
ContractFunctionZeroDataError,
|
9
9
|
RawContractError,
|
10
10
|
} from '../../errors/contract.js'
|
11
|
+
import { InternalRpcError } from '../../errors/rpc.js'
|
11
12
|
|
12
13
|
const EXECUTION_REVERTED_ERROR_CODE = 3
|
13
14
|
|
@@ -41,7 +42,7 @@ export function getContractError(
|
|
41
42
|
if (err instanceof AbiDecodingZeroDataError) {
|
42
43
|
cause = new ContractFunctionZeroDataError({ functionName })
|
43
44
|
} else if (
|
44
|
-
code
|
45
|
+
[EXECUTION_REVERTED_ERROR_CODE, InternalRpcError.code].includes(code) &&
|
45
46
|
(data || message || shortMessage)
|
46
47
|
) {
|
47
48
|
cause = new ContractFunctionRevertedError({
|