viem 2.20.1 → 2.21.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +22 -0
- package/README.md +12 -0
- package/_cjs/actions/public/estimateFeesPerGas.js.map +1 -1
- package/_cjs/actions/public/estimateMaxPriorityFeePerGas.js +14 -10
- package/_cjs/actions/public/estimateMaxPriorityFeePerGas.js.map +1 -1
- package/_cjs/actions/wallet/prepareTransactionRequest.js +3 -3
- package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_cjs/actions/wallet/sendTransaction.js +1 -0
- package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/_cjs/chains/definitions/fluence.js +23 -0
- package/_cjs/chains/definitions/fluence.js.map +1 -0
- package/_cjs/chains/definitions/fluenceStage.js +24 -0
- package/_cjs/chains/definitions/fluenceStage.js.map +1 -0
- package/_cjs/chains/definitions/fluenceTestnet.js +24 -0
- package/_cjs/chains/definitions/fluenceTestnet.js.map +1 -0
- package/_cjs/chains/definitions/linea.js +2 -0
- package/_cjs/chains/definitions/linea.js.map +1 -1
- package/_cjs/chains/definitions/lineaSepolia.js +2 -0
- package/_cjs/chains/definitions/lineaSepolia.js.map +1 -1
- package/_cjs/chains/definitions/soneiumMinato.js +29 -0
- package/_cjs/chains/definitions/soneiumMinato.js.map +1 -0
- package/_cjs/chains/definitions/sophonTestnet.js +1 -1
- package/_cjs/chains/definitions/sophonTestnet.js.map +1 -1
- package/_cjs/chains/definitions/storyTestnet.js +24 -0
- package/_cjs/chains/definitions/storyTestnet.js.map +1 -0
- package/_cjs/chains/definitions/tron.js +22 -0
- package/_cjs/chains/definitions/tron.js.map +1 -0
- package/_cjs/chains/index.js +17 -5
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/errors/node.js +1 -1
- package/_cjs/errors/node.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/index.js.map +1 -1
- package/_cjs/linea/actions/estimateGas.js +57 -0
- package/_cjs/linea/actions/estimateGas.js.map +1 -0
- package/_cjs/linea/chainConfig.js +42 -0
- package/_cjs/linea/chainConfig.js.map +1 -0
- package/_cjs/linea/chains.js +8 -0
- package/_cjs/linea/chains.js.map +1 -0
- package/_cjs/linea/index.js +9 -0
- package/_cjs/linea/index.js.map +1 -0
- package/_cjs/linea/types/rpc.js +3 -0
- package/_cjs/linea/types/rpc.js.map +1 -0
- package/_cjs/zksync/actions/sendEip712Transaction.js +1 -0
- package/_cjs/zksync/actions/sendEip712Transaction.js.map +1 -1
- package/_esm/actions/public/estimateFeesPerGas.js.map +1 -1
- package/_esm/actions/public/estimateMaxPriorityFeePerGas.js +14 -10
- package/_esm/actions/public/estimateMaxPriorityFeePerGas.js.map +1 -1
- package/_esm/actions/wallet/prepareTransactionRequest.js +3 -3
- package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_esm/actions/wallet/sendTransaction.js +1 -0
- package/_esm/actions/wallet/sendTransaction.js.map +1 -1
- package/_esm/chains/definitions/fluence.js +20 -0
- package/_esm/chains/definitions/fluence.js.map +1 -0
- package/_esm/chains/definitions/fluenceStage.js +21 -0
- package/_esm/chains/definitions/fluenceStage.js.map +1 -0
- package/_esm/chains/definitions/fluenceTestnet.js +21 -0
- package/_esm/chains/definitions/fluenceTestnet.js.map +1 -0
- package/_esm/chains/definitions/linea.js +2 -0
- package/_esm/chains/definitions/linea.js.map +1 -1
- package/_esm/chains/definitions/lineaSepolia.js +2 -0
- package/_esm/chains/definitions/lineaSepolia.js.map +1 -1
- package/_esm/chains/definitions/soneiumMinato.js +26 -0
- package/_esm/chains/definitions/soneiumMinato.js.map +1 -0
- package/_esm/chains/definitions/sophonTestnet.js +1 -1
- package/_esm/chains/definitions/sophonTestnet.js.map +1 -1
- package/_esm/chains/definitions/storyTestnet.js +21 -0
- package/_esm/chains/definitions/storyTestnet.js.map +1 -0
- package/_esm/chains/definitions/tron.js +19 -0
- package/_esm/chains/definitions/tron.js.map +1 -0
- package/_esm/chains/index.js +6 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/errors/node.js +1 -1
- package/_esm/errors/node.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/index.js.map +1 -1
- package/_esm/linea/actions/estimateGas.js +77 -0
- package/_esm/linea/actions/estimateGas.js.map +1 -0
- package/_esm/linea/chainConfig.js +46 -0
- package/_esm/linea/chainConfig.js.map +1 -0
- package/_esm/linea/chains.js +4 -0
- package/_esm/linea/chains.js.map +1 -0
- package/_esm/linea/index.js +4 -0
- package/_esm/linea/index.js.map +1 -0
- package/_esm/linea/types/rpc.js +2 -0
- package/_esm/linea/types/rpc.js.map +1 -0
- package/_esm/zksync/actions/sendEip712Transaction.js +1 -0
- package/_esm/zksync/actions/sendEip712Transaction.js.map +1 -1
- package/_types/actions/public/estimateFeesPerGas.d.ts +2 -1
- package/_types/actions/public/estimateFeesPerGas.d.ts.map +1 -1
- package/_types/actions/public/estimateMaxPriorityFeePerGas.d.ts.map +1 -1
- package/_types/actions/wallet/prepareTransactionRequest.d.ts +10 -0
- package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
- package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/_types/chains/definitions/abstractTestnet.d.ts +5 -4
- package/_types/chains/definitions/abstractTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/acala.d.ts +4 -3
- package/_types/chains/definitions/acala.d.ts.map +1 -1
- package/_types/chains/definitions/anvil.d.ts +4 -3
- package/_types/chains/definitions/anvil.d.ts.map +1 -1
- package/_types/chains/definitions/areonNetwork.d.ts +4 -3
- package/_types/chains/definitions/areonNetwork.d.ts.map +1 -1
- package/_types/chains/definitions/areonNetworkTestnet.d.ts +4 -3
- package/_types/chains/definitions/areonNetworkTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/auroraTestnet.d.ts +4 -3
- package/_types/chains/definitions/auroraTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/auroria.d.ts +4 -3
- package/_types/chains/definitions/auroria.d.ts.map +1 -1
- package/_types/chains/definitions/b3.d.ts +4 -3
- package/_types/chains/definitions/b3.d.ts.map +1 -1
- package/_types/chains/definitions/b3Sepolia.d.ts +4 -3
- package/_types/chains/definitions/b3Sepolia.d.ts.map +1 -1
- package/_types/chains/definitions/bahamut.d.ts +4 -3
- package/_types/chains/definitions/bahamut.d.ts.map +1 -1
- package/_types/chains/definitions/bearNetworkChainMainnet.d.ts +4 -3
- package/_types/chains/definitions/bearNetworkChainMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/bearNetworkChainTestnet.d.ts +4 -3
- package/_types/chains/definitions/bearNetworkChainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/berachainTestnet.d.ts +4 -3
- package/_types/chains/definitions/berachainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bevmMainnet.d.ts +4 -3
- package/_types/chains/definitions/bevmMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/bitTorrentTestnet.d.ts +4 -3
- package/_types/chains/definitions/bitTorrentTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bitkub.d.ts +4 -3
- package/_types/chains/definitions/bitkub.d.ts.map +1 -1
- package/_types/chains/definitions/bitkubTestnet.d.ts +4 -3
- package/_types/chains/definitions/bitkubTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bobaSepolia.d.ts +4 -3
- package/_types/chains/definitions/bobaSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/botanixTestnet.d.ts +4 -3
- package/_types/chains/definitions/botanixTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bronos.d.ts +4 -3
- package/_types/chains/definitions/bronos.d.ts.map +1 -1
- package/_types/chains/definitions/bronosTestnet.d.ts +4 -3
- package/_types/chains/definitions/bronosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bscGreenfield.d.ts +4 -3
- package/_types/chains/definitions/bscGreenfield.d.ts.map +1 -1
- package/_types/chains/definitions/btr.d.ts +4 -3
- package/_types/chains/definitions/btr.d.ts.map +1 -1
- package/_types/chains/definitions/btrTestnet.d.ts +4 -3
- package/_types/chains/definitions/btrTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bxn.d.ts +4 -3
- package/_types/chains/definitions/bxn.d.ts.map +1 -1
- package/_types/chains/definitions/bxnTestnet.d.ts +4 -3
- package/_types/chains/definitions/bxnTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/chiliz.d.ts +4 -3
- package/_types/chains/definitions/chiliz.d.ts.map +1 -1
- package/_types/chains/definitions/chips.d.ts +4 -3
- package/_types/chains/definitions/chips.d.ts.map +1 -1
- package/_types/chains/definitions/classic.d.ts +4 -3
- package/_types/chains/definitions/classic.d.ts.map +1 -1
- package/_types/chains/definitions/cronoszkEVM.d.ts +4 -3
- package/_types/chains/definitions/cronoszkEVM.d.ts.map +1 -1
- package/_types/chains/definitions/cronoszkEVMTestnet.d.ts +4 -3
- package/_types/chains/definitions/cronoszkEVMTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/curtis.d.ts +4 -3
- package/_types/chains/definitions/curtis.d.ts.map +1 -1
- package/_types/chains/definitions/degen.d.ts +4 -3
- package/_types/chains/definitions/degen.d.ts.map +1 -1
- package/_types/chains/definitions/dodochainTestnet.d.ts +4 -3
- package/_types/chains/definitions/dodochainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/dreyerxMainnet.d.ts +4 -3
- package/_types/chains/definitions/dreyerxMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/dreyerxTestnet.d.ts +4 -3
- package/_types/chains/definitions/dreyerxTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/edgeless.d.ts +4 -3
- package/_types/chains/definitions/edgeless.d.ts.map +1 -1
- package/_types/chains/definitions/edgelessTestnet.d.ts +4 -3
- package/_types/chains/definitions/edgelessTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/edgewareTestnet.d.ts +4 -3
- package/_types/chains/definitions/edgewareTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/ekta.d.ts +4 -3
- package/_types/chains/definitions/ekta.d.ts.map +1 -1
- package/_types/chains/definitions/ektaTestnet.d.ts +4 -3
- package/_types/chains/definitions/ektaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/etherlinkTestnet.d.ts +4 -3
- package/_types/chains/definitions/etherlinkTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/evmos.d.ts +4 -3
- package/_types/chains/definitions/evmos.d.ts.map +1 -1
- package/_types/chains/definitions/evmosTestnet.d.ts +4 -3
- package/_types/chains/definitions/evmosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/fantomSonicTestnet.d.ts +4 -3
- package/_types/chains/definitions/fantomSonicTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/fibo.d.ts +4 -3
- package/_types/chains/definitions/fibo.d.ts.map +1 -1
- package/_types/chains/definitions/filecoinCalibration.d.ts +4 -3
- package/_types/chains/definitions/filecoinCalibration.d.ts.map +1 -1
- package/_types/chains/definitions/filecoinHyperspace.d.ts +4 -3
- package/_types/chains/definitions/filecoinHyperspace.d.ts.map +1 -1
- package/_types/chains/definitions/flare.d.ts +4 -3
- package/_types/chains/definitions/flare.d.ts.map +1 -1
- package/_types/chains/definitions/flareTestnet.d.ts +4 -3
- package/_types/chains/definitions/flareTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/flowMainnet.d.ts +4 -3
- package/_types/chains/definitions/flowMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/fluence.d.ts +38 -0
- package/_types/chains/definitions/fluence.d.ts.map +1 -0
- package/_types/chains/definitions/fluenceStage.d.ts +38 -0
- package/_types/chains/definitions/fluenceStage.d.ts.map +1 -0
- package/_types/chains/definitions/fluenceTestnet.d.ts +38 -0
- package/_types/chains/definitions/fluenceTestnet.d.ts.map +1 -0
- package/_types/chains/definitions/foundry.d.ts +4 -3
- package/_types/chains/definitions/foundry.d.ts.map +1 -1
- package/_types/chains/definitions/fuseSparknet.d.ts +4 -3
- package/_types/chains/definitions/fuseSparknet.d.ts.map +1 -1
- package/_types/chains/definitions/ham.d.ts +4 -3
- package/_types/chains/definitions/ham.d.ts.map +1 -1
- package/_types/chains/definitions/haqqMainnet.d.ts +4 -3
- package/_types/chains/definitions/haqqMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/haqqTestedge2.d.ts +4 -3
- package/_types/chains/definitions/haqqTestedge2.d.ts.map +1 -1
- package/_types/chains/definitions/hardhat.d.ts +4 -3
- package/_types/chains/definitions/hardhat.d.ts.map +1 -1
- package/_types/chains/definitions/hashkeyChainTestnet.d.ts +4 -3
- package/_types/chains/definitions/hashkeyChainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/hedera.d.ts +4 -3
- package/_types/chains/definitions/hedera.d.ts.map +1 -1
- package/_types/chains/definitions/hederaPreviewnet.d.ts +4 -3
- package/_types/chains/definitions/hederaPreviewnet.d.ts.map +1 -1
- package/_types/chains/definitions/hederaTestnet.d.ts +4 -3
- package/_types/chains/definitions/hederaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/iota.d.ts +4 -3
- package/_types/chains/definitions/iota.d.ts.map +1 -1
- package/_types/chains/definitions/iotaTestnet.d.ts +4 -3
- package/_types/chains/definitions/iotaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/kakarotSepolia.d.ts +4 -3
- package/_types/chains/definitions/kakarotSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/karura.d.ts +4 -3
- package/_types/chains/definitions/karura.d.ts.map +1 -1
- package/_types/chains/definitions/kroma.d.ts +4 -3
- package/_types/chains/definitions/kroma.d.ts.map +1 -1
- package/_types/chains/definitions/kromaSepolia.d.ts +4 -3
- package/_types/chains/definitions/kromaSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/l3x.d.ts +4 -3
- package/_types/chains/definitions/l3x.d.ts.map +1 -1
- package/_types/chains/definitions/l3xTestnet.d.ts +4 -3
- package/_types/chains/definitions/l3xTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/lightlinkPegasus.d.ts +4 -3
- package/_types/chains/definitions/lightlinkPegasus.d.ts.map +1 -1
- package/_types/chains/definitions/lightlinkPhoenix.d.ts +4 -3
- package/_types/chains/definitions/lightlinkPhoenix.d.ts.map +1 -1
- package/_types/chains/definitions/linea.d.ts +4 -1
- package/_types/chains/definitions/linea.d.ts.map +1 -1
- package/_types/chains/definitions/lineaSepolia.d.ts +4 -1
- package/_types/chains/definitions/lineaSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/localhost.d.ts +4 -3
- package/_types/chains/definitions/localhost.d.ts.map +1 -1
- package/_types/chains/definitions/lycan.d.ts +4 -3
- package/_types/chains/definitions/lycan.d.ts.map +1 -1
- package/_types/chains/definitions/mandala.d.ts +4 -3
- package/_types/chains/definitions/mandala.d.ts.map +1 -1
- package/_types/chains/definitions/merlin.d.ts +4 -3
- package/_types/chains/definitions/merlin.d.ts.map +1 -1
- package/_types/chains/definitions/meter.d.ts +4 -3
- package/_types/chains/definitions/meter.d.ts.map +1 -1
- package/_types/chains/definitions/meterTestnet.d.ts +4 -3
- package/_types/chains/definitions/meterTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/mintSepoliaTestnet.d.ts +4 -3
- package/_types/chains/definitions/mintSepoliaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/moonbeamDev.d.ts +4 -3
- package/_types/chains/definitions/moonbeamDev.d.ts.map +1 -1
- package/_types/chains/definitions/morphHolesky.d.ts +4 -3
- package/_types/chains/definitions/morphHolesky.d.ts.map +1 -1
- package/_types/chains/definitions/morphSepolia.d.ts +4 -3
- package/_types/chains/definitions/morphSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/nautilus.d.ts +4 -3
- package/_types/chains/definitions/nautilus.d.ts.map +1 -1
- package/_types/chains/definitions/oasisTestnet.d.ts +4 -3
- package/_types/chains/definitions/oasisTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/oasys.d.ts +4 -3
- package/_types/chains/definitions/oasys.d.ts.map +1 -1
- package/_types/chains/definitions/oortmainnetDev.d.ts +4 -3
- package/_types/chains/definitions/oortmainnetDev.d.ts.map +1 -1
- package/_types/chains/definitions/playfiAlbireo.d.ts +1 -1
- package/_types/chains/definitions/plumeTestnet.d.ts +4 -3
- package/_types/chains/definitions/plumeTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/qMainnet.d.ts +4 -3
- package/_types/chains/definitions/qMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/qTestnet.d.ts +4 -3
- package/_types/chains/definitions/qTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/redbellyTestnet.d.ts +4 -3
- package/_types/chains/definitions/redbellyTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/redstone.d.ts +4 -3
- package/_types/chains/definitions/redstone.d.ts.map +1 -1
- package/_types/chains/definitions/reyaNetwork.d.ts +4 -3
- package/_types/chains/definitions/reyaNetwork.d.ts.map +1 -1
- package/_types/chains/definitions/rootstockTestnet.d.ts +4 -3
- package/_types/chains/definitions/rootstockTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/sapphireTestnet.d.ts +4 -3
- package/_types/chains/definitions/sapphireTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/satoshivm.d.ts +4 -3
- package/_types/chains/definitions/satoshivm.d.ts.map +1 -1
- package/_types/chains/definitions/satoshivmTestnet.d.ts +4 -3
- package/_types/chains/definitions/satoshivmTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/seiDevnet.d.ts +4 -3
- package/_types/chains/definitions/seiDevnet.d.ts.map +1 -1
- package/_types/chains/definitions/seiTestnet.d.ts +4 -3
- package/_types/chains/definitions/seiTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/shapeSepolia.d.ts +4 -3
- package/_types/chains/definitions/shapeSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/shardeumSphinx.d.ts +4 -3
- package/_types/chains/definitions/shardeumSphinx.d.ts.map +1 -1
- package/_types/chains/definitions/shimmer.d.ts +4 -3
- package/_types/chains/definitions/shimmer.d.ts.map +1 -1
- package/_types/chains/definitions/shimmerTestnet.d.ts +4 -3
- package/_types/chains/definitions/shimmerTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/sketchpad.d.ts +4 -3
- package/_types/chains/definitions/sketchpad.d.ts.map +1 -1
- package/_types/chains/definitions/soneiumMinato.d.ts +34 -0
- package/_types/chains/definitions/soneiumMinato.d.ts.map +1 -0
- package/_types/chains/definitions/songbird.d.ts +4 -3
- package/_types/chains/definitions/songbird.d.ts.map +1 -1
- package/_types/chains/definitions/songbirdTestnet.d.ts +4 -3
- package/_types/chains/definitions/songbirdTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/sophonTestnet.d.ts +1 -1
- package/_types/chains/definitions/spicy.d.ts +4 -3
- package/_types/chains/definitions/spicy.d.ts.map +1 -1
- package/_types/chains/definitions/storyTestnet.d.ts +36 -0
- package/_types/chains/definitions/storyTestnet.d.ts.map +1 -0
- package/_types/chains/definitions/stratis.d.ts +4 -3
- package/_types/chains/definitions/stratis.d.ts.map +1 -1
- package/_types/chains/definitions/taikoHekla.d.ts +4 -3
- package/_types/chains/definitions/taikoHekla.d.ts.map +1 -1
- package/_types/chains/definitions/taikoKatla.d.ts +4 -3
- package/_types/chains/definitions/taikoKatla.d.ts.map +1 -1
- package/_types/chains/definitions/taikoTestnetSepolia.d.ts +4 -3
- package/_types/chains/definitions/taikoTestnetSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/taraxa.d.ts +4 -3
- package/_types/chains/definitions/taraxa.d.ts.map +1 -1
- package/_types/chains/definitions/taraxaTestnet.d.ts +4 -3
- package/_types/chains/definitions/taraxaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/telcoinTestnet.d.ts +4 -3
- package/_types/chains/definitions/telcoinTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/telosTestnet.d.ts +4 -3
- package/_types/chains/definitions/telosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/tenet.d.ts +4 -3
- package/_types/chains/definitions/tenet.d.ts.map +1 -1
- package/_types/chains/definitions/thunderTestnet.d.ts +4 -3
- package/_types/chains/definitions/thunderTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/tron.d.ts +37 -0
- package/_types/chains/definitions/tron.d.ts.map +1 -0
- package/_types/chains/definitions/vechain.d.ts +4 -3
- package/_types/chains/definitions/vechain.d.ts.map +1 -1
- package/_types/chains/definitions/wemix.d.ts +4 -3
- package/_types/chains/definitions/wemix.d.ts.map +1 -1
- package/_types/chains/definitions/wemixTestnet.d.ts +4 -3
- package/_types/chains/definitions/wemixTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/xaiTestnet.d.ts +4 -3
- package/_types/chains/definitions/xaiTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/xrSepolia.d.ts +4 -3
- package/_types/chains/definitions/xrSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/yooldoVerse.d.ts +4 -3
- package/_types/chains/definitions/yooldoVerse.d.ts.map +1 -1
- package/_types/chains/definitions/yooldoVerseTestnet.d.ts +4 -3
- package/_types/chains/definitions/yooldoVerseTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zhejiang.d.ts +4 -3
- package/_types/chains/definitions/zhejiang.d.ts.map +1 -1
- package/_types/chains/definitions/zilliqa.d.ts +4 -3
- package/_types/chains/definitions/zilliqa.d.ts.map +1 -1
- package/_types/chains/definitions/zilliqaTestnet.d.ts +4 -3
- package/_types/chains/definitions/zilliqaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkFairTestnet.d.ts +4 -3
- package/_types/chains/definitions/zkFairTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkLinkNova.d.ts +4 -3
- package/_types/chains/definitions/zkLinkNova.d.ts.map +1 -1
- package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts +4 -3
- package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zksync.d.ts +1 -1
- package/_types/chains/definitions/zksyncInMemoryNode.d.ts +5 -4
- package/_types/chains/definitions/zksyncInMemoryNode.d.ts.map +1 -1
- package/_types/chains/definitions/zksyncLocalNode.d.ts +5 -4
- package/_types/chains/definitions/zksyncLocalNode.d.ts.map +1 -1
- package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts +1 -1
- package/_types/chains/index.d.ts +6 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/errors/node.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/index.d.ts +1 -1
- package/_types/index.d.ts.map +1 -1
- package/_types/linea/actions/estimateGas.d.ts +36 -0
- package/_types/linea/actions/estimateGas.d.ts.map +1 -0
- package/_types/linea/chainConfig.d.ts +10 -0
- package/_types/linea/chainConfig.d.ts.map +1 -0
- package/_types/linea/chains.d.ts +3 -0
- package/_types/linea/chains.d.ts.map +1 -0
- package/_types/linea/index.d.ts +3 -0
- package/_types/linea/index.d.ts.map +1 -0
- package/_types/linea/types/rpc.d.ts +22 -0
- package/_types/linea/types/rpc.d.ts.map +1 -0
- package/_types/types/chain.d.ts +29 -23
- package/_types/types/chain.d.ts.map +1 -1
- package/_types/zksync/actions/sendEip712Transaction.d.ts.map +1 -1
- package/_types/zksync/chainConfig.d.ts +1 -1
- package/_types/zksync/formatters.d.ts +1 -1
- package/actions/public/estimateFeesPerGas.ts +2 -1
- package/actions/public/estimateMaxPriorityFeePerGas.ts +17 -11
- package/actions/wallet/prepareTransactionRequest.ts +13 -2
- package/actions/wallet/sendTransaction.ts +1 -0
- package/chains/definitions/fluence.ts +20 -0
- package/chains/definitions/fluenceStage.ts +21 -0
- package/chains/definitions/fluenceTestnet.ts +21 -0
- package/chains/definitions/linea.ts +2 -0
- package/chains/definitions/lineaSepolia.ts +2 -0
- package/chains/definitions/soneiumMinato.ts +26 -0
- package/chains/definitions/sophonTestnet.ts +1 -1
- package/chains/definitions/storyTestnet.ts +21 -0
- package/chains/definitions/tron.ts +19 -0
- package/chains/index.ts +6 -0
- package/errors/node.ts +2 -1
- package/errors/version.ts +1 -1
- package/index.ts +3 -0
- package/linea/actions/estimateGas.ts +137 -0
- package/linea/chainConfig.ts +53 -0
- package/linea/chains.ts +3 -0
- package/linea/index.ts +8 -0
- package/linea/package.json +6 -0
- package/linea/types/rpc.ts +28 -0
- package/package.json +6 -1
- package/types/chain.ts +73 -42
- package/zksync/actions/sendEip712Transaction.ts +1 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const fluence = /*#__PURE__*/ defineChain({
|
4
|
+
id: 9_999_999,
|
5
|
+
name: 'Fluence',
|
6
|
+
nativeCurrency: { name: 'FLT', symbol: 'FLT', decimals: 18 },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: ['https://rpc.mainnet.fluence.dev'],
|
10
|
+
webSocket: ['wss://ws.mainnet.fluence.dev'],
|
11
|
+
},
|
12
|
+
},
|
13
|
+
blockExplorers: {
|
14
|
+
default: {
|
15
|
+
name: 'Blockscout',
|
16
|
+
url: 'https://blockscout.mainnet.fluence.dev',
|
17
|
+
apiUrl: 'https://blockscout.mainnet.fluence.dev/api',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
})
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const fluenceStage = /*#__PURE__*/ defineChain({
|
4
|
+
id: 123_420_000_220,
|
5
|
+
name: 'Fluence Stage',
|
6
|
+
nativeCurrency: { name: 'tFLT', symbol: 'tFLT', decimals: 18 },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: ['https://rpc.stage.fluence.dev'],
|
10
|
+
webSocket: ['wss://ws.stage.fluence.dev'],
|
11
|
+
},
|
12
|
+
},
|
13
|
+
blockExplorers: {
|
14
|
+
default: {
|
15
|
+
name: 'Blockscout',
|
16
|
+
url: 'https://blockscout.stage.fluence.dev',
|
17
|
+
apiUrl: 'https://blockscout.stage.fluence.dev/api',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
testnet: true,
|
21
|
+
})
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const fluenceTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 52_164_803,
|
5
|
+
name: 'Fluence Testnet',
|
6
|
+
nativeCurrency: { name: 'tFLT', symbol: 'tFLT', decimals: 18 },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: ['https://rpc.testnet.fluence.dev'],
|
10
|
+
webSocket: ['wss://ws.testnet.fluence.dev'],
|
11
|
+
},
|
12
|
+
},
|
13
|
+
blockExplorers: {
|
14
|
+
default: {
|
15
|
+
name: 'Blockscout',
|
16
|
+
url: 'https://blockscout.testnet.fluence.dev',
|
17
|
+
apiUrl: 'https://blockscout.testnet.fluence.dev/api',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
testnet: true,
|
21
|
+
})
|
@@ -1,6 +1,8 @@
|
|
1
|
+
import { chainConfig } from '../../linea/chainConfig.js'
|
1
2
|
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
3
|
|
3
4
|
export const linea = /*#__PURE__*/ defineChain({
|
5
|
+
...chainConfig,
|
4
6
|
id: 59_144,
|
5
7
|
name: 'Linea Mainnet',
|
6
8
|
nativeCurrency: { name: 'Linea Ether', symbol: 'ETH', decimals: 18 },
|
@@ -1,6 +1,8 @@
|
|
1
|
+
import { chainConfig } from '../../linea/chainConfig.js'
|
1
2
|
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
3
|
|
3
4
|
export const lineaSepolia = /*#__PURE__*/ defineChain({
|
5
|
+
...chainConfig,
|
4
6
|
id: 59_141,
|
5
7
|
name: 'Linea Sepolia Testnet',
|
6
8
|
nativeCurrency: { name: 'Linea Ether', symbol: 'ETH', decimals: 18 },
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const soneiumMinato = defineChain({
|
4
|
+
id: 1946,
|
5
|
+
name: 'Soneium Minato',
|
6
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: ['https://rpc.minato.soneium.org'],
|
10
|
+
},
|
11
|
+
},
|
12
|
+
blockExplorers: {
|
13
|
+
default: {
|
14
|
+
name: 'Minato Explorer',
|
15
|
+
url: 'https://explorer-testnet.soneium.org',
|
16
|
+
apiUrl: 'https://explorer-testnet.soneium.org/api/',
|
17
|
+
},
|
18
|
+
},
|
19
|
+
contracts: {
|
20
|
+
multicall3: {
|
21
|
+
address: '0xcA11bde05977b3631167028862bE2a173976CA11',
|
22
|
+
blockCreated: 1,
|
23
|
+
},
|
24
|
+
},
|
25
|
+
testnet: true,
|
26
|
+
})
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const storyTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 1513,
|
5
|
+
name: 'Story Testnet',
|
6
|
+
nativeCurrency: {
|
7
|
+
decimals: 18,
|
8
|
+
name: 'IP',
|
9
|
+
symbol: 'IP',
|
10
|
+
},
|
11
|
+
rpcUrls: {
|
12
|
+
default: { http: ['https://testnet.storyrpc.io'] },
|
13
|
+
},
|
14
|
+
blockExplorers: {
|
15
|
+
default: {
|
16
|
+
name: 'Story Testnet Explorer',
|
17
|
+
url: 'https://testnet.storyscan.xyz',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
testnet: true,
|
21
|
+
})
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const tron = /*#__PURE__*/ defineChain({
|
4
|
+
id: 728126428,
|
5
|
+
name: 'Tron',
|
6
|
+
nativeCurrency: { name: 'TRON', symbol: 'TRX', decimals: 6 },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: ['https://api.trongrid.io/jsonrpc'],
|
10
|
+
},
|
11
|
+
},
|
12
|
+
blockExplorers: {
|
13
|
+
default: {
|
14
|
+
name: 'Tronscan',
|
15
|
+
url: 'https://tronscan.org',
|
16
|
+
apiUrl: 'https://apilist.tronscanapi.com/api',
|
17
|
+
},
|
18
|
+
},
|
19
|
+
})
|
package/chains/index.ts
CHANGED
@@ -111,6 +111,9 @@ export { flareTestnet } from './definitions/flareTestnet.js'
|
|
111
111
|
export { flowPreviewnet } from './definitions/flowPreviewnet.js'
|
112
112
|
export { flowMainnet } from './definitions/flowMainnet.js'
|
113
113
|
export { flowTestnet } from './definitions/flowTestnet.js'
|
114
|
+
export { fluence } from './definitions/fluence.js'
|
115
|
+
export { fluenceStage } from './definitions/fluenceStage.js'
|
116
|
+
export { fluenceTestnet } from './definitions/fluenceTestnet.js'
|
114
117
|
export { forma } from './definitions/forma.js'
|
115
118
|
/** @deprecated Use `anvil` instead. */
|
116
119
|
export { foundry } from './definitions/foundry.js'
|
@@ -277,6 +280,7 @@ export { skaleRazor } from './definitions/skale/razor.js'
|
|
277
280
|
export { skaleTitan } from './definitions/skale/titan.js'
|
278
281
|
export { skaleTitanTestnet } from './definitions/skale/titanTestnet.js'
|
279
282
|
export { sketchpad } from './definitions/sketchpad.js'
|
283
|
+
export { soneiumMinato } from './definitions/soneiumMinato.js'
|
280
284
|
export { songbird } from './definitions/songbird.js'
|
281
285
|
export { songbirdTestnet } from './definitions/songbirdTestnet.js'
|
282
286
|
export { sophonTestnet } from './definitions/sophonTestnet.js'
|
@@ -284,6 +288,7 @@ export { spicy } from './definitions/spicy.js'
|
|
284
288
|
export { shardeumSphinx } from './definitions/shardeumSphinx.js'
|
285
289
|
export { shibarium } from './definitions/shibarium.js'
|
286
290
|
export { shibariumTestnet } from './definitions/shibariumTestnet.js'
|
291
|
+
export { storyTestnet } from './definitions/storyTestnet.js'
|
287
292
|
export { stratis } from './definitions/stratis.js'
|
288
293
|
export { syscoin } from './definitions/syscoin.js'
|
289
294
|
export { syscoinTestnet } from './definitions/syscoinTestnet.js'
|
@@ -300,6 +305,7 @@ export { telosTestnet } from './definitions/telosTestnet.js'
|
|
300
305
|
export { tenet } from './definitions/tenet.js'
|
301
306
|
export { thaiChain } from './definitions/thaiChain.js'
|
302
307
|
export { thunderTestnet } from './definitions/thunderTestnet.js'
|
308
|
+
export { tron } from './definitions/tron.js'
|
303
309
|
export { unreal } from './definitions/unreal.js'
|
304
310
|
export { vechain } from './definitions/vechain.js'
|
305
311
|
export { wanchain } from './definitions/wanchain.js'
|
package/errors/node.ts
CHANGED
@@ -150,7 +150,8 @@ export type InsufficientFundsErrorType = InsufficientFundsError & {
|
|
150
150
|
name: 'InsufficientFundsError'
|
151
151
|
}
|
152
152
|
export class InsufficientFundsError extends BaseError {
|
153
|
-
static nodeMessage =
|
153
|
+
static nodeMessage =
|
154
|
+
/insufficient funds|exceeds transaction sender account balance/
|
154
155
|
constructor({ cause }: { cause?: BaseError | undefined } = {}) {
|
155
156
|
super(
|
156
157
|
[
|
package/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '2.
|
1
|
+
export const version = '2.21.0'
|
package/index.ts
CHANGED
@@ -467,11 +467,14 @@ export type {
|
|
467
467
|
} from './actions/wallet/writeContract.js'
|
468
468
|
export type {
|
469
469
|
Chain,
|
470
|
+
ChainConfig,
|
470
471
|
ChainContract,
|
472
|
+
ChainEstimateFeesPerGasFn,
|
471
473
|
ChainFees,
|
472
474
|
ChainFeesFnParameters,
|
473
475
|
ChainFormatter,
|
474
476
|
ChainEstimateFeesPerGasFnParameters,
|
477
|
+
ChainMaxPriorityFeePerGasFn,
|
475
478
|
DeriveChain,
|
476
479
|
GetChainParameter,
|
477
480
|
ChainFormatters,
|
@@ -0,0 +1,137 @@
|
|
1
|
+
import type { Account } from '../../accounts/types.js'
|
2
|
+
import { parseAccount } from '../../accounts/utils/parseAccount.js'
|
3
|
+
import type { EstimateGasParameters as EstimateGasParameters_base } from '../../actions/public/estimateGas.js'
|
4
|
+
import {
|
5
|
+
type PrepareTransactionRequestParameters,
|
6
|
+
prepareTransactionRequest,
|
7
|
+
} from '../../actions/wallet/prepareTransactionRequest.js'
|
8
|
+
import type { Client } from '../../clients/createClient.js'
|
9
|
+
import type { Transport } from '../../clients/transports/createTransport.js'
|
10
|
+
import { AccountNotFoundError } from '../../errors/account.js'
|
11
|
+
import type { BaseError } from '../../errors/base.js'
|
12
|
+
import type { GetAccountParameter } from '../../types/account.js'
|
13
|
+
import type { Chain } from '../../types/chain.js'
|
14
|
+
import type { TransactionRequest } from '../../types/transaction.js'
|
15
|
+
import type { Filter } from '../../types/utils.js'
|
16
|
+
import { numberToHex } from '../../utils/encoding/toHex.js'
|
17
|
+
import { getCallError } from '../../utils/errors/getCallError.js'
|
18
|
+
import { extract } from '../../utils/formatters/extract.js'
|
19
|
+
import { formatTransactionRequest } from '../../utils/formatters/transactionRequest.js'
|
20
|
+
import {
|
21
|
+
type AssertRequestParameters,
|
22
|
+
assertRequest,
|
23
|
+
} from '../../utils/transaction/assertRequest.js'
|
24
|
+
import type { LineaRpcSchema } from '../types/rpc.js'
|
25
|
+
|
26
|
+
export type EstimateGasParameters<
|
27
|
+
chain extends Chain | undefined = Chain | undefined,
|
28
|
+
account extends Account | undefined = Account | undefined,
|
29
|
+
> = EstimateGasParameters_base<chain> & GetAccountParameter<account>
|
30
|
+
|
31
|
+
export type EstimateGasReturnType = {
|
32
|
+
gasLimit: bigint
|
33
|
+
baseFeePerGas: bigint
|
34
|
+
priorityFeePerGas: bigint
|
35
|
+
}
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Estimates the gas and fees per gas necessary to complete a transaction without submitting it to the network.
|
39
|
+
*
|
40
|
+
* @param client - Client to use
|
41
|
+
* @param parameters - {@link EstimateGasParameters}
|
42
|
+
* @returns A gas estimate and fees per gas (in wei). {@link EstimateGasReturnType}
|
43
|
+
*
|
44
|
+
* @example
|
45
|
+
* import { createPublicClient, http, parseEther } from 'viem'
|
46
|
+
* import { linea } from 'viem/chains'
|
47
|
+
* import { estimateGas } from 'viem/linea'
|
48
|
+
*
|
49
|
+
* const client = createPublicClient({
|
50
|
+
* chain: linea,
|
51
|
+
* transport: http(),
|
52
|
+
* })
|
53
|
+
* const gasEstimate = await estimateGas(client, {
|
54
|
+
* account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
|
55
|
+
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
56
|
+
* value: 0n,
|
57
|
+
* })
|
58
|
+
*/
|
59
|
+
export async function estimateGas<
|
60
|
+
chain extends Chain | undefined,
|
61
|
+
account extends Account | undefined,
|
62
|
+
>(
|
63
|
+
client: Client<Transport, chain, account>,
|
64
|
+
args: EstimateGasParameters<chain>,
|
65
|
+
): Promise<EstimateGasReturnType> {
|
66
|
+
const { account: account_ = client.account } = args
|
67
|
+
|
68
|
+
if (!account_) throw new AccountNotFoundError()
|
69
|
+
const account = parseAccount(account_)
|
70
|
+
|
71
|
+
try {
|
72
|
+
const {
|
73
|
+
accessList,
|
74
|
+
blockNumber,
|
75
|
+
blockTag,
|
76
|
+
data,
|
77
|
+
gas,
|
78
|
+
gasPrice,
|
79
|
+
maxFeePerGas,
|
80
|
+
maxPriorityFeePerGas,
|
81
|
+
nonce,
|
82
|
+
to,
|
83
|
+
value,
|
84
|
+
...rest
|
85
|
+
} =
|
86
|
+
account?.type === 'local'
|
87
|
+
? ((await prepareTransactionRequest(
|
88
|
+
client,
|
89
|
+
args as PrepareTransactionRequestParameters,
|
90
|
+
)) as EstimateGasParameters)
|
91
|
+
: args
|
92
|
+
|
93
|
+
const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined
|
94
|
+
const block = blockNumberHex || blockTag
|
95
|
+
|
96
|
+
assertRequest(args as AssertRequestParameters)
|
97
|
+
|
98
|
+
const chainFormat = client.chain?.formatters?.transactionRequest?.format
|
99
|
+
const format = chainFormat || formatTransactionRequest
|
100
|
+
|
101
|
+
const request = format({
|
102
|
+
// Pick out extra data that might exist on the chain's transaction request type.
|
103
|
+
...extract(rest, { format: chainFormat }),
|
104
|
+
from: account?.address,
|
105
|
+
accessList,
|
106
|
+
data,
|
107
|
+
gas,
|
108
|
+
gasPrice,
|
109
|
+
maxFeePerGas,
|
110
|
+
maxPriorityFeePerGas,
|
111
|
+
nonce,
|
112
|
+
to,
|
113
|
+
value,
|
114
|
+
} as TransactionRequest)
|
115
|
+
|
116
|
+
type LineaEstimateGasSchema = Filter<
|
117
|
+
LineaRpcSchema,
|
118
|
+
{ Method: 'linea_estimateGas' }
|
119
|
+
>[0]
|
120
|
+
const { baseFeePerGas, gasLimit, priorityFeePerGas } =
|
121
|
+
await client.request<LineaEstimateGasSchema>({
|
122
|
+
method: 'linea_estimateGas',
|
123
|
+
params: block ? [request, block] : [request],
|
124
|
+
})
|
125
|
+
return {
|
126
|
+
baseFeePerGas: BigInt(baseFeePerGas),
|
127
|
+
gasLimit: BigInt(gasLimit),
|
128
|
+
priorityFeePerGas: BigInt(priorityFeePerGas),
|
129
|
+
}
|
130
|
+
} catch (err) {
|
131
|
+
throw getCallError(err as BaseError, {
|
132
|
+
...args,
|
133
|
+
account,
|
134
|
+
chain: client.chain,
|
135
|
+
})
|
136
|
+
}
|
137
|
+
}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import type { ChainConfig, ChainEstimateFeesPerGasFn } from '../types/chain.js'
|
2
|
+
import { estimateGas } from './actions/estimateGas.js'
|
3
|
+
|
4
|
+
export const chainConfig = {
|
5
|
+
fees: {
|
6
|
+
estimateFeesPerGas,
|
7
|
+
async maxPriorityFeePerGas({ block, client, request }) {
|
8
|
+
const response = await estimateFeesPerGas({
|
9
|
+
block,
|
10
|
+
client,
|
11
|
+
multiply: (x) => x,
|
12
|
+
request,
|
13
|
+
type: 'eip1559',
|
14
|
+
})
|
15
|
+
// Returning `null` will trigger the base `estimateMaxPriorityFeePerGas` to perform
|
16
|
+
// fallback mechanisms to estimate priority fee.
|
17
|
+
if (!response?.maxPriorityFeePerGas) return null
|
18
|
+
return response.maxPriorityFeePerGas
|
19
|
+
},
|
20
|
+
},
|
21
|
+
} as const satisfies ChainConfig
|
22
|
+
|
23
|
+
///////////////////////////////////////////////////////////////////////////
|
24
|
+
// Internal
|
25
|
+
///////////////////////////////////////////////////////////////////////////
|
26
|
+
|
27
|
+
async function estimateFeesPerGas({
|
28
|
+
client,
|
29
|
+
multiply,
|
30
|
+
request,
|
31
|
+
type,
|
32
|
+
}: Parameters<ChainEstimateFeesPerGasFn>[0]): ReturnType<ChainEstimateFeesPerGasFn> {
|
33
|
+
try {
|
34
|
+
const response = await estimateGas(client, {
|
35
|
+
...request,
|
36
|
+
account: request?.account!,
|
37
|
+
})
|
38
|
+
const { priorityFeePerGas: maxPriorityFeePerGas } = response
|
39
|
+
|
40
|
+
const baseFeePerGas = multiply(BigInt(response.baseFeePerGas))
|
41
|
+
const maxFeePerGas = baseFeePerGas + maxPriorityFeePerGas
|
42
|
+
|
43
|
+
if (type === 'legacy') return { gasPrice: maxFeePerGas }
|
44
|
+
return {
|
45
|
+
maxFeePerGas,
|
46
|
+
maxPriorityFeePerGas,
|
47
|
+
}
|
48
|
+
} catch {
|
49
|
+
// Returning `null` will trigger the base `estimateFeesPerGas` to perform
|
50
|
+
// fallback mechanisms to estimate fees.
|
51
|
+
return null
|
52
|
+
}
|
53
|
+
}
|
package/linea/chains.ts
ADDED
package/linea/index.ts
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
import type { BlockNumber, BlockTag } from '../../types/block.js'
|
2
|
+
import type { Hex } from '../../types/misc.js'
|
3
|
+
import type {
|
4
|
+
RpcStateOverride,
|
5
|
+
RpcTransactionRequest,
|
6
|
+
} from '../../types/rpc.js'
|
7
|
+
|
8
|
+
export type LineaRpcSchema = [
|
9
|
+
{
|
10
|
+
Method: 'linea_estimateGas'
|
11
|
+
Parameters?:
|
12
|
+
| [transaction: RpcTransactionRequest]
|
13
|
+
| [
|
14
|
+
transaction: RpcTransactionRequest,
|
15
|
+
block: Hex | BlockNumber | BlockTag,
|
16
|
+
]
|
17
|
+
| [
|
18
|
+
transaction: RpcTransactionRequest,
|
19
|
+
block: BlockNumber | BlockTag,
|
20
|
+
stateOverride: RpcStateOverride,
|
21
|
+
]
|
22
|
+
ReturnType: {
|
23
|
+
gasLimit: Hex
|
24
|
+
baseFeePerGas: Hex
|
25
|
+
priorityFeePerGas: Hex
|
26
|
+
}
|
27
|
+
},
|
28
|
+
]
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "viem",
|
3
3
|
"description": "TypeScript Interface for Ethereum",
|
4
|
-
"version": "2.
|
4
|
+
"version": "2.21.0",
|
5
5
|
"main": "./_cjs/index.js",
|
6
6
|
"module": "./_esm/index.js",
|
7
7
|
"types": "./_types/index.d.ts",
|
@@ -69,6 +69,11 @@
|
|
69
69
|
"import": "./_esm/experimental/erc7739/index.js",
|
70
70
|
"default": "./_cjs/experimental/erc7739/index.js"
|
71
71
|
},
|
72
|
+
"./linea": {
|
73
|
+
"types": "./_types/linea/index.d.ts",
|
74
|
+
"import": "./_esm/linea/index.js",
|
75
|
+
"default": "./_cjs/linea/index.js"
|
76
|
+
},
|
72
77
|
"./node": {
|
73
78
|
"types": "./_types/node/index.d.ts",
|
74
79
|
"import": "./_esm/node/index.js",
|
package/types/chain.ts
CHANGED
@@ -58,7 +58,18 @@ export type Chain<
|
|
58
58
|
sourceId?: number | undefined
|
59
59
|
/** Flag for test networks */
|
60
60
|
testnet?: boolean | undefined
|
61
|
+
} & ChainConfig<formatters, custom>
|
61
62
|
|
63
|
+
/////////////////////////////////////////////////////////////////////
|
64
|
+
// Config
|
65
|
+
/////////////////////////////////////////////////////////////////////
|
66
|
+
|
67
|
+
export type ChainConfig<
|
68
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
69
|
+
custom extends Record<string, unknown> | undefined =
|
70
|
+
| Record<string, unknown>
|
71
|
+
| undefined,
|
72
|
+
> = {
|
62
73
|
/** Custom chain data. */
|
63
74
|
custom?: custom | undefined
|
64
75
|
/** Modifies how fees are derived. */
|
@@ -70,7 +81,51 @@ export type Chain<
|
|
70
81
|
}
|
71
82
|
|
72
83
|
/////////////////////////////////////////////////////////////////////
|
73
|
-
//
|
84
|
+
// Fees
|
85
|
+
/////////////////////////////////////////////////////////////////////
|
86
|
+
|
87
|
+
export type ChainFeesFnParameters<
|
88
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
89
|
+
> = {
|
90
|
+
/** The latest block. */
|
91
|
+
block: Prettify<
|
92
|
+
FormattedBlock<Omit<Chain, 'formatters'> & { formatters: formatters }>
|
93
|
+
>
|
94
|
+
client: Client<Transport, Chain>
|
95
|
+
/**
|
96
|
+
* A transaction request. This value will be undefined if the caller
|
97
|
+
* is outside of a transaction request context (e.g. a direct call to
|
98
|
+
* the `estimateFeesPerGas` Action).
|
99
|
+
*/
|
100
|
+
request?:
|
101
|
+
| PrepareTransactionRequestParameters<
|
102
|
+
Omit<Chain, 'formatters'> & { formatters: formatters },
|
103
|
+
Account | undefined,
|
104
|
+
undefined
|
105
|
+
>
|
106
|
+
| undefined
|
107
|
+
}
|
108
|
+
|
109
|
+
export type ChainEstimateFeesPerGasFnParameters<
|
110
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
111
|
+
> = {
|
112
|
+
/** A function to multiply the base fee based on the `baseFeeMultiplier` value. */
|
113
|
+
multiply: (x: bigint) => bigint
|
114
|
+
/** The type of fees to return. */
|
115
|
+
type: FeeValuesType
|
116
|
+
} & ChainFeesFnParameters<formatters>
|
117
|
+
|
118
|
+
export type ChainEstimateFeesPerGasFn<
|
119
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
120
|
+
> = (
|
121
|
+
args: ChainEstimateFeesPerGasFnParameters<formatters>,
|
122
|
+
) => Promise<EstimateFeesPerGasReturnType | null>
|
123
|
+
|
124
|
+
export type ChainMaxPriorityFeePerGasFn<
|
125
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
126
|
+
> = (
|
127
|
+
args: ChainFeesFnParameters<formatters>,
|
128
|
+
) => Promise<bigint | null> | bigint | null
|
74
129
|
|
75
130
|
export type ChainFees<
|
76
131
|
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
@@ -90,23 +145,27 @@ export type ChainFees<
|
|
90
145
|
*
|
91
146
|
* Overrides the return value in the [`estimateMaxPriorityFeePerGas` Action](/docs/actions/public/estimateMaxPriorityFeePerGas).
|
92
147
|
*/
|
148
|
+
maxPriorityFeePerGas?:
|
149
|
+
| bigint
|
150
|
+
| ChainMaxPriorityFeePerGasFn<formatters>
|
151
|
+
| undefined
|
152
|
+
/** @deprecated Use `maxPriorityFeePerGas` instead. */
|
93
153
|
defaultPriorityFee?:
|
94
154
|
| bigint
|
95
|
-
|
|
155
|
+
| ChainMaxPriorityFeePerGasFn<formatters>
|
96
156
|
| undefined
|
97
157
|
/**
|
98
158
|
* Allows customization of fee per gas values (e.g. `maxFeePerGas`/`maxPriorityFeePerGas`).
|
99
159
|
*
|
100
160
|
* Overrides the return value in the [`estimateFeesPerGas` Action](/docs/actions/public/estimateFeesPerGas).
|
101
161
|
*/
|
102
|
-
estimateFeesPerGas?:
|
103
|
-
| bigint
|
104
|
-
| ((
|
105
|
-
args: ChainEstimateFeesPerGasFnParameters<formatters>,
|
106
|
-
) => Promise<EstimateFeesPerGasReturnType | null>)
|
107
|
-
| undefined
|
162
|
+
estimateFeesPerGas?: ChainEstimateFeesPerGasFn<formatters> | undefined
|
108
163
|
}
|
109
164
|
|
165
|
+
/////////////////////////////////////////////////////////////////////
|
166
|
+
// Formatters
|
167
|
+
/////////////////////////////////////////////////////////////////////
|
168
|
+
|
110
169
|
export type ChainFormatters = {
|
111
170
|
/** Modifies how the Block structure is formatted & typed. */
|
112
171
|
block?: ChainFormatter<'block'> | undefined
|
@@ -123,6 +182,10 @@ export type ChainFormatter<type extends string = string> = {
|
|
123
182
|
type: type
|
124
183
|
}
|
125
184
|
|
185
|
+
/////////////////////////////////////////////////////////////////////
|
186
|
+
// Serializers
|
187
|
+
/////////////////////////////////////////////////////////////////////
|
188
|
+
|
126
189
|
export type ChainSerializers<
|
127
190
|
formatters extends ChainFormatters | undefined = undefined,
|
128
191
|
///
|
@@ -140,42 +203,9 @@ export type ChainSerializers<
|
|
140
203
|
| undefined
|
141
204
|
}
|
142
205
|
|
143
|
-
/////////////////////////////////////////////////////////////////////
|
144
|
-
// Parameters
|
145
|
-
|
146
|
-
export type ChainFeesFnParameters<
|
147
|
-
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
148
|
-
> = {
|
149
|
-
/** The latest block. */
|
150
|
-
block: Prettify<
|
151
|
-
FormattedBlock<Omit<Chain, 'formatters'> & { formatters: formatters }>
|
152
|
-
>
|
153
|
-
client: Client<Transport, Chain>
|
154
|
-
/**
|
155
|
-
* A transaction request. This value will be undefined if the caller
|
156
|
-
* is outside of a transaction request context (e.g. a direct call to
|
157
|
-
* the `estimateFeesPerGas` Action).
|
158
|
-
*/
|
159
|
-
request?:
|
160
|
-
| PrepareTransactionRequestParameters<
|
161
|
-
Omit<Chain, 'formatters'> & { formatters: formatters },
|
162
|
-
Account | undefined,
|
163
|
-
undefined
|
164
|
-
>
|
165
|
-
| undefined
|
166
|
-
}
|
167
|
-
|
168
|
-
export type ChainEstimateFeesPerGasFnParameters<
|
169
|
-
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
170
|
-
> = {
|
171
|
-
/** A function to multiply the base fee based on the `baseFeeMultiplier` value. */
|
172
|
-
multiply: (x: bigint) => bigint
|
173
|
-
/** The type of fees to return. */
|
174
|
-
type: FeeValuesType
|
175
|
-
} & ChainFeesFnParameters<formatters>
|
176
|
-
|
177
206
|
/////////////////////////////////////////////////////////////////////
|
178
207
|
// Utils
|
208
|
+
/////////////////////////////////////////////////////////////////////
|
179
209
|
|
180
210
|
export type ExtractChainFormatterExclude<
|
181
211
|
chain extends Chain | undefined,
|
@@ -228,6 +258,7 @@ export type GetChainParameter<
|
|
228
258
|
|
229
259
|
/////////////////////////////////////////////////////////////////////
|
230
260
|
// Constants
|
261
|
+
/////////////////////////////////////////////////////////////////////
|
231
262
|
|
232
263
|
type ChainBlockExplorer = {
|
233
264
|
name: string
|