viem 2.4.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/_cjs/accounts/utils/sign.js.map +1 -1
- package/_cjs/chains/definitions/berachainTestnet.js +24 -0
- package/_cjs/chains/definitions/berachainTestnet.js.map +1 -0
- package/_cjs/chains/definitions/kcc.js +33 -0
- package/_cjs/chains/definitions/kcc.js.map +1 -0
- package/_cjs/chains/definitions/zkSync.js +3 -2
- package/_cjs/chains/definitions/zkSync.js.map +1 -1
- package/_cjs/chains/index.js +8 -4
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/chains/zksync/actions/sendEip712Transaction.js +52 -0
- package/_cjs/chains/zksync/actions/sendEip712Transaction.js.map +1 -0
- package/_cjs/chains/zksync/actions/sendTransaction.js +13 -0
- package/_cjs/chains/zksync/actions/sendTransaction.js.map +1 -0
- package/_cjs/chains/zksync/actions/signEip712Transaction.js +52 -0
- package/_cjs/chains/zksync/actions/signEip712Transaction.js.map +1 -0
- package/_cjs/chains/zksync/actions/signTransaction.js +13 -0
- package/_cjs/chains/zksync/actions/signTransaction.js.map +1 -0
- package/_cjs/chains/zksync/chainConfig.js +4 -0
- package/_cjs/chains/zksync/chainConfig.js.map +1 -1
- package/_cjs/chains/zksync/chains.js +10 -0
- package/_cjs/chains/zksync/chains.js.map +1 -0
- package/_cjs/chains/zksync/decorators/eip712.js +17 -0
- package/_cjs/chains/zksync/decorators/eip712.js.map +1 -0
- package/_cjs/chains/zksync/errors/transaction.js +23 -0
- package/_cjs/chains/zksync/errors/transaction.js.map +1 -0
- package/_cjs/chains/zksync/formatters.js +2 -2
- package/_cjs/chains/zksync/formatters.js.map +1 -1
- package/_cjs/chains/zksync/index.js +15 -1
- package/_cjs/chains/zksync/index.js.map +1 -1
- package/_cjs/chains/zksync/serializers.js +6 -35
- package/_cjs/chains/zksync/serializers.js.map +1 -1
- package/_cjs/chains/zksync/{types.js → types/block.js} +1 -1
- package/_cjs/chains/zksync/types/block.js.map +1 -0
- package/_cjs/chains/zksync/types/chain.js +3 -0
- package/_cjs/chains/zksync/types/chain.js.map +1 -0
- package/_cjs/chains/zksync/types/eip712.js +3 -0
- package/_cjs/chains/zksync/types/eip712.js.map +1 -0
- package/_cjs/chains/zksync/types/fee.js +3 -0
- package/_cjs/chains/zksync/types/fee.js.map +1 -0
- package/_cjs/chains/zksync/types/log.js +3 -0
- package/_cjs/chains/zksync/types/log.js.map +1 -0
- package/_cjs/chains/zksync/types/transaction.js +3 -0
- package/_cjs/chains/zksync/types/transaction.js.map +1 -0
- package/_cjs/chains/zksync/utils/assertEip712Request.js +13 -0
- package/_cjs/chains/zksync/utils/assertEip712Request.js.map +1 -0
- package/_cjs/chains/zksync/utils/assertEip712Transaction.js +30 -0
- package/_cjs/chains/zksync/utils/assertEip712Transaction.js.map +1 -0
- package/_cjs/chains/zksync/utils/getEip712Domain.js +54 -0
- package/_cjs/chains/zksync/utils/getEip712Domain.js.map +1 -0
- package/_cjs/chains/zksync/utils/isEip712Transaction.js +17 -0
- package/_cjs/chains/zksync/utils/isEip712Transaction.js.map +1 -0
- package/_cjs/clients/transports/http.js +8 -5
- package/_cjs/clients/transports/http.js.map +1 -1
- package/_cjs/clients/transports/ipc.js +77 -0
- package/_cjs/clients/transports/ipc.js.map +1 -0
- package/_cjs/clients/transports/webSocket.js +11 -7
- package/_cjs/clients/transports/webSocket.js.map +1 -1
- package/_cjs/errors/chain.js +3 -1
- package/_cjs/errors/chain.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/node/index.js +8 -0
- package/_cjs/node/index.js.map +1 -0
- package/_cjs/utils/index.js +13 -6
- package/_cjs/utils/index.js.map +1 -1
- package/_cjs/utils/rpc/compat.js +35 -0
- package/_cjs/utils/rpc/compat.js.map +1 -0
- package/_cjs/utils/rpc/http.js +74 -0
- package/_cjs/utils/rpc/http.js.map +1 -0
- package/_cjs/utils/rpc/id.js +17 -0
- package/_cjs/utils/rpc/id.js.map +1 -0
- package/_cjs/utils/rpc/ipc.js +75 -0
- package/_cjs/utils/rpc/ipc.js.map +1 -0
- package/_cjs/utils/rpc/socket.js +85 -0
- package/_cjs/utils/rpc/socket.js.map +1 -0
- package/_cjs/utils/rpc/webSocket.js +50 -0
- package/_cjs/utils/rpc/webSocket.js.map +1 -0
- package/_esm/accounts/utils/sign.js +1 -0
- package/_esm/accounts/utils/sign.js.map +1 -1
- package/_esm/chains/definitions/berachainTestnet.js +21 -0
- package/_esm/chains/definitions/berachainTestnet.js.map +1 -0
- package/_esm/chains/definitions/kcc.js +30 -0
- package/_esm/chains/definitions/kcc.js.map +1 -0
- package/_esm/chains/definitions/zkSync.js +3 -2
- package/_esm/chains/definitions/zkSync.js.map +1 -1
- package/_esm/chains/index.js +2 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/chains/zksync/actions/sendEip712Transaction.js +91 -0
- package/_esm/chains/zksync/actions/sendEip712Transaction.js.map +1 -0
- package/_esm/chains/zksync/actions/sendTransaction.js +54 -0
- package/_esm/chains/zksync/actions/sendTransaction.js.map +1 -0
- package/_esm/chains/zksync/actions/signEip712Transaction.js +86 -0
- package/_esm/chains/zksync/actions/signEip712Transaction.js.map +1 -0
- package/_esm/chains/zksync/actions/signTransaction.js +49 -0
- package/_esm/chains/zksync/actions/signTransaction.js.map +1 -0
- package/_esm/chains/zksync/chainConfig.js +4 -0
- package/_esm/chains/zksync/chainConfig.js.map +1 -1
- package/_esm/chains/zksync/chains.js +4 -0
- package/_esm/chains/zksync/chains.js.map +1 -0
- package/_esm/chains/zksync/decorators/eip712.js +13 -0
- package/_esm/chains/zksync/decorators/eip712.js.map +1 -0
- package/_esm/chains/zksync/errors/transaction.js +19 -0
- package/_esm/chains/zksync/errors/transaction.js.map +1 -0
- package/_esm/chains/zksync/formatters.js +2 -2
- package/_esm/chains/zksync/formatters.js.map +1 -1
- package/_esm/chains/zksync/index.js +6 -0
- package/_esm/chains/zksync/index.js.map +1 -1
- package/_esm/chains/zksync/serializers.js +5 -35
- package/_esm/chains/zksync/serializers.js.map +1 -1
- package/_esm/chains/zksync/types/block.js +2 -0
- package/_esm/chains/zksync/types/block.js.map +1 -0
- package/_esm/chains/zksync/types/chain.js +2 -0
- package/_esm/chains/zksync/types/chain.js.map +1 -0
- package/_esm/chains/zksync/types/eip712.js +2 -0
- package/_esm/chains/zksync/types/eip712.js.map +1 -0
- package/_esm/chains/zksync/types/fee.js +2 -0
- package/_esm/chains/zksync/types/fee.js.map +1 -0
- package/_esm/chains/zksync/types/log.js +2 -0
- package/_esm/chains/zksync/types/log.js.map +1 -0
- package/_esm/chains/zksync/types/transaction.js +2 -0
- package/_esm/chains/zksync/types/transaction.js.map +1 -0
- package/_esm/chains/zksync/utils/assertEip712Request.js +9 -0
- package/_esm/chains/zksync/utils/assertEip712Request.js.map +1 -0
- package/_esm/chains/zksync/utils/assertEip712Transaction.js +26 -0
- package/_esm/chains/zksync/utils/assertEip712Transaction.js.map +1 -0
- package/_esm/chains/zksync/utils/getEip712Domain.js +52 -0
- package/_esm/chains/zksync/utils/getEip712Domain.js.map +1 -0
- package/_esm/chains/zksync/utils/isEip712Transaction.js +13 -0
- package/_esm/chains/zksync/utils/isEip712Transaction.js.map +1 -0
- package/_esm/clients/transports/http.js +8 -5
- package/_esm/clients/transports/http.js.map +1 -1
- package/_esm/clients/transports/ipc.js +77 -0
- package/_esm/clients/transports/ipc.js.map +1 -0
- package/_esm/clients/transports/webSocket.js +10 -6
- package/_esm/clients/transports/webSocket.js.map +1 -1
- package/_esm/errors/chain.js +3 -1
- package/_esm/errors/chain.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/node/index.js +3 -0
- package/_esm/node/index.js.map +1 -0
- package/_esm/utils/index.js +4 -1
- package/_esm/utils/index.js.map +1 -1
- package/_esm/utils/rpc/compat.js +86 -0
- package/_esm/utils/rpc/compat.js.map +1 -0
- package/_esm/utils/rpc/http.js +70 -0
- package/_esm/utils/rpc/http.js.map +1 -0
- package/_esm/utils/rpc/id.js +13 -0
- package/_esm/utils/rpc/id.js.map +1 -0
- package/_esm/utils/rpc/ipc.js +71 -0
- package/_esm/utils/rpc/ipc.js.map +1 -0
- package/_esm/utils/rpc/socket.js +90 -0
- package/_esm/utils/rpc/socket.js.map +1 -0
- package/_esm/utils/rpc/webSocket.js +48 -0
- package/_esm/utils/rpc/webSocket.js.map +1 -0
- package/_types/accounts/utils/sign.d.ts.map +1 -1
- package/_types/chains/definitions/acala.d.ts +1 -0
- package/_types/chains/definitions/acala.d.ts.map +1 -1
- package/_types/chains/definitions/arbitrum.d.ts +1 -0
- package/_types/chains/definitions/arbitrum.d.ts.map +1 -1
- package/_types/chains/definitions/arbitrumGoerli.d.ts +1 -0
- package/_types/chains/definitions/arbitrumGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/arbitrumNova.d.ts +1 -0
- package/_types/chains/definitions/arbitrumNova.d.ts.map +1 -1
- package/_types/chains/definitions/arbitrumSepolia.d.ts +1 -0
- package/_types/chains/definitions/arbitrumSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/astar.d.ts +1 -0
- package/_types/chains/definitions/astar.d.ts.map +1 -1
- package/_types/chains/definitions/astarZkatana.d.ts +1 -0
- package/_types/chains/definitions/astarZkatana.d.ts.map +1 -1
- package/_types/chains/definitions/aurora.d.ts +1 -0
- package/_types/chains/definitions/aurora.d.ts.map +1 -1
- package/_types/chains/definitions/auroraTestnet.d.ts +1 -0
- package/_types/chains/definitions/auroraTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/avalanche.d.ts +1 -0
- package/_types/chains/definitions/avalanche.d.ts.map +1 -1
- package/_types/chains/definitions/avalancheFuji.d.ts +1 -0
- package/_types/chains/definitions/avalancheFuji.d.ts.map +1 -1
- package/_types/chains/definitions/bahamut.d.ts +1 -0
- package/_types/chains/definitions/bahamut.d.ts.map +1 -1
- package/_types/chains/definitions/base.d.ts +2 -0
- package/_types/chains/definitions/base.d.ts.map +1 -1
- package/_types/chains/definitions/baseGoerli.d.ts +2 -0
- package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/baseSepolia.d.ts +2 -0
- package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/bearNetworkChainMainnet.d.ts +1 -0
- package/_types/chains/definitions/bearNetworkChainMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/bearNetworkChainTestnet.d.ts +1 -0
- package/_types/chains/definitions/bearNetworkChainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/berachainTestnet.d.ts +35 -0
- package/_types/chains/definitions/berachainTestnet.d.ts.map +1 -0
- package/_types/chains/definitions/bitTorrent.d.ts +1 -0
- package/_types/chains/definitions/bitTorrent.d.ts.map +1 -1
- package/_types/chains/definitions/bitTorrentTestnet.d.ts +1 -0
- package/_types/chains/definitions/bitTorrentTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/blastSepolia.d.ts +1 -0
- package/_types/chains/definitions/blastSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/boba.d.ts +1 -0
- package/_types/chains/definitions/boba.d.ts.map +1 -1
- package/_types/chains/definitions/bronos.d.ts +1 -0
- package/_types/chains/definitions/bronos.d.ts.map +1 -1
- package/_types/chains/definitions/bronosTestnet.d.ts +1 -0
- package/_types/chains/definitions/bronosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bsc.d.ts +1 -0
- package/_types/chains/definitions/bsc.d.ts.map +1 -1
- package/_types/chains/definitions/bscTestnet.d.ts +1 -0
- package/_types/chains/definitions/bscTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/bxn.d.ts +1 -0
- package/_types/chains/definitions/bxn.d.ts.map +1 -1
- package/_types/chains/definitions/bxnTestnet.d.ts +1 -0
- package/_types/chains/definitions/bxnTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/canto.d.ts +1 -0
- package/_types/chains/definitions/canto.d.ts.map +1 -1
- package/_types/chains/definitions/celo.d.ts +1 -0
- package/_types/chains/definitions/celo.d.ts.map +1 -1
- package/_types/chains/definitions/celoAlfajores.d.ts +1 -0
- package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
- package/_types/chains/definitions/chiliz.d.ts +1 -0
- package/_types/chains/definitions/chiliz.d.ts.map +1 -1
- package/_types/chains/definitions/classic.d.ts +1 -0
- package/_types/chains/definitions/classic.d.ts.map +1 -1
- package/_types/chains/definitions/confluxESpace.d.ts +1 -0
- package/_types/chains/definitions/confluxESpace.d.ts.map +1 -1
- package/_types/chains/definitions/confluxESpaceTestnet.d.ts +1 -0
- package/_types/chains/definitions/confluxESpaceTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/coreDao.d.ts +1 -0
- package/_types/chains/definitions/coreDao.d.ts.map +1 -1
- package/_types/chains/definitions/cronos.d.ts +1 -0
- package/_types/chains/definitions/cronos.d.ts.map +1 -1
- package/_types/chains/definitions/cronosTestnet.d.ts +1 -0
- package/_types/chains/definitions/cronosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/crossbell.d.ts +1 -0
- package/_types/chains/definitions/crossbell.d.ts.map +1 -1
- package/_types/chains/definitions/defichainEvm.d.ts +1 -0
- package/_types/chains/definitions/defichainEvm.d.ts.map +1 -1
- package/_types/chains/definitions/defichainEvmTestnet.d.ts +1 -0
- package/_types/chains/definitions/defichainEvmTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/dfk.d.ts +1 -0
- package/_types/chains/definitions/dfk.d.ts.map +1 -1
- package/_types/chains/definitions/dogechain.d.ts +1 -0
- package/_types/chains/definitions/dogechain.d.ts.map +1 -1
- package/_types/chains/definitions/edgeware.d.ts +1 -0
- package/_types/chains/definitions/edgeware.d.ts.map +1 -1
- package/_types/chains/definitions/edgewareTestnet.d.ts +1 -0
- package/_types/chains/definitions/edgewareTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/ekta.d.ts +1 -0
- package/_types/chains/definitions/ekta.d.ts.map +1 -1
- package/_types/chains/definitions/ektaTestnet.d.ts +1 -0
- package/_types/chains/definitions/ektaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/eon.d.ts +1 -0
- package/_types/chains/definitions/eon.d.ts.map +1 -1
- package/_types/chains/definitions/eos.d.ts +1 -0
- package/_types/chains/definitions/eos.d.ts.map +1 -1
- package/_types/chains/definitions/eosTestnet.d.ts +1 -0
- package/_types/chains/definitions/eosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/evmos.d.ts +1 -0
- package/_types/chains/definitions/evmos.d.ts.map +1 -1
- package/_types/chains/definitions/evmosTestnet.d.ts +1 -0
- package/_types/chains/definitions/evmosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/fantom.d.ts +1 -0
- package/_types/chains/definitions/fantom.d.ts.map +1 -1
- package/_types/chains/definitions/fantomSonicTestnet.d.ts +1 -0
- package/_types/chains/definitions/fantomSonicTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/fantomTestnet.d.ts +1 -0
- package/_types/chains/definitions/fantomTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/fibo.d.ts +1 -0
- package/_types/chains/definitions/fibo.d.ts.map +1 -1
- package/_types/chains/definitions/filecoin.d.ts +1 -0
- package/_types/chains/definitions/filecoin.d.ts.map +1 -1
- package/_types/chains/definitions/filecoinCalibration.d.ts +1 -0
- package/_types/chains/definitions/filecoinCalibration.d.ts.map +1 -1
- package/_types/chains/definitions/filecoinHyperspace.d.ts +1 -0
- package/_types/chains/definitions/filecoinHyperspace.d.ts.map +1 -1
- package/_types/chains/definitions/flare.d.ts +1 -0
- package/_types/chains/definitions/flare.d.ts.map +1 -1
- package/_types/chains/definitions/flareTestnet.d.ts +1 -0
- package/_types/chains/definitions/flareTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/foundry.d.ts +1 -0
- package/_types/chains/definitions/foundry.d.ts.map +1 -1
- package/_types/chains/definitions/fuse.d.ts +1 -0
- package/_types/chains/definitions/fuse.d.ts.map +1 -1
- package/_types/chains/definitions/fuseSparknet.d.ts +1 -0
- package/_types/chains/definitions/fuseSparknet.d.ts.map +1 -1
- package/_types/chains/definitions/gnosis.d.ts +1 -0
- package/_types/chains/definitions/gnosis.d.ts.map +1 -1
- package/_types/chains/definitions/gnosisChiado.d.ts +1 -0
- package/_types/chains/definitions/gnosisChiado.d.ts.map +1 -1
- package/_types/chains/definitions/gobi.d.ts +1 -0
- package/_types/chains/definitions/gobi.d.ts.map +1 -1
- package/_types/chains/definitions/goerli.d.ts +1 -0
- package/_types/chains/definitions/goerli.d.ts.map +1 -1
- package/_types/chains/definitions/haqqMainnet.d.ts +1 -0
- package/_types/chains/definitions/haqqMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/haqqTestedge2.d.ts +1 -0
- package/_types/chains/definitions/haqqTestedge2.d.ts.map +1 -1
- package/_types/chains/definitions/hardhat.d.ts +1 -0
- package/_types/chains/definitions/hardhat.d.ts.map +1 -1
- package/_types/chains/definitions/harmonyOne.d.ts +1 -0
- package/_types/chains/definitions/harmonyOne.d.ts.map +1 -1
- package/_types/chains/definitions/holesky.d.ts +1 -0
- package/_types/chains/definitions/holesky.d.ts.map +1 -1
- package/_types/chains/definitions/iotex.d.ts +1 -0
- package/_types/chains/definitions/iotex.d.ts.map +1 -1
- package/_types/chains/definitions/iotexTestnet.d.ts +1 -0
- package/_types/chains/definitions/iotexTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/jbc.d.ts +1 -0
- package/_types/chains/definitions/jbc.d.ts.map +1 -1
- package/_types/chains/definitions/karura.d.ts +1 -0
- package/_types/chains/definitions/karura.d.ts.map +1 -1
- package/_types/chains/definitions/kava.d.ts +1 -0
- package/_types/chains/definitions/kava.d.ts.map +1 -1
- package/_types/chains/definitions/kavaTestnet.d.ts +1 -0
- package/_types/chains/definitions/kavaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/kcc.d.ts +37 -0
- package/_types/chains/definitions/kcc.d.ts.map +1 -0
- package/_types/chains/definitions/klaytn.d.ts +1 -0
- package/_types/chains/definitions/klaytn.d.ts.map +1 -1
- package/_types/chains/definitions/klaytnBaobab.d.ts +1 -0
- package/_types/chains/definitions/klaytnBaobab.d.ts.map +1 -1
- package/_types/chains/definitions/kroma.d.ts +1 -0
- package/_types/chains/definitions/kroma.d.ts.map +1 -1
- package/_types/chains/definitions/kromaSepolia.d.ts +1 -0
- package/_types/chains/definitions/kromaSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/lightlinkPegasus.d.ts +1 -0
- package/_types/chains/definitions/lightlinkPegasus.d.ts.map +1 -1
- package/_types/chains/definitions/lightlinkPhoenix.d.ts +1 -0
- package/_types/chains/definitions/lightlinkPhoenix.d.ts.map +1 -1
- package/_types/chains/definitions/linea.d.ts +1 -0
- package/_types/chains/definitions/linea.d.ts.map +1 -1
- package/_types/chains/definitions/lineaTestnet.d.ts +1 -0
- package/_types/chains/definitions/lineaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/localhost.d.ts +1 -0
- package/_types/chains/definitions/localhost.d.ts.map +1 -1
- package/_types/chains/definitions/lukso.d.ts +1 -0
- package/_types/chains/definitions/lukso.d.ts.map +1 -1
- package/_types/chains/definitions/mainnet.d.ts +1 -0
- package/_types/chains/definitions/mainnet.d.ts.map +1 -1
- package/_types/chains/definitions/mandala.d.ts +1 -0
- package/_types/chains/definitions/mandala.d.ts.map +1 -1
- package/_types/chains/definitions/manta.d.ts +1 -0
- package/_types/chains/definitions/manta.d.ts.map +1 -1
- package/_types/chains/definitions/mantaTestnet.d.ts +1 -0
- package/_types/chains/definitions/mantaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/mantle.d.ts +1 -0
- package/_types/chains/definitions/mantle.d.ts.map +1 -1
- package/_types/chains/definitions/mantleTestnet.d.ts +1 -0
- package/_types/chains/definitions/mantleTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/metachain.d.ts +1 -0
- package/_types/chains/definitions/metachain.d.ts.map +1 -1
- package/_types/chains/definitions/meter.d.ts +1 -0
- package/_types/chains/definitions/meter.d.ts.map +1 -1
- package/_types/chains/definitions/meterTestnet.d.ts +1 -0
- package/_types/chains/definitions/meterTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/metis.d.ts +1 -0
- package/_types/chains/definitions/metis.d.ts.map +1 -1
- package/_types/chains/definitions/metisGoerli.d.ts +1 -0
- package/_types/chains/definitions/metisGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/mev.d.ts +1 -0
- package/_types/chains/definitions/mev.d.ts.map +1 -1
- package/_types/chains/definitions/mevTestnet.d.ts +1 -0
- package/_types/chains/definitions/mevTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/modeTestnet.d.ts +1 -0
- package/_types/chains/definitions/modeTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/moonbaseAlpha.d.ts +1 -0
- package/_types/chains/definitions/moonbaseAlpha.d.ts.map +1 -1
- package/_types/chains/definitions/moonbeam.d.ts +1 -0
- package/_types/chains/definitions/moonbeam.d.ts.map +1 -1
- package/_types/chains/definitions/moonbeamDev.d.ts +1 -0
- package/_types/chains/definitions/moonbeamDev.d.ts.map +1 -1
- package/_types/chains/definitions/moonriver.d.ts +1 -0
- package/_types/chains/definitions/moonriver.d.ts.map +1 -1
- package/_types/chains/definitions/neonDevnet.d.ts +1 -0
- package/_types/chains/definitions/neonDevnet.d.ts.map +1 -1
- package/_types/chains/definitions/neonMainnet.d.ts +1 -0
- package/_types/chains/definitions/neonMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/nexi.d.ts +1 -0
- package/_types/chains/definitions/nexi.d.ts.map +1 -1
- package/_types/chains/definitions/nexilix.d.ts +1 -0
- package/_types/chains/definitions/nexilix.d.ts.map +1 -1
- package/_types/chains/definitions/oasisTestnet.d.ts +1 -0
- package/_types/chains/definitions/oasisTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/oasys.d.ts +1 -0
- package/_types/chains/definitions/oasys.d.ts.map +1 -1
- package/_types/chains/definitions/okc.d.ts +1 -0
- package/_types/chains/definitions/okc.d.ts.map +1 -1
- package/_types/chains/definitions/opBNB.d.ts +1 -0
- package/_types/chains/definitions/opBNB.d.ts.map +1 -1
- package/_types/chains/definitions/opBNBTestnet.d.ts +1 -0
- package/_types/chains/definitions/opBNBTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/optimism.d.ts +2 -0
- package/_types/chains/definitions/optimism.d.ts.map +1 -1
- package/_types/chains/definitions/optimismGoerli.d.ts +2 -0
- package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/optimismSepolia.d.ts +2 -0
- package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/palm.d.ts +1 -0
- package/_types/chains/definitions/palm.d.ts.map +1 -1
- package/_types/chains/definitions/palmTestnet.d.ts +1 -0
- package/_types/chains/definitions/palmTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/pgn.d.ts +2 -0
- package/_types/chains/definitions/pgn.d.ts.map +1 -1
- package/_types/chains/definitions/pgnTestnet.d.ts +2 -0
- package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/plinga.d.ts +1 -0
- package/_types/chains/definitions/plinga.d.ts.map +1 -1
- package/_types/chains/definitions/polygon.d.ts +1 -0
- package/_types/chains/definitions/polygon.d.ts.map +1 -1
- package/_types/chains/definitions/polygonMumbai.d.ts +1 -0
- package/_types/chains/definitions/polygonMumbai.d.ts.map +1 -1
- package/_types/chains/definitions/polygonZkEvm.d.ts +1 -0
- package/_types/chains/definitions/polygonZkEvm.d.ts.map +1 -1
- package/_types/chains/definitions/polygonZkEvmTestnet.d.ts +1 -0
- package/_types/chains/definitions/polygonZkEvmTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/pulsechain.d.ts +1 -0
- package/_types/chains/definitions/pulsechain.d.ts.map +1 -1
- package/_types/chains/definitions/pulsechainV4.d.ts +1 -0
- package/_types/chains/definitions/pulsechainV4.d.ts.map +1 -1
- package/_types/chains/definitions/qMainnet.d.ts +1 -0
- package/_types/chains/definitions/qMainnet.d.ts.map +1 -1
- package/_types/chains/definitions/qTestnet.d.ts +1 -0
- package/_types/chains/definitions/qTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/rollux.d.ts +1 -0
- package/_types/chains/definitions/rollux.d.ts.map +1 -1
- package/_types/chains/definitions/rolluxTestnet.d.ts +1 -0
- package/_types/chains/definitions/rolluxTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/ronin.d.ts +1 -0
- package/_types/chains/definitions/ronin.d.ts.map +1 -1
- package/_types/chains/definitions/rootstock.d.ts +1 -0
- package/_types/chains/definitions/rootstock.d.ts.map +1 -1
- package/_types/chains/definitions/saigon.d.ts +1 -0
- package/_types/chains/definitions/saigon.d.ts.map +1 -1
- package/_types/chains/definitions/sapphire.d.ts +1 -0
- package/_types/chains/definitions/sapphire.d.ts.map +1 -1
- package/_types/chains/definitions/sapphireTestnet.d.ts +1 -0
- package/_types/chains/definitions/sapphireTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/scroll.d.ts +1 -0
- package/_types/chains/definitions/scroll.d.ts.map +1 -1
- package/_types/chains/definitions/scrollSepolia.d.ts +1 -0
- package/_types/chains/definitions/scrollSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/scrollTestnet.d.ts +1 -0
- package/_types/chains/definitions/scrollTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/sepolia.d.ts +1 -0
- package/_types/chains/definitions/sepolia.d.ts.map +1 -1
- package/_types/chains/definitions/shardeumSphinx.d.ts +1 -0
- package/_types/chains/definitions/shardeumSphinx.d.ts.map +1 -1
- package/_types/chains/definitions/shibarium.d.ts +1 -0
- package/_types/chains/definitions/shibarium.d.ts.map +1 -1
- package/_types/chains/definitions/shimmer.d.ts +1 -0
- package/_types/chains/definitions/shimmer.d.ts.map +1 -1
- package/_types/chains/definitions/shimmerTestnet.d.ts +1 -0
- package/_types/chains/definitions/shimmerTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/skale/brawl.d.ts +1 -0
- package/_types/chains/definitions/skale/brawl.d.ts.map +1 -1
- package/_types/chains/definitions/skale/calypso.d.ts +1 -0
- package/_types/chains/definitions/skale/calypso.d.ts.map +1 -1
- package/_types/chains/definitions/skale/calypsoTestnet.d.ts +1 -0
- package/_types/chains/definitions/skale/calypsoTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/skale/chaosTestnet.d.ts +1 -0
- package/_types/chains/definitions/skale/chaosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/skale/cryptoBlades.d.ts +1 -0
- package/_types/chains/definitions/skale/cryptoBlades.d.ts.map +1 -1
- package/_types/chains/definitions/skale/cryptoColosseum.d.ts +1 -0
- package/_types/chains/definitions/skale/cryptoColosseum.d.ts.map +1 -1
- package/_types/chains/definitions/skale/europa.d.ts +1 -0
- package/_types/chains/definitions/skale/europa.d.ts.map +1 -1
- package/_types/chains/definitions/skale/europaTestnet.d.ts +1 -0
- package/_types/chains/definitions/skale/europaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/skale/exorde.d.ts +1 -0
- package/_types/chains/definitions/skale/exorde.d.ts.map +1 -1
- package/_types/chains/definitions/skale/humanProtocol.d.ts +1 -0
- package/_types/chains/definitions/skale/humanProtocol.d.ts.map +1 -1
- package/_types/chains/definitions/skale/nebula.d.ts +1 -0
- package/_types/chains/definitions/skale/nebula.d.ts.map +1 -1
- package/_types/chains/definitions/skale/nebulaTestnet.d.ts +1 -0
- package/_types/chains/definitions/skale/nebulaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/skale/razor.d.ts +1 -0
- package/_types/chains/definitions/skale/razor.d.ts.map +1 -1
- package/_types/chains/definitions/skale/titan.d.ts +1 -0
- package/_types/chains/definitions/skale/titan.d.ts.map +1 -1
- package/_types/chains/definitions/skale/titanTestnet.d.ts +1 -0
- package/_types/chains/definitions/skale/titanTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/songbird.d.ts +1 -0
- package/_types/chains/definitions/songbird.d.ts.map +1 -1
- package/_types/chains/definitions/songbirdTestnet.d.ts +1 -0
- package/_types/chains/definitions/songbirdTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/spicy.d.ts +1 -0
- package/_types/chains/definitions/spicy.d.ts.map +1 -1
- package/_types/chains/definitions/syscoin.d.ts +1 -0
- package/_types/chains/definitions/syscoin.d.ts.map +1 -1
- package/_types/chains/definitions/syscoinTestnet.d.ts +1 -0
- package/_types/chains/definitions/syscoinTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/taikoJolnir.d.ts +1 -0
- package/_types/chains/definitions/taikoJolnir.d.ts.map +1 -1
- package/_types/chains/definitions/taikoKatla.d.ts +1 -0
- package/_types/chains/definitions/taikoKatla.d.ts.map +1 -1
- package/_types/chains/definitions/taikoTestnetSepolia.d.ts +1 -0
- package/_types/chains/definitions/taikoTestnetSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/taraxa.d.ts +1 -0
- package/_types/chains/definitions/taraxa.d.ts.map +1 -1
- package/_types/chains/definitions/taraxaTestnet.d.ts +1 -0
- package/_types/chains/definitions/taraxaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/telos.d.ts +1 -0
- package/_types/chains/definitions/telos.d.ts.map +1 -1
- package/_types/chains/definitions/telosTestnet.d.ts +1 -0
- package/_types/chains/definitions/telosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/tenet.d.ts +1 -0
- package/_types/chains/definitions/tenet.d.ts.map +1 -1
- package/_types/chains/definitions/thunderTestnet.d.ts +1 -0
- package/_types/chains/definitions/thunderTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/vechain.d.ts +1 -0
- package/_types/chains/definitions/vechain.d.ts.map +1 -1
- package/_types/chains/definitions/wanchain.d.ts +1 -0
- package/_types/chains/definitions/wanchain.d.ts.map +1 -1
- package/_types/chains/definitions/wanchainTestnet.d.ts +1 -0
- package/_types/chains/definitions/wanchainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/wemix.d.ts +1 -0
- package/_types/chains/definitions/wemix.d.ts.map +1 -1
- package/_types/chains/definitions/wemixTestnet.d.ts +1 -0
- package/_types/chains/definitions/wemixTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/xdc.d.ts +1 -0
- package/_types/chains/definitions/xdc.d.ts.map +1 -1
- package/_types/chains/definitions/xdcTestnet.d.ts +1 -0
- package/_types/chains/definitions/xdcTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zetachainAthensTestnet.d.ts +1 -0
- package/_types/chains/definitions/zetachainAthensTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zhejiang.d.ts +1 -0
- package/_types/chains/definitions/zhejiang.d.ts.map +1 -1
- package/_types/chains/definitions/zilliqa.d.ts +1 -0
- package/_types/chains/definitions/zilliqa.d.ts.map +1 -1
- package/_types/chains/definitions/zilliqaTestnet.d.ts +1 -0
- package/_types/chains/definitions/zilliqaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkFair.d.ts +1 -0
- package/_types/chains/definitions/zkFair.d.ts.map +1 -1
- package/_types/chains/definitions/zkFairTestnet.d.ts +1 -0
- package/_types/chains/definitions/zkFairTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkSync.d.ts +23 -18
- package/_types/chains/definitions/zkSync.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +20 -16
- package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncTestnet.d.ts +20 -16
- package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zora.d.ts +2 -0
- package/_types/chains/definitions/zora.d.ts.map +1 -1
- package/_types/chains/definitions/zoraSepolia.d.ts +2 -0
- package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/zoraTestnet.d.ts +2 -0
- package/_types/chains/definitions/zoraTestnet.d.ts.map +1 -1
- package/_types/chains/index.d.ts +2 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/chains/opStack/chainConfig.d.ts +1 -0
- package/_types/chains/opStack/chainConfig.d.ts.map +1 -1
- package/_types/chains/opStack/formatters.d.ts +1 -0
- package/_types/chains/opStack/formatters.d.ts.map +1 -1
- package/_types/chains/zksync/actions/sendEip712Transaction.d.ts +50 -0
- package/_types/chains/zksync/actions/sendEip712Transaction.d.ts.map +1 -0
- package/_types/chains/zksync/actions/sendTransaction.d.ts +54 -0
- package/_types/chains/zksync/actions/sendTransaction.d.ts.map +1 -0
- package/_types/chains/zksync/actions/signEip712Transaction.d.ts +54 -0
- package/_types/chains/zksync/actions/signEip712Transaction.d.ts.map +1 -0
- package/_types/chains/zksync/actions/signTransaction.d.ts +56 -0
- package/_types/chains/zksync/actions/signTransaction.d.ts.map +1 -0
- package/_types/chains/zksync/chainConfig.d.ts +20 -16
- package/_types/chains/zksync/chainConfig.d.ts.map +1 -1
- package/_types/chains/zksync/chains.d.ts +4 -0
- package/_types/chains/zksync/chains.d.ts.map +1 -0
- package/_types/chains/zksync/decorators/eip712.d.ts +151 -0
- package/_types/chains/zksync/decorators/eip712.d.ts.map +1 -0
- package/_types/chains/zksync/errors/transaction.d.ts +9 -0
- package/_types/chains/zksync/errors/transaction.d.ts.map +1 -0
- package/_types/chains/zksync/formatters.d.ts +12 -9
- package/_types/chains/zksync/formatters.d.ts.map +1 -1
- package/_types/chains/zksync/index.d.ts +12 -1
- package/_types/chains/zksync/index.d.ts.map +1 -1
- package/_types/chains/zksync/serializers.d.ts +1 -2
- package/_types/chains/zksync/serializers.d.ts.map +1 -1
- package/_types/chains/zksync/types/block.d.ts +15 -0
- package/_types/chains/zksync/types/block.d.ts.map +1 -0
- package/_types/chains/zksync/types/chain.d.ts +9 -0
- package/_types/chains/zksync/types/chain.d.ts.map +1 -0
- package/_types/chains/zksync/types/eip712.d.ts +27 -0
- package/_types/chains/zksync/types/eip712.d.ts.map +1 -0
- package/_types/chains/zksync/types/fee.d.ts +6 -0
- package/_types/chains/zksync/types/fee.d.ts.map +1 -0
- package/_types/chains/zksync/types/log.d.ts +41 -0
- package/_types/chains/zksync/types/log.d.ts.map +1 -0
- package/_types/chains/zksync/{types.d.ts → types/transaction.d.ts} +35 -71
- package/_types/chains/zksync/types/transaction.d.ts.map +1 -0
- package/_types/chains/zksync/utils/assertEip712Request.d.ts +8 -0
- package/_types/chains/zksync/utils/assertEip712Request.d.ts.map +1 -0
- package/_types/chains/zksync/utils/assertEip712Transaction.d.ts +3 -0
- package/_types/chains/zksync/utils/assertEip712Transaction.d.ts.map +1 -0
- package/_types/chains/zksync/utils/getEip712Domain.d.ts +4 -0
- package/_types/chains/zksync/utils/getEip712Domain.d.ts.map +1 -0
- package/_types/chains/zksync/utils/isEip712Transaction.d.ts +3 -0
- package/_types/chains/zksync/utils/isEip712Transaction.d.ts.map +1 -0
- package/_types/clients/transports/http.d.ts +2 -2
- package/_types/clients/transports/http.d.ts.map +1 -1
- package/_types/clients/transports/ipc.d.ts +46 -0
- package/_types/clients/transports/ipc.d.ts.map +1 -0
- package/_types/clients/transports/webSocket.d.ts +6 -1
- package/_types/clients/transports/webSocket.d.ts.map +1 -1
- package/_types/errors/chain.d.ts +1 -1
- package/_types/errors/chain.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/node/index.d.ts +3 -0
- package/_types/node/index.d.ts.map +1 -0
- package/_types/types/chain.d.ts +3 -1
- package/_types/types/chain.d.ts.map +1 -1
- package/_types/types/rpc.d.ts +35 -0
- package/_types/types/rpc.d.ts.map +1 -1
- package/_types/types/transaction.d.ts +2 -0
- package/_types/types/transaction.d.ts.map +1 -1
- package/_types/utils/buildRequest.d.ts +2 -2
- package/_types/utils/buildRequest.d.ts.map +1 -1
- package/_types/utils/index.d.ts +4 -1
- package/_types/utils/index.d.ts.map +1 -1
- package/_types/utils/rpc/compat.d.ts +78 -0
- package/_types/utils/rpc/compat.d.ts.map +1 -0
- package/_types/utils/rpc/http.d.ts +20 -0
- package/_types/utils/rpc/http.d.ts.map +1 -0
- package/_types/utils/rpc/id.d.ts +11 -0
- package/_types/utils/rpc/id.d.ts.map +1 -0
- package/_types/utils/rpc/ipc.d.ts +8 -0
- package/_types/utils/rpc/ipc.d.ts.map +1 -0
- package/_types/utils/rpc/socket.d.ts +45 -0
- package/_types/utils/rpc/socket.d.ts.map +1 -0
- package/_types/utils/rpc/webSocket.d.ts +3 -0
- package/_types/utils/rpc/webSocket.d.ts.map +1 -0
- package/accounts/utils/sign.ts +2 -0
- package/chains/definitions/berachainTestnet.ts +21 -0
- package/chains/definitions/kcc.ts +30 -0
- package/chains/definitions/zkSync.ts +3 -2
- package/chains/index.ts +2 -0
- package/chains/zksync/actions/sendEip712Transaction.ts +129 -0
- package/chains/zksync/actions/sendTransaction.ts +78 -0
- package/chains/zksync/actions/signEip712Transaction.ts +150 -0
- package/chains/zksync/actions/signTransaction.ts +95 -0
- package/chains/zksync/chainConfig.ts +4 -0
- package/chains/zksync/chains.ts +3 -0
- package/chains/zksync/decorators/eip712.ts +186 -0
- package/chains/zksync/errors/transaction.ts +21 -0
- package/chains/zksync/formatters.ts +6 -5
- package/chains/zksync/index.ts +51 -4
- package/chains/zksync/serializers.ts +6 -50
- package/chains/zksync/types/block.ts +34 -0
- package/chains/zksync/types/chain.ts +28 -0
- package/chains/zksync/types/eip712.ts +31 -0
- package/chains/zksync/types/fee.ts +5 -0
- package/chains/zksync/types/log.ts +57 -0
- package/chains/zksync/{types.ts → types/transaction.ts} +50 -122
- package/chains/zksync/utils/assertEip712Request.ts +18 -0
- package/chains/zksync/utils/assertEip712Transaction.ts +35 -0
- package/chains/zksync/utils/getEip712Domain.ts +83 -0
- package/chains/zksync/utils/isEip712Transaction.ts +17 -0
- package/clients/transports/http.ts +15 -6
- package/clients/transports/ipc.ts +144 -0
- package/clients/transports/webSocket.ts +16 -6
- package/errors/chain.ts +6 -2
- package/errors/version.ts +1 -1
- package/node/index.ts +11 -0
- package/node/package.json +6 -0
- package/package.json +9 -1
- package/types/chain.ts +5 -0
- package/types/rpc.ts +44 -0
- package/types/transaction.ts +2 -0
- package/utils/buildRequest.ts +2 -2
- package/utils/index.ts +19 -8
- package/utils/rpc/compat.ts +117 -0
- package/utils/rpc/http.ts +132 -0
- package/utils/rpc/id.ts +13 -0
- package/utils/rpc/ipc.ts +89 -0
- package/utils/rpc/socket.ts +162 -0
- package/utils/rpc/webSocket.ts +63 -0
- package/_cjs/chains/zksync/types.js.map +0 -1
- package/_cjs/utils/rpc.js +0 -154
- package/_cjs/utils/rpc.js.map +0 -1
- package/_esm/chains/zksync/types.js +0 -2
- package/_esm/chains/zksync/types.js.map +0 -1
- package/_esm/utils/rpc.js +0 -160
- package/_esm/utils/rpc.js.map +0 -1
- package/_types/chains/zksync/types.d.ts.map +0 -1
- package/_types/utils/rpc.d.ts +0 -80
- package/_types/utils/rpc.d.ts.map +0 -1
- package/utils/rpc.ts +0 -318
@@ -0,0 +1,144 @@
|
|
1
|
+
import { RpcRequestError } from '../../errors/request.js'
|
2
|
+
import { type UrlRequiredErrorType } from '../../errors/transport.js'
|
3
|
+
import type { ErrorType } from '../../errors/utils.js'
|
4
|
+
import type { Hash } from '../../types/misc.js'
|
5
|
+
import type { RpcResponse } from '../../types/rpc.js'
|
6
|
+
import { type IpcRpcClient, getIpcRpcClient } from '../../utils/rpc/ipc.js'
|
7
|
+
import {
|
8
|
+
type CreateTransportErrorType,
|
9
|
+
type Transport,
|
10
|
+
type TransportConfig,
|
11
|
+
createTransport,
|
12
|
+
} from './createTransport.js'
|
13
|
+
|
14
|
+
type IpcTransportSubscribeParameters = {
|
15
|
+
onData: (data: RpcResponse) => void
|
16
|
+
onError?: (error: any) => void
|
17
|
+
}
|
18
|
+
|
19
|
+
type IpcTransportSubscribeReturnType = {
|
20
|
+
subscriptionId: Hash
|
21
|
+
unsubscribe: () => Promise<RpcResponse<boolean>>
|
22
|
+
}
|
23
|
+
|
24
|
+
type IpcTransportSubscribe = {
|
25
|
+
subscribe(
|
26
|
+
args: IpcTransportSubscribeParameters & {
|
27
|
+
/**
|
28
|
+
* @description Add information about compiled contracts
|
29
|
+
* @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult
|
30
|
+
*/
|
31
|
+
params: ['newHeads']
|
32
|
+
},
|
33
|
+
): Promise<IpcTransportSubscribeReturnType>
|
34
|
+
}
|
35
|
+
|
36
|
+
export type IpcTransportConfig = {
|
37
|
+
/** The key of the Ipc transport. */
|
38
|
+
key?: TransportConfig['key']
|
39
|
+
/** The name of the Ipc transport. */
|
40
|
+
name?: TransportConfig['name']
|
41
|
+
/** The max number of times to retry. */
|
42
|
+
retryCount?: TransportConfig['retryCount']
|
43
|
+
/** The base delay (in ms) between retries. */
|
44
|
+
retryDelay?: TransportConfig['retryDelay']
|
45
|
+
/** The timeout (in ms) for async Ipc requests. Default: 10_000 */
|
46
|
+
timeout?: TransportConfig['timeout']
|
47
|
+
}
|
48
|
+
|
49
|
+
export type IpcTransport = Transport<
|
50
|
+
'ipc',
|
51
|
+
{
|
52
|
+
getRpcClient(): Promise<IpcRpcClient>
|
53
|
+
subscribe: IpcTransportSubscribe['subscribe']
|
54
|
+
}
|
55
|
+
>
|
56
|
+
|
57
|
+
export type IpcTransportErrorType =
|
58
|
+
| CreateTransportErrorType
|
59
|
+
| UrlRequiredErrorType
|
60
|
+
| ErrorType
|
61
|
+
|
62
|
+
/**
|
63
|
+
* @description Creates an IPC transport that connects to a JSON-RPC API.
|
64
|
+
*/
|
65
|
+
export function ipc(
|
66
|
+
path: string,
|
67
|
+
config: IpcTransportConfig = {},
|
68
|
+
): IpcTransport {
|
69
|
+
const { key = 'ipc', name = 'IPC JSON-RPC', retryDelay } = config
|
70
|
+
return ({ retryCount: retryCount_, timeout: timeout_ }) => {
|
71
|
+
const retryCount = config.retryCount ?? retryCount_
|
72
|
+
const timeout = timeout_ ?? config.timeout ?? 10_000
|
73
|
+
return createTransport(
|
74
|
+
{
|
75
|
+
key,
|
76
|
+
name,
|
77
|
+
async request({ method, params }) {
|
78
|
+
const body = { method, params }
|
79
|
+
const rpcClient = await getIpcRpcClient(path)
|
80
|
+
const { error, result } = await rpcClient.requestAsync({
|
81
|
+
body,
|
82
|
+
timeout,
|
83
|
+
})
|
84
|
+
if (error)
|
85
|
+
throw new RpcRequestError({
|
86
|
+
body,
|
87
|
+
error,
|
88
|
+
url: path,
|
89
|
+
})
|
90
|
+
return result
|
91
|
+
},
|
92
|
+
retryCount,
|
93
|
+
retryDelay,
|
94
|
+
timeout,
|
95
|
+
type: 'ipc',
|
96
|
+
},
|
97
|
+
{
|
98
|
+
getRpcClient() {
|
99
|
+
return getIpcRpcClient(path)
|
100
|
+
},
|
101
|
+
async subscribe({ params, onData, onError }: any) {
|
102
|
+
const rpcClient = await getIpcRpcClient(path)
|
103
|
+
const { result: subscriptionId } = await new Promise<any>(
|
104
|
+
(resolve, reject) =>
|
105
|
+
rpcClient.request({
|
106
|
+
body: {
|
107
|
+
method: 'eth_subscribe',
|
108
|
+
params,
|
109
|
+
},
|
110
|
+
onResponse(response) {
|
111
|
+
if (response.error) {
|
112
|
+
reject(response.error)
|
113
|
+
onError?.(response.error)
|
114
|
+
return
|
115
|
+
}
|
116
|
+
|
117
|
+
if (typeof response.id === 'number') {
|
118
|
+
resolve(response)
|
119
|
+
return
|
120
|
+
}
|
121
|
+
if (response.method !== 'eth_subscription') return
|
122
|
+
onData(response.params)
|
123
|
+
},
|
124
|
+
}),
|
125
|
+
)
|
126
|
+
return {
|
127
|
+
subscriptionId,
|
128
|
+
async unsubscribe() {
|
129
|
+
return new Promise<any>((resolve) =>
|
130
|
+
rpcClient.request({
|
131
|
+
body: {
|
132
|
+
method: 'eth_unsubscribe',
|
133
|
+
params: [subscriptionId],
|
134
|
+
},
|
135
|
+
onResponse: resolve,
|
136
|
+
}),
|
137
|
+
)
|
138
|
+
},
|
139
|
+
}
|
140
|
+
},
|
141
|
+
},
|
142
|
+
)
|
143
|
+
}
|
144
|
+
}
|
@@ -5,7 +5,10 @@ import {
|
|
5
5
|
} from '../../errors/transport.js'
|
6
6
|
import type { ErrorType } from '../../errors/utils.js'
|
7
7
|
import type { Hash } from '../../types/misc.js'
|
8
|
-
import {
|
8
|
+
import type { RpcResponse } from '../../types/rpc.js'
|
9
|
+
import { getSocket } from '../../utils/rpc/compat.js'
|
10
|
+
import type { SocketRpcClient } from '../../utils/rpc/socket.js'
|
11
|
+
import { getWebSocketRpcClient } from '../../utils/rpc/webSocket.js'
|
9
12
|
import {
|
10
13
|
type CreateTransportErrorType,
|
11
14
|
type Transport,
|
@@ -51,7 +54,11 @@ export type WebSocketTransportConfig = {
|
|
51
54
|
export type WebSocketTransport = Transport<
|
52
55
|
'webSocket',
|
53
56
|
{
|
57
|
+
/**
|
58
|
+
* @deprecated use `getRpcClient` instead.
|
59
|
+
*/
|
54
60
|
getSocket(): Promise<WebSocket>
|
61
|
+
getRpcClient(): Promise<SocketRpcClient<WebSocket>>
|
55
62
|
subscribe: WebSocketTransportSubscribe['subscribe']
|
56
63
|
}
|
57
64
|
>
|
@@ -81,8 +88,8 @@ export function webSocket(
|
|
81
88
|
name,
|
82
89
|
async request({ method, params }) {
|
83
90
|
const body = { method, params }
|
84
|
-
const
|
85
|
-
const { error, result } = await
|
91
|
+
const rpcClient = await getWebSocketRpcClient(url_)
|
92
|
+
const { error, result } = await rpcClient.requestAsync({
|
86
93
|
body,
|
87
94
|
timeout,
|
88
95
|
})
|
@@ -103,11 +110,14 @@ export function webSocket(
|
|
103
110
|
getSocket() {
|
104
111
|
return getSocket(url_)
|
105
112
|
},
|
113
|
+
getRpcClient() {
|
114
|
+
return getWebSocketRpcClient(url_)
|
115
|
+
},
|
106
116
|
async subscribe({ params, onData, onError }: any) {
|
107
|
-
const
|
117
|
+
const rpcClient = await getWebSocketRpcClient(url_)
|
108
118
|
const { result: subscriptionId } = await new Promise<any>(
|
109
119
|
(resolve, reject) =>
|
110
|
-
|
120
|
+
rpcClient.request({
|
111
121
|
body: {
|
112
122
|
method: 'eth_subscribe',
|
113
123
|
params,
|
@@ -132,7 +142,7 @@ export function webSocket(
|
|
132
142
|
subscriptionId,
|
133
143
|
async unsubscribe() {
|
134
144
|
return new Promise<any>((resolve) =>
|
135
|
-
|
145
|
+
rpcClient.request({
|
136
146
|
body: {
|
137
147
|
method: 'eth_unsubscribe',
|
138
148
|
params: [subscriptionId],
|
package/errors/chain.ts
CHANGED
@@ -96,7 +96,11 @@ export type InvalidChainIdErrorType = InvalidChainIdError & {
|
|
96
96
|
export class InvalidChainIdError extends BaseError {
|
97
97
|
override name = 'InvalidChainIdError'
|
98
98
|
|
99
|
-
constructor({ chainId }: { chainId
|
100
|
-
super(
|
99
|
+
constructor({ chainId }: { chainId?: number }) {
|
100
|
+
super(
|
101
|
+
typeof chainId === 'number'
|
102
|
+
? `Chain ID "${chainId}" is invalid.`
|
103
|
+
: 'Chain ID is invalid.',
|
104
|
+
)
|
101
105
|
}
|
102
106
|
}
|
package/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '2.
|
1
|
+
export const version = '2.6.0'
|
package/node/index.ts
ADDED
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.6.0",
|
5
5
|
"main": "./_cjs/index.js",
|
6
6
|
"module": "./_esm/index.js",
|
7
7
|
"types": "./_types/index.d.ts",
|
@@ -52,6 +52,11 @@
|
|
52
52
|
"import": "./_esm/ens/index.js",
|
53
53
|
"default": "./_cjs/ens/index.js"
|
54
54
|
},
|
55
|
+
"./node": {
|
56
|
+
"types": "./_types/node/index.d.ts",
|
57
|
+
"import": "./_esm/node/index.js",
|
58
|
+
"default": "./_cjs/node/index.js"
|
59
|
+
},
|
55
60
|
"./op-stack": {
|
56
61
|
"types": "./_types/chains/opStack/index.d.ts",
|
57
62
|
"import": "./_esm/chains/opStack/index.js",
|
@@ -94,6 +99,9 @@
|
|
94
99
|
"ens": [
|
95
100
|
"./_types/ens/index.d.ts"
|
96
101
|
],
|
102
|
+
"node": [
|
103
|
+
"./_types/node/index.d.ts"
|
104
|
+
],
|
97
105
|
"op-stack": [
|
98
106
|
"./_types/chains/opStack/index.d.ts"
|
99
107
|
],
|
package/types/chain.ts
CHANGED
@@ -16,6 +16,9 @@ import type { SerializeTransactionFn } from '../utils/transaction/serializeTrans
|
|
16
16
|
|
17
17
|
export type Chain<
|
18
18
|
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
19
|
+
custom extends Record<string, unknown> | undefined =
|
20
|
+
| Record<string, unknown>
|
21
|
+
| undefined,
|
19
22
|
> = {
|
20
23
|
/** Collection of block explorers */
|
21
24
|
blockExplorers?:
|
@@ -55,6 +58,8 @@ export type Chain<
|
|
55
58
|
/** Flag for test networks */
|
56
59
|
testnet?: boolean | undefined
|
57
60
|
|
61
|
+
/** Custom chain data. */
|
62
|
+
custom?: custom
|
58
63
|
/**
|
59
64
|
* Modifies how chain data structures (ie. Blocks, Transactions, etc)
|
60
65
|
* are formatted & typed.
|
package/types/rpc.ts
CHANGED
@@ -57,3 +57,47 @@ export type RpcTransaction<TPending extends boolean = boolean> = UnionOmit<
|
|
57
57
|
>,
|
58
58
|
'typeHex'
|
59
59
|
>
|
60
|
+
|
61
|
+
type SuccessResult<T> = {
|
62
|
+
method?: never
|
63
|
+
result: T
|
64
|
+
error?: never
|
65
|
+
}
|
66
|
+
type ErrorResult<T> = {
|
67
|
+
method?: never
|
68
|
+
result?: never
|
69
|
+
error: T
|
70
|
+
}
|
71
|
+
type Subscription<TResult, TError> = {
|
72
|
+
method: 'eth_subscription'
|
73
|
+
error?: never
|
74
|
+
result?: never
|
75
|
+
params: {
|
76
|
+
subscription: string
|
77
|
+
} & (
|
78
|
+
| {
|
79
|
+
result: TResult
|
80
|
+
error?: never
|
81
|
+
}
|
82
|
+
| {
|
83
|
+
result?: never
|
84
|
+
error: TError
|
85
|
+
}
|
86
|
+
)
|
87
|
+
}
|
88
|
+
|
89
|
+
export type RpcRequest = {
|
90
|
+
jsonrpc?: '2.0'
|
91
|
+
method: string
|
92
|
+
params?: any
|
93
|
+
id?: number
|
94
|
+
}
|
95
|
+
|
96
|
+
export type RpcResponse<TResult = any, TError = any> = {
|
97
|
+
jsonrpc: `${number}`
|
98
|
+
id: number
|
99
|
+
} & (
|
100
|
+
| SuccessResult<TResult>
|
101
|
+
| ErrorResult<TError>
|
102
|
+
| Subscription<TResult, TError>
|
103
|
+
)
|
package/types/transaction.ts
CHANGED
@@ -35,6 +35,8 @@ export type TransactionReceipt<
|
|
35
35
|
logs: Log<TQuantity, TIndex, false>[]
|
36
36
|
/** Logs bloom filter */
|
37
37
|
logsBloom: Hex
|
38
|
+
/** The post-transaction state root. Only specified for transactions included before the Byzantium upgrade. */
|
39
|
+
root?: Hash
|
38
40
|
/** `success` if this transaction was successful or `reverted` if it failed */
|
39
41
|
status: TStatus
|
40
42
|
/** Transaction recipient or `null` if deploying a contract */
|
package/utils/buildRequest.ts
CHANGED
@@ -57,7 +57,7 @@ import type {
|
|
57
57
|
} from '../types/eip1193.js'
|
58
58
|
import type { CreateBatchSchedulerErrorType } from './promise/createBatchScheduler.js'
|
59
59
|
import { type WithRetryErrorType, withRetry } from './promise/withRetry.js'
|
60
|
-
import type {
|
60
|
+
import type { GetSocketRpcClientErrorType } from './rpc/socket.js'
|
61
61
|
|
62
62
|
export type RequestErrorType =
|
63
63
|
| ChainDisconnectedErrorType
|
@@ -67,7 +67,7 @@ export type RequestErrorType =
|
|
67
67
|
| InvalidInputRpcErrorType
|
68
68
|
| InvalidParamsRpcErrorType
|
69
69
|
| InvalidRequestRpcErrorType
|
70
|
-
|
|
70
|
+
| GetSocketRpcClientErrorType
|
71
71
|
| JsonRpcVersionUnsupportedErrorType
|
72
72
|
| LimitExceededRpcErrorType
|
73
73
|
| MethodNotFoundRpcErrorType
|
package/utils/index.ts
CHANGED
@@ -32,13 +32,6 @@ export {
|
|
32
32
|
export { arrayRegex, bytesRegex, integerRegex } from './regex.js'
|
33
33
|
|
34
34
|
export {
|
35
|
-
type GetSocketErrorType,
|
36
|
-
type HttpErrorType,
|
37
|
-
type HttpOptions,
|
38
|
-
type HttpReturnType,
|
39
|
-
type RpcRequest,
|
40
|
-
type RpcResponse,
|
41
|
-
type Socket,
|
42
35
|
type WebSocketAsyncErrorType,
|
43
36
|
type WebSocketAsyncOptions,
|
44
37
|
type WebSocketAsyncReturnType,
|
@@ -47,7 +40,25 @@ export {
|
|
47
40
|
type WebSocketReturnType,
|
48
41
|
getSocket,
|
49
42
|
rpc,
|
50
|
-
} from './rpc.js'
|
43
|
+
} from './rpc/compat.js'
|
44
|
+
export {
|
45
|
+
type HttpRpcClient,
|
46
|
+
type HttpRpcClientOptions,
|
47
|
+
type HttpRequestErrorType,
|
48
|
+
type HttpRequestParameters,
|
49
|
+
type HttpRequestReturnType,
|
50
|
+
getHttpRpcClient,
|
51
|
+
} from './rpc/http.js'
|
52
|
+
export {
|
53
|
+
type GetSocketRpcClientErrorType,
|
54
|
+
type GetSocketRpcClientParameters,
|
55
|
+
type GetSocketParameters,
|
56
|
+
type Socket,
|
57
|
+
type SocketRpcClient,
|
58
|
+
getSocketRpcClient,
|
59
|
+
socketClientCache,
|
60
|
+
} from './rpc/socket.js'
|
61
|
+
export { getWebSocketRpcClient } from './rpc/webSocket.js'
|
51
62
|
export { type StringifyErrorType, stringify } from './stringify.js'
|
52
63
|
export {
|
53
64
|
type DomainSeparatorErrorType,
|
@@ -0,0 +1,117 @@
|
|
1
|
+
// TODO(v3): This file is here for backwards compatibility, and to prevent breaking changes.
|
2
|
+
// These APIs will be removed in v3.
|
3
|
+
|
4
|
+
/* c8 ignore start */
|
5
|
+
import {
|
6
|
+
type TimeoutErrorType,
|
7
|
+
WebSocketRequestError,
|
8
|
+
} from '../../errors/request.js'
|
9
|
+
import type { ErrorType } from '../../errors/utils.js'
|
10
|
+
import type { RpcResponse } from '../../types/rpc.js'
|
11
|
+
import { type WithTimeoutErrorType } from '../promise/withTimeout.js'
|
12
|
+
import { type HttpRequestParameters, getHttpRpcClient } from './http.js'
|
13
|
+
import { type SocketRpcClient } from './socket.js'
|
14
|
+
import { getWebSocketRpcClient } from './webSocket.js'
|
15
|
+
|
16
|
+
export type WebSocketOptions = Parameters<
|
17
|
+
SocketRpcClient<WebSocket>['request']
|
18
|
+
>[0]
|
19
|
+
export type WebSocketReturnType = SocketRpcClient<WebSocket>
|
20
|
+
export type WebSocketErrorType = WebSocketRequestError | ErrorType
|
21
|
+
|
22
|
+
function webSocket(
|
23
|
+
socketClient: SocketRpcClient<WebSocket>,
|
24
|
+
{ body, onError, onResponse }: WebSocketOptions,
|
25
|
+
): WebSocketReturnType {
|
26
|
+
socketClient.request({
|
27
|
+
body,
|
28
|
+
onError,
|
29
|
+
onResponse,
|
30
|
+
})
|
31
|
+
return socketClient
|
32
|
+
}
|
33
|
+
|
34
|
+
export type WebSocketAsyncOptions = Parameters<
|
35
|
+
SocketRpcClient<WebSocket>['requestAsync']
|
36
|
+
>[0]
|
37
|
+
export type WebSocketAsyncReturnType = RpcResponse
|
38
|
+
export type WebSocketAsyncErrorType =
|
39
|
+
| WebSocketErrorType
|
40
|
+
| TimeoutErrorType
|
41
|
+
| WithTimeoutErrorType
|
42
|
+
| ErrorType
|
43
|
+
|
44
|
+
async function webSocketAsync(
|
45
|
+
socketClient: SocketRpcClient<WebSocket>,
|
46
|
+
{ body, timeout = 10_000 }: WebSocketAsyncOptions,
|
47
|
+
): Promise<WebSocketAsyncReturnType> {
|
48
|
+
return socketClient.requestAsync({
|
49
|
+
body,
|
50
|
+
timeout,
|
51
|
+
})
|
52
|
+
}
|
53
|
+
|
54
|
+
/**
|
55
|
+
* @deprecated use `getSocketClient` instead.
|
56
|
+
*
|
57
|
+
* ```diff
|
58
|
+
* -import { getSocket } from 'viem/utils'
|
59
|
+
* +import { getSocketClient } from 'viem/utils'
|
60
|
+
*
|
61
|
+
* -const socket = await getSocket(url)
|
62
|
+
* +const socketClient = await getSocketClient(url)
|
63
|
+
* +const socket = socketClient.socket
|
64
|
+
* ```
|
65
|
+
*/
|
66
|
+
export async function getSocket(url: string) {
|
67
|
+
const client = await getWebSocketRpcClient(url)
|
68
|
+
return Object.assign(client.socket, {
|
69
|
+
requests: client.requests,
|
70
|
+
subscriptions: client.subscriptions,
|
71
|
+
})
|
72
|
+
}
|
73
|
+
|
74
|
+
export const rpc = {
|
75
|
+
/**
|
76
|
+
* @deprecated use `getHttpRpcClient` instead.
|
77
|
+
*
|
78
|
+
* ```diff
|
79
|
+
* -import { rpc } from 'viem/utils'
|
80
|
+
* +import { getHttpRpcClient } from 'viem/utils'
|
81
|
+
*
|
82
|
+
* -rpc.http(url, params)
|
83
|
+
* +const httpClient = getHttpRpcClient(url)
|
84
|
+
* +httpClient.request(params)
|
85
|
+
* ```
|
86
|
+
*/
|
87
|
+
http(url: string, params: HttpRequestParameters) {
|
88
|
+
return getHttpRpcClient(url).request(params)
|
89
|
+
},
|
90
|
+
/**
|
91
|
+
* @deprecated use `getWebSocketRpcClient` instead.
|
92
|
+
*
|
93
|
+
* ```diff
|
94
|
+
* -import { rpc } from 'viem/utils'
|
95
|
+
* +import { getWebSocketRpcClient } from 'viem/utils'
|
96
|
+
*
|
97
|
+
* -rpc.webSocket(url, params)
|
98
|
+
* +const webSocketClient = getWebSocketRpcClient(url)
|
99
|
+
* +webSocketClient.request(params)
|
100
|
+
* ```
|
101
|
+
*/
|
102
|
+
webSocket,
|
103
|
+
/**
|
104
|
+
* @deprecated use `getWebSocketRpcClient` instead.
|
105
|
+
*
|
106
|
+
* ```diff
|
107
|
+
* -import { rpc } from 'viem/utils'
|
108
|
+
* +import { getWebSocketRpcClient } from 'viem/utils'
|
109
|
+
*
|
110
|
+
* -const response = await rpc.webSocketAsync(url, params)
|
111
|
+
* +const webSocketClient = getWebSocketRpcClient(url)
|
112
|
+
* +const response = await webSocketClient.requestAsync(params)
|
113
|
+
* ```
|
114
|
+
*/
|
115
|
+
webSocketAsync,
|
116
|
+
}
|
117
|
+
/* c8 ignore end */
|
@@ -0,0 +1,132 @@
|
|
1
|
+
import {
|
2
|
+
HttpRequestError,
|
3
|
+
type HttpRequestErrorType as HttpRequestErrorType_,
|
4
|
+
TimeoutError,
|
5
|
+
type TimeoutErrorType,
|
6
|
+
} from '../../errors/request.js'
|
7
|
+
import type { ErrorType } from '../../errors/utils.js'
|
8
|
+
import type { RpcRequest, RpcResponse } from '../../types/rpc.js'
|
9
|
+
import {
|
10
|
+
type WithTimeoutErrorType,
|
11
|
+
withTimeout,
|
12
|
+
} from '../promise/withTimeout.js'
|
13
|
+
import { stringify } from '../stringify.js'
|
14
|
+
import { idCache } from './id.js'
|
15
|
+
|
16
|
+
export type HttpRpcClientOptions = {
|
17
|
+
// Request configuration to pass to `fetch`.
|
18
|
+
fetchOptions?: Omit<RequestInit, 'body'>
|
19
|
+
// The timeout (in ms) for the request.
|
20
|
+
timeout?: number
|
21
|
+
}
|
22
|
+
|
23
|
+
export type HttpRequestParameters<
|
24
|
+
TBody extends RpcRequest | RpcRequest[] = RpcRequest,
|
25
|
+
> = {
|
26
|
+
// The RPC request body.
|
27
|
+
body: TBody
|
28
|
+
// Request configuration to pass to `fetch`.
|
29
|
+
fetchOptions?: HttpRpcClientOptions['fetchOptions']
|
30
|
+
// The timeout (in ms) for the request.
|
31
|
+
timeout?: HttpRpcClientOptions['timeout']
|
32
|
+
}
|
33
|
+
|
34
|
+
export type HttpRequestReturnType<
|
35
|
+
TBody extends RpcRequest | RpcRequest[] = RpcRequest,
|
36
|
+
> = TBody extends RpcRequest[] ? RpcResponse[] : RpcResponse
|
37
|
+
|
38
|
+
export type HttpRequestErrorType =
|
39
|
+
| HttpRequestErrorType_
|
40
|
+
| TimeoutErrorType
|
41
|
+
| WithTimeoutErrorType
|
42
|
+
| ErrorType
|
43
|
+
|
44
|
+
export type HttpRpcClient = {
|
45
|
+
request<TBody extends RpcRequest | RpcRequest[]>(
|
46
|
+
params: HttpRequestParameters<TBody>,
|
47
|
+
): Promise<HttpRequestReturnType<TBody>>
|
48
|
+
}
|
49
|
+
|
50
|
+
export function getHttpRpcClient(
|
51
|
+
url: string,
|
52
|
+
options: HttpRpcClientOptions = {},
|
53
|
+
): HttpRpcClient {
|
54
|
+
return {
|
55
|
+
async request(params) {
|
56
|
+
const {
|
57
|
+
body,
|
58
|
+
fetchOptions = {},
|
59
|
+
timeout = options.timeout ?? 10_000,
|
60
|
+
} = params
|
61
|
+
const {
|
62
|
+
headers,
|
63
|
+
method,
|
64
|
+
signal: signal_,
|
65
|
+
} = { ...options.fetchOptions, ...fetchOptions }
|
66
|
+
|
67
|
+
try {
|
68
|
+
const response = await withTimeout(
|
69
|
+
async ({ signal }) => {
|
70
|
+
const response = await fetch(url, {
|
71
|
+
...fetchOptions,
|
72
|
+
body: Array.isArray(body)
|
73
|
+
? stringify(
|
74
|
+
body.map((body) => ({
|
75
|
+
jsonrpc: '2.0',
|
76
|
+
id: body.id ?? idCache.take(),
|
77
|
+
...body,
|
78
|
+
})),
|
79
|
+
)
|
80
|
+
: stringify({
|
81
|
+
jsonrpc: '2.0',
|
82
|
+
id: body.id ?? idCache.take(),
|
83
|
+
...body,
|
84
|
+
}),
|
85
|
+
headers: {
|
86
|
+
...headers,
|
87
|
+
'Content-Type': 'application/json',
|
88
|
+
},
|
89
|
+
method: method || 'POST',
|
90
|
+
signal: signal_ || (timeout > 0 ? signal : undefined),
|
91
|
+
})
|
92
|
+
return response
|
93
|
+
},
|
94
|
+
{
|
95
|
+
errorInstance: new TimeoutError({ body, url }),
|
96
|
+
timeout,
|
97
|
+
signal: true,
|
98
|
+
},
|
99
|
+
)
|
100
|
+
|
101
|
+
let data: any
|
102
|
+
if (
|
103
|
+
response.headers.get('Content-Type')?.startsWith('application/json')
|
104
|
+
) {
|
105
|
+
data = await response.json()
|
106
|
+
} else {
|
107
|
+
data = await response.text()
|
108
|
+
}
|
109
|
+
|
110
|
+
if (!response.ok) {
|
111
|
+
throw new HttpRequestError({
|
112
|
+
body,
|
113
|
+
details: stringify(data.error) || response.statusText,
|
114
|
+
headers: response.headers,
|
115
|
+
status: response.status,
|
116
|
+
url,
|
117
|
+
})
|
118
|
+
}
|
119
|
+
|
120
|
+
return data
|
121
|
+
} catch (err) {
|
122
|
+
if (err instanceof HttpRequestError) throw err
|
123
|
+
if (err instanceof TimeoutError) throw err
|
124
|
+
throw new HttpRequestError({
|
125
|
+
body,
|
126
|
+
details: (err as Error).message,
|
127
|
+
url,
|
128
|
+
})
|
129
|
+
}
|
130
|
+
},
|
131
|
+
}
|
132
|
+
}
|