viem 2.18.8 → 2.19.1
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +40 -0
- package/README.md +1 -1
- package/_cjs/account-abstraction/errors/bundler.js +36 -216
- package/_cjs/account-abstraction/errors/bundler.js.map +1 -1
- package/_cjs/account-abstraction/errors/userOperation.js +5 -26
- package/_cjs/account-abstraction/errors/userOperation.js.map +1 -1
- package/_cjs/accounts/index.js +3 -1
- package/_cjs/accounts/index.js.map +1 -1
- package/_cjs/accounts/privateKeyToAccount.js +4 -0
- package/_cjs/accounts/privateKeyToAccount.js.map +1 -1
- package/_cjs/accounts/toAccount.js +1 -0
- package/_cjs/accounts/toAccount.js.map +1 -1
- package/_cjs/accounts/utils/signAuthorization.js +22 -0
- package/_cjs/accounts/utils/signAuthorization.js.map +1 -0
- package/_cjs/actions/public/estimateGas.js +48 -10
- package/_cjs/actions/public/estimateGas.js.map +1 -1
- package/_cjs/actions/public/simulateContract.js.map +1 -1
- package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_cjs/actions/wallet/sendTransaction.js +21 -3
- package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/_cjs/actions/wallet/writeContract.js.map +1 -1
- package/_cjs/chains/definitions/abstractTestnet.js +2 -0
- package/_cjs/chains/definitions/abstractTestnet.js.map +1 -1
- package/_cjs/chains/definitions/{zkSync.js → zksync.js} +6 -5
- package/_cjs/chains/definitions/{zkSync.js.map → zksync.js.map} +1 -1
- package/_cjs/chains/definitions/{zkSyncInMemoryNode.js → zksyncInMemoryNode.js} +4 -4
- package/_cjs/chains/definitions/{zkSyncInMemoryNode.js.map → zksyncInMemoryNode.js.map} +1 -1
- package/_cjs/chains/definitions/{zkSyncLocalNode.js → zksyncLocalNode.js} +4 -4
- package/_cjs/chains/definitions/{zkSyncLocalNode.js.map → zksyncLocalNode.js.map} +1 -1
- package/_cjs/chains/definitions/{zkSyncSepoliaTestnet.js → zksyncSepoliaTestnet.js} +7 -5
- package/_cjs/chains/definitions/zksyncSepoliaTestnet.js.map +1 -0
- package/_cjs/chains/index.js +13 -11
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/errors/abi.js +32 -163
- package/_cjs/errors/abi.js.map +1 -1
- package/_cjs/errors/account.js +2 -12
- package/_cjs/errors/account.js.map +1 -1
- package/_cjs/errors/address.js +1 -6
- package/_cjs/errors/address.js.map +1 -1
- package/_cjs/errors/base.js +29 -18
- package/_cjs/errors/base.js.map +1 -1
- package/_cjs/errors/blob.js +4 -25
- package/_cjs/errors/blob.js.map +1 -1
- package/_cjs/errors/block.js +1 -7
- package/_cjs/errors/block.js.map +1 -1
- package/_cjs/errors/ccip.js +3 -18
- package/_cjs/errors/ccip.js.map +1 -1
- package/_cjs/errors/chain.js +7 -31
- package/_cjs/errors/chain.js.map +1 -1
- package/_cjs/errors/contract.js +6 -37
- package/_cjs/errors/contract.js.map +1 -1
- package/_cjs/errors/cursor.js +4 -20
- package/_cjs/errors/cursor.js.map +1 -1
- package/_cjs/errors/data.js +3 -21
- package/_cjs/errors/data.js.map +1 -1
- package/_cjs/errors/eip712.js +1 -6
- package/_cjs/errors/eip712.js.map +1 -1
- package/_cjs/errors/encoding.js +6 -34
- package/_cjs/errors/encoding.js.map +1 -1
- package/_cjs/errors/ens.js +5 -26
- package/_cjs/errors/ens.js.map +1 -1
- package/_cjs/errors/estimateGas.js +1 -6
- package/_cjs/errors/estimateGas.js.map +1 -1
- package/_cjs/errors/fee.js +5 -19
- package/_cjs/errors/fee.js.map +1 -1
- package/_cjs/errors/log.js +2 -6
- package/_cjs/errors/log.js.map +1 -1
- package/_cjs/errors/node.js +12 -75
- package/_cjs/errors/node.js.map +1 -1
- package/_cjs/errors/request.js +5 -30
- package/_cjs/errors/request.js.map +1 -1
- package/_cjs/errors/rpc.js +22 -122
- package/_cjs/errors/rpc.js.map +1 -1
- package/_cjs/errors/siwe.js +1 -7
- package/_cjs/errors/siwe.js.map +1 -1
- package/_cjs/errors/stateOverride.js +4 -12
- package/_cjs/errors/stateOverride.js.map +1 -1
- package/_cjs/errors/transaction.js +15 -63
- package/_cjs/errors/transaction.js.map +1 -1
- package/_cjs/errors/transport.js +1 -0
- package/_cjs/errors/transport.js.map +1 -1
- package/_cjs/errors/utils.js +1 -4
- package/_cjs/errors/utils.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/experimental/eip5792/decorators/eip5792.js +2 -2
- package/_cjs/experimental/eip5792/decorators/eip5792.js.map +1 -1
- package/_cjs/experimental/eip7702/actions/signAuthorization.js +41 -0
- package/_cjs/experimental/eip7702/actions/signAuthorization.js.map +1 -0
- package/_cjs/experimental/eip7702/decorators/eip7702.js +12 -0
- package/_cjs/experimental/eip7702/decorators/eip7702.js.map +1 -0
- package/_cjs/experimental/eip7702/types/authorization.js +3 -0
- package/_cjs/experimental/eip7702/types/authorization.js.map +1 -0
- package/_cjs/experimental/eip7702/types/rpc.js +3 -0
- package/_cjs/experimental/eip7702/types/rpc.js.map +1 -0
- package/_cjs/experimental/eip7702/utils/hashAuthorization.js +23 -0
- package/_cjs/experimental/eip7702/utils/hashAuthorization.js.map +1 -0
- package/_cjs/experimental/eip7702/utils/recoverAuthorizationAddress.js +13 -0
- package/_cjs/experimental/eip7702/utils/recoverAuthorizationAddress.js.map +1 -0
- package/_cjs/experimental/eip7702/utils/serializeAuthorizationList.js +21 -0
- package/_cjs/experimental/eip7702/utils/serializeAuthorizationList.js.map +1 -0
- package/_cjs/experimental/eip7702/utils/verifyAuthorization.js +13 -0
- package/_cjs/experimental/eip7702/utils/verifyAuthorization.js.map +1 -0
- package/_cjs/experimental/erc7715/decorators/erc7715.js +2 -2
- package/_cjs/experimental/erc7715/decorators/erc7715.js.map +1 -1
- package/_cjs/experimental/index.js +22 -8
- package/_cjs/experimental/index.js.map +1 -1
- package/_cjs/index.js +7 -6
- package/_cjs/index.js.map +1 -1
- package/_cjs/op-stack/errors/withdrawal.js +2 -14
- package/_cjs/op-stack/errors/withdrawal.js.map +1 -1
- package/_cjs/utils/formatters/transaction.js +19 -0
- package/_cjs/utils/formatters/transaction.js.map +1 -1
- package/_cjs/utils/formatters/transactionRequest.js +19 -0
- package/_cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/_cjs/utils/transaction/assertTransaction.js +15 -3
- 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 +2 -0
- package/_cjs/utils/transaction/getTransactionType.js.map +1 -1
- package/_cjs/utils/transaction/parseTransaction.js +70 -0
- package/_cjs/utils/transaction/parseTransaction.js.map +1 -1
- package/_cjs/utils/transaction/serializeTransaction.js +25 -0
- package/_cjs/utils/transaction/serializeTransaction.js.map +1 -1
- package/_cjs/zksync/chains.js +9 -7
- package/_cjs/zksync/chains.js.map +1 -1
- package/_cjs/zksync/errors/bytecode.js +3 -21
- package/_cjs/zksync/errors/bytecode.js.map +1 -1
- package/_cjs/zksync/errors/token-is-eth.js +1 -7
- package/_cjs/zksync/errors/token-is-eth.js.map +1 -1
- package/_cjs/zksync/errors/transaction.js +1 -7
- package/_cjs/zksync/errors/transaction.js.map +1 -1
- package/_cjs/zksync/index.js +9 -4
- package/_cjs/zksync/index.js.map +1 -1
- package/_cjs/zksync/utils/getEip712Domain.js +1 -1
- package/_cjs/zksync/utils/isEip712Transaction.js.map +1 -1
- package/_esm/account-abstraction/errors/bundler.js +36 -216
- package/_esm/account-abstraction/errors/bundler.js.map +1 -1
- package/_esm/account-abstraction/errors/userOperation.js +5 -26
- package/_esm/account-abstraction/errors/userOperation.js.map +1 -1
- package/_esm/accounts/index.js +1 -0
- package/_esm/accounts/index.js.map +1 -1
- package/_esm/accounts/privateKeyToAccount.js +4 -0
- package/_esm/accounts/privateKeyToAccount.js.map +1 -1
- package/_esm/accounts/toAccount.js +1 -0
- package/_esm/accounts/toAccount.js.map +1 -1
- package/_esm/accounts/utils/signAuthorization.js +22 -0
- package/_esm/accounts/utils/signAuthorization.js.map +1 -0
- package/_esm/actions/public/estimateGas.js +55 -10
- package/_esm/actions/public/estimateGas.js.map +1 -1
- package/_esm/actions/public/simulateContract.js.map +1 -1
- package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_esm/actions/wallet/sendTransaction.js +25 -3
- package/_esm/actions/wallet/sendTransaction.js.map +1 -1
- package/_esm/actions/wallet/writeContract.js.map +1 -1
- package/_esm/chains/definitions/abstractTestnet.js +2 -0
- package/_esm/chains/definitions/abstractTestnet.js.map +1 -1
- package/_esm/chains/definitions/{zkSync.js → zksync.js} +5 -4
- package/_esm/chains/definitions/{zkSync.js.map → zksync.js.map} +1 -1
- package/_esm/chains/definitions/{zkSyncInMemoryNode.js → zksyncInMemoryNode.js} +3 -3
- package/_esm/chains/definitions/{zkSyncInMemoryNode.js.map → zksyncInMemoryNode.js.map} +1 -1
- package/_esm/chains/definitions/{zkSyncLocalNode.js → zksyncLocalNode.js} +3 -3
- package/_esm/chains/definitions/{zkSyncLocalNode.js.map → zksyncLocalNode.js.map} +1 -1
- package/_esm/chains/definitions/{zkSyncSepoliaTestnet.js → zksyncSepoliaTestnet.js} +6 -4
- package/_esm/chains/definitions/{zkSyncSepoliaTestnet.js.map → zksyncSepoliaTestnet.js.map} +1 -1
- package/_esm/chains/index.js +12 -5
- package/_esm/chains/index.js.map +1 -1
- package/_esm/errors/abi.js +32 -163
- package/_esm/errors/abi.js.map +1 -1
- package/_esm/errors/account.js +2 -12
- package/_esm/errors/account.js.map +1 -1
- package/_esm/errors/address.js +1 -6
- package/_esm/errors/address.js.map +1 -1
- package/_esm/errors/base.js +27 -17
- package/_esm/errors/base.js.map +1 -1
- package/_esm/errors/blob.js +4 -25
- package/_esm/errors/blob.js.map +1 -1
- package/_esm/errors/block.js +1 -7
- package/_esm/errors/block.js.map +1 -1
- package/_esm/errors/ccip.js +3 -18
- package/_esm/errors/ccip.js.map +1 -1
- package/_esm/errors/chain.js +7 -31
- package/_esm/errors/chain.js.map +1 -1
- package/_esm/errors/contract.js +6 -37
- package/_esm/errors/contract.js.map +1 -1
- package/_esm/errors/cursor.js +4 -20
- package/_esm/errors/cursor.js.map +1 -1
- package/_esm/errors/data.js +3 -21
- package/_esm/errors/data.js.map +1 -1
- package/_esm/errors/eip712.js +1 -6
- package/_esm/errors/eip712.js.map +1 -1
- package/_esm/errors/encoding.js +6 -34
- package/_esm/errors/encoding.js.map +1 -1
- package/_esm/errors/ens.js +5 -26
- package/_esm/errors/ens.js.map +1 -1
- package/_esm/errors/estimateGas.js +1 -6
- package/_esm/errors/estimateGas.js.map +1 -1
- package/_esm/errors/fee.js +5 -19
- package/_esm/errors/fee.js.map +1 -1
- package/_esm/errors/log.js +2 -6
- package/_esm/errors/log.js.map +1 -1
- package/_esm/errors/node.js +12 -75
- package/_esm/errors/node.js.map +1 -1
- package/_esm/errors/request.js +5 -30
- package/_esm/errors/request.js.map +1 -1
- package/_esm/errors/rpc.js +22 -122
- package/_esm/errors/rpc.js.map +1 -1
- package/_esm/errors/siwe.js +1 -7
- package/_esm/errors/siwe.js.map +1 -1
- package/_esm/errors/stateOverride.js +4 -12
- package/_esm/errors/stateOverride.js.map +1 -1
- package/_esm/errors/transaction.js +15 -63
- package/_esm/errors/transaction.js.map +1 -1
- package/_esm/errors/transport.js +1 -0
- package/_esm/errors/transport.js.map +1 -1
- package/_esm/errors/utils.js +0 -2
- package/_esm/errors/utils.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/experimental/eip5792/decorators/eip5792.js +3 -3
- package/_esm/experimental/eip5792/decorators/eip5792.js.map +1 -1
- package/_esm/experimental/eip7702/actions/signAuthorization.js +80 -0
- package/_esm/experimental/eip7702/actions/signAuthorization.js.map +1 -0
- package/_esm/experimental/eip7702/decorators/eip7702.js +24 -0
- package/_esm/experimental/eip7702/decorators/eip7702.js.map +1 -0
- package/_esm/experimental/eip7702/types/authorization.js +2 -0
- package/_esm/experimental/eip7702/types/authorization.js.map +1 -0
- package/_esm/experimental/eip7702/types/rpc.js +2 -0
- package/_esm/experimental/eip7702/types/rpc.js.map +1 -0
- package/_esm/experimental/eip7702/utils/hashAuthorization.js +23 -0
- package/_esm/experimental/eip7702/utils/hashAuthorization.js.map +1 -0
- package/_esm/experimental/eip7702/utils/recoverAuthorizationAddress.js +10 -0
- package/_esm/experimental/eip7702/utils/recoverAuthorizationAddress.js.map +1 -0
- package/_esm/experimental/eip7702/utils/serializeAuthorizationList.js +21 -0
- package/_esm/experimental/eip7702/utils/serializeAuthorizationList.js.map +1 -0
- package/_esm/experimental/eip7702/utils/verifyAuthorization.js +18 -0
- package/_esm/experimental/eip7702/utils/verifyAuthorization.js.map +1 -0
- package/_esm/experimental/erc7715/decorators/erc7715.js +3 -3
- package/_esm/experimental/erc7715/decorators/erc7715.js.map +1 -1
- package/_esm/experimental/index.js +16 -4
- package/_esm/experimental/index.js.map +1 -1
- package/_esm/index.js +1 -1
- package/_esm/index.js.map +1 -1
- package/_esm/op-stack/errors/withdrawal.js +2 -14
- package/_esm/op-stack/errors/withdrawal.js.map +1 -1
- package/_esm/utils/formatters/transaction.js +20 -0
- package/_esm/utils/formatters/transaction.js.map +1 -1
- package/_esm/utils/formatters/transactionRequest.js +20 -0
- package/_esm/utils/formatters/transactionRequest.js.map +1 -1
- package/_esm/utils/transaction/assertTransaction.js +14 -3
- 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 +2 -0
- package/_esm/utils/transaction/getTransactionType.js.map +1 -1
- package/_esm/utils/transaction/parseTransaction.js +71 -1
- package/_esm/utils/transaction/parseTransaction.js.map +1 -1
- package/_esm/utils/transaction/serializeTransaction.js +26 -1
- package/_esm/utils/transaction/serializeTransaction.js.map +1 -1
- package/_esm/zksync/actions/deployContract.js +1 -1
- package/_esm/zksync/actions/sendEip712Transaction.js +4 -4
- package/_esm/zksync/actions/sendTransaction.js +4 -4
- package/_esm/zksync/actions/signEip712Transaction.js +4 -4
- package/_esm/zksync/actions/signTransaction.js +4 -4
- package/_esm/zksync/chains.js +4 -3
- package/_esm/zksync/chains.js.map +1 -1
- package/_esm/zksync/errors/bytecode.js +3 -21
- package/_esm/zksync/errors/bytecode.js.map +1 -1
- package/_esm/zksync/errors/token-is-eth.js +1 -7
- package/_esm/zksync/errors/token-is-eth.js.map +1 -1
- package/_esm/zksync/errors/transaction.js +1 -7
- package/_esm/zksync/errors/transaction.js.map +1 -1
- package/_esm/zksync/index.js +9 -1
- package/_esm/zksync/index.js.map +1 -1
- package/_esm/zksync/utils/getEip712Domain.js +1 -1
- package/_esm/zksync/utils/isEip712Transaction.js.map +1 -1
- package/_types/account-abstraction/errors/bundler.d.ts +0 -36
- package/_types/account-abstraction/errors/bundler.d.ts.map +1 -1
- package/_types/account-abstraction/errors/userOperation.d.ts +0 -4
- package/_types/account-abstraction/errors/userOperation.d.ts.map +1 -1
- package/_types/accounts/index.d.ts +1 -0
- package/_types/accounts/index.d.ts.map +1 -1
- package/_types/accounts/privateKeyToAccount.d.ts.map +1 -1
- package/_types/accounts/toAccount.d.ts.map +1 -1
- package/_types/accounts/types.d.ts +7 -3
- package/_types/accounts/types.d.ts.map +1 -1
- package/_types/accounts/utils/signAuthorization.d.ts +20 -0
- package/_types/accounts/utils/signAuthorization.d.ts.map +1 -0
- package/_types/actions/public/estimateGas.d.ts +2 -1
- package/_types/actions/public/estimateGas.d.ts.map +1 -1
- package/_types/actions/public/simulateContract.d.ts +18 -6
- package/_types/actions/public/simulateContract.d.ts.map +1 -1
- package/_types/actions/wallet/prepareTransactionRequest.d.ts +2 -2
- package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
- package/_types/actions/wallet/sendTransaction.d.ts +2 -1
- package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/_types/actions/wallet/writeContract.d.ts +3 -2
- package/_types/actions/wallet/writeContract.d.ts.map +1 -1
- package/_types/celo/chainConfig.d.ts +144 -20
- package/_types/celo/chainConfig.d.ts.map +1 -1
- package/_types/celo/formatters.d.ts +72 -10
- package/_types/celo/formatters.d.ts.map +1 -1
- package/_types/celo/serializers.d.ts +1 -1
- package/_types/celo/serializers.d.ts.map +1 -1
- package/_types/chains/definitions/abstractTestnet.d.ts +373 -3
- package/_types/chains/definitions/abstractTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/ancient8.d.ts +32 -0
- package/_types/chains/definitions/ancient8.d.ts.map +1 -1
- package/_types/chains/definitions/ancient8Sepolia.d.ts +32 -0
- package/_types/chains/definitions/ancient8Sepolia.d.ts.map +1 -1
- package/_types/chains/definitions/base.d.ts +32 -0
- package/_types/chains/definitions/base.d.ts.map +1 -1
- package/_types/chains/definitions/baseGoerli.d.ts +32 -0
- package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/baseSepolia.d.ts +32 -0
- package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/celo.d.ts +144 -20
- package/_types/chains/definitions/celo.d.ts.map +1 -1
- package/_types/chains/definitions/celoAlfajores.d.ts +144 -20
- package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
- package/_types/chains/definitions/dchain.d.ts +32 -0
- package/_types/chains/definitions/dchain.d.ts.map +1 -1
- package/_types/chains/definitions/dchainTestnet.d.ts +32 -0
- package/_types/chains/definitions/dchainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/fraxtal.d.ts +32 -0
- package/_types/chains/definitions/fraxtal.d.ts.map +1 -1
- package/_types/chains/definitions/fraxtalTestnet.d.ts +32 -0
- package/_types/chains/definitions/fraxtalTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/funkiMainnet.d.ts +32 -0
- package/_types/chains/definitions/funkiMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/funkiSepolia.d.ts +32 -0
- package/_types/chains/definitions/funkiSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/lisk.d.ts +32 -0
- package/_types/chains/definitions/lisk.d.ts.map +1 -1
- package/_types/chains/definitions/liskSepolia.d.ts +32 -0
- package/_types/chains/definitions/liskSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/metalL2.d.ts +32 -0
- package/_types/chains/definitions/metalL2.d.ts.map +1 -1
- package/_types/chains/definitions/modeTestnet.d.ts +32 -0
- package/_types/chains/definitions/modeTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/optimism.d.ts +32 -0
- package/_types/chains/definitions/optimism.d.ts.map +1 -1
- package/_types/chains/definitions/optimismGoerli.d.ts +32 -0
- package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/optimismSepolia.d.ts +32 -0
- package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/pgn.d.ts +32 -0
- package/_types/chains/definitions/pgn.d.ts.map +1 -1
- package/_types/chains/definitions/pgnTestnet.d.ts +32 -0
- package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/playfiAlbireo.d.ts +64 -10
- package/_types/chains/definitions/playfiAlbireo.d.ts.map +1 -1
- package/_types/chains/definitions/rss3.d.ts +32 -0
- package/_types/chains/definitions/rss3.d.ts.map +1 -1
- package/_types/chains/definitions/rss3Sepolia.d.ts +32 -0
- package/_types/chains/definitions/rss3Sepolia.d.ts.map +1 -1
- package/_types/chains/definitions/{zkSync.d.ts → zksync.d.ts} +69 -14
- package/_types/chains/definitions/{zkSync.d.ts.map → zksync.d.ts.map} +1 -1
- package/_types/chains/definitions/{zkSyncInMemoryNode.d.ts → zksyncInMemoryNode.d.ts} +67 -13
- package/_types/chains/definitions/{zkSyncInMemoryNode.d.ts.map → zksyncInMemoryNode.d.ts.map} +1 -1
- package/_types/chains/definitions/{zkSyncLocalNode.d.ts → zksyncLocalNode.d.ts} +67 -13
- package/_types/chains/definitions/{zkSyncLocalNode.d.ts.map → zksyncLocalNode.d.ts.map} +1 -1
- package/_types/chains/definitions/{zkSyncSepoliaTestnet.d.ts → zksyncSepoliaTestnet.d.ts} +70 -14
- package/_types/chains/definitions/{zkSyncSepoliaTestnet.d.ts.map → zksyncSepoliaTestnet.d.ts.map} +1 -1
- package/_types/chains/definitions/zora.d.ts +32 -0
- package/_types/chains/definitions/zora.d.ts.map +1 -1
- package/_types/chains/definitions/zoraSepolia.d.ts +32 -0
- package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/zoraTestnet.d.ts +32 -0
- package/_types/chains/definitions/zoraTestnet.d.ts.map +1 -1
- package/_types/chains/index.d.ts +77 -10
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/errors/abi.d.ts +0 -26
- package/_types/errors/abi.d.ts.map +1 -1
- package/_types/errors/account.d.ts +0 -2
- package/_types/errors/account.d.ts.map +1 -1
- package/_types/errors/address.d.ts +0 -1
- package/_types/errors/address.d.ts.map +1 -1
- package/_types/errors/base.d.ts +7 -1
- package/_types/errors/base.d.ts.map +1 -1
- package/_types/errors/blob.d.ts +0 -4
- package/_types/errors/blob.d.ts.map +1 -1
- package/_types/errors/block.d.ts +0 -1
- package/_types/errors/block.d.ts.map +1 -1
- package/_types/errors/ccip.d.ts +0 -3
- package/_types/errors/ccip.d.ts.map +1 -1
- package/_types/errors/chain.d.ts +0 -5
- package/_types/errors/chain.d.ts.map +1 -1
- package/_types/errors/contract.d.ts +0 -6
- package/_types/errors/contract.d.ts.map +1 -1
- package/_types/errors/cursor.d.ts +0 -3
- package/_types/errors/cursor.d.ts.map +1 -1
- package/_types/errors/data.d.ts +0 -3
- package/_types/errors/data.d.ts.map +1 -1
- package/_types/errors/eip712.d.ts +0 -1
- package/_types/errors/eip712.d.ts.map +1 -1
- package/_types/errors/encoding.d.ts +0 -5
- package/_types/errors/encoding.d.ts.map +1 -1
- package/_types/errors/ens.d.ts +0 -4
- package/_types/errors/ens.d.ts.map +1 -1
- package/_types/errors/estimateGas.d.ts +0 -1
- package/_types/errors/estimateGas.d.ts.map +1 -1
- package/_types/errors/fee.d.ts +0 -3
- package/_types/errors/fee.d.ts.map +1 -1
- package/_types/errors/log.d.ts +0 -1
- package/_types/errors/log.d.ts.map +1 -1
- package/_types/errors/node.d.ts +0 -12
- package/_types/errors/node.d.ts.map +1 -1
- package/_types/errors/request.d.ts +0 -5
- package/_types/errors/request.d.ts.map +1 -1
- package/_types/errors/rpc.d.ts +2 -21
- package/_types/errors/rpc.d.ts.map +1 -1
- package/_types/errors/siwe.d.ts +0 -1
- package/_types/errors/siwe.d.ts.map +1 -1
- package/_types/errors/stateOverride.d.ts +0 -2
- package/_types/errors/stateOverride.d.ts.map +1 -1
- package/_types/errors/transaction.d.ts +0 -10
- package/_types/errors/transaction.d.ts.map +1 -1
- package/_types/errors/transport.d.ts.map +1 -1
- package/_types/errors/utils.d.ts +0 -1
- package/_types/errors/utils.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/experimental/eip5792/decorators/eip5792.d.ts +12 -12
- package/_types/experimental/eip5792/decorators/eip5792.d.ts.map +1 -1
- package/_types/experimental/eip7702/actions/signAuthorization.d.ts +59 -0
- package/_types/experimental/eip7702/actions/signAuthorization.d.ts.map +1 -0
- package/_types/experimental/eip7702/decorators/eip7702.d.ts +69 -0
- package/_types/experimental/eip7702/decorators/eip7702.d.ts.map +1 -0
- package/_types/experimental/eip7702/types/authorization.d.ts +24 -0
- package/_types/experimental/eip7702/types/authorization.d.ts.map +1 -0
- package/_types/experimental/eip7702/types/rpc.d.ts +12 -0
- package/_types/experimental/eip7702/types/rpc.d.ts.map +1 -0
- package/_types/experimental/eip7702/utils/hashAuthorization.d.ts +21 -0
- package/_types/experimental/eip7702/utils/hashAuthorization.d.ts.map +1 -0
- package/_types/experimental/eip7702/utils/recoverAuthorizationAddress.d.ts +26 -0
- package/_types/experimental/eip7702/utils/recoverAuthorizationAddress.d.ts.map +1 -0
- package/_types/experimental/eip7702/utils/serializeAuthorizationList.d.ts +6 -0
- package/_types/experimental/eip7702/utils/serializeAuthorizationList.d.ts.map +1 -0
- package/_types/experimental/eip7702/utils/verifyAuthorization.d.ts +21 -0
- package/_types/experimental/eip7702/utils/verifyAuthorization.d.ts.map +1 -0
- package/_types/experimental/erc7715/decorators/erc7715.d.ts +6 -6
- package/_types/experimental/erc7715/decorators/erc7715.d.ts.map +1 -1
- package/_types/experimental/index.d.ts +20 -4
- package/_types/experimental/index.d.ts.map +1 -1
- package/_types/index.d.ts +3 -3
- package/_types/index.d.ts.map +1 -1
- package/_types/op-stack/chainConfig.d.ts +32 -0
- package/_types/op-stack/chainConfig.d.ts.map +1 -1
- package/_types/op-stack/errors/withdrawal.d.ts +0 -2
- package/_types/op-stack/errors/withdrawal.d.ts.map +1 -1
- package/_types/op-stack/formatters.d.ts +32 -0
- package/_types/op-stack/formatters.d.ts.map +1 -1
- package/_types/op-stack/serializers.d.ts +1 -1
- package/_types/op-stack/serializers.d.ts.map +1 -1
- package/_types/types/rpc.d.ts +9 -4
- package/_types/types/rpc.d.ts.map +1 -1
- package/_types/types/transaction.d.ts +50 -36
- package/_types/types/transaction.d.ts.map +1 -1
- package/_types/types/utils.d.ts +0 -14
- package/_types/types/utils.d.ts.map +1 -1
- package/_types/utils/formatters/transaction.d.ts +2 -1
- package/_types/utils/formatters/transaction.d.ts.map +1 -1
- package/_types/utils/formatters/transactionRequest.d.ts +2 -1
- package/_types/utils/formatters/transactionRequest.d.ts.map +1 -1
- package/_types/utils/index.d.ts +1 -1
- package/_types/utils/index.d.ts.map +1 -1
- package/_types/utils/signature/hashMessage.d.ts +2 -2
- package/_types/utils/signature/hashMessage.d.ts.map +1 -1
- package/_types/utils/transaction/assertTransaction.d.ts +3 -1
- package/_types/utils/transaction/assertTransaction.d.ts.map +1 -1
- package/_types/utils/transaction/getSerializedTransactionType.d.ts +2 -2
- package/_types/utils/transaction/getSerializedTransactionType.d.ts.map +1 -1
- package/_types/utils/transaction/getTransactionType.d.ts +12 -5
- package/_types/utils/transaction/getTransactionType.d.ts.map +1 -1
- package/_types/utils/transaction/parseTransaction.d.ts +6 -4
- package/_types/utils/transaction/parseTransaction.d.ts.map +1 -1
- package/_types/utils/transaction/serializeTransaction.d.ts +4 -2
- package/_types/utils/transaction/serializeTransaction.d.ts.map +1 -1
- package/_types/zksync/actions/deployContract.d.ts +1 -1
- package/_types/zksync/actions/estimateFee.d.ts +4 -4
- package/_types/zksync/actions/estimateGasL1ToL2.d.ts +2 -2
- package/_types/zksync/actions/getAllBalances.d.ts +2 -2
- package/_types/zksync/actions/getBaseTokenL1Address.d.ts +2 -2
- package/_types/zksync/actions/getBlockDetails.d.ts +5 -5
- package/_types/zksync/actions/getBridgehubContractAddress.d.ts +2 -2
- package/_types/zksync/actions/getDefaultBridgeAddresses.d.ts +2 -2
- package/_types/zksync/actions/getL1BatchBlockRange.d.ts +2 -2
- package/_types/zksync/actions/getL1BatchDetails.d.ts +5 -5
- package/_types/zksync/actions/getL1BatchNumber.d.ts +2 -2
- package/_types/zksync/actions/getL1ChainId.d.ts +2 -2
- package/_types/zksync/actions/getLogProof.d.ts +2 -2
- package/_types/zksync/actions/getMainContractAddress.d.ts +2 -2
- package/_types/zksync/actions/getRawBlockTransactions.d.ts +6 -6
- package/_types/zksync/actions/getTestnetPaymasterAddress.d.ts +2 -2
- package/_types/zksync/actions/getTransactionDetails.d.ts +4 -4
- package/_types/zksync/actions/sendEip712Transaction.d.ts +4 -4
- package/_types/zksync/actions/sendTransaction.d.ts +4 -4
- package/_types/zksync/actions/signEip712Transaction.d.ts +4 -4
- package/_types/zksync/actions/signTransaction.d.ts +4 -4
- package/_types/zksync/chainConfig.d.ts +65 -11
- package/_types/zksync/chainConfig.d.ts.map +1 -1
- package/_types/zksync/chains.d.ts +4 -3
- package/_types/zksync/chains.d.ts.map +1 -1
- package/_types/zksync/decorators/eip712.d.ts +13 -13
- package/_types/zksync/decorators/publicL2.d.ts +37 -37
- package/_types/zksync/errors/bytecode.d.ts +0 -3
- package/_types/zksync/errors/bytecode.d.ts.map +1 -1
- package/_types/zksync/errors/token-is-eth.d.ts +0 -1
- package/_types/zksync/errors/token-is-eth.d.ts.map +1 -1
- package/_types/zksync/errors/transaction.d.ts +0 -1
- package/_types/zksync/errors/transaction.d.ts.map +1 -1
- package/_types/zksync/formatters.d.ts +75 -21
- package/_types/zksync/formatters.d.ts.map +1 -1
- package/_types/zksync/index.d.ts +77 -7
- package/_types/zksync/index.d.ts.map +1 -1
- package/_types/zksync/serializers.d.ts +2 -2
- package/_types/zksync/serializers.d.ts.map +1 -1
- package/_types/zksync/types/block.d.ts +6 -6
- package/_types/zksync/types/chain.d.ts +2 -2
- package/_types/zksync/types/eip1193.d.ts +8 -8
- package/_types/zksync/types/eip712.d.ts +3 -3
- package/_types/zksync/types/fee.d.ts +2 -2
- package/_types/zksync/types/log.d.ts +4 -4
- package/_types/zksync/types/transaction.d.ts +31 -31
- package/_types/zksync/utils/assertEip712Request.d.ts +2 -2
- package/_types/zksync/utils/assertEip712Transaction.d.ts +2 -2
- package/_types/zksync/utils/getEip712Domain.d.ts +2 -2
- package/_types/zksync/utils/isEip712Transaction.d.ts +3 -3
- package/_types/zksync/utils/isEip712Transaction.d.ts.map +1 -1
- package/account-abstraction/errors/bundler.ts +36 -48
- package/account-abstraction/errors/userOperation.ts +6 -6
- package/accounts/index.ts +6 -0
- package/accounts/privateKeyToAccount.ts +4 -0
- package/accounts/toAccount.ts +1 -0
- package/accounts/types.ts +11 -3
- package/accounts/utils/signAuthorization.ts +63 -0
- package/actions/public/estimateGas.ts +74 -11
- package/actions/public/simulateContract.ts +48 -14
- package/actions/wallet/prepareTransactionRequest.ts +3 -1
- package/actions/wallet/sendTransaction.ts +33 -4
- package/actions/wallet/writeContract.ts +5 -3
- package/chains/definitions/abstractTestnet.ts +2 -0
- package/chains/definitions/{zkSync.ts → zksync.ts} +4 -3
- package/chains/definitions/{zkSyncInMemoryNode.ts → zksyncInMemoryNode.ts} +2 -2
- package/chains/definitions/{zkSyncLocalNode.ts → zksyncLocalNode.ts} +2 -2
- package/chains/definitions/{zkSyncSepoliaTestnet.ts → zksyncSepoliaTestnet.ts} +5 -3
- package/chains/index.ts +113 -34
- package/errors/abi.ts +37 -37
- package/errors/account.ts +2 -2
- package/errors/address.ts +1 -1
- package/errors/base.ts +41 -22
- package/errors/blob.ts +4 -5
- package/errors/block.ts +1 -2
- package/errors/ccip.ts +3 -3
- package/errors/chain.ts +9 -10
- package/errors/contract.ts +6 -10
- package/errors/cursor.ts +5 -4
- package/errors/data.ts +3 -3
- package/errors/eip712.ts +1 -1
- package/errors/encoding.ts +7 -5
- package/errors/ens.ts +6 -5
- package/errors/estimateGas.ts +1 -2
- package/errors/fee.ts +7 -5
- package/errors/log.ts +3 -2
- package/errors/node.ts +12 -17
- package/errors/request.ts +5 -10
- package/errors/rpc.ts +29 -25
- package/errors/siwe.ts +1 -2
- package/errors/stateOverride.ts +6 -4
- package/errors/transaction.ts +19 -19
- package/errors/transport.ts +1 -0
- package/errors/utils.ts +0 -3
- package/errors/version.ts +1 -1
- package/experimental/eip5792/decorators/eip5792.ts +13 -13
- package/experimental/eip7702/actions/signAuthorization.ts +136 -0
- package/experimental/eip7702/decorators/eip7702.ts +86 -0
- package/experimental/eip7702/types/authorization.ts +30 -0
- package/experimental/eip7702/types/rpc.ts +12 -0
- package/experimental/eip7702/utils/hashAuthorization.ts +60 -0
- package/experimental/eip7702/utils/recoverAuthorizationAddress.ts +61 -0
- package/experimental/eip7702/utils/serializeAuthorizationList.ts +33 -0
- package/experimental/eip7702/utils/verifyAuthorization.ts +52 -0
- package/experimental/erc7715/decorators/erc7715.ts +7 -7
- package/experimental/index.ts +72 -18
- package/index.ts +29 -4
- package/op-stack/errors/withdrawal.ts +2 -3
- package/package.json +1 -1
- package/types/rpc.ts +21 -1
- package/types/transaction.ts +103 -54
- package/types/utils.ts +0 -15
- package/utils/formatters/transaction.ts +32 -0
- package/utils/formatters/transactionRequest.ts +31 -0
- package/utils/index.ts +1 -1
- package/utils/signature/hashMessage.ts +2 -2
- package/utils/transaction/assertTransaction.ts +24 -12
- package/utils/transaction/getSerializedTransactionType.ts +7 -0
- package/utils/transaction/getTransactionType.ts +95 -60
- package/utils/transaction/parseTransaction.ts +127 -0
- package/utils/transaction/serializeTransaction.ts +66 -0
- package/zksync/actions/deployContract.ts +1 -1
- package/zksync/actions/estimateFee.ts +4 -4
- package/zksync/actions/estimateGasL1ToL2.ts +2 -2
- package/zksync/actions/getAllBalances.ts +2 -2
- package/zksync/actions/getBaseTokenL1Address.ts +2 -2
- package/zksync/actions/getBlockDetails.ts +6 -6
- package/zksync/actions/getBridgehubContractAddress.ts +2 -2
- package/zksync/actions/getDefaultBridgeAddresses.ts +2 -2
- package/zksync/actions/getL1BatchBlockRange.ts +2 -2
- package/zksync/actions/getL1BatchDetails.ts +6 -6
- package/zksync/actions/getL1BatchNumber.ts +2 -2
- package/zksync/actions/getL1ChainId.ts +2 -2
- package/zksync/actions/getLogProof.ts +2 -2
- package/zksync/actions/getMainContractAddress.ts +2 -2
- package/zksync/actions/getRawBlockTransactions.ts +6 -6
- package/zksync/actions/getTestnetPaymasterAddress.ts +2 -2
- package/zksync/actions/getTransactionDetails.ts +4 -4
- package/zksync/actions/sendEip712Transaction.ts +4 -4
- package/zksync/actions/sendTransaction.ts +4 -4
- package/zksync/actions/signEip712Transaction.ts +4 -4
- package/zksync/actions/signTransaction.ts +4 -4
- package/zksync/chains.ts +4 -3
- package/zksync/decorators/eip712.ts +13 -13
- package/zksync/decorators/publicL2.ts +37 -37
- package/zksync/errors/bytecode.ts +3 -3
- package/zksync/errors/token-is-eth.ts +1 -2
- package/zksync/errors/transaction.ts +1 -2
- package/zksync/formatters.ts +22 -22
- package/zksync/index.ts +111 -32
- package/zksync/serializers.ts +7 -7
- package/zksync/types/block.ts +9 -9
- package/zksync/types/chain.ts +5 -5
- package/zksync/types/eip1193.ts +8 -8
- package/zksync/types/eip712.ts +3 -3
- package/zksync/types/fee.ts +2 -2
- package/zksync/types/log.ts +4 -4
- package/zksync/types/transaction.ts +45 -45
- package/zksync/utils/assertEip712Request.ts +2 -2
- package/zksync/utils/assertEip712Transaction.ts +4 -4
- package/zksync/utils/getEip712Domain.ts +9 -9
- package/zksync/utils/isEip712Transaction.ts +8 -3
- package/_cjs/chains/definitions/zkSyncSepoliaTestnet.js.map +0 -1
- package/_cjs/chains/definitions/zkSyncTestnet.js +0 -31
- package/_cjs/chains/definitions/zkSyncTestnet.js.map +0 -1
- package/_esm/chains/definitions/zkSyncTestnet.js +0 -29
- package/_esm/chains/definitions/zkSyncTestnet.js.map +0 -1
- package/_types/chains/definitions/zkSyncTestnet.d.ts +0 -351
- package/_types/chains/definitions/zkSyncTestnet.d.ts.map +0 -1
- package/chains/definitions/zkSyncTestnet.ts +0 -29
@@ -0,0 +1,63 @@
|
|
1
|
+
import type { ErrorType } from '../../errors/utils.js'
|
2
|
+
import type {
|
3
|
+
Authorization,
|
4
|
+
SignedAuthorization,
|
5
|
+
} from '../../experimental/eip7702/types/authorization.js'
|
6
|
+
import {
|
7
|
+
type HashAuthorizationErrorType,
|
8
|
+
hashAuthorization,
|
9
|
+
} from '../../experimental/eip7702/utils/hashAuthorization.js'
|
10
|
+
import type { Hex, Signature } from '../../types/misc.js'
|
11
|
+
import type { Prettify } from '../../types/utils.js'
|
12
|
+
import {
|
13
|
+
type SignErrorType,
|
14
|
+
type SignParameters,
|
15
|
+
type SignReturnType,
|
16
|
+
sign,
|
17
|
+
} from './sign.js'
|
18
|
+
|
19
|
+
type To = 'object' | 'bytes' | 'hex'
|
20
|
+
|
21
|
+
export type SignAuthorizationParameters<to extends To = 'object'> =
|
22
|
+
Authorization & {
|
23
|
+
/** The private key to sign with. */
|
24
|
+
privateKey: Hex
|
25
|
+
to?: SignParameters<to>['to'] | undefined
|
26
|
+
}
|
27
|
+
|
28
|
+
export type SignAuthorizationReturnType<to extends To = 'object'> = Prettify<
|
29
|
+
to extends 'object' ? SignedAuthorization : SignReturnType<to>
|
30
|
+
>
|
31
|
+
|
32
|
+
export type SignAuthorizationErrorType =
|
33
|
+
| SignErrorType
|
34
|
+
| HashAuthorizationErrorType
|
35
|
+
| ErrorType
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Signs an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.
|
39
|
+
*/
|
40
|
+
export async function experimental_signAuthorization<to extends To = 'object'>(
|
41
|
+
parameters: SignAuthorizationParameters<to>,
|
42
|
+
): Promise<SignAuthorizationReturnType<to>> {
|
43
|
+
const {
|
44
|
+
contractAddress,
|
45
|
+
chainId,
|
46
|
+
nonce,
|
47
|
+
privateKey,
|
48
|
+
to = 'object',
|
49
|
+
} = parameters
|
50
|
+
const signature = await sign({
|
51
|
+
hash: hashAuthorization({ contractAddress, chainId, nonce }),
|
52
|
+
privateKey,
|
53
|
+
to,
|
54
|
+
})
|
55
|
+
if (to === 'object')
|
56
|
+
return {
|
57
|
+
contractAddress,
|
58
|
+
chainId,
|
59
|
+
nonce,
|
60
|
+
...(signature as Signature),
|
61
|
+
} as any
|
62
|
+
return signature as any
|
63
|
+
}
|
@@ -6,7 +6,11 @@ import {
|
|
6
6
|
} from '../../accounts/utils/parseAccount.js'
|
7
7
|
import type { Client } from '../../clients/createClient.js'
|
8
8
|
import type { Transport } from '../../clients/transports/createTransport.js'
|
9
|
-
import
|
9
|
+
import { BaseError } from '../../errors/base.js'
|
10
|
+
import {
|
11
|
+
type RecoverAuthorizationAddressErrorType,
|
12
|
+
recoverAuthorizationAddress,
|
13
|
+
} from '../../experimental/eip7702/utils/recoverAuthorizationAddress.js'
|
10
14
|
import type { BlockTag } from '../../types/block.js'
|
11
15
|
import type { Chain } from '../../types/chain.js'
|
12
16
|
import type { StateOverride } from '../../types/stateOverride.js'
|
@@ -36,6 +40,7 @@ import {
|
|
36
40
|
type PrepareTransactionRequestParameters,
|
37
41
|
prepareTransactionRequest,
|
38
42
|
} from '../wallet/prepareTransactionRequest.js'
|
43
|
+
import { getBalance } from './getBalance.js'
|
39
44
|
|
40
45
|
export type EstimateGasParameters<
|
41
46
|
chain extends Chain | undefined = Chain | undefined,
|
@@ -66,6 +71,7 @@ export type EstimateGasErrorType = GetEstimateGasErrorReturnType<
|
|
66
71
|
| ParseAccountErrorType
|
67
72
|
| NumberToHexErrorType
|
68
73
|
| RequestErrorType
|
74
|
+
| RecoverAuthorizationAddressErrorType
|
69
75
|
| AssertRequestErrorType
|
70
76
|
>
|
71
77
|
|
@@ -107,6 +113,7 @@ export async function estimateGas<
|
|
107
113
|
try {
|
108
114
|
const {
|
109
115
|
accessList,
|
116
|
+
authorizationList,
|
110
117
|
blobs,
|
111
118
|
blobVersionedHashes,
|
112
119
|
blockNumber,
|
@@ -118,7 +125,6 @@ export async function estimateGas<
|
|
118
125
|
maxFeePerGas,
|
119
126
|
maxPriorityFeePerGas,
|
120
127
|
nonce,
|
121
|
-
to,
|
122
128
|
value,
|
123
129
|
stateOverride,
|
124
130
|
...rest
|
@@ -135,6 +141,25 @@ export async function estimateGas<
|
|
135
141
|
|
136
142
|
const rpcStateOverride = serializeStateOverride(stateOverride)
|
137
143
|
|
144
|
+
const to = await (async () => {
|
145
|
+
// If `to` exists on the parameters, use that.
|
146
|
+
if (rest.to) return rest.to
|
147
|
+
|
148
|
+
// If no `to` exists, and we are sending a EIP-7702 transaction, use the
|
149
|
+
// address of the first authorization in the list.
|
150
|
+
if (authorizationList && authorizationList.length > 0)
|
151
|
+
return await recoverAuthorizationAddress({
|
152
|
+
authorization: authorizationList[0],
|
153
|
+
}).catch(() => {
|
154
|
+
throw new BaseError(
|
155
|
+
'`to` is required. Could not infer from `authorizationList`',
|
156
|
+
)
|
157
|
+
})
|
158
|
+
|
159
|
+
// Otherwise, we are sending a deployment transaction.
|
160
|
+
return undefined
|
161
|
+
})()
|
162
|
+
|
138
163
|
assertRequest(args as AssertRequestParameters)
|
139
164
|
|
140
165
|
const chainFormat = client.chain?.formatters?.transactionRequest?.format
|
@@ -145,6 +170,7 @@ export async function estimateGas<
|
|
145
170
|
...extract(rest, { format: chainFormat }),
|
146
171
|
from: account?.address,
|
147
172
|
accessList,
|
173
|
+
authorizationList,
|
148
174
|
blobs,
|
149
175
|
blobVersionedHashes,
|
150
176
|
data,
|
@@ -158,15 +184,52 @@ export async function estimateGas<
|
|
158
184
|
value,
|
159
185
|
} as TransactionRequest)
|
160
186
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
187
|
+
function estimateGas_rpc(parameters: {
|
188
|
+
block: any
|
189
|
+
request: any
|
190
|
+
rpcStateOverride: any
|
191
|
+
}) {
|
192
|
+
const { block, request, rpcStateOverride } = parameters
|
193
|
+
return client.request({
|
194
|
+
method: 'eth_estimateGas',
|
195
|
+
params: rpcStateOverride
|
196
|
+
? [request, block ?? 'latest', rpcStateOverride]
|
197
|
+
: block
|
198
|
+
? [request, block]
|
199
|
+
: [request],
|
200
|
+
})
|
201
|
+
}
|
202
|
+
|
203
|
+
let estimate = BigInt(
|
204
|
+
await estimateGas_rpc({ block, request, rpcStateOverride }),
|
205
|
+
)
|
206
|
+
|
207
|
+
// TODO(7702): Remove this once https://github.com/ethereum/execution-apis/issues/561 is resolved.
|
208
|
+
// Authorization list schema is not implemented on JSON-RPC spec yet, so we need to
|
209
|
+
// manually estimate the gas.
|
210
|
+
if (authorizationList) {
|
211
|
+
const value = await getBalance(client, { address: request.from })
|
212
|
+
const estimates = await Promise.all(
|
213
|
+
authorizationList.map(async (authorization) => {
|
214
|
+
const { contractAddress } = authorization
|
215
|
+
const estimate = await estimateGas_rpc({
|
216
|
+
block,
|
217
|
+
request: {
|
218
|
+
authorizationList: undefined,
|
219
|
+
data,
|
220
|
+
from: account?.address,
|
221
|
+
to: contractAddress,
|
222
|
+
value: numberToHex(value),
|
223
|
+
},
|
224
|
+
rpcStateOverride,
|
225
|
+
}).catch(() => 100_000n)
|
226
|
+
return 2n * BigInt(estimate)
|
227
|
+
}),
|
228
|
+
)
|
229
|
+
estimate += estimates.reduce((acc, curr) => acc + curr, 0n)
|
230
|
+
}
|
231
|
+
|
232
|
+
return estimate
|
170
233
|
} catch (err) {
|
171
234
|
throw getEstimateGasError(err as BaseError, {
|
172
235
|
...args,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi, Address } from 'abitype'
|
1
|
+
import type { Abi, AbiFunction, AbiStateMutability, Address } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
type ParseAccountErrorType,
|
@@ -16,10 +16,15 @@ import type {
|
|
16
16
|
ContractFunctionParameters,
|
17
17
|
ContractFunctionReturnType,
|
18
18
|
ExtractAbiFunctionForArgs,
|
19
|
-
GetValue,
|
20
19
|
} from '../../types/contract.js'
|
21
20
|
import type { Hex } from '../../types/misc.js'
|
22
|
-
import type {
|
21
|
+
import type {
|
22
|
+
IsNarrowable,
|
23
|
+
NoInfer,
|
24
|
+
Prettify,
|
25
|
+
UnionEvaluate,
|
26
|
+
UnionOmit,
|
27
|
+
} from '../../types/utils.js'
|
23
28
|
import {
|
24
29
|
type DecodeFunctionResultErrorType,
|
25
30
|
decodeFunctionResult,
|
@@ -34,9 +39,35 @@ import {
|
|
34
39
|
} from '../../utils/errors/getContractError.js'
|
35
40
|
import type { WriteContractParameters } from '../wallet/writeContract.js'
|
36
41
|
|
42
|
+
import type { TransactionRequest } from '../../types/transaction.js'
|
37
43
|
import { getAction } from '../../utils/getAction.js'
|
38
44
|
import { type CallErrorType, type CallParameters, call } from './call.js'
|
39
45
|
|
46
|
+
export type GetMutabilityAwareValue<
|
47
|
+
abi extends Abi | readonly unknown[],
|
48
|
+
mutability extends AbiStateMutability = AbiStateMutability,
|
49
|
+
functionName extends ContractFunctionName<
|
50
|
+
abi,
|
51
|
+
mutability
|
52
|
+
> = ContractFunctionName<abi, mutability>,
|
53
|
+
valueType = TransactionRequest['value'],
|
54
|
+
args extends ContractFunctionArgs<
|
55
|
+
abi,
|
56
|
+
mutability,
|
57
|
+
functionName
|
58
|
+
> = ContractFunctionArgs<abi, mutability, functionName>,
|
59
|
+
abiFunction extends AbiFunction = abi extends Abi
|
60
|
+
? ExtractAbiFunctionForArgs<abi, mutability, functionName, args>
|
61
|
+
: AbiFunction,
|
62
|
+
_Narrowable extends boolean = IsNarrowable<abi, Abi>,
|
63
|
+
> = _Narrowable extends true
|
64
|
+
? abiFunction['stateMutability'] extends 'payable'
|
65
|
+
? { value?: NoInfer<valueType> | undefined }
|
66
|
+
: abiFunction['payable'] extends true
|
67
|
+
? { value?: NoInfer<valueType> | undefined }
|
68
|
+
: { value?: undefined }
|
69
|
+
: { value?: NoInfer<valueType> | undefined }
|
70
|
+
|
40
71
|
export type SimulateContractParameters<
|
41
72
|
abi extends Abi | readonly unknown[] = Abi,
|
42
73
|
functionName extends ContractFunctionName<
|
@@ -75,34 +106,37 @@ export type SimulateContractParameters<
|
|
75
106
|
| 'factoryData'
|
76
107
|
| 'value'
|
77
108
|
> &
|
78
|
-
|
109
|
+
GetMutabilityAwareValue<
|
79
110
|
abi,
|
111
|
+
'nonpayable' | 'payable',
|
80
112
|
functionName,
|
81
113
|
CallParameters<derivedChain> extends CallParameters
|
82
114
|
? CallParameters<derivedChain>['value']
|
83
|
-
: CallParameters['value']
|
115
|
+
: CallParameters['value'],
|
116
|
+
args
|
84
117
|
>
|
85
118
|
|
86
119
|
export type SimulateContractReturnType<
|
87
|
-
abi extends Abi | readonly unknown[] = Abi,
|
88
|
-
functionName extends ContractFunctionName<
|
120
|
+
out abi extends Abi | readonly unknown[] = Abi,
|
121
|
+
in out functionName extends ContractFunctionName<
|
89
122
|
abi,
|
90
123
|
'nonpayable' | 'payable'
|
91
124
|
> = ContractFunctionName<abi, 'nonpayable' | 'payable'>,
|
92
|
-
args extends ContractFunctionArgs<
|
125
|
+
in out args extends ContractFunctionArgs<
|
93
126
|
abi,
|
94
127
|
'nonpayable' | 'payable',
|
95
128
|
functionName
|
96
129
|
> = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
130
|
+
/** @ts-expect-error cast variance */
|
131
|
+
out chain extends Chain | undefined = Chain | undefined,
|
132
|
+
out account extends Account | undefined = Account | undefined,
|
133
|
+
out chainOverride extends Chain | undefined = Chain | undefined,
|
134
|
+
out accountOverride extends Account | Address | undefined =
|
101
135
|
| Account
|
102
136
|
| Address
|
103
137
|
| undefined,
|
104
138
|
///
|
105
|
-
minimizedAbi extends Abi = readonly [
|
139
|
+
in out minimizedAbi extends Abi = readonly [
|
106
140
|
ExtractAbiFunctionForArgs<
|
107
141
|
abi extends Abi ? abi : Abi,
|
108
142
|
'nonpayable' | 'payable',
|
@@ -110,7 +144,7 @@ export type SimulateContractReturnType<
|
|
110
144
|
args
|
111
145
|
>,
|
112
146
|
],
|
113
|
-
resolvedAccount extends Account | undefined = accountOverride extends
|
147
|
+
out resolvedAccount extends Account | undefined = accountOverride extends
|
114
148
|
| Account
|
115
149
|
| Address
|
116
150
|
? ParseAccount<accountOverride>
|
@@ -38,6 +38,7 @@ import type {
|
|
38
38
|
TransactionRequestEIP1559,
|
39
39
|
TransactionRequestEIP2930,
|
40
40
|
TransactionRequestEIP4844,
|
41
|
+
TransactionRequestEIP7702,
|
41
42
|
TransactionRequestLegacy,
|
42
43
|
TransactionSerializable,
|
43
44
|
} from '../../types/transaction.js'
|
@@ -142,7 +143,8 @@ export type PrepareTransactionRequestReturnType<
|
|
142
143
|
| (_transactionType extends 'legacy' ? TransactionRequestLegacy : never)
|
143
144
|
| (_transactionType extends 'eip1559' ? TransactionRequestEIP1559 : never)
|
144
145
|
| (_transactionType extends 'eip2930' ? TransactionRequestEIP2930 : never)
|
145
|
-
| (_transactionType extends 'eip4844' ? TransactionRequestEIP4844 : never)
|
146
|
+
| (_transactionType extends 'eip4844' ? TransactionRequestEIP4844 : never)
|
147
|
+
| (_transactionType extends 'eip7702' ? TransactionRequestEIP7702 : never),
|
146
148
|
> = Prettify<
|
147
149
|
UnionRequiredBy<
|
148
150
|
Extract<
|
@@ -12,8 +12,12 @@ import {
|
|
12
12
|
AccountTypeNotSupportedError,
|
13
13
|
type AccountTypeNotSupportedErrorType,
|
14
14
|
} from '../../errors/account.js'
|
15
|
-
import
|
15
|
+
import { BaseError } from '../../errors/base.js'
|
16
16
|
import type { ErrorType } from '../../errors/utils.js'
|
17
|
+
import {
|
18
|
+
type RecoverAuthorizationAddressErrorType,
|
19
|
+
recoverAuthorizationAddress,
|
20
|
+
} from '../../experimental/eip7702/utils/recoverAuthorizationAddress.js'
|
17
21
|
import type { GetAccountParameter } from '../../types/account.js'
|
18
22
|
import type { Chain, DeriveChain } from '../../types/chain.js'
|
19
23
|
import type { GetChainParameter } from '../../types/chain.js'
|
@@ -85,6 +89,7 @@ export type SendTransactionErrorType =
|
|
85
89
|
| GetChainIdErrorType
|
86
90
|
| PrepareTransactionRequestErrorType
|
87
91
|
| SendRawTransactionErrorType
|
92
|
+
| RecoverAuthorizationAddressErrorType
|
88
93
|
| SignTransactionErrorType
|
89
94
|
| RequestErrorType
|
90
95
|
>
|
@@ -148,6 +153,7 @@ export async function sendTransaction<
|
|
148
153
|
account: account_ = client.account,
|
149
154
|
chain = client.chain,
|
150
155
|
accessList,
|
156
|
+
authorizationList,
|
151
157
|
blobs,
|
152
158
|
data,
|
153
159
|
gas,
|
@@ -156,7 +162,6 @@ export async function sendTransaction<
|
|
156
162
|
maxFeePerGas,
|
157
163
|
maxPriorityFeePerGas,
|
158
164
|
nonce,
|
159
|
-
to,
|
160
165
|
value,
|
161
166
|
...rest
|
162
167
|
} = parameters
|
@@ -179,6 +184,25 @@ export async function sendTransaction<
|
|
179
184
|
})
|
180
185
|
}
|
181
186
|
|
187
|
+
const to = await (async () => {
|
188
|
+
// If `to` exists on the parameters, use that.
|
189
|
+
if (parameters.to) return parameters.to
|
190
|
+
|
191
|
+
// If no `to` exists, and we are sending a EIP-7702 transaction, use the
|
192
|
+
// address of the first authorization in the list.
|
193
|
+
if (authorizationList && authorizationList.length > 0)
|
194
|
+
return await recoverAuthorizationAddress({
|
195
|
+
authorization: authorizationList[0],
|
196
|
+
}).catch(() => {
|
197
|
+
throw new BaseError(
|
198
|
+
'`to` is required. Could not infer from `authorizationList`.',
|
199
|
+
)
|
200
|
+
})
|
201
|
+
|
202
|
+
// Otherwise, we are sending a deployment transaction.
|
203
|
+
return undefined
|
204
|
+
})()
|
205
|
+
|
182
206
|
if (account.type === 'json-rpc') {
|
183
207
|
const chainFormat = client.chain?.formatters?.transactionRequest?.format
|
184
208
|
const format = chainFormat || formatTransactionRequest
|
@@ -187,6 +211,7 @@ export async function sendTransaction<
|
|
187
211
|
// Pick out extra data that might exist on the chain's transaction request type.
|
188
212
|
...extract(rest, { format: chainFormat }),
|
189
213
|
accessList,
|
214
|
+
authorizationList,
|
190
215
|
blobs,
|
191
216
|
chainId,
|
192
217
|
data,
|
@@ -218,6 +243,7 @@ export async function sendTransaction<
|
|
218
243
|
)({
|
219
244
|
account,
|
220
245
|
accessList,
|
246
|
+
authorizationList,
|
221
247
|
blobs,
|
222
248
|
chain,
|
223
249
|
chainId,
|
@@ -229,9 +255,9 @@ export async function sendTransaction<
|
|
229
255
|
maxPriorityFeePerGas,
|
230
256
|
nonce,
|
231
257
|
parameters: [...defaultParameters, 'sidecars'],
|
232
|
-
to,
|
233
258
|
value,
|
234
259
|
...rest,
|
260
|
+
to,
|
235
261
|
} as any)
|
236
262
|
|
237
263
|
const serializer = chain?.serializers?.transaction
|
@@ -256,7 +282,10 @@ export async function sendTransaction<
|
|
256
282
|
type: 'smart',
|
257
283
|
})
|
258
284
|
|
259
|
-
throw new
|
285
|
+
throw new AccountTypeNotSupportedError({
|
286
|
+
docsPath: '/docs/actions/wallet/sendTransaction',
|
287
|
+
type: (account as { type: string }).type,
|
288
|
+
})
|
260
289
|
} catch (err) {
|
261
290
|
if (err instanceof AccountTypeNotSupportedError) throw err
|
262
291
|
throw getTransactionError(err as BaseError, {
|
@@ -14,7 +14,6 @@ import type {
|
|
14
14
|
ContractFunctionArgs,
|
15
15
|
ContractFunctionName,
|
16
16
|
ContractFunctionParameters,
|
17
|
-
GetValue,
|
18
17
|
} from '../../types/contract.js'
|
19
18
|
import type { Hex } from '../../types/misc.js'
|
20
19
|
import type { Prettify, UnionEvaluate, UnionOmit } from '../../types/utils.js'
|
@@ -25,6 +24,7 @@ import {
|
|
25
24
|
} from '../../utils/abi/encodeFunctionData.js'
|
26
25
|
import type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'
|
27
26
|
import { getAction } from '../../utils/getAction.js'
|
27
|
+
import type { GetMutabilityAwareValue } from '../public/simulateContract.js'
|
28
28
|
import {
|
29
29
|
type SendTransactionErrorType,
|
30
30
|
type SendTransactionReturnType,
|
@@ -59,10 +59,12 @@ export type WriteContractParameters<
|
|
59
59
|
GetChainParameter<chain, chainOverride> &
|
60
60
|
Prettify<
|
61
61
|
GetAccountParameter<account> &
|
62
|
-
|
62
|
+
GetMutabilityAwareValue<
|
63
63
|
abi,
|
64
|
+
'nonpayable' | 'payable',
|
64
65
|
functionName,
|
65
|
-
FormattedTransactionRequest<derivedChain>['value']
|
66
|
+
FormattedTransactionRequest<derivedChain>['value'],
|
67
|
+
args
|
66
68
|
> & {
|
67
69
|
/** Data to append to the end of the calldata. Useful for adding a ["domain" tag](https://opensea.notion.site/opensea/Seaport-Order-Attributions-ec2d69bf455041a5baa490941aad307f). */
|
68
70
|
dataSuffix?: Hex | undefined
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
2
|
import { chainConfig } from '../../zksync/chainConfig.js'
|
3
3
|
|
4
|
-
export const
|
4
|
+
export const zksync = /*#__PURE__*/ defineChain({
|
5
5
|
...chainConfig,
|
6
6
|
id: 324,
|
7
|
-
name: '
|
7
|
+
name: 'ZKsync Era',
|
8
8
|
network: 'zksync-era',
|
9
9
|
nativeCurrency: {
|
10
10
|
decimals: 18,
|
@@ -24,8 +24,9 @@ export const zkSync = /*#__PURE__*/ defineChain({
|
|
24
24
|
apiUrl: 'https://api-era.zksync.network/api',
|
25
25
|
},
|
26
26
|
native: {
|
27
|
-
name: '
|
27
|
+
name: 'ZKsync Explorer',
|
28
28
|
url: 'https://explorer.zksync.io/',
|
29
|
+
apiUrl: 'https://block-explorer-api.mainnet.zksync.io/api',
|
29
30
|
},
|
30
31
|
},
|
31
32
|
contracts: {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
2
|
import { chainConfig } from '../../zksync/chainConfig.js'
|
3
3
|
|
4
|
-
export const
|
4
|
+
export const zksyncInMemoryNode = /*#__PURE__*/ defineChain({
|
5
5
|
...chainConfig,
|
6
6
|
id: 260,
|
7
|
-
name: '
|
7
|
+
name: 'ZKsync InMemory Node',
|
8
8
|
network: 'zksync-in-memory-node',
|
9
9
|
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
10
10
|
rpcUrls: {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
2
|
import { chainConfig } from '../../zksync/chainConfig.js'
|
3
3
|
|
4
|
-
export const
|
4
|
+
export const zksyncLocalNode = /*#__PURE__*/ defineChain({
|
5
5
|
...chainConfig,
|
6
6
|
id: 270,
|
7
|
-
name: '
|
7
|
+
name: 'ZKsync CLI Local Node',
|
8
8
|
network: 'zksync-cli-local-node',
|
9
9
|
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
10
10
|
rpcUrls: {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
2
|
import { chainConfig } from '../../zksync/chainConfig.js'
|
3
3
|
|
4
|
-
export const
|
4
|
+
export const zksyncSepoliaTestnet = /*#__PURE__*/ defineChain({
|
5
5
|
...chainConfig,
|
6
6
|
id: 300,
|
7
|
-
name: '
|
7
|
+
name: 'ZKsync Sepolia Testnet',
|
8
8
|
network: 'zksync-sepolia-testnet',
|
9
9
|
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
10
10
|
rpcUrls: {
|
@@ -17,10 +17,12 @@ export const zkSyncSepoliaTestnet = /*#__PURE__*/ defineChain({
|
|
17
17
|
default: {
|
18
18
|
name: 'Etherscan',
|
19
19
|
url: 'https://sepolia-era.zksync.network/',
|
20
|
+
apiUrl: 'https://api-sepolia-era.zksync.network/api',
|
20
21
|
},
|
21
22
|
native: {
|
22
|
-
name: '
|
23
|
+
name: 'ZKsync Explorer',
|
23
24
|
url: 'https://sepolia.explorer.zksync.io/',
|
25
|
+
blockExplorerApi: 'https://block-explorer-api.sepolia.zksync.dev/api',
|
24
26
|
},
|
25
27
|
},
|
26
28
|
contracts: {
|