viem 2.7.22 → 2.8.0
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/CHANGELOG.md +10 -0
- package/_cjs/accounts/utils/sign.js +1 -0
- package/_cjs/accounts/utils/sign.js.map +1 -1
- package/_cjs/accounts/utils/signTransaction.js +11 -2
- package/_cjs/accounts/utils/signTransaction.js.map +1 -1
- package/_cjs/actions/index.js +4 -2
- package/_cjs/actions/index.js.map +1 -1
- package/_cjs/actions/public/call.js +3 -1
- package/_cjs/actions/public/call.js.map +1 -1
- package/_cjs/actions/public/estimateGas.js +3 -1
- package/_cjs/actions/public/estimateGas.js.map +1 -1
- package/_cjs/actions/public/getBlobBaseFee.js +11 -0
- package/_cjs/actions/public/getBlobBaseFee.js.map +1 -0
- package/_cjs/actions/wallet/prepareTransactionRequest.js +11 -2
- package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_cjs/actions/wallet/sendRawTransaction.js.map +1 -1
- package/_cjs/actions/wallet/sendTransaction.js +7 -8
- package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/_cjs/actions/wallet/signTransaction.js +7 -6
- package/_cjs/actions/wallet/signTransaction.js.map +1 -1
- package/_cjs/chains/celo/serializers.js +10 -15
- package/_cjs/chains/celo/serializers.js.map +1 -1
- package/_cjs/chains/definitions/plumeTestnet.js +30 -0
- package/_cjs/chains/definitions/plumeTestnet.js.map +1 -0
- package/_cjs/chains/index.js +5 -3
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/chains/opStack/actions/estimateL1Fee.js +1 -10
- package/_cjs/chains/opStack/actions/estimateL1Fee.js.map +1 -1
- package/_cjs/chains/opStack/actions/estimateL1Gas.js +1 -10
- package/_cjs/chains/opStack/actions/estimateL1Gas.js.map +1 -1
- package/_cjs/chains/opStack/actions/finalizeWithdrawal.js +1 -1
- package/_cjs/chains/opStack/actions/finalizeWithdrawal.js.map +1 -1
- package/_cjs/chains/opStack/actions/proveWithdrawal.js +1 -1
- package/_cjs/chains/opStack/actions/proveWithdrawal.js.map +1 -1
- package/_cjs/chains/opStack/serializers.js +3 -3
- package/_cjs/chains/opStack/serializers.js.map +1 -1
- package/_cjs/chains/zksync/actions/sendTransaction.js.map +1 -1
- package/_cjs/chains/zksync/actions/signEip712Transaction.js.map +1 -1
- package/_cjs/chains/zksync/serializers.js +6 -6
- package/_cjs/chains/zksync/serializers.js.map +1 -1
- package/_cjs/clients/decorators/public.js.map +1 -1
- package/_cjs/clients/decorators/wallet.js.map +1 -1
- package/_cjs/constants/blob.js +11 -0
- package/_cjs/constants/blob.js.map +1 -0
- package/_cjs/constants/kzg.js +7 -0
- package/_cjs/constants/kzg.js.map +1 -0
- package/_cjs/errors/blob.js +63 -0
- package/_cjs/errors/blob.js.map +1 -0
- package/_cjs/errors/transaction.js +1 -0
- package/_cjs/errors/transaction.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/index.js +22 -2
- package/_cjs/index.js.map +1 -1
- package/_cjs/node/index.js +3 -1
- package/_cjs/node/index.js.map +1 -1
- package/_cjs/node/trustedSetups.js +7 -0
- package/_cjs/node/trustedSetups.js.map +1 -0
- package/_cjs/types/eip4844.js +3 -0
- package/_cjs/types/eip4844.js.map +1 -0
- package/_cjs/types/kzg.js +3 -0
- package/_cjs/types/kzg.js.map +1 -0
- package/_cjs/utils/blob/blobsToCommitments.js +20 -0
- package/_cjs/utils/blob/blobsToCommitments.js.map +1 -0
- package/_cjs/utils/blob/blobsToProofs.js +26 -0
- package/_cjs/utils/blob/blobsToProofs.js.map +1 -0
- package/_cjs/utils/blob/commitmentToVersionedHash.js +14 -0
- package/_cjs/utils/blob/commitmentToVersionedHash.js.map +1 -0
- package/_cjs/utils/blob/commitmentsToVersionedHashes.js +19 -0
- package/_cjs/utils/blob/commitmentsToVersionedHashes.js.map +1 -0
- package/_cjs/utils/blob/fromBlobs.js +36 -0
- package/_cjs/utils/blob/fromBlobs.js.map +1 -0
- package/_cjs/utils/blob/sidecarsToVersionedHashes.js +19 -0
- package/_cjs/utils/blob/sidecarsToVersionedHashes.js.map +1 -0
- package/_cjs/utils/blob/toBlobSidecars.js +22 -0
- package/_cjs/utils/blob/toBlobSidecars.js.map +1 -0
- package/_cjs/utils/blob/toBlobs.js +48 -0
- package/_cjs/utils/blob/toBlobs.js.map +1 -0
- package/_cjs/utils/encoding/toRlp.js.map +1 -1
- package/_cjs/utils/formatters/transaction.js.map +1 -1
- package/_cjs/utils/formatters/transactionRequest.js +22 -25
- package/_cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/_cjs/utils/kzg/defineKzg.js +11 -0
- package/_cjs/utils/kzg/defineKzg.js.map +1 -0
- package/_cjs/utils/kzg/setupKzg.js +17 -0
- package/_cjs/utils/kzg/setupKzg.js.map +1 -0
- package/_cjs/utils/signature/compactSignatureToSignature.js +3 -3
- package/_cjs/utils/signature/compactSignatureToSignature.js.map +1 -1
- package/_cjs/utils/signature/hexToSignature.js +6 -1
- package/_cjs/utils/signature/hexToSignature.js.map +1 -1
- package/_cjs/utils/signature/signatureToCompactSignature.js +3 -3
- package/_cjs/utils/signature/signatureToCompactSignature.js.map +1 -1
- package/_cjs/utils/signature/signatureToHex.js +9 -3
- package/_cjs/utils/signature/signatureToHex.js.map +1 -1
- package/_cjs/utils/transaction/assertTransaction.js +26 -1
- package/_cjs/utils/transaction/assertTransaction.js.map +1 -1
- package/_cjs/utils/transaction/getSerializedTransactionType.js +2 -0
- package/_cjs/utils/transaction/getSerializedTransactionType.js.map +1 -1
- package/_cjs/utils/transaction/getTransactionType.js +7 -1
- package/_cjs/utils/transaction/getTransactionType.js.map +1 -1
- package/_cjs/utils/transaction/parseTransaction.js +73 -0
- package/_cjs/utils/transaction/parseTransaction.js.map +1 -1
- package/_cjs/utils/transaction/serializeAccessList.js.map +1 -1
- package/_cjs/utils/transaction/serializeTransaction.js +84 -21
- package/_cjs/utils/transaction/serializeTransaction.js.map +1 -1
- package/_esm/accounts/utils/sign.js +1 -0
- package/_esm/accounts/utils/sign.js.map +1 -1
- package/_esm/accounts/utils/signTransaction.js +13 -2
- package/_esm/accounts/utils/signTransaction.js.map +1 -1
- package/_esm/actions/index.js +1 -0
- package/_esm/actions/index.js.map +1 -1
- package/_esm/actions/public/call.js +3 -1
- package/_esm/actions/public/call.js.map +1 -1
- package/_esm/actions/public/estimateGas.js +3 -1
- package/_esm/actions/public/estimateGas.js.map +1 -1
- package/_esm/actions/public/getBlobBaseFee.js +27 -0
- package/_esm/actions/public/getBlobBaseFee.js.map +1 -0
- package/_esm/actions/wallet/prepareTransactionRequest.js +12 -2
- package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_esm/actions/wallet/sendRawTransaction.js.map +1 -1
- package/_esm/actions/wallet/sendTransaction.js +7 -8
- package/_esm/actions/wallet/sendTransaction.js.map +1 -1
- package/_esm/actions/wallet/signTransaction.js +6 -5
- package/_esm/actions/wallet/signTransaction.js.map +1 -1
- package/_esm/chains/celo/serializers.js +10 -17
- package/_esm/chains/celo/serializers.js.map +1 -1
- package/_esm/chains/definitions/plumeTestnet.js +27 -0
- package/_esm/chains/definitions/plumeTestnet.js.map +1 -0
- package/_esm/chains/index.js +1 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/chains/opStack/actions/estimateL1Fee.js +1 -10
- package/_esm/chains/opStack/actions/estimateL1Fee.js.map +1 -1
- package/_esm/chains/opStack/actions/estimateL1Gas.js +1 -10
- package/_esm/chains/opStack/actions/estimateL1Gas.js.map +1 -1
- package/_esm/chains/opStack/actions/finalizeWithdrawal.js +1 -1
- package/_esm/chains/opStack/actions/finalizeWithdrawal.js.map +1 -1
- package/_esm/chains/opStack/actions/proveWithdrawal.js +1 -1
- package/_esm/chains/opStack/actions/proveWithdrawal.js.map +1 -1
- package/_esm/chains/opStack/serializers.js +2 -2
- package/_esm/chains/opStack/serializers.js.map +1 -1
- package/_esm/chains/zksync/actions/sendTransaction.js.map +1 -1
- package/_esm/chains/zksync/actions/signEip712Transaction.js.map +1 -1
- package/_esm/chains/zksync/serializers.js +6 -6
- package/_esm/chains/zksync/serializers.js.map +1 -1
- package/_esm/clients/decorators/public.js.map +1 -1
- package/_esm/clients/decorators/wallet.js.map +1 -1
- package/_esm/constants/blob.js +16 -0
- package/_esm/constants/blob.js.map +1 -0
- package/_esm/constants/kzg.js +7 -0
- package/_esm/constants/kzg.js.map +1 -0
- package/_esm/errors/blob.js +56 -0
- package/_esm/errors/blob.js.map +1 -0
- package/_esm/errors/transaction.js +1 -0
- package/_esm/errors/transaction.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/index.js +10 -0
- package/_esm/index.js.map +1 -1
- package/_esm/node/index.js +1 -0
- package/_esm/node/index.js.map +1 -1
- package/_esm/node/trustedSetups.js +4 -0
- package/_esm/node/trustedSetups.js.map +1 -0
- package/_esm/types/eip4844.js +2 -0
- package/_esm/types/eip4844.js.map +1 -0
- package/_esm/types/kzg.js +2 -0
- package/_esm/types/kzg.js.map +1 -0
- package/_esm/utils/blob/blobsToCommitments.js +28 -0
- package/_esm/utils/blob/blobsToCommitments.js.map +1 -0
- package/_esm/utils/blob/blobsToProofs.js +38 -0
- package/_esm/utils/blob/blobsToProofs.js.map +1 -0
- package/_esm/utils/blob/commitmentToVersionedHash.js +27 -0
- package/_esm/utils/blob/commitmentToVersionedHash.js.map +1 -0
- package/_esm/utils/blob/commitmentsToVersionedHashes.js +32 -0
- package/_esm/utils/blob/commitmentsToVersionedHashes.js.map +1 -0
- package/_esm/utils/blob/fromBlobs.js +33 -0
- package/_esm/utils/blob/fromBlobs.js.map +1 -0
- package/_esm/utils/blob/sidecarsToVersionedHashes.js +26 -0
- package/_esm/utils/blob/sidecarsToVersionedHashes.js.map +1 -0
- package/_esm/utils/blob/toBlobSidecars.js +45 -0
- package/_esm/utils/blob/toBlobSidecars.js.map +1 -0
- package/_esm/utils/blob/toBlobs.js +58 -0
- package/_esm/utils/blob/toBlobs.js.map +1 -0
- package/_esm/utils/encoding/toRlp.js.map +1 -1
- package/_esm/utils/formatters/transaction.js.map +1 -1
- package/_esm/utils/formatters/transactionRequest.js +23 -26
- package/_esm/utils/formatters/transactionRequest.js.map +1 -1
- package/_esm/utils/kzg/defineKzg.js +21 -0
- package/_esm/utils/kzg/defineKzg.js.map +1 -0
- package/_esm/utils/kzg/setupKzg.js +25 -0
- package/_esm/utils/kzg/setupKzg.js.map +1 -0
- package/_esm/utils/signature/compactSignatureToSignature.js +3 -3
- package/_esm/utils/signature/compactSignatureToSignature.js.map +1 -1
- package/_esm/utils/signature/hexToSignature.js +6 -1
- package/_esm/utils/signature/hexToSignature.js.map +1 -1
- package/_esm/utils/signature/signatureToCompactSignature.js +4 -4
- package/_esm/utils/signature/signatureToCompactSignature.js.map +1 -1
- package/_esm/utils/signature/signatureToHex.js +11 -4
- package/_esm/utils/signature/signatureToHex.js.map +1 -1
- package/_esm/utils/transaction/assertTransaction.js +24 -0
- package/_esm/utils/transaction/assertTransaction.js.map +1 -1
- package/_esm/utils/transaction/getSerializedTransactionType.js +2 -0
- package/_esm/utils/transaction/getSerializedTransactionType.js.map +1 -1
- package/_esm/utils/transaction/getTransactionType.js +7 -1
- package/_esm/utils/transaction/getTransactionType.js.map +1 -1
- package/_esm/utils/transaction/parseTransaction.js +74 -1
- package/_esm/utils/transaction/parseTransaction.js.map +1 -1
- package/_esm/utils/transaction/serializeAccessList.js.map +1 -1
- package/_esm/utils/transaction/serializeTransaction.js +85 -22
- package/_esm/utils/transaction/serializeTransaction.js.map +1 -1
- package/_types/accounts/types.d.ts +3 -3
- package/_types/accounts/types.d.ts.map +1 -1
- package/_types/accounts/utils/sign.d.ts.map +1 -1
- package/_types/accounts/utils/signTransaction.d.ts +5 -5
- package/_types/accounts/utils/signTransaction.d.ts.map +1 -1
- package/_types/actions/index.d.ts +1 -0
- package/_types/actions/index.d.ts.map +1 -1
- package/_types/actions/public/call.d.ts.map +1 -1
- package/_types/actions/public/estimateGas.d.ts.map +1 -1
- package/_types/actions/public/getBlobBaseFee.d.ts +30 -0
- package/_types/actions/public/getBlobBaseFee.d.ts.map +1 -0
- package/_types/actions/wallet/prepareTransactionRequest.d.ts +27 -8
- package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
- package/_types/actions/wallet/sendRawTransaction.d.ts +3 -5
- package/_types/actions/wallet/sendRawTransaction.d.ts.map +1 -1
- package/_types/actions/wallet/sendTransaction.d.ts +4 -2
- package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/_types/actions/wallet/signTransaction.d.ts +5 -2
- package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
- package/_types/chains/celo/chainConfig.d.ts +1282 -376
- package/_types/chains/celo/chainConfig.d.ts.map +1 -1
- package/_types/chains/celo/formatters.d.ts +1282 -376
- package/_types/chains/celo/formatters.d.ts.map +1 -1
- package/_types/chains/celo/serializers.d.ts +3 -4
- package/_types/chains/celo/serializers.d.ts.map +1 -1
- package/_types/chains/celo/types.d.ts +3 -8
- package/_types/chains/celo/types.d.ts.map +1 -1
- package/_types/chains/definitions/ancient8.d.ts +452 -188
- package/_types/chains/definitions/ancient8.d.ts.map +1 -1
- package/_types/chains/definitions/ancient8Sepolia.d.ts +452 -188
- package/_types/chains/definitions/ancient8Sepolia.d.ts.map +1 -1
- package/_types/chains/definitions/base.d.ts +452 -188
- package/_types/chains/definitions/base.d.ts.map +1 -1
- package/_types/chains/definitions/baseGoerli.d.ts +452 -188
- package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/baseSepolia.d.ts +452 -188
- package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/celo.d.ts +1282 -376
- package/_types/chains/definitions/celo.d.ts.map +1 -1
- package/_types/chains/definitions/celoAlfajores.d.ts +1282 -376
- package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
- package/_types/chains/definitions/fraxtal.d.ts +452 -188
- package/_types/chains/definitions/fraxtal.d.ts.map +1 -1
- package/_types/chains/definitions/fraxtalTestnet.d.ts +452 -188
- package/_types/chains/definitions/fraxtalTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/liskSepolia.d.ts +452 -188
- package/_types/chains/definitions/liskSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/optimism.d.ts +452 -188
- package/_types/chains/definitions/optimism.d.ts.map +1 -1
- package/_types/chains/definitions/optimismGoerli.d.ts +452 -188
- package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/optimismSepolia.d.ts +452 -188
- package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/pgn.d.ts +451 -187
- package/_types/chains/definitions/pgn.d.ts.map +1 -1
- package/_types/chains/definitions/pgnTestnet.d.ts +451 -187
- package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/plumeTestnet.d.ts +37 -0
- package/_types/chains/definitions/plumeTestnet.d.ts.map +1 -0
- package/_types/chains/definitions/zkSync.d.ts +692 -32
- package/_types/chains/definitions/zkSync.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +692 -32
- package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncTestnet.d.ts +692 -32
- package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zora.d.ts +452 -188
- package/_types/chains/definitions/zora.d.ts.map +1 -1
- package/_types/chains/definitions/zoraSepolia.d.ts +452 -188
- package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/zoraTestnet.d.ts +452 -188
- package/_types/chains/definitions/zoraTestnet.d.ts.map +1 -1
- package/_types/chains/index.d.ts +2 -1
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/chains/opStack/actions/estimateL1Fee.d.ts.map +1 -1
- package/_types/chains/opStack/actions/estimateL1Gas.d.ts.map +1 -1
- package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts.map +1 -1
- package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -1
- package/_types/chains/opStack/chainConfig.d.ts +452 -188
- package/_types/chains/opStack/chainConfig.d.ts.map +1 -1
- package/_types/chains/opStack/formatters.d.ts +451 -187
- package/_types/chains/opStack/formatters.d.ts.map +1 -1
- package/_types/chains/opStack/serializers.d.ts +4 -3
- package/_types/chains/opStack/serializers.d.ts.map +1 -1
- package/_types/chains/opStack/types/transaction.d.ts +4 -8
- package/_types/chains/opStack/types/transaction.d.ts.map +1 -1
- package/_types/chains/zksync/actions/sendTransaction.d.ts.map +1 -1
- package/_types/chains/zksync/chainConfig.d.ts +692 -32
- package/_types/chains/zksync/chainConfig.d.ts.map +1 -1
- package/_types/chains/zksync/formatters.d.ts +692 -32
- package/_types/chains/zksync/formatters.d.ts.map +1 -1
- package/_types/chains/zksync/serializers.d.ts +3 -3
- package/_types/chains/zksync/serializers.d.ts.map +1 -1
- package/_types/chains/zksync/types/chain.d.ts +2 -2
- package/_types/chains/zksync/types/chain.d.ts.map +1 -1
- package/_types/chains/zksync/types/eip712.d.ts +2 -2
- package/_types/chains/zksync/types/eip712.d.ts.map +1 -1
- package/_types/clients/decorators/public.d.ts +2 -2
- package/_types/clients/decorators/public.d.ts.map +1 -1
- package/_types/clients/decorators/wallet.d.ts +4 -4
- package/_types/clients/decorators/wallet.d.ts.map +1 -1
- package/_types/constants/blob.d.ts +11 -0
- package/_types/constants/blob.d.ts.map +1 -0
- package/_types/constants/kzg.d.ts +6 -0
- package/_types/constants/kzg.d.ts.map +1 -0
- package/_types/errors/blob.d.ts +40 -0
- package/_types/errors/blob.d.ts.map +1 -0
- package/_types/errors/transaction.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/index.d.ts +11 -0
- package/_types/index.d.ts.map +1 -1
- package/_types/node/index.d.ts +1 -0
- package/_types/node/index.d.ts.map +1 -1
- package/_types/node/trustedSetups.d.ts +3 -0
- package/_types/node/trustedSetups.d.ts.map +1 -0
- package/_types/types/account.d.ts +3 -3
- package/_types/types/account.d.ts.map +1 -1
- package/_types/types/chain.d.ts +2 -2
- package/_types/types/chain.d.ts.map +1 -1
- package/_types/types/eip1193.d.ts +3 -3
- package/_types/types/eip1193.d.ts.map +1 -1
- package/_types/types/eip4844.d.ts +11 -0
- package/_types/types/eip4844.d.ts.map +1 -0
- package/_types/types/fee.d.ts +2 -2
- package/_types/types/fee.d.ts.map +1 -1
- package/_types/types/kzg.d.ts +24 -0
- package/_types/types/kzg.d.ts.map +1 -0
- package/_types/types/misc.d.ts +15 -1
- package/_types/types/misc.d.ts.map +1 -1
- package/_types/types/rpc.d.ts +4 -4
- package/_types/types/rpc.d.ts.map +1 -1
- package/_types/types/transaction.d.ts +44 -9
- package/_types/types/transaction.d.ts.map +1 -1
- package/_types/types/utils.d.ts +38 -2
- package/_types/types/utils.d.ts.map +1 -1
- package/_types/utils/blob/blobsToCommitments.d.ts +31 -0
- package/_types/utils/blob/blobsToCommitments.d.ts.map +1 -0
- package/_types/utils/blob/blobsToProofs.d.ts +37 -0
- package/_types/utils/blob/blobsToProofs.d.ts.map +1 -0
- package/_types/utils/blob/commitmentToVersionedHash.d.ts +35 -0
- package/_types/utils/blob/commitmentToVersionedHash.d.ts.map +1 -0
- package/_types/utils/blob/commitmentsToVersionedHashes.d.ts +34 -0
- package/_types/utils/blob/commitmentsToVersionedHashes.d.ts.map +1 -0
- package/_types/utils/blob/fromBlobs.d.ts +16 -0
- package/_types/utils/blob/fromBlobs.d.ts.map +1 -0
- package/_types/utils/blob/sidecarsToVersionedHashes.d.ts +29 -0
- package/_types/utils/blob/sidecarsToVersionedHashes.d.ts.map +1 -0
- package/_types/utils/blob/toBlobSidecars.d.ts +57 -0
- package/_types/utils/blob/toBlobSidecars.d.ts.map +1 -0
- package/_types/utils/blob/toBlobs.d.ts +28 -0
- package/_types/utils/blob/toBlobs.d.ts.map +1 -0
- package/_types/utils/encoding/toRlp.d.ts +1 -1
- package/_types/utils/encoding/toRlp.d.ts.map +1 -1
- package/_types/utils/formatters/transaction.d.ts +25 -25
- package/_types/utils/formatters/transaction.d.ts.map +1 -1
- package/_types/utils/formatters/transactionRequest.d.ts +227 -3
- package/_types/utils/formatters/transactionRequest.d.ts.map +1 -1
- package/_types/utils/kzg/defineKzg.d.ts +21 -0
- package/_types/utils/kzg/defineKzg.d.ts.map +1 -0
- package/_types/utils/kzg/setupKzg.d.ts +21 -0
- package/_types/utils/kzg/setupKzg.d.ts.map +1 -0
- package/_types/utils/signature/hexToSignature.d.ts.map +1 -1
- package/_types/utils/signature/signatureToCompactSignature.d.ts +1 -1
- package/_types/utils/signature/signatureToHex.d.ts +2 -2
- package/_types/utils/signature/signatureToHex.d.ts.map +1 -1
- package/_types/utils/transaction/assertTransaction.d.ts +4 -1
- package/_types/utils/transaction/assertTransaction.d.ts.map +1 -1
- package/_types/utils/transaction/getSerializedTransactionType.d.ts +5 -3
- package/_types/utils/transaction/getSerializedTransactionType.d.ts.map +1 -1
- package/_types/utils/transaction/getTransactionType.d.ts +34 -3
- package/_types/utils/transaction/getTransactionType.d.ts.map +1 -1
- package/_types/utils/transaction/parseTransaction.d.ts +7 -5
- package/_types/utils/transaction/parseTransaction.d.ts.map +1 -1
- package/_types/utils/transaction/serializeTransaction.d.ts +13 -6
- package/_types/utils/transaction/serializeTransaction.d.ts.map +1 -1
- package/accounts/types.ts +9 -5
- package/accounts/utils/sign.ts +1 -0
- package/accounts/utils/signTransaction.ts +37 -22
- package/actions/index.ts +5 -0
- package/actions/public/call.ts +4 -0
- package/actions/public/estimateGas.ts +4 -0
- package/actions/public/getBlobBaseFee.ts +42 -0
- package/actions/wallet/prepareTransactionRequest.ts +134 -61
- package/actions/wallet/sendRawTransaction.ts +3 -5
- package/actions/wallet/sendTransaction.ts +32 -21
- package/actions/wallet/signTransaction.ts +34 -18
- package/chains/celo/serializers.ts +12 -25
- package/chains/celo/types.ts +5 -10
- package/chains/definitions/plumeTestnet.ts +28 -0
- package/chains/index.ts +1 -1
- package/chains/opStack/actions/estimateL1Fee.ts +12 -16
- package/chains/opStack/actions/estimateL1Gas.ts +12 -16
- package/chains/opStack/actions/finalizeWithdrawal.ts +3 -2
- package/chains/opStack/actions/proveWithdrawal.ts +3 -2
- package/chains/opStack/serializers.ts +5 -5
- package/chains/opStack/types/transaction.ts +9 -11
- package/chains/zksync/actions/sendTransaction.ts +2 -1
- package/chains/zksync/actions/signEip712Transaction.ts +2 -2
- package/chains/zksync/serializers.ts +14 -10
- package/chains/zksync/types/chain.ts +4 -7
- package/chains/zksync/types/eip712.ts +2 -2
- package/clients/decorators/public.ts +8 -4
- package/clients/decorators/wallet.ts +14 -6
- package/constants/blob.ts +21 -0
- package/constants/kzg.ts +9 -0
- package/errors/blob.ts +67 -0
- package/errors/transaction.ts +1 -0
- package/errors/version.ts +1 -1
- package/index.ts +64 -0
- package/node/index.ts +2 -0
- package/node/trustedSetups.ts +11 -0
- package/package.json +1 -1
- package/trusted-setups/mainnet.json +8265 -0
- package/trusted-setups/minimal.json +8265 -0
- package/types/account.ts +3 -3
- package/types/chain.ts +3 -1
- package/types/eip1193.ts +3 -3
- package/types/eip4844.ts +12 -0
- package/types/fee.ts +3 -2
- package/types/kzg.ts +32 -0
- package/types/misc.ts +20 -1
- package/types/rpc.ts +11 -6
- package/types/transaction.ts +75 -17
- package/types/utils.ts +49 -1
- package/utils/blob/blobsToCommitments.ts +69 -0
- package/utils/blob/blobsToProofs.ts +93 -0
- package/utils/blob/commitmentToVersionedHash.ts +62 -0
- package/utils/blob/commitmentsToVersionedHashes.ts +71 -0
- package/utils/blob/fromBlobs.ts +73 -0
- package/utils/blob/sidecarsToVersionedHashes.ts +66 -0
- package/utils/blob/toBlobSidecars.ts +109 -0
- package/utils/blob/toBlobs.ts +113 -0
- package/utils/encoding/toRlp.ts +2 -2
- package/utils/formatters/transaction.ts +3 -2
- package/utils/formatters/transactionRequest.ts +28 -35
- package/utils/kzg/defineKzg.ts +30 -0
- package/utils/kzg/setupKzg.ts +38 -0
- package/utils/signature/compactSignatureToSignature.ts +3 -3
- package/utils/signature/hexToSignature.ts +6 -1
- package/utils/signature/signatureToCompactSignature.ts +4 -4
- package/utils/signature/signatureToHex.ts +9 -4
- package/utils/transaction/assertTransaction.ts +41 -0
- package/utils/transaction/getSerializedTransactionType.ts +34 -11
- package/utils/transaction/getTransactionType.ts +109 -26
- package/utils/transaction/parseTransaction.ts +128 -8
- package/utils/transaction/serializeAccessList.ts +1 -1
- package/utils/transaction/serializeTransaction.ts +172 -39
@@ -28,12 +28,25 @@ import {
|
|
28
28
|
Eip1559FeesNotSupportedError,
|
29
29
|
MaxFeePerGasTooLowError,
|
30
30
|
} from '../../errors/fee.js'
|
31
|
-
import type { Block } from '../../index.js'
|
31
|
+
import type { Block, GetTransactionType } from '../../index.js'
|
32
32
|
import type { DeriveAccount, GetAccountParameter } from '../../types/account.js'
|
33
33
|
import type { Chain, DeriveChain } from '../../types/chain.js'
|
34
34
|
import type { GetChainParameter } from '../../types/chain.js'
|
35
|
-
import type {
|
36
|
-
import type {
|
35
|
+
import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'
|
36
|
+
import type {
|
37
|
+
TransactionRequest,
|
38
|
+
TransactionRequestEIP1559,
|
39
|
+
TransactionRequestEIP2930,
|
40
|
+
TransactionRequestEIP4844,
|
41
|
+
TransactionRequestLegacy,
|
42
|
+
TransactionSerializable,
|
43
|
+
} from '../../types/transaction.js'
|
44
|
+
import type {
|
45
|
+
IsNever,
|
46
|
+
Prettify,
|
47
|
+
UnionOmit,
|
48
|
+
UnionRequiredBy,
|
49
|
+
} from '../../types/utils.js'
|
37
50
|
import type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'
|
38
51
|
import { getAction } from '../../utils/getAction.js'
|
39
52
|
import type {
|
@@ -42,60 +55,117 @@ import type {
|
|
42
55
|
} from '../../utils/transaction/assertRequest.js'
|
43
56
|
import { assertRequest } from '../../utils/transaction/assertRequest.js'
|
44
57
|
import { getTransactionType } from '../../utils/transaction/getTransactionType.js'
|
58
|
+
import { getChainId } from '../public/getChainId.js'
|
45
59
|
|
46
60
|
export type PrepareTransactionRequestParameterType =
|
61
|
+
| 'chainId'
|
47
62
|
| 'fees'
|
48
63
|
| 'gas'
|
49
64
|
| 'nonce'
|
50
65
|
| 'type'
|
51
66
|
type ParameterTypeToParameters<
|
52
|
-
|
53
|
-
> =
|
67
|
+
parameterType extends PrepareTransactionRequestParameterType,
|
68
|
+
> = parameterType extends 'fees'
|
54
69
|
? 'maxFeePerGas' | 'maxPriorityFeePerGas' | 'gasPrice'
|
55
|
-
:
|
70
|
+
: parameterType
|
71
|
+
|
72
|
+
export type PrepareTransactionRequestRequest<
|
73
|
+
chain extends Chain | undefined = Chain | undefined,
|
74
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
75
|
+
///
|
76
|
+
_derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
|
77
|
+
> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
|
78
|
+
GetTransactionRequestKzgParameter & {
|
79
|
+
parameters?: PrepareTransactionRequestParameterType[]
|
80
|
+
}
|
56
81
|
|
57
82
|
export type PrepareTransactionRequestParameters<
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
83
|
+
chain extends Chain | undefined = Chain | undefined,
|
84
|
+
account extends Account | undefined = Account | undefined,
|
85
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
86
|
+
accountOverride extends Account | Address | undefined =
|
87
|
+
| Account
|
88
|
+
| Address
|
89
|
+
| undefined,
|
90
|
+
request extends PrepareTransactionRequestRequest<
|
91
|
+
chain,
|
92
|
+
chainOverride
|
93
|
+
> = PrepareTransactionRequestRequest<chain, chainOverride>,
|
94
|
+
> = request &
|
95
|
+
GetAccountParameter<account, accountOverride, false> &
|
96
|
+
GetChainParameter<chain, chainOverride> &
|
97
|
+
GetTransactionRequestKzgParameter<request> & { chainId?: number }
|
98
|
+
|
99
|
+
export type PrepareTransactionRequestReturnType_<
|
100
|
+
chain extends Chain | undefined = Chain | undefined,
|
101
|
+
account extends Account | undefined = Account | undefined,
|
102
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
103
|
+
accountOverride extends Account | Address | undefined =
|
62
104
|
| Account
|
63
105
|
| Address
|
64
106
|
| undefined,
|
65
|
-
TParameterType extends
|
66
|
-
PrepareTransactionRequestParameterType = PrepareTransactionRequestParameterType,
|
67
107
|
///
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
108
|
+
_derivedAccount extends Account | Address | undefined = DeriveAccount<
|
109
|
+
account,
|
110
|
+
accountOverride
|
111
|
+
>,
|
112
|
+
_derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
|
113
|
+
> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
|
114
|
+
GetChainParameter<chain, chainOverride> &
|
115
|
+
(_derivedAccount extends Account
|
116
|
+
? { account: _derivedAccount; from: Address }
|
117
|
+
: { account?: undefined; from?: undefined })
|
74
118
|
|
75
119
|
export type PrepareTransactionRequestReturnType<
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
120
|
+
chain extends Chain | undefined = Chain | undefined,
|
121
|
+
account extends Account | undefined = Account | undefined,
|
122
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
123
|
+
accountOverride extends Account | Address | undefined =
|
80
124
|
| Account
|
81
125
|
| Address
|
82
126
|
| undefined,
|
83
|
-
|
84
|
-
|
127
|
+
request extends PrepareTransactionRequestRequest<
|
128
|
+
chain,
|
129
|
+
chainOverride
|
130
|
+
> = PrepareTransactionRequestRequest<chain, chainOverride>,
|
85
131
|
///
|
86
|
-
|
87
|
-
|
88
|
-
|
132
|
+
_derivedAccount extends Account | Address | undefined = DeriveAccount<
|
133
|
+
account,
|
134
|
+
accountOverride
|
89
135
|
>,
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
136
|
+
_derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
|
137
|
+
_transactionType = request['type'] extends string
|
138
|
+
? request['type']
|
139
|
+
: GetTransactionType<request> extends 'legacy'
|
140
|
+
? unknown
|
141
|
+
: GetTransactionType<request>,
|
142
|
+
_transactionRequest extends TransactionRequest =
|
143
|
+
| (_transactionType extends 'legacy' ? TransactionRequestLegacy : never)
|
144
|
+
| (_transactionType extends 'eip1559' ? TransactionRequestEIP1559 : never)
|
145
|
+
| (_transactionType extends 'eip2930' ? TransactionRequestEIP2930 : never)
|
146
|
+
| (_transactionType extends 'eip4844' ? TransactionRequestEIP4844 : never),
|
147
|
+
> = Prettify<
|
148
|
+
UnionRequiredBy<
|
149
|
+
Extract<
|
150
|
+
UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
|
151
|
+
(_derivedChain extends Chain
|
152
|
+
? { chain: _derivedChain }
|
153
|
+
: { chain?: undefined }) &
|
154
|
+
(_derivedAccount extends Account
|
155
|
+
? { account: _derivedAccount; from: Address }
|
156
|
+
: { account?: undefined; from?: undefined }),
|
157
|
+
IsNever<_transactionRequest> extends true
|
158
|
+
? unknown
|
159
|
+
: Partial<_transactionRequest>
|
160
|
+
> & { chainId?: number },
|
161
|
+
ParameterTypeToParameters<
|
162
|
+
request['parameters'] extends PrepareTransactionRequestParameterType[]
|
163
|
+
? request['parameters'][number]
|
164
|
+
: PrepareTransactionRequestParameterType
|
165
|
+
>
|
166
|
+
> &
|
167
|
+
(unknown extends request['kzg'] ? {} : Pick<request, 'kzg'>)
|
168
|
+
>
|
99
169
|
|
100
170
|
export type PrepareTransactionRequestErrorType =
|
101
171
|
| AccountNotFoundErrorType
|
@@ -147,35 +217,36 @@ export type PrepareTransactionRequestErrorType =
|
|
147
217
|
* })
|
148
218
|
*/
|
149
219
|
export async function prepareTransactionRequest<
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
220
|
+
chain extends Chain | undefined,
|
221
|
+
account extends Account | undefined,
|
222
|
+
const request extends PrepareTransactionRequestRequest<chain, chainOverride>,
|
223
|
+
accountOverride extends Account | Address | undefined = undefined,
|
224
|
+
chainOverride extends Chain | undefined = undefined,
|
155
225
|
>(
|
156
|
-
client: Client<Transport,
|
226
|
+
client: Client<Transport, chain, account>,
|
157
227
|
args: PrepareTransactionRequestParameters<
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
228
|
+
chain,
|
229
|
+
account,
|
230
|
+
chainOverride,
|
231
|
+
accountOverride,
|
232
|
+
request
|
163
233
|
>,
|
164
234
|
): Promise<
|
165
235
|
PrepareTransactionRequestReturnType<
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
236
|
+
chain,
|
237
|
+
account,
|
238
|
+
chainOverride,
|
239
|
+
accountOverride,
|
240
|
+
request
|
171
241
|
>
|
172
242
|
> {
|
173
243
|
const {
|
174
244
|
account: account_ = client.account,
|
175
245
|
chain,
|
246
|
+
chainId,
|
176
247
|
gas,
|
177
248
|
nonce,
|
178
|
-
parameters = ['fees', 'gas', 'nonce', 'type'],
|
249
|
+
parameters = ['chainId', 'fees', 'gas', 'nonce', 'type'],
|
179
250
|
type,
|
180
251
|
} = args
|
181
252
|
const account = account_ ? parseAccount(account_) : undefined
|
@@ -188,6 +259,12 @@ export async function prepareTransactionRequest<
|
|
188
259
|
|
189
260
|
const request = { ...args, ...(account ? { from: account?.address } : {}) }
|
190
261
|
|
262
|
+
if (parameters.includes('chainId')) {
|
263
|
+
if (chain) request.chainId = chain.id
|
264
|
+
else if (typeof chainId !== 'undefined') request.chainId = chainId
|
265
|
+
else request.chainId = await getAction(client, getChainId, 'getChainId')({})
|
266
|
+
}
|
267
|
+
|
191
268
|
if (parameters.includes('nonce') && typeof nonce === 'undefined' && account)
|
192
269
|
request.nonce = await getAction(
|
193
270
|
client,
|
@@ -214,7 +291,9 @@ export async function prepareTransactionRequest<
|
|
214
291
|
}
|
215
292
|
|
216
293
|
if (parameters.includes('fees')) {
|
217
|
-
|
294
|
+
// TODO(4844): derive blob base fees once https://github.com/ethereum/execution-apis/pull/486 is merged.
|
295
|
+
|
296
|
+
if (request.type === 'eip1559' || request.type === 'eip4844') {
|
218
297
|
// EIP-1559 fees
|
219
298
|
const { maxFeePerGas, maxPriorityFeePerGas } =
|
220
299
|
await internal_estimateFeesPerGas(client, {
|
@@ -271,11 +350,5 @@ export async function prepareTransactionRequest<
|
|
271
350
|
|
272
351
|
delete request.parameters
|
273
352
|
|
274
|
-
return request as
|
275
|
-
TChain,
|
276
|
-
TAccount,
|
277
|
-
TChainOverride,
|
278
|
-
TAccountOverride,
|
279
|
-
TParameterType
|
280
|
-
>
|
353
|
+
return request as any
|
281
354
|
}
|
@@ -3,14 +3,12 @@ import type { Transport } from '../../clients/transports/createTransport.js'
|
|
3
3
|
import type { ErrorType } from '../../errors/utils.js'
|
4
4
|
import type { Chain } from '../../types/chain.js'
|
5
5
|
import type { Hash } from '../../types/misc.js'
|
6
|
-
import type {
|
6
|
+
import type { TransactionSerializedGeneric } from '../../types/transaction.js'
|
7
7
|
import type { RequestErrorType } from '../../utils/buildRequest.js'
|
8
8
|
|
9
9
|
export type SendRawTransactionParameters = {
|
10
|
-
/**
|
11
|
-
|
12
|
-
*/
|
13
|
-
serializedTransaction: TransactionSerialized
|
10
|
+
/** The signed serialized tranasction. */
|
11
|
+
serializedTransaction: TransactionSerializedGeneric
|
14
12
|
}
|
15
13
|
|
16
14
|
export type SendRawTransactionReturnType = Hash
|
@@ -12,6 +12,7 @@ import type { ErrorType } from '../../errors/utils.js'
|
|
12
12
|
import type { GetAccountParameter } from '../../types/account.js'
|
13
13
|
import type { Chain, DeriveChain } from '../../types/chain.js'
|
14
14
|
import type { GetChainParameter } from '../../types/chain.js'
|
15
|
+
import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'
|
15
16
|
import type { Hash } from '../../types/misc.js'
|
16
17
|
import type {
|
17
18
|
TransactionRequest,
|
@@ -48,15 +49,26 @@ import {
|
|
48
49
|
sendRawTransaction,
|
49
50
|
} from './sendRawTransaction.js'
|
50
51
|
|
51
|
-
export type
|
52
|
-
|
53
|
-
|
54
|
-
TChainOverride extends Chain | undefined = Chain | undefined,
|
52
|
+
export type SendTransactionRequest<
|
53
|
+
chain extends Chain | undefined = Chain | undefined,
|
54
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
55
55
|
///
|
56
|
-
|
57
|
-
> = UnionOmit<FormattedTransactionRequest<
|
58
|
-
|
59
|
-
|
56
|
+
_derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
|
57
|
+
> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
|
58
|
+
GetTransactionRequestKzgParameter
|
59
|
+
|
60
|
+
export type SendTransactionParameters<
|
61
|
+
chain extends Chain | undefined = Chain | undefined,
|
62
|
+
account extends Account | undefined = Account | undefined,
|
63
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
64
|
+
request extends SendTransactionRequest<
|
65
|
+
chain,
|
66
|
+
chainOverride
|
67
|
+
> = SendTransactionRequest<chain, chainOverride>,
|
68
|
+
> = request &
|
69
|
+
GetAccountParameter<account> &
|
70
|
+
GetChainParameter<chain, chainOverride> &
|
71
|
+
GetTransactionRequestKzgParameter<request>
|
60
72
|
|
61
73
|
export type SendTransactionReturnType = Hash
|
62
74
|
|
@@ -119,12 +131,13 @@ export type SendTransactionErrorType =
|
|
119
131
|
* })
|
120
132
|
*/
|
121
133
|
export async function sendTransaction<
|
122
|
-
|
123
|
-
|
124
|
-
|
134
|
+
chain extends Chain | undefined,
|
135
|
+
account extends Account | undefined,
|
136
|
+
const request extends SendTransactionRequest<chain, chainOverride>,
|
137
|
+
chainOverride extends Chain | undefined = undefined,
|
125
138
|
>(
|
126
|
-
client: Client<Transport,
|
127
|
-
|
139
|
+
client: Client<Transport, chain, account>,
|
140
|
+
parameters: SendTransactionParameters<chain, account, chainOverride, request>,
|
128
141
|
): Promise<SendTransactionReturnType> {
|
129
142
|
const {
|
130
143
|
account: account_ = client.account,
|
@@ -139,7 +152,7 @@ export async function sendTransaction<
|
|
139
152
|
to,
|
140
153
|
value,
|
141
154
|
...rest
|
142
|
-
} =
|
155
|
+
} = parameters
|
143
156
|
|
144
157
|
if (!account_)
|
145
158
|
throw new AccountNotFoundError({
|
@@ -148,7 +161,7 @@ export async function sendTransaction<
|
|
148
161
|
const account = parseAccount(account_)
|
149
162
|
|
150
163
|
try {
|
151
|
-
assertRequest(
|
164
|
+
assertRequest(parameters as AssertRequestParameters)
|
152
165
|
|
153
166
|
let chainId: number | undefined
|
154
167
|
if (chain !== null) {
|
@@ -169,6 +182,7 @@ export async function sendTransaction<
|
|
169
182
|
account,
|
170
183
|
accessList,
|
171
184
|
chain,
|
185
|
+
chainId,
|
172
186
|
data,
|
173
187
|
gas,
|
174
188
|
gasPrice,
|
@@ -180,14 +194,11 @@ export async function sendTransaction<
|
|
180
194
|
...rest,
|
181
195
|
} as any)
|
182
196
|
|
183
|
-
if (!chainId)
|
184
|
-
chainId = await getAction(client, getChainId, 'getChainId')({})
|
185
|
-
|
186
197
|
const serializer = chain?.serializers?.transaction
|
187
198
|
const serializedTransaction = (await account.signTransaction(
|
188
199
|
{
|
189
200
|
...request,
|
190
|
-
chainId,
|
201
|
+
chainId: request.chainId,
|
191
202
|
} as TransactionSerializable,
|
192
203
|
{ serializer },
|
193
204
|
)) as Hash
|
@@ -226,9 +237,9 @@ export async function sendTransaction<
|
|
226
237
|
)
|
227
238
|
} catch (err) {
|
228
239
|
throw getTransactionError(err as BaseError, {
|
229
|
-
...
|
240
|
+
...parameters,
|
230
241
|
account,
|
231
|
-
chain:
|
242
|
+
chain: parameters.chain || undefined,
|
232
243
|
})
|
233
244
|
}
|
234
245
|
}
|
@@ -14,6 +14,7 @@ import type {
|
|
14
14
|
DeriveChain,
|
15
15
|
GetChainParameter,
|
16
16
|
} from '../../types/chain.js'
|
17
|
+
import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'
|
17
18
|
import { type RpcTransactionRequest } from '../../types/rpc.js'
|
18
19
|
import type {
|
19
20
|
TransactionRequest,
|
@@ -26,28 +27,38 @@ import {
|
|
26
27
|
type AssertCurrentChainErrorType,
|
27
28
|
assertCurrentChain,
|
28
29
|
} from '../../utils/chain/assertCurrentChain.js'
|
30
|
+
import { numberToHex } from '../../utils/encoding/toHex.js'
|
29
31
|
import type { NumberToHexErrorType } from '../../utils/encoding/toHex.js'
|
30
32
|
import {
|
31
33
|
type FormattedTransactionRequest,
|
32
34
|
formatTransactionRequest,
|
33
35
|
} from '../../utils/formatters/transactionRequest.js'
|
34
36
|
import { getAction } from '../../utils/getAction.js'
|
35
|
-
import { numberToHex } from '../../utils/index.js'
|
36
37
|
import {
|
37
38
|
type AssertRequestErrorType,
|
38
39
|
assertRequest,
|
39
40
|
} from '../../utils/transaction/assertRequest.js'
|
40
41
|
import { type GetChainIdErrorType, getChainId } from '../public/getChainId.js'
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
TChainOverride extends Chain | undefined = Chain | undefined,
|
43
|
+
type SignTransactionRequest<
|
44
|
+
chain extends Chain | undefined = Chain | undefined,
|
45
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
46
46
|
///
|
47
|
-
|
48
|
-
> = UnionOmit<FormattedTransactionRequest<
|
49
|
-
|
50
|
-
|
47
|
+
_derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
|
48
|
+
> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'>
|
49
|
+
|
50
|
+
export type SignTransactionParameters<
|
51
|
+
chain extends Chain | undefined,
|
52
|
+
account extends Account | undefined,
|
53
|
+
chainOverride extends Chain | undefined = Chain | undefined,
|
54
|
+
request extends SignTransactionRequest<
|
55
|
+
chain,
|
56
|
+
chainOverride
|
57
|
+
> = SignTransactionRequest<chain, chainOverride>,
|
58
|
+
> = request &
|
59
|
+
GetAccountParameter<account> &
|
60
|
+
GetChainParameter<chain, chainOverride> &
|
61
|
+
GetTransactionRequestKzgParameter<request>
|
51
62
|
|
52
63
|
export type SignTransactionReturnType = TransactionSerialized
|
53
64
|
|
@@ -105,18 +116,22 @@ export type SignTransactionErrorType =
|
|
105
116
|
* })
|
106
117
|
*/
|
107
118
|
export async function signTransaction<
|
108
|
-
|
109
|
-
|
110
|
-
|
119
|
+
chain extends Chain | undefined,
|
120
|
+
account extends Account | undefined,
|
121
|
+
chainOverride extends Chain | undefined = undefined,
|
122
|
+
const request extends SignTransactionRequest<
|
123
|
+
chain,
|
124
|
+
chainOverride
|
125
|
+
> = SignTransactionRequest<chain, chainOverride>,
|
111
126
|
>(
|
112
|
-
client: Client<Transport,
|
113
|
-
|
127
|
+
client: Client<Transport, chain, account>,
|
128
|
+
parameters: SignTransactionParameters<chain, account, chainOverride, request>,
|
114
129
|
): Promise<SignTransactionReturnType> {
|
115
130
|
const {
|
116
131
|
account: account_ = client.account,
|
117
132
|
chain = client.chain,
|
118
133
|
...transaction
|
119
|
-
} =
|
134
|
+
} = parameters
|
120
135
|
|
121
136
|
if (!account_)
|
122
137
|
throw new AccountNotFoundError({
|
@@ -126,7 +141,7 @@ export async function signTransaction<
|
|
126
141
|
|
127
142
|
assertRequest({
|
128
143
|
account,
|
129
|
-
...
|
144
|
+
...parameters,
|
130
145
|
})
|
131
146
|
|
132
147
|
const chainId = await getAction(client, getChainId, 'getChainId')({})
|
@@ -140,14 +155,15 @@ export async function signTransaction<
|
|
140
155
|
const format =
|
141
156
|
formatters?.transactionRequest?.format || formatTransactionRequest
|
142
157
|
|
143
|
-
if (account.type === 'local')
|
158
|
+
if (account.type === 'local') {
|
144
159
|
return account.signTransaction(
|
145
160
|
{
|
146
161
|
...transaction,
|
147
162
|
chainId,
|
148
|
-
} as
|
163
|
+
} as TransactionSerializable,
|
149
164
|
{ serializer: client.chain?.serializers?.transaction },
|
150
165
|
) as Promise<SignTransactionReturnType>
|
166
|
+
}
|
151
167
|
|
152
168
|
return await client.request(
|
153
169
|
{
|
@@ -4,16 +4,14 @@ import { InvalidChainIdError } from '../../errors/chain.js'
|
|
4
4
|
import { FeeCapTooHighError, TipAboveFeeCapError } from '../../errors/node.js'
|
5
5
|
import type { ChainSerializers } from '../../types/chain.js'
|
6
6
|
import type { Signature } from '../../types/misc.js'
|
7
|
-
import type { TransactionSerializable } from '../../types/transaction.js'
|
8
7
|
import { isAddress } from '../../utils/address/isAddress.js'
|
9
8
|
import { concatHex } from '../../utils/data/concat.js'
|
10
|
-
import { trim } from '../../utils/data/trim.js'
|
11
9
|
import { toHex } from '../../utils/encoding/toHex.js'
|
12
10
|
import { toRlp } from '../../utils/encoding/toRlp.js'
|
13
11
|
import { serializeAccessList } from '../../utils/transaction/serializeAccessList.js'
|
14
12
|
import {
|
15
|
-
type SerializeTransactionFn,
|
16
13
|
serializeTransaction as serializeTransaction_,
|
14
|
+
toYParitySignatureArray,
|
17
15
|
} from '../../utils/transaction/serializeTransaction.js'
|
18
16
|
import type {
|
19
17
|
CeloTransactionSerializable,
|
@@ -24,12 +22,15 @@ import type {
|
|
24
22
|
} from './types.js'
|
25
23
|
import { isCIP42, isCIP64, isEmpty, isPresent } from './utils.js'
|
26
24
|
|
27
|
-
export
|
28
|
-
CeloTransactionSerializable
|
29
|
-
|
30
|
-
|
31
|
-
if (
|
32
|
-
|
25
|
+
export function serializeTransaction(
|
26
|
+
transaction: CeloTransactionSerializable,
|
27
|
+
signature?: Signature,
|
28
|
+
) {
|
29
|
+
if (isCIP64(transaction))
|
30
|
+
return serializeTransactionCIP64(transaction, signature)
|
31
|
+
if (isCIP42(transaction))
|
32
|
+
return serializeTransactionCIP42(transaction, signature)
|
33
|
+
return serializeTransaction_(transaction, signature)
|
33
34
|
}
|
34
35
|
|
35
36
|
export const serializers = {
|
@@ -78,16 +79,9 @@ function serializeTransactionCIP42(
|
|
78
79
|
value ? toHex(value) : '0x',
|
79
80
|
data ?? '0x',
|
80
81
|
serializeAccessList(accessList),
|
82
|
+
...toYParitySignatureArray(transaction, signature),
|
81
83
|
]
|
82
84
|
|
83
|
-
if (signature) {
|
84
|
-
serializedTransaction.push(
|
85
|
-
signature.v === 27n ? '0x' : toHex(1), // yParity
|
86
|
-
trim(signature.r),
|
87
|
-
trim(signature.s),
|
88
|
-
)
|
89
|
-
}
|
90
|
-
|
91
85
|
return concatHex([
|
92
86
|
'0x7c',
|
93
87
|
toRlp(serializedTransaction),
|
@@ -123,16 +117,9 @@ function serializeTransactionCIP64(
|
|
123
117
|
data ?? '0x',
|
124
118
|
serializeAccessList(accessList),
|
125
119
|
feeCurrency!,
|
120
|
+
...toYParitySignatureArray(transaction, signature),
|
126
121
|
]
|
127
122
|
|
128
|
-
if (signature) {
|
129
|
-
serializedTransaction.push(
|
130
|
-
signature.v === 27n ? '0x' : toHex(1), // yParity
|
131
|
-
trim(signature.r),
|
132
|
-
trim(signature.s),
|
133
|
-
)
|
134
|
-
}
|
135
|
-
|
136
123
|
return concatHex([
|
137
124
|
'0x7b',
|
138
125
|
toRlp(serializedTransaction),
|
package/chains/celo/types.ts
CHANGED
@@ -21,7 +21,7 @@ import type {
|
|
21
21
|
TransactionSerializableBase,
|
22
22
|
TransactionSerialized,
|
23
23
|
} from '../../types/transaction.js'
|
24
|
-
import type { NeverBy } from '../../types/utils.js'
|
24
|
+
import type { NeverBy, OneOf } from '../../types/utils.js'
|
25
25
|
|
26
26
|
type CeloBlockExclude =
|
27
27
|
| 'difficulty'
|
@@ -89,13 +89,14 @@ export type CeloTransactionRequest =
|
|
89
89
|
| TransactionRequestCIP42
|
90
90
|
| TransactionRequestCIP64
|
91
91
|
|
92
|
-
export type CeloTransactionSerializable =
|
92
|
+
export type CeloTransactionSerializable = OneOf<
|
93
|
+
| TransactionSerializable
|
93
94
|
| TransactionSerializableCIP42
|
94
95
|
| TransactionSerializableCIP64
|
95
|
-
|
96
|
+
>
|
96
97
|
|
97
98
|
export type CeloTransactionSerialized<
|
98
|
-
TType extends CeloTransactionType =
|
99
|
+
TType extends CeloTransactionType = CeloTransactionType,
|
99
100
|
> =
|
100
101
|
| TransactionSerialized<TType>
|
101
102
|
| TransactionSerializedCIP42
|
@@ -240,11 +241,5 @@ export type TransactionSerializableCIP64<
|
|
240
241
|
type?: 'cip64'
|
241
242
|
}
|
242
243
|
|
243
|
-
export type CeloTransactionSerializableBase = TransactionSerializable & {
|
244
|
-
feeCurrency?: undefined
|
245
|
-
gatewayFee?: undefined
|
246
|
-
gatewayFeeRecipient?: undefined
|
247
|
-
}
|
248
|
-
|
249
244
|
export type TransactionSerializedCIP42 = `0x7c${string}`
|
250
245
|
export type TransactionSerializedCIP64 = `0x7b${string}`
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
const sourceId = 11_155_111 // sepolia
|
4
|
+
|
5
|
+
export const plumeTestnet = /*#__PURE__*/ defineChain({
|
6
|
+
id: 161_221_135,
|
7
|
+
name: 'Plume Testnet',
|
8
|
+
nativeCurrency: {
|
9
|
+
name: 'Plume Sepolia Ether',
|
10
|
+
symbol: 'ETH',
|
11
|
+
decimals: 18,
|
12
|
+
},
|
13
|
+
rpcUrls: {
|
14
|
+
default: {
|
15
|
+
http: ['https://plume-testnet.rpc.caldera.xyz/http'],
|
16
|
+
webSocket: ['wss://plume-testnet.rpc.caldera.xyz/ws'],
|
17
|
+
},
|
18
|
+
},
|
19
|
+
blockExplorers: {
|
20
|
+
default: {
|
21
|
+
name: 'Blockscout',
|
22
|
+
url: 'https://plume-testnet.explorer.caldera.xyz',
|
23
|
+
apiUrl: 'https://plume-testnet.explorer.caldera.xyz/api',
|
24
|
+
},
|
25
|
+
},
|
26
|
+
testnet: true,
|
27
|
+
sourceId,
|
28
|
+
})
|
package/chains/index.ts
CHANGED
@@ -150,6 +150,7 @@ export { pgn } from './definitions/pgn.js'
|
|
150
150
|
export { pgnTestnet } from './definitions/pgnTestnet.js'
|
151
151
|
export { phoenix } from './definitions/phoenix.js'
|
152
152
|
export { plinga } from './definitions/plinga.js'
|
153
|
+
export { plumeTestnet } from './definitions/plumeTestnet.js'
|
153
154
|
export { polygon } from './definitions/polygon.js'
|
154
155
|
export { polygonAmoy } from './definitions/polygonAmoy.js'
|
155
156
|
export { polygonMumbai } from './definitions/polygonMumbai.js'
|
@@ -245,7 +246,6 @@ export type {
|
|
245
246
|
CeloTransactionRequest,
|
246
247
|
CeloTransactionType,
|
247
248
|
CeloTransactionSerializable,
|
248
|
-
CeloTransactionSerializableBase,
|
249
249
|
CeloTransactionSerialized,
|
250
250
|
RpcTransactionCIP42,
|
251
251
|
RpcTransactionCIP64,
|