viem 2.36.0-jxom-erc8010-20250826223301 → 2.36.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 +1 -1
- package/_cjs/actions/public/multicall.js.map +1 -1
- package/_cjs/actions/public/verifyHash.js +37 -141
- package/_cjs/actions/public/verifyHash.js.map +1 -1
- package/_cjs/chains/definitions/abstract.js +1 -1
- package/_cjs/chains/definitions/abstract.js.map +1 -1
- package/_cjs/chains/definitions/abstractTestnet.js +1 -1
- package/_cjs/chains/definitions/abstractTestnet.js.map +1 -1
- package/_cjs/chains/definitions/zksync.js +1 -1
- package/_cjs/chains/definitions/zksync.js.map +1 -1
- package/_cjs/chains/definitions/zksyncSepoliaTestnet.js +1 -1
- package/_cjs/chains/definitions/zksyncSepoliaTestnet.js.map +1 -1
- package/_cjs/constants/abis.js +3 -3
- package/_cjs/constants/abis.js.map +1 -1
- package/_cjs/constants/contracts.js +2 -2
- package/_cjs/constants/contracts.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/index.js +11 -19
- package/_cjs/index.js.map +1 -1
- package/_cjs/utils/index.js +2 -8
- package/_cjs/utils/index.js.map +1 -1
- package/_esm/actions/public/multicall.js.map +1 -1
- package/_esm/actions/public/verifyHash.js +47 -156
- package/_esm/actions/public/verifyHash.js.map +1 -1
- package/_esm/chains/definitions/abstract.js +1 -1
- package/_esm/chains/definitions/abstract.js.map +1 -1
- package/_esm/chains/definitions/abstractTestnet.js +1 -1
- package/_esm/chains/definitions/abstractTestnet.js.map +1 -1
- package/_esm/chains/definitions/zksync.js +1 -1
- package/_esm/chains/definitions/zksync.js.map +1 -1
- package/_esm/chains/definitions/zksyncSepoliaTestnet.js +1 -1
- package/_esm/chains/definitions/zksyncSepoliaTestnet.js.map +1 -1
- package/_esm/constants/abis.js +2 -2
- package/_esm/constants/abis.js.map +1 -1
- package/_esm/constants/contracts.js +1 -1
- package/_esm/constants/contracts.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/index.js +2 -9
- package/_esm/index.js.map +1 -1
- package/_esm/utils/index.js +0 -3
- package/_esm/utils/index.js.map +1 -1
- package/_types/actions/public/multicall.d.ts +3 -6
- package/_types/actions/public/multicall.d.ts.map +1 -1
- package/_types/actions/public/verifyHash.d.ts +0 -42
- package/_types/actions/public/verifyHash.d.ts.map +1 -1
- package/_types/chains/definitions/0g.d.ts +1 -1
- package/_types/chains/definitions/5ireChain.d.ts +1 -1
- package/_types/chains/definitions/abey.d.ts +1 -1
- package/_types/chains/definitions/abstract.d.ts +1 -1
- package/_types/chains/definitions/abstractTestnet.d.ts +1 -1
- package/_types/chains/definitions/acala.d.ts +1 -1
- package/_types/chains/definitions/acria.d.ts +1 -1
- package/_types/chains/definitions/adf.d.ts +1 -1
- package/_types/chains/definitions/agungTestnet.d.ts +1 -1
- package/_types/chains/definitions/aioz.d.ts +1 -1
- package/_types/chains/definitions/alienX.d.ts +1 -1
- package/_types/chains/definitions/alienXHalTestnet.d.ts +1 -1
- package/_types/chains/definitions/anvil.d.ts +1 -1
- package/_types/chains/definitions/arenaz.d.ts +1 -1
- package/_types/chains/definitions/areonNetworkTestnet.d.ts +1 -1
- package/_types/chains/definitions/auroraTestnet.d.ts +1 -1
- package/_types/chains/definitions/auroria.d.ts +1 -1
- package/_types/chains/definitions/autheoTestnet.d.ts +1 -1
- package/_types/chains/definitions/bahamut.d.ts +1 -1
- package/_types/chains/definitions/basecampTestnet.d.ts +1 -1
- package/_types/chains/definitions/bearNetworkChainMainnet.d.ts +1 -1
- package/_types/chains/definitions/bearNetworkChainTestnet.d.ts +1 -1
- package/_types/chains/definitions/bevmMainnet.d.ts +1 -1
- package/_types/chains/definitions/bifrost.d.ts +1 -1
- package/_types/chains/definitions/birdlayer.d.ts +1 -1
- package/_types/chains/definitions/bitTorrentTestnet.d.ts +1 -1
- package/_types/chains/definitions/bitkub.d.ts +1 -1
- package/_types/chains/definitions/bitkubTestnet.d.ts +1 -1
- package/_types/chains/definitions/bitrock.d.ts +1 -1
- package/_types/chains/definitions/bobaSepolia.d.ts +1 -1
- package/_types/chains/definitions/boolBetaMainnet.d.ts +1 -1
- package/_types/chains/definitions/botanixTestnet.d.ts +1 -1
- package/_types/chains/definitions/bounceBit.d.ts +1 -1
- package/_types/chains/definitions/bounceBitTestnet.d.ts +1 -1
- package/_types/chains/definitions/bronos.d.ts +1 -1
- package/_types/chains/definitions/bronosTestnet.d.ts +1 -1
- package/_types/chains/definitions/bscGreenfield.d.ts +1 -1
- package/_types/chains/definitions/bsquared.d.ts +1 -1
- package/_types/chains/definitions/bsquaredTestnet.d.ts +1 -1
- package/_types/chains/definitions/btr.d.ts +1 -1
- package/_types/chains/definitions/btrTestnet.d.ts +1 -1
- package/_types/chains/definitions/bxn.d.ts +1 -1
- package/_types/chains/definitions/bxnTestnet.d.ts +1 -1
- package/_types/chains/definitions/cannon.d.ts +1 -1
- package/_types/chains/definitions/chang.d.ts +1 -1
- package/_types/chains/definitions/chips.d.ts +1 -1
- package/_types/chains/definitions/citreaTestnet.d.ts +1 -1
- package/_types/chains/definitions/classic.d.ts +1 -1
- package/_types/chains/definitions/coinbit.d.ts +1 -1
- package/_types/chains/definitions/coinex.d.ts +1 -1
- package/_types/chains/definitions/creditCoin3Mainnet.d.ts +1 -1
- package/_types/chains/definitions/creditCoin3Testnet.d.ts +1 -1
- package/_types/chains/definitions/cronoszkEVMTestnet.d.ts +1 -1
- package/_types/chains/definitions/curtis.d.ts +1 -1
- package/_types/chains/definitions/dailyNetwork.d.ts +1 -1
- package/_types/chains/definitions/dailyNetworkTestnet.d.ts +1 -1
- package/_types/chains/definitions/dbkchain.d.ts +1 -1
- package/_types/chains/definitions/degen.d.ts +1 -1
- package/_types/chains/definitions/diode.d.ts +1 -1
- package/_types/chains/definitions/disChain.d.ts +1 -1
- package/_types/chains/definitions/dodochainTestnet.d.ts +1 -1
- package/_types/chains/definitions/dreyerxMainnet.d.ts +1 -1
- package/_types/chains/definitions/dreyerxTestnet.d.ts +1 -1
- package/_types/chains/definitions/dymension.d.ts +1 -1
- package/_types/chains/definitions/edexa.d.ts +1 -1
- package/_types/chains/definitions/edexaTestnet.d.ts +1 -1
- package/_types/chains/definitions/edgeless.d.ts +1 -1
- package/_types/chains/definitions/edgelessTestnet.d.ts +1 -1
- package/_types/chains/definitions/edgewareTestnet.d.ts +1 -1
- package/_types/chains/definitions/eduChain.d.ts +1 -1
- package/_types/chains/definitions/ekta.d.ts +1 -1
- package/_types/chains/definitions/ektaTestnet.d.ts +1 -1
- package/_types/chains/definitions/elastos.d.ts +1 -1
- package/_types/chains/definitions/elastosTestnet.d.ts +1 -1
- package/_types/chains/definitions/electroneum.d.ts +1 -1
- package/_types/chains/definitions/electroneumTestnet.d.ts +1 -1
- package/_types/chains/definitions/energy.d.ts +1 -1
- package/_types/chains/definitions/enuls.d.ts +1 -1
- package/_types/chains/definitions/etherlinkTestnet.d.ts +1 -1
- package/_types/chains/definitions/etp.d.ts +1 -1
- package/_types/chains/definitions/evmos.d.ts +1 -1
- package/_types/chains/definitions/evmosTestnet.d.ts +1 -1
- package/_types/chains/definitions/exSat.d.ts +1 -1
- package/_types/chains/definitions/exSatTestnet.d.ts +1 -1
- package/_types/chains/definitions/excelonMainnet.d.ts +1 -1
- package/_types/chains/definitions/expanse.d.ts +1 -1
- package/_types/chains/definitions/fantomSonicTestnet.d.ts +1 -1
- package/_types/chains/definitions/fibo.d.ts +1 -1
- package/_types/chains/definitions/filecoinCalibration.d.ts +1 -1
- package/_types/chains/definitions/filecoinHyperspace.d.ts +1 -1
- package/_types/chains/definitions/flareTestnet.d.ts +1 -1
- package/_types/chains/definitions/fluentTestnet.d.ts +1 -1
- package/_types/chains/definitions/forta.d.ts +1 -1
- package/_types/chains/definitions/foundry.d.ts +1 -1
- package/_types/chains/definitions/fuseSparknet.d.ts +1 -1
- package/_types/chains/definitions/genesys.d.ts +1 -1
- package/_types/chains/definitions/glideL1Protocol.d.ts +1 -1
- package/_types/chains/definitions/glideL2Protocol.d.ts +1 -1
- package/_types/chains/definitions/goChain.d.ts +1 -1
- package/_types/chains/definitions/graphite.d.ts +1 -1
- package/_types/chains/definitions/graphiteTestnet.d.ts +1 -1
- package/_types/chains/definitions/guruTestnet.d.ts +1 -1
- package/_types/chains/definitions/ham.d.ts +1 -1
- package/_types/chains/definitions/haqqMainnet.d.ts +1 -1
- package/_types/chains/definitions/haqqTestedge2.d.ts +1 -1
- package/_types/chains/definitions/hardhat.d.ts +1 -1
- package/_types/chains/definitions/hashkeyChainTestnet.d.ts +1 -1
- package/_types/chains/definitions/haustTestnet.d.ts +1 -1
- package/_types/chains/definitions/hedera.d.ts +1 -1
- package/_types/chains/definitions/hederaPreviewnet.d.ts +1 -1
- package/_types/chains/definitions/hederaTestnet.d.ts +1 -1
- package/_types/chains/definitions/hela.d.ts +1 -1
- package/_types/chains/definitions/hemi.d.ts +1 -1
- package/_types/chains/definitions/hemiSepolia.d.ts +1 -1
- package/_types/chains/definitions/hpb.d.ts +1 -1
- package/_types/chains/definitions/huddle01Mainnet.d.ts +1 -1
- package/_types/chains/definitions/huddle01Testnet.d.ts +1 -1
- package/_types/chains/definitions/humanity.d.ts +1 -1
- package/_types/chains/definitions/humanityTestnet.d.ts +1 -1
- package/_types/chains/definitions/hychain.d.ts +1 -1
- package/_types/chains/definitions/hychainTestnet.d.ts +1 -1
- package/_types/chains/definitions/hyperliquidEvmTestnet.d.ts +1 -1
- package/_types/chains/definitions/iSunCoin.d.ts +1 -1
- package/_types/chains/definitions/idchain.d.ts +1 -1
- package/_types/chains/definitions/iotaTestnet.d.ts +1 -1
- package/_types/chains/definitions/jocMainnet.d.ts +1 -1
- package/_types/chains/definitions/jocTestnet.d.ts +1 -1
- package/_types/chains/definitions/juneo.d.ts +1 -1
- package/_types/chains/definitions/juneoBCH1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoDAI1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoDOGE1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoEUR1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoGLD1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoLINK1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoLTC1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoSGD1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoSocotraTestnet.d.ts +1 -1
- package/_types/chains/definitions/juneoUSD1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneoUSDT1Chain.d.ts +1 -1
- package/_types/chains/definitions/juneomBTC1Chain.d.ts +1 -1
- package/_types/chains/definitions/kakarotSepolia.d.ts +1 -1
- package/_types/chains/definitions/kakarotStarknetSepolia.d.ts +1 -1
- package/_types/chains/definitions/kardiaChain.d.ts +1 -1
- package/_types/chains/definitions/karura.d.ts +1 -1
- package/_types/chains/definitions/katana.d.ts +1 -1
- package/_types/chains/definitions/kinto.d.ts +1 -1
- package/_types/chains/definitions/l3x.d.ts +1 -1
- package/_types/chains/definitions/l3xTestnet.d.ts +1 -1
- package/_types/chains/definitions/lavita.d.ts +1 -1
- package/_types/chains/definitions/lens.d.ts +1 -1
- package/_types/chains/definitions/lensTestnet.d.ts +1 -1
- package/_types/chains/definitions/lestnet.d.ts +1 -1
- package/_types/chains/definitions/localhost.d.ts +1 -1
- package/_types/chains/definitions/loop.d.ts +1 -1
- package/_types/chains/definitions/lumoz.d.ts +1 -1
- package/_types/chains/definitions/lumozTestnet.d.ts +1 -1
- package/_types/chains/definitions/lycan.d.ts +1 -1
- package/_types/chains/definitions/mandala.d.ts +1 -1
- package/_types/chains/definitions/mantraDuKongEVMTestnet.d.ts +1 -1
- package/_types/chains/definitions/mapProtocol.d.ts +1 -1
- package/_types/chains/definitions/matchain.d.ts +1 -1
- package/_types/chains/definitions/matchainTestnet.d.ts +1 -1
- package/_types/chains/definitions/mchVerse.d.ts +1 -1
- package/_types/chains/definitions/mekong.d.ts +1 -1
- package/_types/chains/definitions/memecore.d.ts +1 -1
- package/_types/chains/definitions/memecoreFormicariumTestnet.d.ts +1 -1
- package/_types/chains/definitions/merlin.d.ts +1 -1
- package/_types/chains/definitions/merlinErigonTestnet.d.ts +1 -1
- package/_types/chains/definitions/metadium.d.ts +1 -1
- package/_types/chains/definitions/meter.d.ts +1 -1
- package/_types/chains/definitions/meterTestnet.d.ts +1 -1
- package/_types/chains/definitions/mint.d.ts +1 -1
- package/_types/chains/definitions/mintSepoliaTestnet.d.ts +1 -1
- package/_types/chains/definitions/mitosisTestnet.d.ts +1 -1
- package/_types/chains/definitions/moonbeamDev.d.ts +1 -1
- package/_types/chains/definitions/morphHolesky.d.ts +1 -1
- package/_types/chains/definitions/morphSepolia.d.ts +1 -1
- package/_types/chains/definitions/nahmii.d.ts +1 -1
- package/_types/chains/definitions/nautilus.d.ts +1 -1
- package/_types/chains/definitions/near.d.ts +1 -1
- package/_types/chains/definitions/nearTestnet.d.ts +1 -1
- package/_types/chains/definitions/neoxMainnet.d.ts +1 -1
- package/_types/chains/definitions/neoxT4.d.ts +1 -1
- package/_types/chains/definitions/newton.d.ts +1 -1
- package/_types/chains/definitions/oasisTestnet.d.ts +1 -1
- package/_types/chains/definitions/oasys.d.ts +1 -1
- package/_types/chains/definitions/odysseyTestnet.d.ts +1 -1
- package/_types/chains/definitions/omax.d.ts +1 -1
- package/_types/chains/definitions/omni.d.ts +1 -1
- package/_types/chains/definitions/omniOmega.d.ts +1 -1
- package/_types/chains/definitions/oneWorld.d.ts +1 -1
- package/_types/chains/definitions/oortmainnetDev.d.ts +1 -1
- package/_types/chains/definitions/optopia.d.ts +1 -1
- package/_types/chains/definitions/optopiaTestnet.d.ts +1 -1
- package/_types/chains/definitions/orderly.d.ts +1 -1
- package/_types/chains/definitions/orderlySepolia.d.ts +1 -1
- package/_types/chains/definitions/plasmaTestnet.d.ts +1 -1
- package/_types/chains/definitions/premiumBlock.d.ts +1 -1
- package/_types/chains/definitions/pumpfiTestnet.d.ts +1 -1
- package/_types/chains/definitions/qMainnet.d.ts +1 -1
- package/_types/chains/definitions/qTestnet.d.ts +1 -1
- package/_types/chains/definitions/redbellyMainnet.d.ts +1 -1
- package/_types/chains/definitions/redbellyTestnet.d.ts +1 -1
- package/_types/chains/definitions/reddioSepolia.d.ts +1 -1
- package/_types/chains/definitions/rei.d.ts +1 -1
- package/_types/chains/definitions/reyaNetwork.d.ts +1 -1
- package/_types/chains/definitions/rivalz.d.ts +1 -1
- package/_types/chains/definitions/saakuru.d.ts +1 -1
- package/_types/chains/definitions/sapphireTestnet.d.ts +1 -1
- package/_types/chains/definitions/satoshivm.d.ts +1 -1
- package/_types/chains/definitions/satoshivmTestnet.d.ts +1 -1
- package/_types/chains/definitions/seiDevnet.d.ts +1 -1
- package/_types/chains/definitions/seismicDevnet.d.ts +1 -1
- package/_types/chains/definitions/shardeum.d.ts +1 -1
- package/_types/chains/definitions/shardeumSphinx.d.ts +1 -1
- package/_types/chains/definitions/shiden.d.ts +1 -1
- package/_types/chains/definitions/shimmer.d.ts +1 -1
- package/_types/chains/definitions/shimmerTestnet.d.ts +1 -1
- package/_types/chains/definitions/sidra.d.ts +1 -1
- package/_types/chains/definitions/silicon.d.ts +1 -1
- package/_types/chains/definitions/siliconSepolia.d.ts +1 -1
- package/_types/chains/definitions/sixProtocol.d.ts +1 -1
- package/_types/chains/definitions/sketchpad.d.ts +1 -1
- package/_types/chains/definitions/songbirdTestnet.d.ts +1 -1
- package/_types/chains/definitions/sonicTestnet.d.ts +1 -1
- package/_types/chains/definitions/sovaSepolia.d.ts +1 -1
- package/_types/chains/definitions/spicy.d.ts +1 -1
- package/_types/chains/definitions/step.d.ts +1 -1
- package/_types/chains/definitions/storyOdyssey.d.ts +1 -1
- package/_types/chains/definitions/storyTestnet.d.ts +1 -1
- package/_types/chains/definitions/stratis.d.ts +1 -1
- package/_types/chains/definitions/superlumio.d.ts +1 -1
- package/_types/chains/definitions/swan.d.ts +1 -1
- package/_types/chains/definitions/swanProximaTestnet.d.ts +1 -1
- package/_types/chains/definitions/swanSaturnTestnet.d.ts +1 -1
- package/_types/chains/definitions/swissdlt.d.ts +1 -1
- package/_types/chains/definitions/taikoKatla.d.ts +1 -1
- package/_types/chains/definitions/taikoTestnetSepolia.d.ts +1 -1
- package/_types/chains/definitions/taraxa.d.ts +1 -1
- package/_types/chains/definitions/taraxaTestnet.d.ts +1 -1
- package/_types/chains/definitions/telcoinTestnet.d.ts +1 -1
- package/_types/chains/definitions/telosTestnet.d.ts +1 -1
- package/_types/chains/definitions/tenet.d.ts +1 -1
- package/_types/chains/definitions/ternoa.d.ts +1 -1
- package/_types/chains/definitions/that.d.ts +1 -1
- package/_types/chains/definitions/theta.d.ts +1 -1
- package/_types/chains/definitions/thetaTestnet.d.ts +1 -1
- package/_types/chains/definitions/thunderTestnet.d.ts +1 -1
- package/_types/chains/definitions/tiktrixTestnet.d.ts +1 -1
- package/_types/chains/definitions/tomb.d.ts +1 -1
- package/_types/chains/definitions/tron.d.ts +1 -1
- package/_types/chains/definitions/tronShasta.d.ts +1 -1
- package/_types/chains/definitions/ubiq.d.ts +1 -1
- package/_types/chains/definitions/ultra.d.ts +1 -1
- package/_types/chains/definitions/ultraTestnet.d.ts +1 -1
- package/_types/chains/definitions/ultron.d.ts +1 -1
- package/_types/chains/definitions/ultronTestnet.d.ts +1 -1
- package/_types/chains/definitions/unique.d.ts +1 -1
- package/_types/chains/definitions/uniqueOpal.d.ts +1 -1
- package/_types/chains/definitions/uniqueQuartz.d.ts +1 -1
- package/_types/chains/definitions/vanar.d.ts +1 -1
- package/_types/chains/definitions/vechain.d.ts +1 -1
- package/_types/chains/definitions/viction.d.ts +1 -1
- package/_types/chains/definitions/vision.d.ts +1 -1
- package/_types/chains/definitions/visionTestnet.d.ts +1 -1
- package/_types/chains/definitions/weavevmAlphanet.d.ts +1 -1
- package/_types/chains/definitions/wemix.d.ts +1 -1
- package/_types/chains/definitions/wemixTestnet.d.ts +1 -1
- package/_types/chains/definitions/westendAssetHub.d.ts +1 -1
- package/_types/chains/definitions/whitechainTestnet.d.ts +1 -1
- package/_types/chains/definitions/wmcTestnet.d.ts +1 -1
- package/_types/chains/definitions/worldLand.d.ts +1 -1
- package/_types/chains/definitions/xaiTestnet.d.ts +1 -1
- package/_types/chains/definitions/xphereMainnet.d.ts +1 -1
- package/_types/chains/definitions/xphereTestnet.d.ts +1 -1
- package/_types/chains/definitions/xrOne.d.ts +1 -1
- package/_types/chains/definitions/xrSepolia.d.ts +1 -1
- package/_types/chains/definitions/yooldoVerse.d.ts +1 -1
- package/_types/chains/definitions/yooldoVerseTestnet.d.ts +1 -1
- package/_types/chains/definitions/zeniq.d.ts +1 -1
- package/_types/chains/definitions/zeroNetwork.d.ts +1 -1
- package/_types/chains/definitions/zhejiang.d.ts +1 -1
- package/_types/chains/definitions/zilliqa.d.ts +1 -1
- package/_types/chains/definitions/zilliqaTestnet.d.ts +1 -1
- package/_types/chains/definitions/zkFairTestnet.d.ts +1 -1
- package/_types/chains/definitions/zkLinkNova.d.ts +1 -1
- package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts +1 -1
- package/_types/chains/definitions/zksync.d.ts +1 -1
- package/_types/chains/definitions/zksyncInMemoryNode.d.ts +1 -1
- package/_types/chains/definitions/zksyncLocalCustomHyperchain.d.ts +1 -1
- package/_types/chains/definitions/zksyncLocalHyperchain.d.ts +1 -1
- package/_types/chains/definitions/zksyncLocalHyperchainL1.d.ts +1 -1
- package/_types/chains/definitions/zksyncLocalNode.d.ts +1 -1
- package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts +1 -1
- package/_types/constants/abis.d.ts +2 -2
- package/_types/constants/abis.d.ts.map +1 -1
- package/_types/constants/contracts.d.ts +1 -1
- package/_types/constants/contracts.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/index.d.ts +2 -9
- package/_types/index.d.ts.map +1 -1
- package/_types/types/chain.d.ts +1 -1
- package/_types/types/chain.d.ts.map +1 -1
- package/_types/utils/index.d.ts +0 -3
- package/_types/utils/index.d.ts.map +1 -1
- package/actions/public/multicall.ts +5 -11
- package/actions/public/verifyHash.ts +54 -253
- package/chains/definitions/abstract.ts +1 -1
- package/chains/definitions/abstractTestnet.ts +1 -1
- package/chains/definitions/zksync.ts +1 -1
- package/chains/definitions/zksyncSepoliaTestnet.ts +1 -1
- package/constants/abis.ts +2 -2
- package/constants/contracts.ts +1 -1
- package/errors/version.ts +1 -1
- package/index.ts +2 -24
- package/package.json +1 -1
- package/types/chain.ts +1 -1
- package/utils/index.ts +0 -18
- package/_cjs/utils/signature/isErc8010Signature.js +0 -8
- package/_cjs/utils/signature/isErc8010Signature.js.map +0 -1
- package/_cjs/utils/signature/parseErc8010Signature.js +0 -24
- package/_cjs/utils/signature/parseErc8010Signature.js.map +0 -1
- package/_cjs/utils/signature/serializeErc8010Signature.js +0 -23
- package/_cjs/utils/signature/serializeErc8010Signature.js.map +0 -1
- package/_esm/utils/signature/isErc8010Signature.js +0 -6
- package/_esm/utils/signature/isErc8010Signature.js.map +0 -1
- package/_esm/utils/signature/parseErc8010Signature.js +0 -28
- package/_esm/utils/signature/parseErc8010Signature.js.map +0 -1
- package/_esm/utils/signature/serializeErc8010Signature.js +0 -26
- package/_esm/utils/signature/serializeErc8010Signature.js.map +0 -1
- package/_types/utils/signature/isErc8010Signature.d.ts +0 -8
- package/_types/utils/signature/isErc8010Signature.d.ts.map +0 -1
- package/_types/utils/signature/parseErc8010Signature.d.ts +0 -27
- package/_types/utils/signature/parseErc8010Signature.d.ts.map +0 -1
- package/_types/utils/signature/serializeErc8010Signature.d.ts +0 -24
- package/_types/utils/signature/serializeErc8010Signature.d.ts.map +0 -1
- package/utils/signature/isErc8010Signature.ts +0 -14
- package/utils/signature/parseErc8010Signature.ts +0 -64
- package/utils/signature/serializeErc8010Signature.ts +0 -48
@@ -1,22 +1,10 @@
|
|
1
1
|
import type { Address } from 'abitype'
|
2
|
-
import * as SignatureErc6492 from 'ox/erc6492/SignatureErc6492'
|
3
|
-
import * as SignatureErc8010 from 'ox/erc8010/SignatureErc8010'
|
4
2
|
|
5
3
|
import type { Client } from '../../clients/createClient.js'
|
6
4
|
import type { Transport } from '../../clients/transports/createTransport.js'
|
7
|
-
import {
|
8
|
-
|
9
|
-
|
10
|
-
multicall3Abi,
|
11
|
-
} from '../../constants/abis.js'
|
12
|
-
import {
|
13
|
-
erc6492SignatureValidatorByteCode,
|
14
|
-
multicall3Bytecode,
|
15
|
-
} from '../../constants/contracts.js'
|
16
|
-
import {
|
17
|
-
CallExecutionError,
|
18
|
-
ContractFunctionExecutionError,
|
19
|
-
} from '../../errors/contract.js'
|
5
|
+
import { universalSignatureValidatorAbi } from '../../constants/abis.js'
|
6
|
+
import { universalSignatureValidatorByteCode } from '../../constants/contracts.js'
|
7
|
+
import { CallExecutionError } from '../../errors/contract.js'
|
20
8
|
import type { InvalidHexBooleanError } from '../../errors/encoding.js'
|
21
9
|
import type { ErrorType } from '../../errors/utils.js'
|
22
10
|
import type { Chain } from '../../types/chain.js'
|
@@ -29,18 +17,14 @@ import {
|
|
29
17
|
import { getAddress } from '../../utils/address/getAddress.js'
|
30
18
|
import { isAddressEqual } from '../../utils/address/isAddressEqual.js'
|
31
19
|
import { type IsHexErrorType, isHex } from '../../utils/data/isHex.js'
|
32
|
-
import {
|
33
|
-
bytesToHex,
|
34
|
-
numberToHex,
|
35
|
-
type ToHexErrorType,
|
36
|
-
} from '../../utils/encoding/toHex.js'
|
20
|
+
import { bytesToHex, type ToHexErrorType } from '../../utils/encoding/toHex.js'
|
37
21
|
import { getAction } from '../../utils/getAction.js'
|
38
|
-
import {
|
22
|
+
import { encodeFunctionData, hexToBool } from '../../utils/index.js'
|
23
|
+
import { isErc6492Signature } from '../../utils/signature/isErc6492Signature.js'
|
39
24
|
import { recoverAddress } from '../../utils/signature/recoverAddress.js'
|
25
|
+
import { serializeErc6492Signature } from '../../utils/signature/serializeErc6492Signature.js'
|
40
26
|
import { serializeSignature } from '../../utils/signature/serializeSignature.js'
|
41
27
|
import { type CallErrorType, type CallParameters, call } from './call.js'
|
42
|
-
import { getCode } from './getCode.js'
|
43
|
-
import { readContract } from './readContract.js'
|
44
28
|
|
45
29
|
export type VerifyHashParameters = Pick<
|
46
30
|
CallParameters,
|
@@ -48,13 +32,10 @@ export type VerifyHashParameters = Pick<
|
|
48
32
|
> & {
|
49
33
|
/** The address that signed the original message. */
|
50
34
|
address: Address
|
51
|
-
/** The address of the ERC-6492 signature verifier contract. */
|
52
|
-
erc6492VerifierAddress?: Address | undefined
|
53
35
|
/** The hash to be verified. */
|
54
36
|
hash: Hex
|
55
37
|
/** The signature that was generated by signing the message with the address's private key. */
|
56
38
|
signature: Hex | ByteArray | Signature
|
57
|
-
/** @deprecated use `erc6492VerifierAddress` instead. */
|
58
39
|
universalSignatureVerifierAddress?: Address | undefined
|
59
40
|
} & OneOf<{ factory: Address; factoryData: Hex } | {}>
|
60
41
|
|
@@ -81,31 +62,62 @@ export async function verifyHash<chain extends Chain | undefined>(
|
|
81
62
|
): Promise<VerifyHashReturnType> {
|
82
63
|
const {
|
83
64
|
address,
|
65
|
+
factory,
|
66
|
+
factoryData,
|
84
67
|
hash,
|
85
|
-
|
86
|
-
|
87
|
-
|
68
|
+
signature,
|
69
|
+
universalSignatureVerifierAddress = client.chain?.contracts
|
70
|
+
?.universalSignatureVerifier?.address,
|
71
|
+
...rest
|
88
72
|
} = parameters
|
89
73
|
|
90
|
-
const
|
91
|
-
const signature = parameters.signature
|
74
|
+
const signatureHex = (() => {
|
92
75
|
if (isHex(signature)) return signature
|
93
76
|
if (typeof signature === 'object' && 'r' in signature && 's' in signature)
|
94
77
|
return serializeSignature(signature)
|
95
78
|
return bytesToHex(signature)
|
96
79
|
})()
|
97
80
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
81
|
+
const wrappedSignature = await (async () => {
|
82
|
+
// If no `factory` or `factoryData` is provided, it is assumed that the
|
83
|
+
// address is not a Smart Account, or the Smart Account is already deployed.
|
84
|
+
if (!factory && !factoryData) return signatureHex
|
85
|
+
|
86
|
+
// If the signature is already wrapped, return the signature.
|
87
|
+
if (isErc6492Signature(signatureHex)) return signatureHex
|
88
|
+
|
89
|
+
// If the Smart Account is not deployed, wrap the signature with a 6492 wrapper
|
90
|
+
// to perform counterfactual validation.
|
91
|
+
return serializeErc6492Signature({
|
92
|
+
address: factory!,
|
93
|
+
data: factoryData!,
|
94
|
+
signature: signatureHex,
|
108
95
|
})
|
96
|
+
})()
|
97
|
+
|
98
|
+
try {
|
99
|
+
const args = universalSignatureVerifierAddress
|
100
|
+
? ({
|
101
|
+
to: universalSignatureVerifierAddress,
|
102
|
+
data: encodeFunctionData({
|
103
|
+
abi: universalSignatureValidatorAbi,
|
104
|
+
functionName: 'isValidSig',
|
105
|
+
args: [address, hash, wrappedSignature],
|
106
|
+
}),
|
107
|
+
...rest,
|
108
|
+
} as unknown as CallParameters)
|
109
|
+
: ({
|
110
|
+
data: encodeDeployData({
|
111
|
+
abi: universalSignatureValidatorAbi,
|
112
|
+
args: [address, hash, wrappedSignature],
|
113
|
+
bytecode: universalSignatureValidatorByteCode,
|
114
|
+
}),
|
115
|
+
...rest,
|
116
|
+
} as unknown as CallParameters)
|
117
|
+
|
118
|
+
const { data } = await getAction(client, call, 'call')(args)
|
119
|
+
|
120
|
+
return hexToBool(data ?? '0x0')
|
109
121
|
} catch (error) {
|
110
122
|
// Fallback attempt to verify the signature via ECDSA recovery.
|
111
123
|
try {
|
@@ -116,7 +128,7 @@ export async function verifyHash<chain extends Chain | undefined>(
|
|
116
128
|
if (verified) return true
|
117
129
|
} catch {}
|
118
130
|
|
119
|
-
if (error instanceof
|
131
|
+
if (error instanceof CallExecutionError) {
|
120
132
|
// if the execution fails, the signature was not valid and an internal method inside of the validator reverted
|
121
133
|
// this can happen for many reasons, for example if signer can not be recovered from the signature
|
122
134
|
// or if the signature has no valid format
|
@@ -126,214 +138,3 @@ export async function verifyHash<chain extends Chain | undefined>(
|
|
126
138
|
throw error
|
127
139
|
}
|
128
140
|
}
|
129
|
-
|
130
|
-
/** @internal */
|
131
|
-
export async function verifyErc8010(
|
132
|
-
client: Client,
|
133
|
-
parameters: verifyErc8010.Parameters,
|
134
|
-
) {
|
135
|
-
const { address, blockNumber, blockTag, hash } = parameters
|
136
|
-
|
137
|
-
const {
|
138
|
-
authorization,
|
139
|
-
data: initData,
|
140
|
-
signature,
|
141
|
-
} = SignatureErc8010.unwrap(parameters.signature)
|
142
|
-
|
143
|
-
// Check if already delegated
|
144
|
-
const code = await getCode(client, {
|
145
|
-
address,
|
146
|
-
blockNumber,
|
147
|
-
blockTag,
|
148
|
-
} as never)
|
149
|
-
|
150
|
-
// If already delegated, perform standard ERC-1271 verification.
|
151
|
-
if (code === concatHex(['0xef0100', authorization.address]))
|
152
|
-
return await verifyErc1271(client, {
|
153
|
-
address,
|
154
|
-
blockNumber,
|
155
|
-
blockTag,
|
156
|
-
hash,
|
157
|
-
signature,
|
158
|
-
})
|
159
|
-
|
160
|
-
// Deployless verification.
|
161
|
-
const results = await getAction(
|
162
|
-
client,
|
163
|
-
readContract,
|
164
|
-
'readContract',
|
165
|
-
)({
|
166
|
-
authorizationList: [
|
167
|
-
{
|
168
|
-
address: authorization.address,
|
169
|
-
chainId: Number(authorization.chainId),
|
170
|
-
nonce: Number(authorization.nonce),
|
171
|
-
r: numberToHex(authorization.r, { size: 32 }),
|
172
|
-
s: numberToHex(authorization.s, { size: 32 }),
|
173
|
-
yParity: authorization.yParity,
|
174
|
-
},
|
175
|
-
],
|
176
|
-
abi: multicall3Abi,
|
177
|
-
blockNumber,
|
178
|
-
blockTag: 'pending',
|
179
|
-
code: multicall3Bytecode,
|
180
|
-
functionName: 'aggregate3',
|
181
|
-
args: [
|
182
|
-
[
|
183
|
-
...(initData
|
184
|
-
? [
|
185
|
-
{
|
186
|
-
allowFailure: false,
|
187
|
-
target: address,
|
188
|
-
callData: initData,
|
189
|
-
},
|
190
|
-
]
|
191
|
-
: []),
|
192
|
-
{
|
193
|
-
allowFailure: false,
|
194
|
-
target: address,
|
195
|
-
callData: encodeFunctionData({
|
196
|
-
abi: erc1271Abi,
|
197
|
-
functionName: 'isValidSignature',
|
198
|
-
args: [hash, signature],
|
199
|
-
}),
|
200
|
-
},
|
201
|
-
],
|
202
|
-
],
|
203
|
-
})
|
204
|
-
|
205
|
-
const data = results[results.length - 1]?.returnData
|
206
|
-
|
207
|
-
if (data?.startsWith('0x1626ba7e')) return true
|
208
|
-
throw new VerificationError()
|
209
|
-
}
|
210
|
-
|
211
|
-
export namespace verifyErc8010 {
|
212
|
-
export type Parameters = Pick<CallParameters, 'blockNumber' | 'blockTag'> & {
|
213
|
-
/** The address that signed the original message. */
|
214
|
-
address: Address
|
215
|
-
/** The hash to be verified. */
|
216
|
-
hash: Hex
|
217
|
-
/** The signature that was generated by signing the message with the address's private key. */
|
218
|
-
signature: Hex
|
219
|
-
}
|
220
|
-
}
|
221
|
-
|
222
|
-
/** @internal */
|
223
|
-
// biome-ignore lint/correctness/noUnusedVariables: _
|
224
|
-
async function verifyErc6492(
|
225
|
-
client: Client,
|
226
|
-
parameters: verifyErc6492.Parameters,
|
227
|
-
) {
|
228
|
-
const {
|
229
|
-
address,
|
230
|
-
factory,
|
231
|
-
factoryData,
|
232
|
-
hash,
|
233
|
-
signature,
|
234
|
-
verifierAddress,
|
235
|
-
...rest
|
236
|
-
} = parameters
|
237
|
-
|
238
|
-
const wrappedSignature = await (async () => {
|
239
|
-
// If no `factory` or `factoryData` is provided, it is assumed that the
|
240
|
-
// address is not a Smart Account, or the Smart Account is already deployed.
|
241
|
-
if (!factory && !factoryData) return signature
|
242
|
-
|
243
|
-
// If the signature is already wrapped, return the signature.
|
244
|
-
if (SignatureErc6492.validate(signature)) return signature
|
245
|
-
|
246
|
-
// If the Smart Account is not deployed, wrap the signature with a 6492 wrapper
|
247
|
-
// to perform counterfactual validation.
|
248
|
-
return SignatureErc6492.wrap({
|
249
|
-
data: factoryData!,
|
250
|
-
signature,
|
251
|
-
to: factory!,
|
252
|
-
})
|
253
|
-
})()
|
254
|
-
|
255
|
-
const args = verifierAddress
|
256
|
-
? ({
|
257
|
-
to: verifierAddress,
|
258
|
-
data: encodeFunctionData({
|
259
|
-
abi: erc6492SignatureValidatorAbi,
|
260
|
-
functionName: 'isValidSig',
|
261
|
-
args: [address, hash, wrappedSignature],
|
262
|
-
}),
|
263
|
-
...rest,
|
264
|
-
} as unknown as CallParameters)
|
265
|
-
: ({
|
266
|
-
data: encodeDeployData({
|
267
|
-
abi: erc6492SignatureValidatorAbi,
|
268
|
-
args: [address, hash, wrappedSignature],
|
269
|
-
bytecode: erc6492SignatureValidatorByteCode,
|
270
|
-
}),
|
271
|
-
...rest,
|
272
|
-
} as unknown as CallParameters)
|
273
|
-
|
274
|
-
const { data } = await getAction(
|
275
|
-
client,
|
276
|
-
call,
|
277
|
-
'call',
|
278
|
-
)(args).catch((error) => {
|
279
|
-
if (error instanceof CallExecutionError) throw new VerificationError()
|
280
|
-
throw error
|
281
|
-
})
|
282
|
-
|
283
|
-
if (hexToBool(data ?? '0x0')) return true
|
284
|
-
throw new VerificationError()
|
285
|
-
}
|
286
|
-
|
287
|
-
export namespace verifyErc6492 {
|
288
|
-
export type Parameters = Pick<CallParameters, 'blockNumber' | 'blockTag'> & {
|
289
|
-
/** The address that signed the original message. */
|
290
|
-
address: Address
|
291
|
-
/** The hash to be verified. */
|
292
|
-
hash: Hex
|
293
|
-
/** The signature that was generated by signing the message with the address's private key. */
|
294
|
-
signature: Hex
|
295
|
-
/** The address of the ERC-6492 signature verifier contract. */
|
296
|
-
verifierAddress?: Address | undefined
|
297
|
-
} & OneOf<{ factory: Address; factoryData: Hex } | {}>
|
298
|
-
}
|
299
|
-
|
300
|
-
/** @internal */
|
301
|
-
export async function verifyErc1271(
|
302
|
-
client: Client,
|
303
|
-
parameters: verifyErc1271.Parameters,
|
304
|
-
) {
|
305
|
-
const { address, blockNumber, blockTag, hash, signature } = parameters
|
306
|
-
|
307
|
-
const result = await getAction(
|
308
|
-
client,
|
309
|
-
readContract,
|
310
|
-
'readContract',
|
311
|
-
)({
|
312
|
-
address,
|
313
|
-
abi: erc1271Abi,
|
314
|
-
args: [hash, signature],
|
315
|
-
blockNumber,
|
316
|
-
blockTag,
|
317
|
-
functionName: 'isValidSignature',
|
318
|
-
}).catch((error) => {
|
319
|
-
if (error instanceof ContractFunctionExecutionError)
|
320
|
-
throw new VerificationError()
|
321
|
-
throw error
|
322
|
-
})
|
323
|
-
|
324
|
-
if (result.startsWith('0x1626ba7e')) return true
|
325
|
-
throw new VerificationError()
|
326
|
-
}
|
327
|
-
|
328
|
-
export namespace verifyErc1271 {
|
329
|
-
export type Parameters = Pick<CallParameters, 'blockNumber' | 'blockTag'> & {
|
330
|
-
/** The address that signed the original message. */
|
331
|
-
address: Address
|
332
|
-
/** The hash to be verified. */
|
333
|
-
hash: Hex
|
334
|
-
/** The signature that was generated by signing the message with the address's private key. */
|
335
|
-
signature: Hex
|
336
|
-
}
|
337
|
-
}
|
338
|
-
|
339
|
-
class VerificationError extends Error {}
|
@@ -31,7 +31,7 @@ export const abstract = /*#__PURE__*/ defineChain({
|
|
31
31
|
address: '0xAa4De41dba0Ca5dCBb288b7cC6b708F3aaC759E7',
|
32
32
|
blockCreated: 5288,
|
33
33
|
},
|
34
|
-
|
34
|
+
universalSignatureVerifier: {
|
35
35
|
address: '0xfB688330379976DA81eB64Fe4BF50d7401763B9C',
|
36
36
|
blockCreated: 5263,
|
37
37
|
},
|
@@ -29,7 +29,7 @@ export const abstractTestnet = /*#__PURE__*/ defineChain({
|
|
29
29
|
address: '0xF9cda624FBC7e059355ce98a31693d299FACd963',
|
30
30
|
blockCreated: 358349,
|
31
31
|
},
|
32
|
-
|
32
|
+
universalSignatureVerifier: {
|
33
33
|
address: '0xfB688330379976DA81eB64Fe4BF50d7401763B9C',
|
34
34
|
blockCreated: 431682,
|
35
35
|
},
|
@@ -33,7 +33,7 @@ export const zksync = /*#__PURE__*/ defineChain({
|
|
33
33
|
multicall3: {
|
34
34
|
address: '0xF9cda624FBC7e059355ce98a31693d299FACd963',
|
35
35
|
},
|
36
|
-
|
36
|
+
universalSignatureVerifier: {
|
37
37
|
address: '0xfB688330379976DA81eB64Fe4BF50d7401763B9C',
|
38
38
|
blockCreated: 45659388,
|
39
39
|
},
|
@@ -29,7 +29,7 @@ export const zksyncSepoliaTestnet = /*#__PURE__*/ defineChain({
|
|
29
29
|
multicall3: {
|
30
30
|
address: '0xF9cda624FBC7e059355ce98a31693d299FACd963',
|
31
31
|
},
|
32
|
-
|
32
|
+
universalSignatureVerifier: {
|
33
33
|
address: '0xfB688330379976DA81eB64Fe4BF50d7401763B9C',
|
34
34
|
blockCreated: 3855712,
|
35
35
|
},
|
package/constants/abis.ts
CHANGED
@@ -274,7 +274,7 @@ export const addressResolverAbi = [
|
|
274
274
|
// ERC-1271
|
275
275
|
// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue
|
276
276
|
/** @internal */
|
277
|
-
export const
|
277
|
+
export const smartAccountAbi = [
|
278
278
|
{
|
279
279
|
name: 'isValidSignature',
|
280
280
|
type: 'function',
|
@@ -290,7 +290,7 @@ export const erc1271Abi = [
|
|
290
290
|
// ERC-6492 - universal deployless signature validator contract
|
291
291
|
// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue
|
292
292
|
// returnValue is either 0x1 (valid) or 0x0 (invalid)
|
293
|
-
export const
|
293
|
+
export const universalSignatureValidatorAbi = [
|
294
294
|
{
|
295
295
|
inputs: [
|
296
296
|
{
|
package/constants/contracts.ts
CHANGED
@@ -4,7 +4,7 @@ export const deploylessCallViaBytecodeBytecode =
|
|
4
4
|
export const deploylessCallViaFactoryBytecode =
|
5
5
|
'0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe'
|
6
6
|
|
7
|
-
export const
|
7
|
+
export const universalSignatureValidatorByteCode =
|
8
8
|
'0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572'
|
9
9
|
|
10
10
|
export const multicall3Bytecode =
|
package/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '2.36.0
|
1
|
+
export const version = '2.36.0'
|
package/index.ts
CHANGED
@@ -612,19 +612,15 @@ export {
|
|
612
612
|
erc721Abi,
|
613
613
|
erc1155Abi,
|
614
614
|
erc4626Abi,
|
615
|
-
erc6492SignatureValidatorAbi,
|
616
|
-
/** @deprecated use `erc6492SignatureValidatorAbi` instead. */
|
617
|
-
erc6492SignatureValidatorAbi as universalSignatureValidatorAbi,
|
618
615
|
multicall3Abi,
|
616
|
+
universalSignatureValidatorAbi,
|
619
617
|
} from './constants/abis.js'
|
620
618
|
export { ethAddress, zeroAddress } from './constants/address.js'
|
621
619
|
export { zeroHash } from './constants/bytes.js'
|
622
620
|
export {
|
623
621
|
deploylessCallViaBytecodeBytecode,
|
624
622
|
deploylessCallViaFactoryBytecode,
|
625
|
-
|
626
|
-
/** @deprecated use `erc6492SignatureValidatorByteCode` instead. */
|
627
|
-
erc6492SignatureValidatorByteCode as universalSignatureValidatorByteCode,
|
623
|
+
universalSignatureValidatorByteCode,
|
628
624
|
} from './constants/contracts.js'
|
629
625
|
export {
|
630
626
|
maxInt8,
|
@@ -1693,12 +1689,6 @@ export {
|
|
1693
1689
|
type IsErc6492SignatureReturnType,
|
1694
1690
|
isErc6492Signature,
|
1695
1691
|
} from './utils/signature/isErc6492Signature.js'
|
1696
|
-
export {
|
1697
|
-
type IsErc8010SignatureErrorType,
|
1698
|
-
type IsErc8010SignatureParameters,
|
1699
|
-
type IsErc8010SignatureReturnType,
|
1700
|
-
isErc8010Signature,
|
1701
|
-
} from './utils/signature/isErc8010Signature.js'
|
1702
1692
|
export {
|
1703
1693
|
/** @deprecated Use `ParseCompactSignatureErrorType`. */
|
1704
1694
|
type ParseCompactSignatureErrorType as HexToCompactSignatureErrorType,
|
@@ -1713,12 +1703,6 @@ export {
|
|
1713
1703
|
type ParseErc6492SignatureReturnType,
|
1714
1704
|
parseErc6492Signature,
|
1715
1705
|
} from './utils/signature/parseErc6492Signature.js'
|
1716
|
-
export {
|
1717
|
-
type ParseErc8010SignatureErrorType,
|
1718
|
-
type ParseErc8010SignatureParameters,
|
1719
|
-
type ParseErc8010SignatureReturnType,
|
1720
|
-
parseErc8010Signature,
|
1721
|
-
} from './utils/signature/parseErc8010Signature.js'
|
1722
1706
|
export {
|
1723
1707
|
/** @deprecated Use `ParseSignatureErrorType`. */
|
1724
1708
|
type ParseSignatureErrorType as HexToSignatureErrorType,
|
@@ -1771,12 +1755,6 @@ export {
|
|
1771
1755
|
type SerializeErc6492SignatureReturnType,
|
1772
1756
|
serializeErc6492Signature,
|
1773
1757
|
} from './utils/signature/serializeErc6492Signature.js'
|
1774
|
-
export {
|
1775
|
-
type SerializeErc8010SignatureErrorType,
|
1776
|
-
type SerializeErc8010SignatureParameters,
|
1777
|
-
type SerializeErc8010SignatureReturnType,
|
1778
|
-
serializeErc8010Signature,
|
1779
|
-
} from './utils/signature/serializeErc8010Signature.js'
|
1780
1758
|
export {
|
1781
1759
|
/** @deprecated Use `SignatureToHexErrorType` instead. */
|
1782
1760
|
type SerializeSignatureErrorType as SignatureToHexErrorType,
|
package/package.json
CHANGED
package/types/chain.ts
CHANGED
@@ -42,7 +42,7 @@ export type Chain<
|
|
42
42
|
ensRegistry?: ChainContract | undefined
|
43
43
|
ensUniversalResolver?: ChainContract | undefined
|
44
44
|
multicall3?: ChainContract | undefined
|
45
|
-
|
45
|
+
universalSignatureVerifier?: ChainContract | undefined
|
46
46
|
}
|
47
47
|
>
|
48
48
|
| undefined
|
package/utils/index.ts
CHANGED
@@ -441,24 +441,12 @@ export {
|
|
441
441
|
type IsErc6492SignatureReturnType,
|
442
442
|
isErc6492Signature,
|
443
443
|
} from './signature/isErc6492Signature.js'
|
444
|
-
export {
|
445
|
-
type IsErc8010SignatureErrorType,
|
446
|
-
type IsErc8010SignatureParameters,
|
447
|
-
type IsErc8010SignatureReturnType,
|
448
|
-
isErc8010Signature,
|
449
|
-
} from './signature/isErc8010Signature.js'
|
450
444
|
export {
|
451
445
|
type ParseErc6492SignatureErrorType,
|
452
446
|
type ParseErc6492SignatureParameters,
|
453
447
|
type ParseErc6492SignatureReturnType,
|
454
448
|
parseErc6492Signature,
|
455
449
|
} from './signature/parseErc6492Signature.js'
|
456
|
-
export {
|
457
|
-
type ParseErc8010SignatureErrorType,
|
458
|
-
type ParseErc8010SignatureParameters,
|
459
|
-
type ParseErc8010SignatureReturnType,
|
460
|
-
parseErc8010Signature,
|
461
|
-
} from './signature/parseErc8010Signature.js'
|
462
450
|
export {
|
463
451
|
type RecoverAddressErrorType,
|
464
452
|
type RecoverAddressParameters,
|
@@ -489,12 +477,6 @@ export {
|
|
489
477
|
type SerializeErc6492SignatureReturnType,
|
490
478
|
serializeErc6492Signature,
|
491
479
|
} from './signature/serializeErc6492Signature.js'
|
492
|
-
export {
|
493
|
-
type SerializeErc8010SignatureErrorType,
|
494
|
-
type SerializeErc8010SignatureParameters,
|
495
|
-
type SerializeErc8010SignatureReturnType,
|
496
|
-
serializeErc8010Signature,
|
497
|
-
} from './signature/serializeErc8010Signature.js'
|
498
480
|
export {
|
499
481
|
type VerifyHashErrorType,
|
500
482
|
type VerifyHashParameters,
|
@@ -1,8 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isErc8010Signature = isErc8010Signature;
|
4
|
-
const SignatureErc8010 = require("ox/erc8010/SignatureErc8010");
|
5
|
-
function isErc8010Signature(signature) {
|
6
|
-
return SignatureErc8010.validate(signature);
|
7
|
-
}
|
8
|
-
//# sourceMappingURL=isErc8010Signature.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"isErc8010Signature.js","sourceRoot":"","sources":["../../../utils/signature/isErc8010Signature.ts"],"names":[],"mappings":";;AASA,gDAIC;AAbD,gEAA+D;AAS/D,SAAgB,kBAAkB,CAChC,SAAuC;IAEvC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC7C,CAAC"}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.parseErc8010Signature = parseErc8010Signature;
|
4
|
-
const SignatureErc8010 = require("ox/erc8010/SignatureErc8010");
|
5
|
-
const toHex_js_1 = require("../encoding/toHex.js");
|
6
|
-
const isErc8010Signature_js_1 = require("./isErc8010Signature.js");
|
7
|
-
function parseErc8010Signature(signature) {
|
8
|
-
if (!(0, isErc8010Signature_js_1.isErc8010Signature)(signature))
|
9
|
-
return { signature };
|
10
|
-
const { authorization: authorization_ox, data, signature: inner, } = SignatureErc8010.unwrap(signature);
|
11
|
-
return {
|
12
|
-
authorization: {
|
13
|
-
address: authorization_ox.address,
|
14
|
-
chainId: authorization_ox.chainId,
|
15
|
-
nonce: Number(authorization_ox.nonce),
|
16
|
-
r: (0, toHex_js_1.numberToHex)(authorization_ox.r, { size: 32 }),
|
17
|
-
s: (0, toHex_js_1.numberToHex)(authorization_ox.s, { size: 32 }),
|
18
|
-
yParity: authorization_ox.yParity,
|
19
|
-
},
|
20
|
-
data,
|
21
|
-
signature: inner,
|
22
|
-
};
|
23
|
-
}
|
24
|
-
//# sourceMappingURL=parseErc8010Signature.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parseErc8010Signature.js","sourceRoot":"","sources":["../../../utils/signature/parseErc8010Signature.ts"],"names":[],"mappings":";;AAyCA,sDAsBC;AA/DD,gEAA+D;AAK/D,mDAAkD;AAClD,mEAGgC;AAgChC,SAAgB,qBAAqB,CACnC,SAA0C;IAE1C,IAAI,CAAC,IAAA,0CAAkB,EAAC,SAAS,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IAExD,MAAM,EACJ,aAAa,EAAE,gBAAgB,EAC/B,IAAI,EACJ,SAAS,EAAE,KAAK,GACjB,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACtC,OAAO;QACL,aAAa,EAAE;YACb,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACrC,CAAC,EAAE,IAAA,sBAAW,EAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,IAAA,sBAAW,EAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAChD,OAAO,EAAE,gBAAgB,CAAC,OAAO;SAClC;QACD,IAAI;QACJ,SAAS,EAAE,KAAK;KACjB,CAAA;AACH,CAAC"}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.serializeErc8010Signature = serializeErc8010Signature;
|
4
|
-
const SignatureErc8010 = require("ox/erc8010/SignatureErc8010");
|
5
|
-
const toBytes_js_1 = require("../encoding/toBytes.js");
|
6
|
-
function serializeErc8010Signature(parameters) {
|
7
|
-
const { to = 'hex' } = parameters;
|
8
|
-
const signature_ = SignatureErc8010.wrap({
|
9
|
-
...parameters,
|
10
|
-
authorization: {
|
11
|
-
address: parameters.authorization.address,
|
12
|
-
chainId: parameters.authorization.chainId,
|
13
|
-
nonce: BigInt(parameters.authorization.nonce),
|
14
|
-
r: BigInt(parameters.authorization.r),
|
15
|
-
s: BigInt(parameters.authorization.s),
|
16
|
-
yParity: parameters.authorization.yParity,
|
17
|
-
},
|
18
|
-
});
|
19
|
-
if (to === 'hex')
|
20
|
-
return signature_;
|
21
|
-
return (0, toBytes_js_1.hexToBytes)(signature_);
|
22
|
-
}
|
23
|
-
//# sourceMappingURL=serializeErc8010Signature.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"serializeErc8010Signature.js","sourceRoot":"","sources":["../../../utils/signature/serializeErc8010Signature.ts"],"names":[],"mappings":";;AA8BA,8DAiBC;AA/CD,gEAA+D;AAI/D,uDAAmD;AA0BnD,SAAgB,yBAAyB,CACvC,UAAmD;IAEnD,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,UAAU,CAAA;IACjC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACvC,GAAG,UAAU;QACb,aAAa,EAAE;YACb,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO;YACzC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO;YACzC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;YAC7C,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,OAAQ;SAC3C;KACF,CAAC,CAAA;IACF,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,UAAqD,CAAA;IAC9E,OAAO,IAAA,uBAAU,EAAC,UAAU,CAA4C,CAAA;AAC1E,CAAC"}
|
@@ -1,6 +0,0 @@
|
|
1
|
-
import * as SignatureErc8010 from 'ox/erc8010/SignatureErc8010';
|
2
|
-
/** Whether or not the signature is an ERC-8010 formatted signature. */
|
3
|
-
export function isErc8010Signature(signature) {
|
4
|
-
return SignatureErc8010.validate(signature);
|
5
|
-
}
|
6
|
-
//# sourceMappingURL=isErc8010Signature.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"isErc8010Signature.js","sourceRoot":"","sources":["../../../utils/signature/isErc8010Signature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAQ/D,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAChC,SAAuC;IAEvC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC7C,CAAC"}
|