@wormhole-foundation/wormhole-connect 4.1.0-beta.1-development → 5.0.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/dist/assets/{aptos-C9pj8h2Q.js → aptos-DgUCX7ng.js} +3 -3
- package/dist/assets/{evm-DCydYqBI.js → evm-B6bqAPTR.js} +4 -4
- package/dist/assets/{evm-CJXv6IQV.js → evm-Ve5nG8Fs.js} +1 -1
- package/dist/assets/{index-LvDsy6wR.js → index-BJokXZAc.js} +1 -1
- package/dist/assets/{index-BqxX-Ey7.js → index-BJv9sngo.js} +1 -1
- package/dist/assets/{index-C9cy4cDs.js → index-BjZMFLjq.js} +1 -1
- package/dist/assets/{index-FJ-n91Op.js → index-BwbPlAQZ.js} +1 -1
- package/dist/assets/{index-Clu5I99l.js → index-Bzg4DNh9.js} +1 -1
- package/dist/assets/{index-ezhfpCvx.js → index-CKXa657f.js} +1 -1
- package/dist/assets/index-CXiuP738.js +1 -0
- package/dist/assets/{index-CNExx9Zb.js → index-CvTvoHH-.js} +1 -1
- package/dist/assets/{index-C25bHdOM.js → index-D1ULRVbZ.js} +1 -1
- package/dist/assets/{index-DpabQJOX.js → index-DlH9IMQl.js} +1 -1
- package/dist/assets/{index-C8u74RER.js → index-Dsb-5apv.js} +1 -1
- package/dist/assets/{index-D9ApKauA.js → index-_YFUWLUM.js} +1 -1
- package/dist/assets/{index-CoIvdDsX.js → index-jg26xdEi.js} +1 -1
- package/dist/assets/{provider-jsonrpc-DuMpLBV0.js → provider-jsonrpc-DNgUKjG6.js} +1 -1
- package/dist/assets/{solana-DWuIx6gK.js → solana-D4RepnSA.js} +2 -2
- package/dist/assets/{sui-BcTGBE_4.js → sui-Du5h-f8S.js} +3 -3
- package/dist/main.mjs +185 -140
- package/dist/src/components/ConfigurablePageHeader.d.ts +1 -1
- package/dist/src/components/ConfigurablePageHeader.d.ts.map +1 -1
- package/dist/src/components/Header.d.ts +1 -0
- package/dist/src/components/Header.d.ts.map +1 -1
- package/dist/src/components/PageHeader.d.ts +1 -3
- package/dist/src/components/PageHeader.d.ts.map +1 -1
- package/dist/src/components/SampleApp/index.d.ts.map +1 -1
- package/dist/src/components/v3/BackButton.d.ts +6 -0
- package/dist/src/components/v3/BackButton.d.ts.map +1 -0
- package/dist/src/components/v3/FormContent.d.ts +5 -0
- package/dist/src/components/v3/FormContent.d.ts.map +1 -0
- package/dist/src/config/constants.d.ts.map +1 -1
- package/dist/src/config/events.d.ts +2 -1
- package/dist/src/config/events.d.ts.map +1 -1
- package/dist/src/config/mainnet/chains.d.ts.map +1 -1
- package/dist/src/config/mainnet/rpcs.d.ts.map +1 -1
- package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
- package/dist/src/config/mainnet/wrappedTokens.d.ts +6 -0
- package/dist/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
- package/dist/src/config/types.d.ts +6 -11
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/config/ui.d.ts +9 -0
- package/dist/src/config/ui.d.ts.map +1 -1
- package/dist/src/consts/wallet.d.ts.map +1 -1
- package/dist/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
- package/dist/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
- package/dist/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
- package/dist/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistory.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
- package/dist/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
- package/dist/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
- package/dist/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
- package/dist/src/icons/PoweredBy.d.ts.map +1 -1
- package/dist/src/icons/TokenIcons.d.ts.map +1 -1
- package/dist/src/icons/Tokens/AUSD.d.ts +4 -0
- package/dist/src/icons/Tokens/AUSD.d.ts.map +1 -0
- package/dist/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
- package/dist/src/routes/mayan/utils.d.ts.map +1 -1
- package/dist/src/routes/monad/consts.d.ts +1 -0
- package/dist/src/routes/monad/consts.d.ts.map +1 -1
- package/dist/src/routes/monad/monad.test.d.ts +1 -0
- package/dist/src/routes/monad/monad.test.d.ts.map +1 -0
- package/dist/src/routes/monad/utils.d.ts.map +1 -1
- package/dist/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
- package/dist/src/telemetry/types.d.ts +5 -2
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/theme.d.ts +4 -3
- package/dist/src/theme.d.ts.map +1 -1
- package/dist/src/utils/errors.d.ts +1 -0
- package/dist/src/utils/errors.d.ts.map +1 -1
- package/dist/src/utils/fees.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/sdkv2.d.ts.map +1 -1
- package/dist/src/utils/wallet/index.d.ts +1 -0
- package/dist/src/utils/wallet/index.d.ts.map +1 -1
- package/dist/src/views/Terms.d.ts.map +1 -1
- package/dist/src/views/TxSearch.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/index.d.ts +2 -1
- package/dist/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
- package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
- package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/index.d.ts.map +1 -1
- package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/dist/src/views/v3/Redeem/index.d.ts.map +1 -1
- package/dist/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
- package/dist/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
- package/lib/{account-cIQhxn1E.js → account-K005OXgL.js} +1 -1
- package/lib/{account-BVl6Reot.mjs → account-TXlxMyv4.mjs} +2 -2
- package/lib/{address-rVHWlcKQ.mjs → address-CX0E32ut.mjs} +1 -1
- package/lib/{address-W9jn6Qdk.js → address-DqbIfKOu.js} +1 -1
- package/lib/{aptos-DWDR5o78.js → aptos-BnjZOhUE.js} +1 -1
- package/lib/{aptos-CNHYHK9c.js → aptos-CnswqE-C.js} +2 -2
- package/lib/{aptos-D1WFzBMy.mjs → aptos-DRfXJ8Ba.mjs} +7 -7
- package/lib/{aptos-B84P9rJZ.mjs → aptos-fTiHvXXE.mjs} +5 -5
- package/lib/{associatedTokenAccount-C4vEEbG5.js → associatedTokenAccount-CeqdaO2m.js} +1 -1
- package/lib/{associatedTokenAccount-DF6phO3l.mjs → associatedTokenAccount-Dsm4Hq32.mjs} +3 -3
- package/lib/{basic-BERCwt2M.mjs → basic-BqusrmRE.mjs} +3 -3
- package/lib/{basic-NhXxxbR1.js → basic-BrW22Cj9.js} +1 -1
- package/lib/{basic-CukRIaOD.mjs → basic-CK5Bsf0B.mjs} +3 -3
- package/lib/{basic-DJXXfABO.js → basic-ChOmeQQk.js} +1 -1
- package/lib/{chunk-KJH4KKG6-Brt4fyqz.mjs → chunk-KJH4KKG6-BfVMUPsB.mjs} +3 -3
- package/lib/{chunk-KJH4KKG6-BbF5W1_N.js → chunk-KJH4KKG6-CJx-rDa6.js} +1 -1
- package/lib/constants-C1w_RyOP.js +1 -0
- package/lib/{constants-VaoVbllu.mjs → constants-DcDpDarO.mjs} +6 -5
- package/lib/{core-BCZrVb_s.mjs → core-DQ-6Q1F1.mjs} +6 -6
- package/lib/{core-BE6SS7Ye.js → core-FA2gBc-s.js} +3 -3
- package/lib/{create-CChLkbGc.mjs → create-C5dhTMHL.mjs} +1 -1
- package/lib/{create-4w0DrcRO.js → create-bA3Gyivs.js} +1 -1
- package/lib/{evm-CmmnpcFD.mjs → evm-BJ4Lx-r9.mjs} +5 -5
- package/lib/{evm--K7mr7Kr.js → evm-BTgO_HRP.js} +2 -2
- package/lib/{evm-DKaWm7eC.mjs → evm-C-vXMfGr.mjs} +7 -7
- package/lib/{evm-C5BixKBn.js → evm-qxndAh3z.js} +1 -1
- package/lib/executor.js +1 -1
- package/lib/executor.mjs +13 -15
- package/lib/hosted.js +1 -1
- package/lib/hosted.mjs +1 -1
- package/lib/hypercore-D7kZiwbe.js +4 -0
- package/lib/{hypercore-birmbh9T.mjs → hypercore-DKqayfki.mjs} +4858 -3107
- package/lib/{index-qL4D-cpk.js → index-1T4sIL8n.js} +1 -1
- package/lib/{index-Ap7250Gf.mjs → index-39tU5Y5t.mjs} +6 -6
- package/lib/{index-BUbUhbMe.js → index-3Zg1AdoI.js} +1 -1
- package/lib/{index-D7gCsil9.js → index-6m7yero0.js} +1 -1
- package/lib/{index-CH0iw38J.mjs → index-B1URQBlH.mjs} +3 -3
- package/lib/{index-C5I7QiZ7.mjs → index-B6Ppg6EZ.mjs} +3 -3
- package/lib/{index-CED5jdrg.js → index-B7b8sctd.js} +1 -1
- package/lib/{index-xvG6cxNx.js → index-BEIFBxtP.js} +1 -1
- package/lib/{index-zIzzPp6D.mjs → index-BHpJUZne.mjs} +3 -3
- package/lib/{index-BTcij9Np.js → index-BJ0xVutl.js} +1 -1
- package/lib/{index-C61IKE_V.mjs → index-BSIPYyeZ.mjs} +2 -2
- package/lib/{index-EbSw7SbC.js → index-BTjUHY0e.js} +1 -1
- package/lib/{index-C8YhpD9T.mjs → index-BVciucyT.mjs} +4 -4
- package/lib/{index-BuHdMHLz.mjs → index-Ba1zbu3Q.mjs} +2 -2
- package/lib/{index-BU35GfG0.mjs → index-Bdtj4LUz.mjs} +2 -2
- package/lib/{index-Bs28m4ya.js → index-BfzaCmg7.js} +1 -1
- package/lib/{index-CN7M4gwf.mjs → index-BviSNDV7.mjs} +5 -5
- package/lib/{index-BRFbmsc_.js → index-C-F8_8dY.js} +1 -1
- package/lib/{index-Cys9e11O.js → index-C-SMuVS3.js} +1 -1
- package/lib/{index-pYTU7pQK.mjs → index-C6MalNd5.mjs} +4 -3
- package/lib/{index-Cg1Xo1eZ.js → index-C85u3Gj5.js} +1 -1
- package/lib/{index-Da9rvmCc.js → index-Cb0UWLGI.js} +1 -1
- package/lib/{index-HrZv1SyT.js → index-Cb_8WAm1.js} +8 -8
- package/lib/{index-DHnmtpvA.mjs → index-CcbY14s5.mjs} +4 -4
- package/lib/{index-CR1itkLl.mjs → index-CgqBQ88K.mjs} +3248 -3055
- package/lib/{index-Txz5xwr6.mjs → index-CowAVUcg.mjs} +1 -1
- package/lib/{index-BKgliEPZ.mjs → index-CrWTw0Se.mjs} +2 -2
- package/lib/{index-B_JJ50Y-.mjs → index-D-HUNEka.mjs} +4 -4
- package/lib/{index-BhMcIAHt.js → index-DJ2w1fz1.js} +1 -1
- package/lib/{index-BN_2mA2n.mjs → index-DcFL403C.mjs} +1 -1
- package/lib/{index-CO4ZoIAU.mjs → index-DjmVBSGQ.mjs} +4 -4
- package/lib/{index-Co3mm7UN.mjs → index-DrJE8udd.mjs} +1 -1
- package/lib/{index-fTUcaKb4.js → index-DuhYwr0t.js} +1 -1
- package/lib/{index-BQ0lWQfT.mjs → index-DwEx1Hn-.mjs} +2 -2
- package/lib/{index-DBofyYkS.js → index-DziujHu1.js} +1 -1
- package/lib/{index-Dou5sFku.js → index-JWbF-m3e.js} +1 -1
- package/lib/index-Oxm0y6-t.js +1 -0
- package/lib/{index-D1odbjeH.mjs → index-VnJcNK62.mjs} +3 -3
- package/lib/{index-DVxmRy4C.js → index-WrXSs0ic.js} +1 -1
- package/lib/{index-Cw0jWBks.js → index-XjDX4fWv.js} +1 -1
- package/lib/{index-CsdD1TNi.js → index-aMKUba1k.js} +1 -1
- package/lib/{index-DSnylejH.mjs → index-dufPAW5T.mjs} +292 -269
- package/lib/{index-lZY5fTXF.js → index-lAqXlt-a.js} +1 -1
- package/lib/{index-N4FkpEh9.mjs → index-mNO1mk2F.mjs} +4 -4
- package/lib/{index-BScgBddV.mjs → index-o1SAPXm_.mjs} +3 -3
- package/lib/{index-DNZ-Pkpm.mjs → index-rxQSA9t0.mjs} +6 -6
- package/lib/{index-DALvn9lg.js → index-v7w8krM0.js} +1 -1
- package/lib/{index-japympio.js → index-wadjmD_G.js} +1 -1
- package/lib/{index.es-DmmqAOLD.js → index.es-B9kBDkCQ.js} +3 -3
- package/lib/{index.es-Dg6IFrL4.js → index.es-BZRO-bNH.js} +1 -1
- package/lib/{index.es-B0fk_42a.mjs → index.es-CF3YY88z.mjs} +4 -4
- package/lib/{index.es-CDqFguL5.mjs → index.es-CaAL5X4E.mjs} +4 -4
- package/lib/index.js +78 -33
- package/lib/index.mjs +9158 -8833
- package/lib/{keypair-DWucLGoA.js → keypair-DCgXFOw5.js} +1 -1
- package/lib/{keypair-CP7syX9B.mjs → keypair-vpG2fl-q.mjs} +3 -3
- package/lib/lifi.js +1 -1
- package/lib/lifi.mjs +75 -76
- package/lib/mayan.js +2 -2
- package/lib/mayan.mjs +11 -10
- package/lib/{mint-CoNdQTGM.mjs → mint-BPrKG-Zc.mjs} +3 -3
- package/lib/{mint-CxQ6P5lT.js → mint-DW-XgF68.js} +1 -1
- package/lib/monad.js +1 -1
- package/lib/monad.mjs +91 -58
- package/lib/multiToken-B9BoSxdr.js +1 -0
- package/lib/{multiToken-Bm-K5dRJ.mjs → multiToken-DMllgxzT.mjs} +4 -3
- package/lib/ntt.js +2 -2
- package/lib/ntt.mjs +77 -86
- package/lib/{platform-Cil_UtAQ.mjs → platform-CSpAb386.mjs} +2788 -2748
- package/lib/{platform-BMKYxqvv.js → platform-Csj1Outc.js} +1 -1
- package/lib/platform-DCcL7jHP.js +11 -0
- package/lib/{platform-vRQufc6j.mjs → platform-YzJZdSCf.mjs} +3 -3
- package/lib/{secp256k1-LTcmQEQ5.mjs → secp256k1-1o6o1kFy.mjs} +1 -1
- package/lib/{secp256k1-DzRCmd6a.mjs → secp256k1-BjlnTj1_.mjs} +1 -1
- package/lib/{secp256k1-CglUNI04.js → secp256k1-CeYT4ndf.js} +1 -1
- package/lib/{secp256k1-DROP2Lhv.mjs → secp256k1-Cw_BiEuN.mjs} +1 -1
- package/lib/{secp256k1-BkoM1Jum.js → secp256k1-D5cKS6q_.js} +1 -1
- package/lib/{secp256k1-CcVQkYNr.js → secp256k1-_QlJc7sK.js} +1 -1
- package/lib/{signer-0hWrZ5BZ.mjs → signer-D2GRgRrw.mjs} +2 -2
- package/lib/{signer-DyqulDUM.js → signer-gjSiV5v3.js} +1 -1
- package/lib/solana-DfW5T_64.mjs +18 -0
- package/lib/{solana-C4k_Yg7w.js → solana-DvHFhri3.js} +4 -4
- package/lib/solana-Edd9tIkX.js +1 -0
- package/lib/{solana-D1LVIhGd.mjs → solana-TgPr9kpk.mjs} +10 -10
- package/lib/{solanaEmbed.esm-AvWQUA9e.mjs → solanaEmbed.esm-Bh1-aAL4.mjs} +4 -4
- package/lib/{solanaEmbed.esm--Ac-IlRA.js → solanaEmbed.esm-C8TjRcIV.js} +1 -1
- package/lib/{solidity-CbDkqHjE.js → solidity-BW7c8rFv.js} +1 -1
- package/lib/{solidity-Dk_mvceo.mjs → solidity-D9gSgFcp.mjs} +1 -1
- package/lib/src/components/ConfigurablePageHeader.d.ts +1 -1
- package/lib/src/components/ConfigurablePageHeader.d.ts.map +1 -1
- package/lib/src/components/Header.d.ts +1 -0
- package/lib/src/components/Header.d.ts.map +1 -1
- package/lib/src/components/PageHeader.d.ts +1 -3
- package/lib/src/components/PageHeader.d.ts.map +1 -1
- package/lib/src/components/SampleApp/index.d.ts.map +1 -1
- package/lib/src/components/v3/BackButton.d.ts +6 -0
- package/lib/src/components/v3/BackButton.d.ts.map +1 -0
- package/lib/src/components/v3/FormContent.d.ts +5 -0
- package/lib/src/components/v3/FormContent.d.ts.map +1 -0
- package/lib/src/config/constants.d.ts.map +1 -1
- package/lib/src/config/events.d.ts +2 -1
- package/lib/src/config/events.d.ts.map +1 -1
- package/lib/src/config/mainnet/chains.d.ts.map +1 -1
- package/lib/src/config/mainnet/rpcs.d.ts.map +1 -1
- package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
- package/lib/src/config/mainnet/wrappedTokens.d.ts +6 -0
- package/lib/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
- package/lib/src/config/types.d.ts +6 -11
- package/lib/src/config/types.d.ts.map +1 -1
- package/lib/src/config/ui.d.ts +9 -0
- package/lib/src/config/ui.d.ts.map +1 -1
- package/lib/src/consts/wallet.d.ts.map +1 -1
- package/lib/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
- package/lib/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
- package/lib/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
- package/lib/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistory.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
- package/lib/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
- package/lib/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
- package/lib/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
- package/lib/src/icons/PoweredBy.d.ts.map +1 -1
- package/lib/src/icons/TokenIcons.d.ts.map +1 -1
- package/lib/src/icons/Tokens/AUSD.d.ts +4 -0
- package/lib/src/icons/Tokens/AUSD.d.ts.map +1 -0
- package/lib/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
- package/lib/src/routes/mayan/utils.d.ts.map +1 -1
- package/lib/src/routes/monad/consts.d.ts +1 -0
- package/lib/src/routes/monad/consts.d.ts.map +1 -1
- package/lib/src/routes/monad/monad.test.d.ts +1 -0
- package/lib/src/routes/monad/monad.test.d.ts.map +1 -0
- package/lib/src/routes/monad/utils.d.ts.map +1 -1
- package/lib/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
- package/lib/src/telemetry/types.d.ts +5 -2
- package/lib/src/telemetry/types.d.ts.map +1 -1
- package/lib/src/theme.d.ts +4 -3
- package/lib/src/theme.d.ts.map +1 -1
- package/lib/src/utils/errors.d.ts +1 -0
- package/lib/src/utils/errors.d.ts.map +1 -1
- package/lib/src/utils/fees.d.ts.map +1 -1
- package/lib/src/utils/index.d.ts.map +1 -1
- package/lib/src/utils/sdkv2.d.ts.map +1 -1
- package/lib/src/utils/wallet/index.d.ts +1 -0
- package/lib/src/utils/wallet/index.d.ts.map +1 -1
- package/lib/src/views/Terms.d.ts.map +1 -1
- package/lib/src/views/TxSearch.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/index.d.ts +2 -1
- package/lib/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
- package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
- package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/index.d.ts.map +1 -1
- package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/lib/src/views/v3/Redeem/index.d.ts.map +1 -1
- package/lib/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
- package/lib/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
- package/lib/{sui-LiXjD27c.js → sui-BtyZE8YC.js} +1 -1
- package/lib/{sui-BPAb7kcs.mjs → sui-CoWRa3vr.mjs} +4 -4
- package/lib/{sui-CgmDTkXK.js → sui-DwFrGd2Y.js} +1 -1
- package/lib/{sui-cpCvd7RC.mjs → sui-QP4AZGNc.mjs} +6 -6
- package/lib/{tokenHelpers-CbE0g9BP.js → tokenHelpers-CeTyb4rG.js} +1 -1
- package/lib/{tokenHelpers-DvWQs1tu.mjs → tokenHelpers-VYjmKUxj.mjs} +1 -1
- package/lib/{tokens-BJDttoCp.mjs → tokens-D6uJqrsR.mjs} +3 -3
- package/lib/{tokens-CvZuVW-g.js → tokens-mXZqt-qL.js} +1 -1
- package/lib/types-CgveSjsw.js +1 -0
- package/lib/{types-iFgwQ7vG.mjs → types-Dxx2g1wS.mjs} +170 -168
- package/lib/{unsignedTransaction-DCDxTFq8.mjs → unsignedTransaction-D2Ja0SuN.mjs} +2 -2
- package/lib/{unsignedTransaction-DA4tlY5u.js → unsignedTransaction-qRBv5Cnd.js} +2 -2
- package/lib/{utils-DMf7wRGI.js → utils-BEljbqMf.js} +1 -1
- package/lib/{utils-BSxsyW2c.mjs → utils-mBHX3Jpu.mjs} +4 -4
- package/lib/{w3m-modal-DM5Pf8SH.mjs → w3m-modal-BEe8ji9_.mjs} +2 -2
- package/lib/{w3m-modal-CtQ0TPA4.mjs → w3m-modal-D3eqrCT1.mjs} +2 -2
- package/lib/{w3m-modal-k23UDiov.js → w3m-modal-Duc13ei7.js} +1 -1
- package/lib/{w3m-modal-ByamyZny.js → w3m-modal-f_sUVzPx.js} +1 -1
- package/lib/{wallet-CMTEE6Oa.mjs → wallet-Cyosy4Hc.mjs} +1 -1
- package/lib/{wallet-BMli0fbu.js → wallet-a0_jwP8j.js} +1 -1
- package/lib/{web3-CUwFm9Lx.mjs → web3-CdErAVj5.mjs} +2 -2
- package/lib/{web3-DdUeM7iQ.js → web3-x1WCGDiy.js} +1 -1
- package/package.json +49 -47
- package/dist/assets/index-_UMHESh0.js +0 -1
- package/dist/src/components/Button.d.ts +0 -13
- package/dist/src/components/Button.d.ts.map +0 -1
- package/dist/src/icons/Down.d.ts +0 -5
- package/dist/src/icons/Down.d.ts.map +0 -1
- package/lib/constants-B9TBfA4z.js +0 -1
- package/lib/hypercore-4R7JGmbr.js +0 -4
- package/lib/index-C8eqQ_7p.js +0 -1
- package/lib/multiToken-YoNvxjur.js +0 -1
- package/lib/platform-CCG_jgOO.js +0 -11
- package/lib/solana-DKFJvqX8.mjs +0 -18
- package/lib/solana-Dmje_Si8.js +0 -1
- package/lib/src/components/Button.d.ts +0 -13
- package/lib/src/components/Button.d.ts.map +0 -1
- package/lib/src/icons/Down.d.ts +0 -5
- package/lib/src/icons/Down.d.ts.map +0 -1
- package/lib/types-CjNs2oB0.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as H,t as Ts,b as p,c as I,aL as X,ae as Lt,a8 as v,aM as fn,d as gt,aN as Tr,aO as Fr,aP as De,aQ as Te,aR as Fs,aS as ve,ab as Us,ac as _e,aT as Ls,a9 as Ur,aU as wt,aV as R,H as jn,aW as Ms,aX as Qs,aY as Yt,g as L,ag as et,a as Gs,e as N,p as tt,aZ as Xt,av as ot,ar as ce,l as _t,ao as z,at as $,af as ht,a_ as ie,au as Hs,ap as Lr,m as Vs,a$ as Js,b0 as Zt,o as ue,b1 as dt,b2 as zs,b3 as Ks,b4 as js,b5 as Zs,an as yt,al as dn,b6 as Zn,b7 as Ys,am as lt,b8 as Ws,b9 as qs}from"../main.mjs";const Fe="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";let xe=null;function Xs(r){if(xe==null){xe={};for(let e=0;e<Fe.length;e++)xe[Fe[e]]=BigInt(e)}const t=xe[r];return p(t!=null,"invalid base58 value","letter",r),t}const _s=BigInt(0),gn=BigInt(58);function $s(r){const t=H(r);let e=Ts(t),n="";for(;e;)n=Fe[Number(e%gn)]+n,e/=gn;for(let s=0;s<t.length&&!t[s];s++)n=Fe[0]+n;return n}function Ka(r){let t=_s;for(let e=0;e<r.length;e++)t*=gn,t+=Xs(r[e]);return t}function ti(r){r=atob(r);const t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return H(t)}function ei(r){const t=H(r);let e="";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return btoa(e)}function Mr(r){async function t(e,n){I(n==null||!n.cancelled,"request cancelled before sending","CANCELLED");const s=e.url.split(":")[0].toLowerCase();I(s==="http"||s==="https",`unsupported protocol ${s}`,"UNSUPPORTED_OPERATION",{info:{protocol:s},operation:"request"}),I(s==="https"||!e.credentials||e.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let i=null;const o=new AbortController,a=setTimeout(()=>{i=X("request timeout","TIMEOUT"),o.abort()},e.timeout);n&&n.addListener(()=>{i=X("request cancelled","CANCELLED"),o.abort()});const c={method:e.method,headers:new Headers(Array.from(e)),body:e.body||void 0,signal:o.signal};let l;try{l=await fetch(e.url,c)}catch(w){throw clearTimeout(a),i||w}clearTimeout(a);const h={};l.headers.forEach((w,A)=>{h[A.toLowerCase()]=w});const u=await l.arrayBuffer(),d=u==null?null:new Uint8Array(u);return{statusCode:l.status,statusMessage:l.statusText,headers:h,body:d}}return t}const ni=12,ri=250;let Yn=Mr();const si=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),ii=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let $e=!1;async function Qr(r,t){try{const e=r.match(si);if(!e)throw new Error("invalid data");return new Rt(200,"OK",{"content-type":e[1]||"text/plain"},e[2]?ti(e[3]):ai(e[3]))}catch{return new Rt(599,"BAD REQUEST (invalid data: URI)",{},null,new bt(r))}}function Gr(r){async function t(e,n){try{const s=e.match(ii);if(!s)throw new Error("invalid link");return new bt(`${r}${s[2]}`)}catch{return new Rt(599,"BAD REQUEST (invalid IPFS URI)",{},null,new bt(e))}}return t}const Ce={data:Qr,ipfs:Gr("https://gateway.ipfs.io/ipfs/")},Hr=new WeakMap;class oi{#t;#e;constructor(t){this.#t=[],this.#e=!1,Hr.set(t,()=>{if(!this.#e){this.#e=!0;for(const e of this.#t)setTimeout(()=>{e()},0);this.#t=[]}})}addListener(t){I(!this.#e,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#t.push(t)}get cancelled(){return this.#e}checkSignal(){I(!this.cancelled,"cancelled","CANCELLED",{})}}function Pe(r){if(r==null)throw new Error("missing signal; should not happen");return r.checkSignal(),r}class bt{#t;#e;#n;#r;#s;#o;#i;#a;#d;#l;#g;#p;#c;#u;#h;get url(){return this.#o}set url(t){this.#o=String(t)}get body(){return this.#i==null?null:new Uint8Array(this.#i)}set body(t){if(t==null)this.#i=void 0,this.#a=void 0;else if(typeof t=="string")this.#i=Lt(t),this.#a="text/plain";else if(t instanceof Uint8Array)this.#i=t,this.#a="application/octet-stream";else if(typeof t=="object")this.#i=Lt(JSON.stringify(t)),this.#a="application/json";else throw new Error("invalid body")}hasBody(){return this.#i!=null}get method(){return this.#r?this.#r:this.hasBody()?"POST":"GET"}set method(t){t==null&&(t=""),this.#r=String(t).toUpperCase()}get headers(){const t=Object.assign({},this.#n);return this.#d&&(t.authorization=`Basic ${ei(Lt(this.#d))}`),this.allowGzip&&(t["accept-encoding"]="gzip"),t["content-type"]==null&&this.#a&&(t["content-type"]=this.#a),this.body&&(t["content-length"]=String(this.body.length)),t}getHeader(t){return this.headers[t.toLowerCase()]}setHeader(t,e){this.#n[String(t).toLowerCase()]=String(e)}clearHeaders(){this.#n={}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const s=e[n++];return{value:[s,t[s]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#d||null}setCredentials(t,e){p(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#d=`${t}:${e}`}get allowGzip(){return this.#e}set allowGzip(t){this.#e=!!t}get allowInsecureAuthentication(){return!!this.#t}set allowInsecureAuthentication(t){this.#t=!!t}get timeout(){return this.#s}set timeout(t){p(t>=0,"timeout must be non-zero","timeout",t),this.#s=t}get preflightFunc(){return this.#l||null}set preflightFunc(t){this.#l=t}get processFunc(){return this.#g||null}set processFunc(t){this.#g=t}get retryFunc(){return this.#p||null}set retryFunc(t){this.#p=t}get getUrlFunc(){return this.#h||Yn}set getUrlFunc(t){this.#h=t}constructor(t){this.#o=String(t),this.#t=!1,this.#e=!0,this.#n={},this.#r="",this.#s=3e5,this.#u={slotInterval:ri,maxAttempts:ni},this.#h=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#i?v(this.#i):"null"}>`}setThrottleParams(t){t.slotInterval!=null&&(this.#u.slotInterval=t.slotInterval),t.maxAttempts!=null&&(this.#u.maxAttempts=t.maxAttempts)}async#f(t,e,n,s,i){if(t>=this.#u.maxAttempts)return i.makeServerError("exceeded maximum retry limit");I(Wn()<=e,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:s}),n>0&&await ci(n);let o=this.clone();const a=(o.url.split(":")[0]||"").toLowerCase();if(a in Ce){const h=await Ce[a](o.url,Pe(s.#c));if(h instanceof Rt){let u=h;if(this.processFunc){Pe(s.#c);try{u=await this.processFunc(o,u)}catch(d){(d.throttle==null||typeof d.stall!="number")&&u.makeServerError("error in post-processing function",d).assertOk()}}return u}o=h}this.preflightFunc&&(o=await this.preflightFunc(o));const c=await this.getUrlFunc(o,Pe(s.#c));let l=new Rt(c.statusCode,c.statusMessage,c.headers,c.body,s);if(l.statusCode===301||l.statusCode===302){try{const h=l.headers.location||"";return o.redirect(h).#f(t+1,e,0,s,l)}catch{}return l}else if(l.statusCode===429&&(this.retryFunc==null||await this.retryFunc(o,l,t))){const h=l.headers["retry-after"];let u=this.#u.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return typeof h=="string"&&h.match(/^[1-9][0-9]*$/)&&(u=parseInt(h)),o.clone().#f(t+1,e,u,s,l)}if(this.processFunc){Pe(s.#c);try{l=await this.processFunc(o,l)}catch(h){(h.throttle==null||typeof h.stall!="number")&&l.makeServerError("error in post-processing function",h).assertOk();let u=this.#u.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return h.stall>=0&&(u=h.stall),o.clone().#f(t+1,e,u,s,l)}}return l}send(){return I(this.#c==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#c=new oi(this),this.#f(0,Wn()+this.timeout,0,this,new Rt(0,"",{},null,this))}cancel(){I(this.#c!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=Hr.get(this);if(!t)throw new Error("missing signal; should not happen");t()}redirect(t){const e=this.url.split(":")[0].toLowerCase(),n=t.split(":")[0].toLowerCase();I(this.method==="GET"&&(e!=="https"||n!=="http")&&t.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(t)})`});const s=new bt(t);return s.method="GET",s.allowGzip=this.allowGzip,s.timeout=this.timeout,s.#n=Object.assign({},this.#n),this.#i&&(s.#i=new Uint8Array(this.#i)),s.#a=this.#a,s}clone(){const t=new bt(this.url);return t.#r=this.#r,this.#i&&(t.#i=this.#i),t.#a=this.#a,t.#n=Object.assign({},this.#n),t.#d=this.#d,this.allowGzip&&(t.allowGzip=!0),t.timeout=this.timeout,this.allowInsecureAuthentication&&(t.allowInsecureAuthentication=!0),t.#l=this.#l,t.#g=this.#g,t.#p=this.#p,t.#u=Object.assign({},this.#u),t.#h=this.#h,t}static lockConfig(){$e=!0}static getGateway(t){return Ce[t.toLowerCase()]||null}static registerGateway(t,e){if(t=t.toLowerCase(),t==="http"||t==="https")throw new Error(`cannot intercept ${t}; use registerGetUrl`);if($e)throw new Error("gateways locked");Ce[t]=e}static registerGetUrl(t){if($e)throw new Error("gateways locked");Yn=t}static createGetUrlFunc(t){return Mr()}static createDataGateway(){return Qr}static createIpfsGatewayFunc(t){return Gr(t)}}class Rt{#t;#e;#n;#r;#s;#o;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#r?v(this.#r):"null"}>`}get statusCode(){return this.#t}get statusMessage(){return this.#e}get headers(){return Object.assign({},this.#n)}get body(){return this.#r==null?null:new Uint8Array(this.#r)}get bodyText(){try{return this.#r==null?"":fn(this.#r)}catch{I(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch{I(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const s=e[n++];return{value:[s,t[s]],done:!1}}return{value:void 0,done:!0}}}}constructor(t,e,n,s,i){this.#t=t,this.#e=e,this.#n=Object.keys(n).reduce((o,a)=>(o[a.toLowerCase()]=String(n[a]),o),{}),this.#r=s==null?null:new Uint8Array(s),this.#s=i||null,this.#o={message:""}}makeServerError(t,e){let n;t?n=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${t})`:(t=`${this.statusCode} ${this.statusMessage}`,n=`CLIENT ESCALATED SERVER ERROR (${t})`);const s=new Rt(599,n,this.headers,this.body,this.#s||void 0);return s.#o={message:t,error:e},s}throwThrottleError(t,e){e==null?e=-1:p(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const n=new Error(t||"throttling requests");throw gt(n,{stall:e,throttle:!0}),n}getHeader(t){return this.headers[t.toLowerCase()]}hasBody(){return this.#r!=null}get request(){return this.#s}ok(){return this.#o.message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:t,error:e}=this.#o;t===""&&(t=`server response ${this.statusCode} ${this.statusMessage}`);let n=null;this.request&&(n=this.request.url);let s=null;try{this.#r&&(s=fn(this.#r))}catch{}I(!1,t,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:e,info:{requestUrl:n,responseBody:s,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function Wn(){return new Date().getTime()}function ai(r){return Lt(r.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16))))}function ci(r){return new Promise(t=>setTimeout(t,r))}function li(r){let t=r.toString(16);for(;t.length<2;)t="0"+t;return"0x"+t}function qn(r,t,e){let n=0;for(let s=0;s<e;s++)n=n*256+r[t+s];return n}function Xn(r,t,e,n){const s=[];for(;e<t+1+n;){const i=Vr(r,e);s.push(i.result),e+=i.consumed,I(e<=t+1+n,"child data too short","BUFFER_OVERRUN",{buffer:r,length:n,offset:t})}return{consumed:1+n,result:s}}function Vr(r,t){I(r.length!==0,"data too short","BUFFER_OVERRUN",{buffer:r,length:0,offset:1});const e=n=>{I(n<=r.length,"data short segment too short","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:n})};if(r[t]>=248){const n=r[t]-247;e(t+1+n);const s=qn(r,t+1,n);return e(t+1+n+s),Xn(r,t,t+1+n,n+s)}else if(r[t]>=192){const n=r[t]-192;return e(t+1+n),Xn(r,t,t+1,n)}else if(r[t]>=184){const n=r[t]-183;e(t+1+n);const s=qn(r,t+1,n);e(t+1+n+s);const i=v(r.slice(t+1+n,t+1+n+s));return{consumed:1+n+s,result:i}}else if(r[t]>=128){const n=r[t]-128;e(t+1+n);const s=v(r.slice(t+1,t+1+n));return{consumed:1+n,result:s}}return{consumed:1,result:li(r[t])}}function He(r){const t=H(r,"data"),e=Vr(t,0);return p(e.consumed===t.length,"unexpected junk after rlp payload","data",r),e.result}function _n(r){const t=[];for(;r;)t.unshift(r&255),r>>=8;return t}function Jr(r){if(Array.isArray(r)){let n=[];if(r.forEach(function(i){n=n.concat(Jr(i))}),n.length<=55)return n.unshift(192+n.length),n;const s=_n(n.length);return s.unshift(247+s.length),s.concat(n)}const t=Array.prototype.slice.call(H(r,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const e=_n(t.length);return e.unshift(183+e.length),e.concat(t)}const $n="0123456789abcdef";function Qt(r){let t="0x";for(const e of Jr(r))t+=$n[e>>4],t+=$n[e&15];return t}class zr extends Tr{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,Fr(t);const n=De(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?t.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=t.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(t){return Te(this),this.iHash.update(t),this}digestInto(t){Te(this),Fs(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=o,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Ve=(r,t,e)=>new zr(r,t).update(e).digest();Ve.create=(r,t)=>new zr(r,t);function ui(r,t,e,n){Fr(r);const s=Us({dkLen:32,asyncTick:10},n),{c:i,dkLen:o,asyncTick:a}=s;if(_e(i),_e(o),_e(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const c=De(t),l=De(e),h=new Uint8Array(o),u=Ve.create(r,c),d=u._cloneInto().update(l);return{c:i,dkLen:o,asyncTick:a,DK:h,PRF:u,PRFSalt:d}}function hi(r,t,e,n,s){return r.destroy(),t.destroy(),n&&n.destroy(),s.fill(0),e}function fi(r,t,e,n){const{c:s,dkLen:i,DK:o,PRF:a,PRFSalt:c}=ui(r,t,e,n);let l;const h=new Uint8Array(4),u=ve(h),d=new Uint8Array(a.outputLen);for(let w=1,A=0;A<i;w++,A+=a.outputLen){const f=o.subarray(A,A+a.outputLen);u.setInt32(0,w,!1),(l=c._cloneInto(l)).update(h).digestInto(d),f.set(d.subarray(0,f.length));for(let g=1;g<s;g++){a._cloneInto(l).update(d).digestInto(d);for(let m=0;m<f.length;m++)f[m]^=d[m]}}return hi(a,c,o,l,d)}function di(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);const s=BigInt(32),i=BigInt(4294967295),o=Number(e>>s&i),a=Number(e&i),c=n?4:0,l=n?0:4;r.setUint32(t+c,o,n),r.setUint32(t+l,a,n)}class Kr extends Tr{constructor(t,e,n,s){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ve(this.buffer)}update(t){Te(this);const{view:e,buffer:n,blockLen:s}=this;t=De(t);const i=t.length;for(let o=0;o<i;){const a=Math.min(s-this.pos,i-o);if(a===s){const c=ve(t);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Te(this),Ls(t,this),this.finished=!0;const{buffer:e,view:n,blockLen:s,isLE:i}=this;let{pos:o}=this;e[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(n,0),o=0);for(let u=o;u<s;u++)e[u]=0;di(n,s-8,BigInt(this.length*8),i),this.process(n,0);const a=ve(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=c/4,h=this.get();if(l>h.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<l;u++)a.setUint32(4*u,h[u],i)}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return t.length=s,t.pos=a,t.finished=i,t.destroyed=o,s%e&&t.buffer.set(n),t}}const gi=(r,t,e)=>r&t^~r&e,pi=(r,t,e)=>r&t^r&e^t&e,Ai=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),It=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Nt=new Uint32Array(64);class wi extends Kr{constructor(){super(64,32,8,!1),this.A=It[0]|0,this.B=It[1]|0,this.C=It[2]|0,this.D=It[3]|0,this.E=It[4]|0,this.F=It[5]|0,this.G=It[6]|0,this.H=It[7]|0}get(){const{A:t,B:e,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[t,e,n,s,i,o,a,c]}set(t,e,n,s,i,o,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(t,e){for(let u=0;u<16;u++,e+=4)Nt[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const d=Nt[u-15],w=Nt[u-2],A=wt(d,7)^wt(d,18)^d>>>3,f=wt(w,17)^wt(w,19)^w>>>10;Nt[u]=f+Nt[u-7]+A+Nt[u-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:l,H:h}=this;for(let u=0;u<64;u++){const d=wt(a,6)^wt(a,11)^wt(a,25),w=h+d+gi(a,c,l)+Ai[u]+Nt[u]|0,f=(wt(n,2)^wt(n,13)^wt(n,22))+pi(n,s,i)|0;h=l,l=c,c=a,a=o+w|0,o=i,i=s,s=n,n=w+f|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,h=h+this.H|0,this.set(n,s,i,o,a,c,l,h)}roundClean(){Nt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Je=Ur(()=>new wi),[mi,yi]=R.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),kt=new Uint32Array(80),vt=new Uint32Array(80);class bi extends Kr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:l,El:h,Fh:u,Fl:d,Gh:w,Gl:A,Hh:f,Hl:g}=this;return[t,e,n,s,i,o,a,c,l,h,u,d,w,A,f,g]}set(t,e,n,s,i,o,a,c,l,h,u,d,w,A,f,g){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=l|0,this.El=h|0,this.Fh=u|0,this.Fl=d|0,this.Gh=w|0,this.Gl=A|0,this.Hh=f|0,this.Hl=g|0}process(t,e){for(let b=0;b<16;b++,e+=4)kt[b]=t.getUint32(e),vt[b]=t.getUint32(e+=4);for(let b=16;b<80;b++){const S=kt[b-15]|0,P=vt[b-15]|0,E=R.rotrSH(S,P,1)^R.rotrSH(S,P,8)^R.shrSH(S,P,7),k=R.rotrSL(S,P,1)^R.rotrSL(S,P,8)^R.shrSL(S,P,7),C=kt[b-2]|0,U=vt[b-2]|0,T=R.rotrSH(C,U,19)^R.rotrBH(C,U,61)^R.shrSH(C,U,6),F=R.rotrSL(C,U,19)^R.rotrBL(C,U,61)^R.shrSL(C,U,6),j=R.add4L(k,F,vt[b-7],vt[b-16]),q=R.add4H(j,E,T,kt[b-7],kt[b-16]);kt[b]=q|0,vt[b]=j|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:l,Dl:h,Eh:u,El:d,Fh:w,Fl:A,Gh:f,Gl:g,Hh:m,Hl:x}=this;for(let b=0;b<80;b++){const S=R.rotrSH(u,d,14)^R.rotrSH(u,d,18)^R.rotrBH(u,d,41),P=R.rotrSL(u,d,14)^R.rotrSL(u,d,18)^R.rotrBL(u,d,41),E=u&w^~u&f,k=d&A^~d&g,C=R.add5L(x,P,k,yi[b],vt[b]),U=R.add5H(C,m,S,E,mi[b],kt[b]),T=C|0,F=R.rotrSH(n,s,28)^R.rotrBH(n,s,34)^R.rotrBH(n,s,39),j=R.rotrSL(n,s,28)^R.rotrBL(n,s,34)^R.rotrBL(n,s,39),q=n&i^n&a^i&a,pt=s&o^s&c^o&c;m=f|0,x=g|0,f=w|0,g=A|0,w=u|0,A=d|0,{h:u,l:d}=R.add(l|0,h|0,U|0,T|0),l=a|0,h=c|0,a=i|0,c=o|0,i=n|0,o=s|0;const y=R.add3L(T,j,pt);n=R.add3H(y,U,F,q),s=y|0}({h:n,l:s}=R.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=R.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=R.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:l,l:h}=R.add(this.Dh|0,this.Dl|0,l|0,h|0),{h:u,l:d}=R.add(this.Eh|0,this.El|0,u|0,d|0),{h:w,l:A}=R.add(this.Fh|0,this.Fl|0,w|0,A|0),{h:f,l:g}=R.add(this.Gh|0,this.Gl|0,f|0,g|0),{h:m,l:x}=R.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,s,i,o,a,c,l,h,u,d,w,A,f,g,m,x)}roundClean(){kt.fill(0),vt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Sn=Ur(()=>new bi);function Ei(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof jn<"u")return jn;throw new Error("unable to locate global object")}const tr=Ei(),er=tr.crypto||tr.msCrypto;function Bi(r){switch(r){case"sha256":return Je.create();case"sha512":return Sn.create()}p(!1,"invalid hashing algorithm name","algorithm",r)}function ja(r,t){const e={sha256:Je,sha512:Sn}[r];return p(e!=null,"invalid hmac algorithm","algorithm",r),Ve.create(e,t)}function Za(r,t,e,n,s){const i={sha256:Je,sha512:Sn}[s];return p(i!=null,"invalid pbkdf2 algorithm","algorithm",s),fi(i,r,t,{c:e,dkLen:n})}function Ya(r){I(er!=null,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),p(Number.isInteger(r)&&r>0&&r<=1024,"invalid length","length",r);const t=new Uint8Array(r);return er.getRandomValues(t),t}const jr=function(r){return Bi("sha256").update(r).digest()};let Zr=jr,Yr=!1;function oe(r){const t=H(r,"data");return v(Zr(t))}oe._=jr;oe.lock=function(){Yr=!0};oe.register=function(r){if(Yr)throw new Error("sha256 is locked");Zr=r};Object.freeze(oe);Object.freeze(oe);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Wr=BigInt(0),ze=BigInt(1),xi=BigInt(2),Ke=r=>r instanceof Uint8Array,Ci=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function $t(r){if(!Ke(r))throw new Error("Uint8Array expected");let t="";for(let e=0;e<r.length;e++)t+=Ci[r[e]];return t}function qr(r){const t=r.toString(16);return t.length&1?`0${t}`:t}function Rn(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}function te(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);const t=r.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const e=new Uint8Array(t/2);for(let n=0;n<e.length;n++){const s=n*2,i=r.slice(s,s+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");e[n]=o}return e}function Mt(r){return Rn($t(r))}function On(r){if(!Ke(r))throw new Error("Uint8Array expected");return Rn($t(Uint8Array.from(r).reverse()))}function ee(r,t){return te(r.toString(16).padStart(t*2,"0"))}function Dn(r,t){return ee(r,t).reverse()}function Pi(r){return te(qr(r))}function ft(r,t,e){let n;if(typeof t=="string")try{n=te(t)}catch(i){throw new Error(`${r} must be valid hex string, got "${t}". Cause: ${i}`)}else if(Ke(t))n=Uint8Array.from(t);else throw new Error(`${r} must be hex string or Uint8Array`);const s=n.length;if(typeof e=="number"&&s!==e)throw new Error(`${r} expected ${e} bytes, got ${s}`);return n}function fe(...r){const t=new Uint8Array(r.reduce((n,s)=>n+s.length,0));let e=0;return r.forEach(n=>{if(!Ke(n))throw new Error("Uint8Array expected");t.set(n,e),e+=n.length}),t}function Ii(r,t){if(r.length!==t.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==t[e])return!1;return!0}function Ni(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function ki(r){let t;for(t=0;r>Wr;r>>=ze,t+=1);return t}function vi(r,t){return r>>BigInt(t)&ze}const Si=(r,t,e)=>r|(e?ze:Wr)<<BigInt(t),Tn=r=>(xi<<BigInt(r-1))-ze,tn=r=>new Uint8Array(r),nr=r=>Uint8Array.from(r);function Xr(r,t,e){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let n=tn(r),s=tn(r),i=0;const o=()=>{n.fill(1),s.fill(0),i=0},a=(...u)=>e(s,n,...u),c=(u=tn())=>{s=a(nr([0]),u),n=a(),u.length!==0&&(s=a(nr([1]),u),n=a())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0;const d=[];for(;u<t;){n=a();const w=n.slice();d.push(w),u+=n.length}return fe(...d)};return(u,d)=>{o(),c(u);let w;for(;!(w=d(l()));)c();return o(),w}}const Ri={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||r instanceof Uint8Array,isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,t)=>t.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function me(r,t,e={}){const n=(s,i,o)=>{const a=Ri[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);const c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${i}`)};for(const[s,i]of Object.entries(t))n(s,i,!1);for(const[s,i]of Object.entries(e))n(s,i,!0);return r}const Oi=Object.freeze(Object.defineProperty({__proto__:null,bitGet:vi,bitLen:ki,bitMask:Tn,bitSet:Si,bytesToHex:$t,bytesToNumberBE:Mt,bytesToNumberLE:On,concatBytes:fe,createHmacDrbg:Xr,ensureBytes:ft,equalBytes:Ii,hexToBytes:te,hexToNumber:Rn,numberToBytesBE:ee,numberToBytesLE:Dn,numberToHexUnpadded:qr,numberToVarBytesBE:Pi,utf8ToBytes:Ni,validateObject:me},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const W=BigInt(0),V=BigInt(1),Tt=BigInt(2),Di=BigInt(3),pn=BigInt(4),rr=BigInt(5),sr=BigInt(8);BigInt(9);BigInt(16);function nt(r,t){const e=r%t;return e>=W?e:t+e}function Ti(r,t,e){if(e<=W||t<W)throw new Error("Expected power/modulo > 0");if(e===V)return W;let n=V;for(;t>W;)t&V&&(n=n*r%e),r=r*r%e,t>>=V;return n}function ct(r,t,e){let n=r;for(;t-- >W;)n*=n,n%=e;return n}function An(r,t){if(r===W||t<=W)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=nt(r,t),n=t,s=W,i=V;for(;e!==W;){const a=n/e,c=n%e,l=s-i*a;n=e,e=c,s=i,i=l}if(n!==V)throw new Error("invert: does not exist");return nt(s,t)}function Fi(r){const t=(r-V)/Tt;let e,n,s;for(e=r-V,n=0;e%Tt===W;e/=Tt,n++);for(s=Tt;s<r&&Ti(s,t,r)!==r-V;s++);if(n===1){const o=(r+V)/pn;return function(c,l){const h=c.pow(l,o);if(!c.eql(c.sqr(h),l))throw new Error("Cannot find square root");return h}}const i=(e+V)/Tt;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let l=n,h=a.pow(a.mul(a.ONE,s),e),u=a.pow(c,i),d=a.pow(c,e);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let w=1;for(let f=a.sqr(d);w<l&&!a.eql(f,a.ONE);w++)f=a.sqr(f);const A=a.pow(h,V<<BigInt(l-w-1));h=a.sqr(A),u=a.mul(u,A),d=a.mul(d,h),l=w}return u}}function Ui(r){if(r%pn===Di){const t=(r+V)/pn;return function(n,s){const i=n.pow(s,t);if(!n.eql(n.sqr(i),s))throw new Error("Cannot find square root");return i}}if(r%sr===rr){const t=(r-rr)/sr;return function(n,s){const i=n.mul(s,Tt),o=n.pow(i,t),a=n.mul(s,o),c=n.mul(n.mul(a,Tt),o),l=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(l),s))throw new Error("Cannot find square root");return l}}return Fi(r)}const Li=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Mi(r){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=Li.reduce((n,s)=>(n[s]="function",n),t);return me(r,e)}function Qi(r,t,e){if(e<W)throw new Error("Expected power > 0");if(e===W)return r.ONE;if(e===V)return t;let n=r.ONE,s=t;for(;e>W;)e&V&&(n=r.mul(n,s)),s=r.sqr(s),e>>=V;return n}function Gi(r,t){const e=new Array(t.length),n=t.reduce((i,o,a)=>r.is0(o)?i:(e[a]=i,r.mul(i,o)),r.ONE),s=r.inv(n);return t.reduceRight((i,o,a)=>r.is0(o)?i:(e[a]=r.mul(i,e[a]),r.mul(i,o)),s),e}function _r(r,t){const e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function Hi(r,t,e=!1,n={}){if(r<=W)throw new Error(`Expected Field ORDER > 0, got ${r}`);const{nBitLength:s,nByteLength:i}=_r(r,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=Ui(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:i,MASK:Tn(s),ZERO:W,ONE:V,create:c=>nt(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return W<=c&&c<r},is0:c=>c===W,isOdd:c=>(c&V)===V,neg:c=>nt(-c,r),eql:(c,l)=>c===l,sqr:c=>nt(c*c,r),add:(c,l)=>nt(c+l,r),sub:(c,l)=>nt(c-l,r),mul:(c,l)=>nt(c*l,r),pow:(c,l)=>Qi(a,c,l),div:(c,l)=>nt(c*An(l,r),r),sqrN:c=>c*c,addN:(c,l)=>c+l,subN:(c,l)=>c-l,mulN:(c,l)=>c*l,inv:c=>An(c,r),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>Gi(a,c),cmov:(c,l,h)=>h?l:c,toBytes:c=>e?Dn(c,i):ee(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return e?On(c):Mt(c)}});return Object.freeze(a)}function $r(r){if(typeof r!="bigint")throw new Error("field order must be bigint");const t=r.toString(2).length;return Math.ceil(t/8)}function ts(r){const t=$r(r);return t+Math.ceil(t/2)}function Vi(r,t,e=!1){const n=r.length,s=$r(t),i=ts(t);if(n<16||n<i||n>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);const o=e?Mt(r):On(r),a=nt(o,t-V)+V;return e?Dn(a,s):ee(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ji=BigInt(0),en=BigInt(1);function zi(r,t){const e=(s,i)=>{const o=i.negate();return s?o:i},n=s=>{const i=Math.ceil(t/s)+1,o=2**(s-1);return{windows:i,windowSize:o}};return{constTimeNegate:e,unsafeLadder(s,i){let o=r.ZERO,a=s;for(;i>Ji;)i&en&&(o=o.add(a)),a=a.double(),i>>=en;return o},precomputeWindow(s,i){const{windows:o,windowSize:a}=n(i),c=[];let l=s,h=l;for(let u=0;u<o;u++){h=l,c.push(h);for(let d=1;d<a;d++)h=h.add(l),c.push(h);l=h.double()}return c},wNAF(s,i,o){const{windows:a,windowSize:c}=n(s);let l=r.ZERO,h=r.BASE;const u=BigInt(2**s-1),d=2**s,w=BigInt(s);for(let A=0;A<a;A++){const f=A*c;let g=Number(o&u);o>>=w,g>c&&(g-=d,o+=en);const m=f,x=f+Math.abs(g)-1,b=A%2!==0,S=g<0;g===0?h=h.add(e(b,i[m])):l=l.add(e(S,i[x]))}return{p:l,f:h}},wNAFCached(s,i,o,a){const c=s._WINDOW_SIZE||1;let l=i.get(s);return l||(l=this.precomputeWindow(s,c),c!==1&&i.set(s,a(l))),this.wNAF(c,l,o)}}}function es(r){return Mi(r.Fp),me(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({..._r(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ki(r){const t=es(r);me(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:ji,hexToBytes:Zi}=Oi,Ft={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(r){const{Err:t}=Ft;if(r.length<2||r[0]!==2)throw new t("Invalid signature integer tag");const e=r[1],n=r.subarray(2,e+2);if(!e||n.length!==e)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:ji(n),l:r.subarray(e+2)}},toSig(r){const{Err:t}=Ft,e=typeof r=="string"?Zi(r):r;if(!(e instanceof Uint8Array))throw new Error("ui8a expected");let n=e.length;if(n<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==n-2)throw new t("Invalid signature: incorrect length");const{d:s,l:i}=Ft._parseInt(e.subarray(2)),{d:o,l:a}=Ft._parseInt(i);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:o}},hexFromSig(r){const t=l=>Number.parseInt(l[0],16)&8?"00"+l:l,e=l=>{const h=l.toString(16);return h.length&1?`0${h}`:h},n=t(e(r.s)),s=t(e(r.r)),i=n.length/2,o=s.length/2,a=e(i),c=e(o);return`30${e(o+i+4)}02${c}${s}02${a}${n}`}},Et=BigInt(0),ut=BigInt(1);BigInt(2);const ir=BigInt(3);BigInt(4);function Yi(r){const t=Ki(r),{Fp:e}=t,n=t.toBytes||((A,f,g)=>{const m=f.toAffine();return fe(Uint8Array.from([4]),e.toBytes(m.x),e.toBytes(m.y))}),s=t.fromBytes||(A=>{const f=A.subarray(1),g=e.fromBytes(f.subarray(0,e.BYTES)),m=e.fromBytes(f.subarray(e.BYTES,2*e.BYTES));return{x:g,y:m}});function i(A){const{a:f,b:g}=t,m=e.sqr(A),x=e.mul(m,A);return e.add(e.add(x,e.mul(A,f)),g)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function o(A){return typeof A=="bigint"&&Et<A&&A<t.n}function a(A){if(!o(A))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(A){const{allowedPrivateKeyLengths:f,nByteLength:g,wrapPrivateKey:m,n:x}=t;if(f&&typeof A!="bigint"){if(A instanceof Uint8Array&&(A=$t(A)),typeof A!="string"||!f.includes(A.length))throw new Error("Invalid key");A=A.padStart(g*2,"0")}let b;try{b=typeof A=="bigint"?A:Mt(ft("private key",A,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof A}`)}return m&&(b=nt(b,x)),a(b),b}const l=new Map;function h(A){if(!(A instanceof u))throw new Error("ProjectivePoint expected")}class u{constructor(f,g,m){if(this.px=f,this.py=g,this.pz=m,f==null||!e.isValid(f))throw new Error("x required");if(g==null||!e.isValid(g))throw new Error("y required");if(m==null||!e.isValid(m))throw new Error("z required")}static fromAffine(f){const{x:g,y:m}=f||{};if(!f||!e.isValid(g)||!e.isValid(m))throw new Error("invalid affine point");if(f instanceof u)throw new Error("projective point not allowed");const x=b=>e.eql(b,e.ZERO);return x(g)&&x(m)?u.ZERO:new u(g,m,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(f){const g=e.invertBatch(f.map(m=>m.pz));return f.map((m,x)=>m.toAffine(g[x])).map(u.fromAffine)}static fromHex(f){const g=u.fromAffine(s(ft("pointHex",f)));return g.assertValidity(),g}static fromPrivateKey(f){return u.BASE.multiply(c(f))}_setWindowSize(f){this._WINDOW_SIZE=f,l.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!e.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:f,y:g}=this.toAffine();if(!e.isValid(f)||!e.isValid(g))throw new Error("bad point: x or y not FE");const m=e.sqr(g),x=i(f);if(!e.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:f}=this.toAffine();if(e.isOdd)return!e.isOdd(f);throw new Error("Field doesn't support isOdd")}equals(f){h(f);const{px:g,py:m,pz:x}=this,{px:b,py:S,pz:P}=f,E=e.eql(e.mul(g,P),e.mul(b,x)),k=e.eql(e.mul(m,P),e.mul(S,x));return E&&k}negate(){return new u(this.px,e.neg(this.py),this.pz)}double(){const{a:f,b:g}=t,m=e.mul(g,ir),{px:x,py:b,pz:S}=this;let P=e.ZERO,E=e.ZERO,k=e.ZERO,C=e.mul(x,x),U=e.mul(b,b),T=e.mul(S,S),F=e.mul(x,b);return F=e.add(F,F),k=e.mul(x,S),k=e.add(k,k),P=e.mul(f,k),E=e.mul(m,T),E=e.add(P,E),P=e.sub(U,E),E=e.add(U,E),E=e.mul(P,E),P=e.mul(F,P),k=e.mul(m,k),T=e.mul(f,T),F=e.sub(C,T),F=e.mul(f,F),F=e.add(F,k),k=e.add(C,C),C=e.add(k,C),C=e.add(C,T),C=e.mul(C,F),E=e.add(E,C),T=e.mul(b,S),T=e.add(T,T),C=e.mul(T,F),P=e.sub(P,C),k=e.mul(T,U),k=e.add(k,k),k=e.add(k,k),new u(P,E,k)}add(f){h(f);const{px:g,py:m,pz:x}=this,{px:b,py:S,pz:P}=f;let E=e.ZERO,k=e.ZERO,C=e.ZERO;const U=t.a,T=e.mul(t.b,ir);let F=e.mul(g,b),j=e.mul(m,S),q=e.mul(x,P),pt=e.add(g,m),y=e.add(b,S);pt=e.mul(pt,y),y=e.add(F,j),pt=e.sub(pt,y),y=e.add(g,x);let B=e.add(b,P);return y=e.mul(y,B),B=e.add(F,q),y=e.sub(y,B),B=e.add(m,x),E=e.add(S,P),B=e.mul(B,E),E=e.add(j,q),B=e.sub(B,E),C=e.mul(U,y),E=e.mul(T,q),C=e.add(E,C),E=e.sub(j,C),C=e.add(j,C),k=e.mul(E,C),j=e.add(F,F),j=e.add(j,F),q=e.mul(U,q),y=e.mul(T,y),j=e.add(j,q),q=e.sub(F,q),q=e.mul(U,q),y=e.add(y,q),F=e.mul(j,y),k=e.add(k,F),F=e.mul(B,y),E=e.mul(pt,E),E=e.sub(E,F),F=e.mul(pt,j),C=e.mul(B,C),C=e.add(C,F),new u(E,k,C)}subtract(f){return this.add(f.negate())}is0(){return this.equals(u.ZERO)}wNAF(f){return w.wNAFCached(this,l,f,g=>{const m=e.invertBatch(g.map(x=>x.pz));return g.map((x,b)=>x.toAffine(m[b])).map(u.fromAffine)})}multiplyUnsafe(f){const g=u.ZERO;if(f===Et)return g;if(a(f),f===ut)return this;const{endo:m}=t;if(!m)return w.unsafeLadder(this,f);let{k1neg:x,k1:b,k2neg:S,k2:P}=m.splitScalar(f),E=g,k=g,C=this;for(;b>Et||P>Et;)b&ut&&(E=E.add(C)),P&ut&&(k=k.add(C)),C=C.double(),b>>=ut,P>>=ut;return x&&(E=E.negate()),S&&(k=k.negate()),k=new u(e.mul(k.px,m.beta),k.py,k.pz),E.add(k)}multiply(f){a(f);let g=f,m,x;const{endo:b}=t;if(b){const{k1neg:S,k1:P,k2neg:E,k2:k}=b.splitScalar(g);let{p:C,f:U}=this.wNAF(P),{p:T,f:F}=this.wNAF(k);C=w.constTimeNegate(S,C),T=w.constTimeNegate(E,T),T=new u(e.mul(T.px,b.beta),T.py,T.pz),m=C.add(T),x=U.add(F)}else{const{p:S,f:P}=this.wNAF(g);m=S,x=P}return u.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(f,g,m){const x=u.BASE,b=(P,E)=>E===Et||E===ut||!P.equals(x)?P.multiplyUnsafe(E):P.multiply(E),S=b(this,g).add(b(f,m));return S.is0()?void 0:S}toAffine(f){const{px:g,py:m,pz:x}=this,b=this.is0();f==null&&(f=b?e.ONE:e.inv(x));const S=e.mul(g,f),P=e.mul(m,f),E=e.mul(x,f);if(b)return{x:e.ZERO,y:e.ZERO};if(!e.eql(E,e.ONE))throw new Error("invZ was invalid");return{x:S,y:P}}isTorsionFree(){const{h:f,isTorsionFree:g}=t;if(f===ut)return!0;if(g)return g(u,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:f,clearCofactor:g}=t;return f===ut?this:g?g(u,this):this.multiplyUnsafe(t.h)}toRawBytes(f=!0){return this.assertValidity(),n(u,this,f)}toHex(f=!0){return $t(this.toRawBytes(f))}}u.BASE=new u(t.Gx,t.Gy,e.ONE),u.ZERO=new u(e.ZERO,e.ONE,e.ZERO);const d=t.nBitLength,w=zi(u,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:o}}function Wi(r){const t=es(r);return me(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function qi(r){const t=Wi(r),{Fp:e,n}=t,s=e.BYTES+1,i=2*e.BYTES+1;function o(y){return Et<y&&y<e.ORDER}function a(y){return nt(y,n)}function c(y){return An(y,n)}const{ProjectivePoint:l,normPrivateKeyToScalar:h,weierstrassEquation:u,isWithinCurveOrder:d}=Yi({...t,toBytes(y,B,O){const Q=B.toAffine(),M=e.toBytes(Q.x),Z=fe;return O?Z(Uint8Array.from([B.hasEvenY()?2:3]),M):Z(Uint8Array.from([4]),M,e.toBytes(Q.y))},fromBytes(y){const B=y.length,O=y[0],Q=y.subarray(1);if(B===s&&(O===2||O===3)){const M=Mt(Q);if(!o(M))throw new Error("Point is not on curve");const Z=u(M);let rt=e.sqrt(Z);const st=(rt&ut)===ut;return(O&1)===1!==st&&(rt=e.neg(rt)),{x:M,y:rt}}else if(B===i&&O===4){const M=e.fromBytes(Q.subarray(0,e.BYTES)),Z=e.fromBytes(Q.subarray(e.BYTES,2*e.BYTES));return{x:M,y:Z}}else throw new Error(`Point of length ${B} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),w=y=>$t(ee(y,t.nByteLength));function A(y){const B=n>>ut;return y>B}function f(y){return A(y)?a(-y):y}const g=(y,B,O)=>Mt(y.slice(B,O));class m{constructor(B,O,Q){this.r=B,this.s=O,this.recovery=Q,this.assertValidity()}static fromCompact(B){const O=t.nByteLength;return B=ft("compactSignature",B,O*2),new m(g(B,0,O),g(B,O,2*O))}static fromDER(B){const{r:O,s:Q}=Ft.toSig(ft("DER",B));return new m(O,Q)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(B){return new m(this.r,this.s,B)}recoverPublicKey(B){const{r:O,s:Q,recovery:M}=this,Z=k(ft("msgHash",B));if(M==null||![0,1,2,3].includes(M))throw new Error("recovery id invalid");const rt=M===2||M===3?O+t.n:O;if(rt>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");const st=(M&1)===0?"02":"03",xt=l.fromHex(st+w(rt)),Ct=c(rt),Gt=a(-Z*Ct),ae=a(Q*Ct),Pt=l.BASE.multiplyAndAddUnsafe(xt,Gt,ae);if(!Pt)throw new Error("point at infinify");return Pt.assertValidity(),Pt}hasHighS(){return A(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return te(this.toDERHex())}toDERHex(){return Ft.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return te(this.toCompactHex())}toCompactHex(){return w(this.r)+w(this.s)}}const x={isValidPrivateKey(y){try{return h(y),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const y=ts(t.n);return Vi(t.randomBytes(y),t.n)},precompute(y=8,B=l.BASE){return B._setWindowSize(y),B.multiply(BigInt(3)),B}};function b(y,B=!0){return l.fromPrivateKey(y).toRawBytes(B)}function S(y){const B=y instanceof Uint8Array,O=typeof y=="string",Q=(B||O)&&y.length;return B?Q===s||Q===i:O?Q===2*s||Q===2*i:y instanceof l}function P(y,B,O=!0){if(S(y))throw new Error("first arg must be private key");if(!S(B))throw new Error("second arg must be public key");return l.fromHex(B).multiply(h(y)).toRawBytes(O)}const E=t.bits2int||function(y){const B=Mt(y),O=y.length*8-t.nBitLength;return O>0?B>>BigInt(O):B},k=t.bits2int_modN||function(y){return a(E(y))},C=Tn(t.nBitLength);function U(y){if(typeof y!="bigint")throw new Error("bigint expected");if(!(Et<=y&&y<C))throw new Error(`bigint expected < 2^${t.nBitLength}`);return ee(y,t.nByteLength)}function T(y,B,O=F){if(["recovered","canonical"].some(Ot=>Ot in O))throw new Error("sign() legacy options not supported");const{hash:Q,randomBytes:M}=t;let{lowS:Z,prehash:rt,extraEntropy:st}=O;Z==null&&(Z=!0),y=ft("msgHash",y),rt&&(y=ft("prehashed msgHash",Q(y)));const xt=k(y),Ct=h(B),Gt=[U(Ct),U(xt)];if(st!=null){const Ot=st===!0?M(e.BYTES):st;Gt.push(ft("extraEntropy",Ot))}const ae=fe(...Gt),Pt=xt;function Xe(Ot){const Ht=E(Ot);if(!d(Ht))return;const Jn=c(Ht),At=l.BASE.multiply(Ht).toAffine(),Vt=a(At.x);if(Vt===Et)return;const Be=a(Jn*a(Pt+Vt*Ct));if(Be===Et)return;let zn=(At.x===Vt?0:2)|Number(At.y&ut),Kn=Be;return Z&&A(Be)&&(Kn=f(Be),zn^=1),new m(Vt,Kn,zn)}return{seed:ae,k2sig:Xe}}const F={lowS:t.lowS,prehash:!1},j={lowS:t.lowS,prehash:!1};function q(y,B,O=F){const{seed:Q,k2sig:M}=T(y,B,O),Z=t;return Xr(Z.hash.outputLen,Z.nByteLength,Z.hmac)(Q,M)}l.BASE._setWindowSize(8);function pt(y,B,O,Q=j){const M=y;if(B=ft("msgHash",B),O=ft("publicKey",O),"strict"in Q)throw new Error("options.strict was renamed to lowS");const{lowS:Z,prehash:rt}=Q;let st,xt;try{if(typeof M=="string"||M instanceof Uint8Array)try{st=m.fromDER(M)}catch(At){if(!(At instanceof Ft.Err))throw At;st=m.fromCompact(M)}else if(typeof M=="object"&&typeof M.r=="bigint"&&typeof M.s=="bigint"){const{r:At,s:Vt}=M;st=new m(At,Vt)}else throw new Error("PARSE");xt=l.fromHex(O)}catch(At){if(At.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(Z&&st.hasHighS())return!1;rt&&(B=t.hash(B));const{r:Ct,s:Gt}=st,ae=k(B),Pt=c(Gt),Xe=a(ae*Pt),Ot=a(Ct*Pt),Ht=l.BASE.multiplyAndAddUnsafe(xt,Xe,Ot)?.toAffine();return Ht?a(Ht.x)===Ct:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:P,sign:q,verify:pt,ProjectivePoint:l,Signature:m,utils:x}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Xi(r){return{hash:r,hmac:(t,...e)=>Ve(r,t,Qs(...e)),randomBytes:Ms}}function _i(r,t){const e=n=>qi({...r,...Xi(n)});return Object.freeze({...e(t),create:e})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ns=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),or=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),$i=BigInt(1),wn=BigInt(2),ar=(r,t)=>(r+t/wn)/t;function to(r){const t=ns,e=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%t,h=l*l*r%t,u=ct(h,e,t)*h%t,d=ct(u,e,t)*h%t,w=ct(d,wn,t)*l%t,A=ct(w,s,t)*w%t,f=ct(A,i,t)*A%t,g=ct(f,a,t)*f%t,m=ct(g,c,t)*g%t,x=ct(m,a,t)*f%t,b=ct(x,e,t)*h%t,S=ct(b,o,t)*A%t,P=ct(S,n,t)*l%t,E=ct(P,wn,t);if(!mn.eql(mn.sqr(E),r))throw new Error("Cannot find square root");return E}const mn=Hi(ns,void 0,void 0,{sqrt:to}),St=_i({a:BigInt(0),b:BigInt(7),Fp:mn,n:or,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{const t=or,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-$i*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,o=BigInt("0x100000000000000000000000000000000"),a=ar(i*r,t),c=ar(-n*r,t);let l=nt(r-a*e-c*s,t),h=nt(-a*n-c*i,t);const u=l>o,d=h>o;if(u&&(l=t-l),d&&(h=t-h),l>o||h>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:l,k2neg:d,k2:h}}}},Je);BigInt(0);St.ProjectivePoint;const de="0x0000000000000000000000000000000000000000",cr="0x0000000000000000000000000000000000000000000000000000000000000000",lr=BigInt(0),ur=BigInt(1),hr=BigInt(2),fr=BigInt(27),dr=BigInt(28),Ie=BigInt(35),Jt={};function gr(r){return Xt(ot(r),32)}class K{#t;#e;#n;#r;get r(){return this.#t}set r(t){p(Yt(t)===32,"invalid r","value",t),this.#t=v(t)}get s(){return this.#e}set s(t){p(Yt(t)===32,"invalid s","value",t);const e=v(t);p(parseInt(e.substring(0,3))<8,"non-canonical s","value",e),this.#e=e}get v(){return this.#n}set v(t){const e=L(t,"value");p(e===27||e===28,"invalid v","v",t),this.#n=e}get networkV(){return this.#r}get legacyChainId(){const t=this.networkV;return t==null?null:K.getChainId(t)}get yParity(){return this.v===27?0:1}get yParityAndS(){const t=H(this.s);return this.yParity&&(t[0]|=128),v(t)}get compactSerialized(){return et([this.r,this.yParityAndS])}get serialized(){return et([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(t,e,n,s){Gs(t,Jt,"Signature"),this.#t=e,this.#e=n,this.#n=s,this.#r=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const t=new K(Jt,this.r,this.s,this.v);return this.networkV&&(t.#r=this.networkV),t}toJSON(){const t=this.networkV;return{_type:"signature",networkV:t!=null?t.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(t){const e=N(t,"v");return e==fr||e==dr?lr:(p(e>=Ie,"invalid EIP-155 v","v",t),(e-Ie)/hr)}static getChainIdV(t,e){return N(t)*hr+BigInt(35+e-27)}static getNormalizedV(t){const e=N(t);return e===lr||e===fr?27:e===ur||e===dr?28:(p(e>=Ie,"invalid v","v",t),e&ur?27:28)}static from(t){function e(l,h){p(l,h,"signature",t)}if(t==null)return new K(Jt,cr,cr,27);if(typeof t=="string"){const l=H(t,"signature");if(l.length===64){const h=v(l.slice(0,32)),u=l.slice(32,64),d=u[0]&128?28:27;return u[0]&=127,new K(Jt,h,v(u),d)}if(l.length===65){const h=v(l.slice(0,32)),u=l.slice(32,64);e((u[0]&128)===0,"non-canonical s");const d=K.getNormalizedV(l[64]);return new K(Jt,h,v(u),d)}e(!1,"invalid raw signature length")}if(t instanceof K)return t.clone();const n=t.r;e(n!=null,"missing r");const s=gr(n),i=(function(l,h){if(l!=null)return gr(l);if(h!=null){e(tt(h,32),"invalid yParityAndS");const u=H(h);return u[0]&=127,v(u)}e(!1,"missing s")})(t.s,t.yParityAndS);e((H(i)[0]&128)==0,"non-canonical s");const{networkV:o,v:a}=(function(l,h,u){if(l!=null){const d=N(l);return{networkV:d>=Ie?d:void 0,v:K.getNormalizedV(d)}}if(h!=null)return e(tt(h,32),"invalid yParityAndS"),{v:H(h)[0]&128?28:27};if(u!=null){switch(L(u,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}e(!1,"invalid yParity")}e(!1,"missing v")})(t.v,t.yParityAndS,t.yParity),c=new K(Jt,s,i,a);return o&&(c.#r=o),e(t.yParity==null||L(t.yParity,"sig.yParity")===c.yParity,"yParity mismatch"),e(t.yParityAndS==null||t.yParityAndS===c.yParityAndS,"yParityAndS mismatch"),c}}class Bt{#t;constructor(t){p(Yt(t)===32,"invalid private key","privateKey","[REDACTED]"),this.#t=v(t)}get privateKey(){return this.#t}get publicKey(){return Bt.computePublicKey(this.#t)}get compressedPublicKey(){return Bt.computePublicKey(this.#t,!0)}sign(t){p(Yt(t)===32,"invalid digest length","digest",t);const e=St.sign(ce(t),ce(this.#t),{lowS:!0});return K.from({r:_t(e.r,32),s:_t(e.s,32),v:e.recovery?28:27})}computeSharedSecret(t){const e=Bt.computePublicKey(t);return v(St.getSharedSecret(ce(this.#t),H(e),!1))}static computePublicKey(t,e){let n=H(t,"key");if(n.length===32){const i=St.getPublicKey(n,!!e);return v(i)}if(n.length===64){const i=new Uint8Array(65);i[0]=4,i.set(n,1),n=i}const s=St.ProjectivePoint.fromHex(n);return v(s.toRawBytes(e))}static recoverPublicKey(t,e){p(Yt(t)===32,"invalid digest length","digest",t);const n=K.from(e);let s=St.Signature.fromCompact(ce(et([n.r,n.s])));s=s.addRecoveryBit(n.yParity);const i=s.recoverPublicKey(ce(t));return p(i!=null,"invalid signautre for digest","signature",e),"0x"+i.toHex(!1)}static addPoints(t,e,n){const s=St.ProjectivePoint.fromHex(Bt.computePublicKey(t).substring(2)),i=St.ProjectivePoint.fromHex(Bt.computePublicKey(e).substring(2));return"0x"+s.add(i).toHex(!!n)}}function eo(r){const t=z(r.from);let n=N(r.nonce,"tx.nonce").toString(16);return n==="0"?n="0x":n.length%2?n="0x0"+n:n="0x"+n,z($(ht(Qt([t,n])),12))}var no="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";const pr=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),Ar=4;function ro(r){let t=0;function e(){return r[t++]<<8|r[t++]}let n=e(),s=1,i=[0,1];for(let P=1;P<n;P++)i.push(s+=e());let o=e(),a=t;t+=o;let c=0,l=0;function h(){return c==0&&(l=l<<8|r[t++],c=8),l>>--c&1}const u=31,d=2**u,w=d>>>1,A=w>>1,f=d-1;let g=0;for(let P=0;P<u;P++)g=g<<1|h();let m=[],x=0,b=d;for(;;){let P=Math.floor(((g-x+1)*s-1)/b),E=0,k=n;for(;k-E>1;){let T=E+k>>>1;P<i[T]?k=T:E=T}if(E==0)break;m.push(E);let C=x+Math.floor(b*i[E]/s),U=x+Math.floor(b*i[E+1]/s)-1;for(;((C^U)&w)==0;)g=g<<1&f|h(),C=C<<1&f,U=U<<1&f|1;for(;C&~U&A;)g=g&w|g<<1&f>>>1|h(),C=C<<1^w,U=(U^w)<<1|w|1;x=C,b=1+U-C}let S=n-4;return m.map(P=>{switch(P-S){case 3:return S+65792+(r[a++]<<16|r[a++]<<8|r[a++]);case 2:return S+256+(r[a++]<<8|r[a++]);case 1:return S+r[a++];default:return P-1}})}function so(r){let t=0;return()=>r[t++]}function rs(r){return so(ro(io(r)))}function io(r){let t=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((s,i)=>t[s.charCodeAt(0)]=i);let e=r.length,n=new Uint8Array(6*e>>3);for(let s=0,i=0,o=0,a=0;s<e;s++)a=a<<6|t[r.charCodeAt(s)],o+=6,o>=8&&(n[i++]=a>>(o-=8));return n}function oo(r){return r&1?~r>>1:r>>1}function ao(r,t){let e=Array(r);for(let n=0,s=0;n<r;n++)e[n]=s+=oo(t());return e}function ge(r,t=0){let e=[];for(;;){let n=r(),s=r();if(!s)break;t+=n;for(let i=0;i<s;i++)e.push(t+i);t+=s+1}return e}function ss(r){return pe(()=>{let t=ge(r);if(t.length)return t})}function is(r){let t=[];for(;;){let e=r();if(e==0)break;t.push(co(e,r))}for(;;){let e=r()-1;if(e<0)break;t.push(lo(e,r))}return t.flat()}function pe(r){let t=[];for(;;){let e=r(t.length);if(!e)break;t.push(e)}return t}function os(r,t,e){let n=Array(r).fill().map(()=>[]);for(let s=0;s<t;s++)ao(r,e).forEach((i,o)=>n[o].push(i));return n}function co(r,t){let e=1+t(),n=t(),s=pe(t);return os(s.length,1+r,t).flatMap((o,a)=>{let[c,...l]=o;return Array(s[a]).fill().map((h,u)=>{let d=u*n;return[c+u*e,l.map(w=>w+d)]})})}function lo(r,t){let e=1+t();return os(e,1+r,t).map(s=>[s[0],s.slice(1)])}function uo(r){let t=[],e=ge(r);return s(n([]),[]),t;function n(i){let o=r(),a=pe(()=>{let c=ge(r).map(l=>e[l]);if(c.length)return n(c)});return{S:o,B:a,Q:i}}function s({S:i,B:o},a,c){if(!(i&4&&c===a[a.length-1])){i&2&&(c=a[a.length-1]),i&1&&t.push(a);for(let l of o)for(let h of l.Q)s(l,[...a,h],c)}}}function ho(r){return r.toString(16).toUpperCase().padStart(2,"0")}function as(r){return`{${ho(r)}}`}function fo(r){let t=[];for(let e=0,n=r.length;e<n;){let s=r.codePointAt(e);e+=s<65536?1:2,t.push(s)}return t}function ne(r){let e=r.length;if(e<4096)return String.fromCodePoint(...r);let n=[];for(let s=0;s<e;)n.push(String.fromCodePoint(...r.slice(s,s+=4096)));return n.join("")}function go(r,t){let e=r.length,n=e-t.length;for(let s=0;n==0&&s<e;s++)n=r[s]-t[s];return n}var po="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";const Ae=44032,Ue=4352,Le=4449,Me=4519,cs=19,ls=21,re=28,Qe=ls*re,Ao=cs*Qe,wo=Ae+Ao,mo=Ue+cs,yo=Le+ls,bo=Me+re;function le(r){return r>>24&255}function us(r){return r&16777215}let yn,wr,bn,Se;function Eo(){let r=rs(po);yn=new Map(ss(r).flatMap((t,e)=>t.map(n=>[n,e+1<<24]))),wr=new Set(ge(r)),bn=new Map,Se=new Map;for(let[t,e]of is(r)){if(!wr.has(t)&&e.length==2){let[n,s]=e,i=Se.get(n);i||(i=new Map,Se.set(n,i)),i.set(s,t)}bn.set(t,e.reverse())}}function hs(r){return r>=Ae&&r<wo}function Bo(r,t){if(r>=Ue&&r<mo&&t>=Le&&t<yo)return Ae+(r-Ue)*Qe+(t-Le)*re;if(hs(r)&&t>Me&&t<bo&&(r-Ae)%re==0)return r+(t-Me);{let e=Se.get(r);return e&&(e=e.get(t),e)?e:-1}}function fs(r){yn||Eo();let t=[],e=[],n=!1;function s(i){let o=yn.get(i);o&&(n=!0,i|=o),t.push(i)}for(let i of r)for(;;){if(i<128)t.push(i);else if(hs(i)){let o=i-Ae,a=o/Qe|0,c=o%Qe/re|0,l=o%re;s(Ue+a),s(Le+c),l>0&&s(Me+l)}else{let o=bn.get(i);o?e.push(...o):s(i)}if(!e.length)break;i=e.pop()}if(n&&t.length>1){let i=le(t[0]);for(let o=1;o<t.length;o++){let a=le(t[o]);if(a==0||i<=a){i=a;continue}let c=o-1;for(;;){let l=t[c+1];if(t[c+1]=t[c],t[c]=l,!c||(i=le(t[--c]),i<=a))break}i=le(t[o])}}return t}function xo(r){let t=[],e=[],n=-1,s=0;for(let i of r){let o=le(i),a=us(i);if(n==-1)o==0?n=a:t.push(a);else if(s>0&&s>=o)o==0?(t.push(n,...e),e.length=0,n=a):e.push(a),s=o;else{let c=Bo(n,a);c>=0?n=c:s==0&&o==0?(t.push(n),n=a):(e.push(a),s=o)}}return n>=0&&t.push(n,...e),t}function ds(r){return fs(r).map(us)}function Co(r){return xo(fs(r))}const mr=45,gs=".",ps=65039,As=1,Ge=r=>Array.from(r);function we(r,t){return r.P.has(t)||r.Q.has(t)}class Po extends Array{get is_emoji(){return!0}}let En,ws,Ut,Bn,ms,Wt,nn,jt,Dt,yr,xn;function Fn(){if(En)return;let r=rs(no);const t=()=>ge(r),e=()=>new Set(t()),n=(h,u)=>u.forEach(d=>h.add(d));En=new Map(is(r)),ws=e(),Ut=t(),Bn=new Set(t().map(h=>Ut[h])),Ut=new Set(Ut),ms=e(),e();let s=ss(r),i=r();const o=()=>{let h=new Set;return t().forEach(u=>n(h,s[u])),n(h,t()),h};Wt=pe(h=>{let u=pe(r).map(d=>d+96);if(u.length){let d=h>=i;u[0]-=32,u=ne(u),d&&(u=`Restricted[${u}]`);let w=o(),A=o(),f=!r();return{N:u,P:w,Q:A,M:f,R:d}}}),nn=e(),jt=new Map;let a=t().concat(Ge(nn)).sort((h,u)=>h-u);a.forEach((h,u)=>{let d=r(),w=a[u]=d?a[u-d]:{V:[],M:new Map};w.V.push(h),nn.has(h)||jt.set(h,w)});for(let{V:h,M:u}of new Set(jt.values())){let d=[];for(let A of h){let f=Wt.filter(m=>we(m,A)),g=d.find(({G:m})=>f.some(x=>m.has(x)));g||(g={G:new Set,V:[]},d.push(g)),g.V.push(A),n(g.G,f)}let w=d.flatMap(A=>Ge(A.G));for(let{G:A,V:f}of d){let g=new Set(w.filter(m=>!A.has(m)));for(let m of f)u.set(m,g)}}Dt=new Set;let c=new Set;const l=h=>Dt.has(h)?c.add(h):Dt.add(h);for(let h of Wt){for(let u of h.P)l(u);for(let u of h.Q)l(u)}for(let h of Dt)!jt.has(h)&&!c.has(h)&&jt.set(h,As);n(Dt,ds(Dt)),yr=uo(r).map(h=>Po.from(h)).sort(go),xn=new Map;for(let h of yr){let u=[xn];for(let d of h){let w=u.map(A=>{let f=A.get(d);return f||(f=new Map,A.set(d,f)),f});d===ps?u.push(...w):u=w}for(let d of u)d.V=h}}function Un(r){return(ys(r)?"":`${Ln(je([r]))} `)+as(r)}function Ln(r){return`"${r}"`}function Io(r){if(r.length>=4&&r[2]==mr&&r[3]==mr)throw new Error(`invalid label extension: "${ne(r.slice(0,4))}"`)}function No(r){for(let e=r.lastIndexOf(95);e>0;)if(r[--e]!==95)throw new Error("underscore allowed only at start")}function ko(r){let t=r[0],e=pr.get(t);if(e)throw he(`leading ${e}`);let n=r.length,s=-1;for(let i=1;i<n;i++){t=r[i];let o=pr.get(t);if(o){if(s==i)throw he(`${e} + ${o}`);s=i+1,e=o}}if(s==n)throw he(`trailing ${e}`)}function je(r,t=1/0,e=as){let n=[];vo(r[0])&&n.push("◌"),r.length>t&&(t>>=1,r=[...r.slice(0,t),8230,...r.slice(-t)]);let s=0,i=r.length;for(let o=0;o<i;o++){let a=r[o];ys(a)&&(n.push(ne(r.slice(s,o))),n.push(e(a)),s=o+1)}return n.push(ne(r.slice(s,i))),n.join("")}function vo(r){return Fn(),Ut.has(r)}function ys(r){return Fn(),ms.has(r)}function So(r){return To(Ro(r,Co,Lo))}function Ro(r,t,e){if(!r)return[];Fn();let n=0;return r.split(gs).map(s=>{let i=fo(s),o={input:i,offset:n};n+=i.length+1;try{let a=o.tokens=Uo(i,t,e),c=a.length,l;if(!c)throw new Error("empty label");let h=o.output=a.flat();if(No(h),!(o.emoji=c>1||a[0].is_emoji)&&h.every(d=>d<128))Io(h),l="ASCII";else{let d=a.flatMap(w=>w.is_emoji?[]:w);if(!d.length)l="Emoji";else{if(Ut.has(h[0]))throw he("leading combining mark");for(let f=1;f<c;f++){let g=a[f];if(!g.is_emoji&&Ut.has(g[0]))throw he(`emoji + combining mark: "${ne(a[f-1])} + ${je([g[0]])}"`)}ko(h);let w=Ge(new Set(d)),[A]=Do(w);Fo(A,d),Oo(A,w),l=A.N}}o.type=l}catch(a){o.error=a}return o})}function Oo(r,t){let e,n=[];for(let s of t){let i=jt.get(s);if(i===As)return;if(i){let o=i.M.get(s);if(e=e?e.filter(a=>o.has(a)):Ge(o),!e.length)return}else n.push(s)}if(e){for(let s of e)if(n.every(i=>we(s,i)))throw new Error(`whole-script confusable: ${r.N}/${s.N}`)}}function Do(r){let t=Wt;for(let e of r){let n=t.filter(s=>we(s,e));if(!n.length)throw Wt.some(s=>we(s,e))?Es(t[0],e):bs(e);if(t=n,n.length==1)break}return t}function To(r){return r.map(({input:t,error:e,output:n})=>{if(e){let s=e.message;throw new Error(r.length==1?s:`Invalid label ${Ln(je(t,63))}: ${s}`)}return ne(n)}).join(gs)}function bs(r){return new Error(`disallowed character: ${Un(r)}`)}function Es(r,t){let e=Un(t),n=Wt.find(s=>s.P.has(t));return n&&(e=`${n.N} ${e}`),new Error(`illegal mixture: ${r.N} + ${e}`)}function he(r){return new Error(`illegal placement: ${r}`)}function Fo(r,t){for(let e of t)if(!we(r,e))throw Es(r,e);if(r.M){let e=ds(t);for(let n=1,s=e.length;n<s;n++)if(Bn.has(e[n])){let i=n+1;for(let o;i<s&&Bn.has(o=e[i]);i++)for(let a=n;a<i;a++)if(e[a]==o)throw new Error(`duplicate non-spacing marks: ${Un(o)}`);if(i-n>Ar)throw new Error(`excessive non-spacing marks: ${Ln(je(e.slice(n-1,i)))} (${i-n}/${Ar})`);n=i}}}function Uo(r,t,e){let n=[],s=[];for(r=r.slice().reverse();r.length;){let i=Mo(r);if(i)s.length&&(n.push(t(s)),s=[]),n.push(e(i));else{let o=r.pop();if(Dt.has(o))s.push(o);else{let a=En.get(o);if(a)s.push(...a);else if(!ws.has(o))throw bs(o)}}}return s.length&&n.push(t(s)),n}function Lo(r){return r.filter(t=>t!=ps)}function Mo(r,t){let e=xn,n,s=r.length;for(;s&&(e=e.get(r[--s]),!!e);){let{V:i}=e;i&&(n=i,r.length=s)}return n}const Bs=new Uint8Array(32);Bs.fill(0);function br(r){return p(r.length!==0,"invalid ENS name; empty component","comp",r),r}function xs(r){const t=Lt(Qo(r)),e=[];if(r.length===0)return e;let n=0;for(let s=0;s<t.length;s++)t[s]===46&&(e.push(br(t.slice(n,s))),n=s+1);return p(n<t.length,"invalid ENS name; empty component","name",r),e.push(br(t.slice(n))),e}function Qo(r){try{if(r.length===0)throw new Error("empty label");return So(r)}catch(t){p(!1,`invalid ENS name (${t.message})`,"name",r)}}function Cn(r){p(typeof r=="string","invalid ENS name; not a string","name",r),p(r.length,"invalid ENS name (empty label)","name",r);let t=Bs;const e=xs(r);for(;e.length;)t=ht(et([t,ht(e.pop())]));return v(t)}function Go(r,t){const e=t;return p(e<=255,"DNS encoded label cannot exceed 255","length",e),v(et(xs(r).map(n=>{p(n.length<=e,`label ${JSON.stringify(r)} exceeds ${e} bytes`,"name",r);const s=new Uint8Array(n.length+1);return s.set(n,1),s[0]=s.length-1,s})))+"00"}function Ho(r){let t;return typeof r=="string"?t=Bt.computePublicKey(r,!1):t=r.publicKey,z(ht("0x"+t.substring(4)).substring(26))}function Vo(r,t){return Ho(Bt.recoverPublicKey(r,t))}const Y=BigInt(0),Jo=BigInt(2),zo=BigInt(27),Ko=BigInt(28),jo=BigInt(35),Zo=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),rn=4096*32;function Er(r,t){let e=r.toString(16);for(;e.length<2;)e="0"+e;return e+=oe(t).substring(4),"0x"+e}function Ze(r){return r==="0x"?null:z(r)}function Mn(r,t){try{return ie(r)}catch(e){p(!1,e.message,t,r)}}function ye(r,t){return r==="0x"?0:L(r,t)}function J(r,t){if(r==="0x")return Y;const e=N(r,t);return p(e<=Zo,"value exceeds uint size",t,e),e}function G(r,t){const e=N(r,"value"),n=ot(e);return p(n.length<=32,"value too large",`tx.${t}`,e),n}function Qn(r){return ie(r).map(t=>[t.address,t.storageKeys])}function Yo(r,t){p(Array.isArray(r),`invalid ${t}`,"value",r);for(let e=0;e<r.length;e++)p(tt(r[e],32),"invalid ${ param } hash",`value[${e}]`,r[e]);return r}function Wo(r){const t=He(r);p(Array.isArray(t)&&(t.length===9||t.length===6),"invalid field count for legacy transaction","data",r);const e={type:0,nonce:ye(t[0],"nonce"),gasPrice:J(t[1],"gasPrice"),gasLimit:J(t[2],"gasLimit"),to:Ze(t[3]),value:J(t[4],"value"),data:v(t[5]),chainId:Y};if(t.length===6)return e;const n=J(t[6],"v"),s=J(t[7],"r"),i=J(t[8],"s");if(s===Y&&i===Y)e.chainId=n;else{let o=(n-jo)/Jo;o<Y&&(o=Y),e.chainId=o,p(o!==Y||n===zo||n===Ko,"non-canonical legacy v","v",t[6]),e.signature=K.from({r:Xt(t[7],32),s:Xt(t[8],32),v:n})}return e}function qo(r,t){const e=[G(r.nonce,"nonce"),G(r.gasPrice||0,"gasPrice"),G(r.gasLimit,"gasLimit"),r.to||"0x",G(r.value,"value"),r.data];let n=Y;if(r.chainId!=Y)n=N(r.chainId,"tx.chainId"),p(!t||t.networkV==null||t.legacyChainId===n,"tx.chainId/sig.v mismatch","sig",t);else if(r.signature){const i=r.signature.legacyChainId;i!=null&&(n=i)}if(!t)return n!==Y&&(e.push(ot(n)),e.push("0x"),e.push("0x")),Qt(e);let s=BigInt(27+t.yParity);return n!==Y?s=K.getChainIdV(n,t.v):BigInt(t.v)!==s&&p(!1,"tx.chainId/sig.v mismatch","sig",t),e.push(ot(s)),e.push(ot(t.r)),e.push(ot(t.s)),Qt(e)}function Gn(r,t){let e;try{if(e=ye(t[0],"yParity"),e!==0&&e!==1)throw new Error("bad yParity")}catch{p(!1,"invalid yParity","yParity",t[0])}const n=Xt(t[1],32),s=Xt(t[2],32),i=K.from({r:n,s,yParity:e});r.signature=i}function Xo(r){const t=He(H(r).slice(1));p(Array.isArray(t)&&(t.length===9||t.length===12),"invalid field count for transaction type: 2","data",v(r));const e={type:2,chainId:J(t[0],"chainId"),nonce:ye(t[1],"nonce"),maxPriorityFeePerGas:J(t[2],"maxPriorityFeePerGas"),maxFeePerGas:J(t[3],"maxFeePerGas"),gasPrice:null,gasLimit:J(t[4],"gasLimit"),to:Ze(t[5]),value:J(t[6],"value"),data:v(t[7]),accessList:Mn(t[8],"accessList")};return t.length===9||Gn(e,t.slice(9)),e}function _o(r,t){const e=[G(r.chainId,"chainId"),G(r.nonce,"nonce"),G(r.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),G(r.maxFeePerGas||0,"maxFeePerGas"),G(r.gasLimit,"gasLimit"),r.to||"0x",G(r.value,"value"),r.data,Qn(r.accessList||[])];return t&&(e.push(G(t.yParity,"yParity")),e.push(ot(t.r)),e.push(ot(t.s))),et(["0x02",Qt(e)])}function $o(r){const t=He(H(r).slice(1));p(Array.isArray(t)&&(t.length===8||t.length===11),"invalid field count for transaction type: 1","data",v(r));const e={type:1,chainId:J(t[0],"chainId"),nonce:ye(t[1],"nonce"),gasPrice:J(t[2],"gasPrice"),gasLimit:J(t[3],"gasLimit"),to:Ze(t[4]),value:J(t[5],"value"),data:v(t[6]),accessList:Mn(t[7],"accessList")};return t.length===8||Gn(e,t.slice(8)),e}function ta(r,t){const e=[G(r.chainId,"chainId"),G(r.nonce,"nonce"),G(r.gasPrice||0,"gasPrice"),G(r.gasLimit,"gasLimit"),r.to||"0x",G(r.value,"value"),r.data,Qn(r.accessList||[])];return t&&(e.push(G(t.yParity,"recoveryParam")),e.push(ot(t.r)),e.push(ot(t.s))),et(["0x01",Qt(e)])}function ea(r){let t=He(H(r).slice(1)),e="3",n=null;if(t.length===4&&Array.isArray(t[0])){e="3 (network format)";const i=t[1],o=t[2],a=t[3];p(Array.isArray(i),"invalid network format: blobs not an array","fields[1]",i),p(Array.isArray(o),"invalid network format: commitments not an array","fields[2]",o),p(Array.isArray(a),"invalid network format: proofs not an array","fields[3]",a),p(i.length===o.length,"invalid network format: blobs/commitments length mismatch","fields",t),p(i.length===a.length,"invalid network format: blobs/proofs length mismatch","fields",t),n=[];for(let c=0;c<t[1].length;c++)n.push({data:i[c],commitment:o[c],proof:a[c]});t=t[0]}p(Array.isArray(t)&&(t.length===11||t.length===14),`invalid field count for transaction type: ${e}`,"data",v(r));const s={type:3,chainId:J(t[0],"chainId"),nonce:ye(t[1],"nonce"),maxPriorityFeePerGas:J(t[2],"maxPriorityFeePerGas"),maxFeePerGas:J(t[3],"maxFeePerGas"),gasPrice:null,gasLimit:J(t[4],"gasLimit"),to:Ze(t[5]),value:J(t[6],"value"),data:v(t[7]),accessList:Mn(t[8],"accessList"),maxFeePerBlobGas:J(t[9],"maxFeePerBlobGas"),blobVersionedHashes:t[10]};n&&(s.blobs=n),p(s.to!=null,`invalid address for transaction type: ${e}`,"data",r),p(Array.isArray(s.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",r);for(let i=0;i<s.blobVersionedHashes.length;i++)p(tt(s.blobVersionedHashes[i],32),`invalid blobVersionedHash at index ${i}: must be length 32`,"data",r);return t.length===11||Gn(s,t.slice(11)),s}function na(r,t,e){const n=[G(r.chainId,"chainId"),G(r.nonce,"nonce"),G(r.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),G(r.maxFeePerGas||0,"maxFeePerGas"),G(r.gasLimit,"gasLimit"),r.to||de,G(r.value,"value"),r.data,Qn(r.accessList||[]),G(r.maxFeePerBlobGas||0,"maxFeePerBlobGas"),Yo(r.blobVersionedHashes||[],"blobVersionedHashes")];return t&&(n.push(G(t.yParity,"yParity")),n.push(ot(t.r)),n.push(ot(t.s)),e)?et(["0x03",Qt([n,e.map(s=>s.data),e.map(s=>s.commitment),e.map(s=>s.proof)])]):et(["0x03",Qt(n)])}class mt{#t;#e;#n;#r;#s;#o;#i;#a;#d;#l;#g;#p;#c;#u;#h;#f;get type(){return this.#t}set type(t){switch(t){case null:this.#t=null;break;case 0:case"legacy":this.#t=0;break;case 1:case"berlin":case"eip-2930":this.#t=1;break;case 2:case"london":case"eip-1559":this.#t=2;break;case 3:case"cancun":case"eip-4844":this.#t=3;break;default:p(!1,"unsupported transaction type","type",t)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const t=this.#e;return t==null&&this.type===3?de:t}set to(t){this.#e=t==null?null:z(t)}get nonce(){return this.#r}set nonce(t){this.#r=L(t,"value")}get gasLimit(){return this.#s}set gasLimit(t){this.#s=N(t)}get gasPrice(){const t=this.#o;return t==null&&(this.type===0||this.type===1)?Y:t}set gasPrice(t){this.#o=t==null?null:N(t,"gasPrice")}get maxPriorityFeePerGas(){const t=this.#i;return t??(this.type===2||this.type===3?Y:null)}set maxPriorityFeePerGas(t){this.#i=t==null?null:N(t,"maxPriorityFeePerGas")}get maxFeePerGas(){const t=this.#a;return t??(this.type===2||this.type===3?Y:null)}set maxFeePerGas(t){this.#a=t==null?null:N(t,"maxFeePerGas")}get data(){return this.#n}set data(t){this.#n=v(t)}get value(){return this.#d}set value(t){this.#d=N(t,"value")}get chainId(){return this.#l}set chainId(t){this.#l=N(t)}get signature(){return this.#g||null}set signature(t){this.#g=t==null?null:K.from(t)}get accessList(){const t=this.#p||null;return t??(this.type===1||this.type===2||this.type===3?[]:null)}set accessList(t){this.#p=t==null?null:ie(t)}get maxFeePerBlobGas(){const t=this.#c;return t==null&&this.type===3?Y:t}set maxFeePerBlobGas(t){this.#c=t==null?null:N(t,"maxFeePerBlobGas")}get blobVersionedHashes(){let t=this.#u;return t==null&&this.type===3?[]:t}set blobVersionedHashes(t){if(t!=null){p(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;e<t.length;e++)p(tt(t[e],32),"invalid blobVersionedHash",`value[${e}]`,t[e])}this.#u=t}get blobs(){return this.#f==null?null:this.#f.map(t=>Object.assign({},t))}set blobs(t){if(t==null){this.#f=null;return}const e=[],n=[];for(let s=0;s<t.length;s++){const i=t[s];if(Hs(i)){I(this.#h,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let o=H(i);if(p(o.length<=rn,"blob is too large",`blobs[${s}]`,i),o.length!==rn){const l=new Uint8Array(rn);l.set(o),o=l}const a=this.#h.blobToKzgCommitment(o),c=v(this.#h.computeBlobKzgProof(o,a));e.push({data:v(o),commitment:v(a),proof:c}),n.push(Er(1,a))}else{const o=v(i.commitment);e.push({data:v(i.data),commitment:o,proof:v(i.proof)}),n.push(Er(1,o))}}this.#f=e,this.#u=n}get kzg(){return this.#h}set kzg(t){this.#h=t}constructor(){this.#t=null,this.#e=null,this.#r=0,this.#s=Y,this.#o=null,this.#i=null,this.#a=null,this.#n="0x",this.#d=Y,this.#l=Y,this.#g=null,this.#p=null,this.#c=null,this.#u=null,this.#f=null,this.#h=null}get hash(){return this.signature==null?null:ht(this.#A(!0,!1))}get unsignedHash(){return ht(this.unsignedSerialized)}get from(){return this.signature==null?null:Vo(this.unsignedHash,this.signature)}get fromPublicKey(){return this.signature==null?null:Bt.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#A(t,e){I(!t||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const n=t?this.signature:null;switch(this.inferType()){case 0:return qo(this,n);case 1:return ta(this,n);case 2:return _o(this,n);case 3:return na(this,n,e?this.blobs:null)}I(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#A(!0,!0)}get unsignedSerialized(){return this.#A(!1,!1)}inferType(){const t=this.inferTypes();return t.indexOf(2)>=0?2:t.pop()}inferTypes(){const t=this.gasPrice!=null,e=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,n=this.accessList!=null,s=this.#c!=null||this.#u;this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null&&I(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),I(!e||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),I(this.type!==0||!n,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const i=[];return this.type!=null?i.push(this.type):e?i.push(2):t?(i.push(1),n||i.push(0)):n?(i.push(1),i.push(2)):(s&&this.to||(i.push(0),i.push(1),i.push(2)),i.push(3)),i.sort(),i}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return mt.from(this)}toJSON(){const t=e=>e==null?null:e.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(t==null)return new mt;if(typeof t=="string"){const n=H(t);if(n[0]>=127)return mt.from(Wo(n));switch(n[0]){case 1:return mt.from($o(n));case 2:return mt.from(Xo(n));case 3:return mt.from(ea(n))}I(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new mt;return t.type!=null&&(e.type=t.type),t.to!=null&&(e.to=t.to),t.nonce!=null&&(e.nonce=t.nonce),t.gasLimit!=null&&(e.gasLimit=t.gasLimit),t.gasPrice!=null&&(e.gasPrice=t.gasPrice),t.maxPriorityFeePerGas!=null&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas),t.maxFeePerGas!=null&&(e.maxFeePerGas=t.maxFeePerGas),t.maxFeePerBlobGas!=null&&(e.maxFeePerBlobGas=t.maxFeePerBlobGas),t.data!=null&&(e.data=t.data),t.value!=null&&(e.value=t.value),t.chainId!=null&&(e.chainId=t.chainId),t.signature!=null&&(e.signature=K.from(t.signature)),t.accessList!=null&&(e.accessList=t.accessList),t.blobVersionedHashes!=null&&(e.blobVersionedHashes=t.blobVersionedHashes),t.kzg!=null&&(e.kzg=t.kzg),t.blobs!=null&&(e.blobs=t.blobs),t.hash!=null&&(p(e.isSigned(),"unsigned transaction cannot define '.hash'","tx",t),p(e.hash===t.hash,"hash mismatch","tx",t)),t.from!=null&&(p(e.isSigned(),"unsigned transaction cannot define '.from'","tx",t),p(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}}const Cs=new Uint8Array(32);Cs.fill(0);const ra=BigInt(-1),Ps=BigInt(0),Is=BigInt(1),sa=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function ia(r){const t=H(r),e=t.length%32;return e?et([t,Cs.slice(e)]):v(t)}const oa=_t(Is,32),aa=_t(Ps,32),Br={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},sn=["name","version","chainId","verifyingContract","salt"];function xr(r){return function(t){return p(typeof t=="string",`invalid domain value for ${JSON.stringify(r)}`,`domain.${r}`,t),t}}const ca={name:xr("name"),version:xr("version"),chainId:function(r){const t=N(r,"domain.chainId");return p(t>=0,"invalid chain ID","domain.chainId",r),Number.isSafeInteger(t)?Number(t):Zt(t)},verifyingContract:function(r){try{return z(r).toLowerCase()}catch{}p(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",r)},salt:function(r){const t=H(r,"domain.salt");return p(t.length===32,'invalid domain value "salt"',"domain.salt",r),v(t)}};function on(r){{const t=r.match(/^(u?)int(\d+)$/);if(t){const e=t[1]==="",n=parseInt(t[2]);p(n%8===0&&n!==0&&n<=256&&t[2]===String(n),"invalid numeric width","type",r);const s=Vs(sa,e?n-1:n),i=e?(s+Is)*ra:Ps;return function(o){const a=N(o,"value");return p(a>=i&&a<=s,`value out-of-bounds for ${r}`,"value",a),_t(e?Js(a,256):a,32)}}}{const t=r.match(/^bytes(\d+)$/);if(t){const e=parseInt(t[1]);return p(e!==0&&e<=32&&t[1]===String(e),"invalid bytes width","type",r),function(n){const s=H(n);return p(s.length===e,`invalid length for ${r}`,"value",n),ia(n)}}}switch(r){case"address":return function(t){return Xt(z(t),32)};case"bool":return function(t){return t?oa:aa};case"bytes":return function(t){return ht(t)};case"string":return function(t){return Lr(t)}}return null}function Cr(r,t){return`${r}(${t.map(({name:e,type:n})=>n+" "+e).join(",")})`}function Ne(r){const t=r.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return t?{base:t[1],index:t[2]+t[4],array:{base:t[1],prefix:t[1]+t[2],count:t[5]?parseInt(t[5]):-1}}:{base:r}}class it{primaryType;#t;get types(){return JSON.parse(this.#t)}#e;#n;constructor(t){this.#e=new Map,this.#n=new Map;const e=new Map,n=new Map,s=new Map,i={};Object.keys(t).forEach(c=>{i[c]=t[c].map(({name:l,type:h})=>{let{base:u,index:d}=Ne(h);return u==="int"&&!t.int&&(u="int256"),u==="uint"&&!t.uint&&(u="uint256"),{name:l,type:u+(d||"")}}),e.set(c,new Set),n.set(c,[]),s.set(c,new Set)}),this.#t=JSON.stringify(i);for(const c in i){const l=new Set;for(const h of i[c]){p(!l.has(h.name),`duplicate variable name ${JSON.stringify(h.name)} in ${JSON.stringify(c)}`,"types",t),l.add(h.name);const u=Ne(h.type).base;p(u!==c,`circular type reference to ${JSON.stringify(u)}`,"types",t),!on(u)&&(p(n.has(u),`unknown type ${JSON.stringify(u)}`,"types",t),n.get(u).push(c),e.get(c).add(u))}}const o=Array.from(n.keys()).filter(c=>n.get(c).length===0);p(o.length!==0,"missing primary type","types",t),p(o.length===1,`ambiguous primary types or unused types: ${o.map(c=>JSON.stringify(c)).join(", ")}`,"types",t),gt(this,{primaryType:o[0]});function a(c,l){p(!l.has(c),`circular type reference to ${JSON.stringify(c)}`,"types",t),l.add(c);for(const h of e.get(c))if(n.has(h)){a(h,l);for(const u of l)s.get(u).add(h)}l.delete(c)}a(this.primaryType,new Set);for(const[c,l]of s){const h=Array.from(l);h.sort(),this.#e.set(c,Cr(c,i[c])+h.map(u=>Cr(u,i[u])).join(""))}}getEncoder(t){let e=this.#n.get(t);return e||(e=this.#r(t),this.#n.set(t,e)),e}#r(t){{const s=on(t);if(s)return s}const e=Ne(t).array;if(e){const s=e.prefix,i=this.getEncoder(s);return o=>{p(e.count===-1||e.count===o.length,`array length mismatch; expected length ${e.count}`,"value",o);let a=o.map(i);return this.#e.has(s)&&(a=a.map(ht)),ht(et(a))}}const n=this.types[t];if(n){const s=Lr(this.#e.get(t));return i=>{const o=n.map(({name:a,type:c})=>{const l=this.getEncoder(c)(i[a]);return this.#e.has(c)?ht(l):l});return o.unshift(s),et(o)}}p(!1,`unknown type: ${t}`,"type",t)}encodeType(t){const e=this.#e.get(t);return p(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return ht(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,n){if(on(t))return n(t,e);const s=Ne(t).array;if(s)return p(s.count===-1||s.count===e.length,`array length mismatch; expected length ${s.count}`,"value",e),e.map(o=>this._visit(s.prefix,o,n));const i=this.types[t];if(i)return i.reduce((o,{name:a,type:c})=>(o[a]=this._visit(c,e[a],n),o),{});p(!1,`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new it(t)}static getPrimaryType(t){return it.from(t).primaryType}static hashStruct(t,e,n){return it.from(e).hashStruct(t,n)}static hashDomain(t){const e=[];for(const n in t){if(t[n]==null)continue;const s=Br[n];p(s,`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",t),e.push({name:n,type:s})}return e.sort((n,s)=>sn.indexOf(n.name)-sn.indexOf(s.name)),it.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,n){return et(["0x1901",it.hashDomain(t),it.from(e).hash(n)])}static hash(t,e,n){return ht(it.encode(t,e,n))}static async resolveNames(t,e,n,s){t=Object.assign({},t);for(const a in t)t[a]==null&&delete t[a];const i={};t.verifyingContract&&!tt(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const o=it.from(e);o.visit(n,(a,c)=>(a==="address"&&!tt(c,20)&&(i[c]="0x"),c));for(const a in i)i[a]=await s(a);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),n=o.visit(n,(a,c)=>a==="address"&&i[c]?i[c]:c),{domain:t,value:n}}static getPayload(t,e,n){it.hashDomain(t);const s={},i=[];sn.forEach(c=>{const l=t[c];l!=null&&(s[c]=ca[c](l),i.push({name:c,type:Br[c]}))});const o=it.from(e);e=o.types;const a=Object.assign({},e);return p(a.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",e),a.EIP712Domain=i,o.encode(n),{types:a,domain:s,primaryType:o.primaryType,message:o.visit(n,(c,l)=>{if(c.match(/^bytes(\d*)/))return v(H(l));if(c.match(/^u?int/))return N(l).toString();switch(c){case"address":return l.toLowerCase();case"bool":return!!l;case"string":return p(typeof l=="string","invalid string","value",l),l}p(!1,"unsupported type","type",c)})}}}function an(r){return r.match(/^ipfs:\/\/ipfs\//i)?r=r.substring(12):r.match(/^ipfs:\/\//i)?r=r.substring(7):p(!1,"unsupported IPFS format","link",r),`https://gateway.ipfs.io/ipfs/${r}`}class la{name;constructor(t){gt(this,{name:t})}connect(t){return this}supportsCoinType(t){return!1}async encodeAddress(t,e){throw new Error("unsupported coin")}async decodeAddress(t,e){throw new Error("unsupported coin")}}const Ns=new RegExp("^(ipfs)://(.*)$","i"),Pr=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Ns,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class qt{provider;address;name;#t;#e;constructor(t,e,n){gt(this,{provider:t,address:e,name:n}),this.#t=null,this.#e=new ue(e,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],t)}async supportsWildcard(){return this.#t==null&&(this.#t=(async()=>{try{return await this.#e.supportsInterface("0x9061b923")}catch(t){if(dt(t,"CALL_EXCEPTION"))return!1;throw this.#t=null,t}})()),await this.#t}async#n(t,e){e=(e||[]).slice();const n=this.#e.interface;e.unshift(Cn(this.name));let s=null;await this.supportsWildcard()&&(s=n.getFunction(t),I(s,"missing fragment","UNKNOWN_ERROR",{info:{funcName:t}}),e=[Go(this.name,255),n.encodeFunctionData(s,e)],t="resolve(bytes,bytes)"),e.push({enableCcipRead:!0});try{const i=await this.#e[t](...e);return s?n.decodeFunctionResult(s,i)[0]:i}catch(i){if(!dt(i,"CALL_EXCEPTION"))throw i}return null}async getAddress(t){if(t==null&&(t=60),t===60)try{const i=await this.#n("addr(bytes32)");return i==null||i===de?null:i}catch(i){if(dt(i,"CALL_EXCEPTION"))return null;throw i}if(t>=0&&t<2147483648){let i=t+2147483648;const o=await this.#n("addr(bytes32,uint)",[i]);if(tt(o,20))return z(o)}let e=null;for(const i of this.provider.plugins)if(i instanceof la&&i.supportsCoinType(t)){e=i;break}if(e==null)return null;const n=await this.#n("addr(bytes32,uint)",[t]);if(n==null||n==="0x")return null;const s=await e.decodeAddress(t,n);if(s!=null)return s;I(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${t})`,info:{coinType:t,data:n}})}async getText(t){const e=await this.#n("text(bytes32,string)",[t]);return e==null||e==="0x"?null:e}async getContentHash(){const t=await this.#n("contenthash(bytes32)");if(t==null||t==="0x")return null;const e=t.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const s=e[1]==="e3010170"?"ipfs":"ipns",i=parseInt(e[4],16);if(e[5].length===i*2)return`${s}://${$s("0x"+e[2])}`}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&n[1].length===64)return`bzz://${n[1]}`;I(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:t}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const t=[{type:"name",value:this.name}];try{const e=await this.getText("avatar");if(e==null)return t.push({type:"!avatar",value:""}),{url:null,linkage:t};t.push({type:"avatar",value:e});for(let n=0;n<Pr.length;n++){const s=e.match(Pr[n]);if(s==null)continue;const i=s[1].toLowerCase();switch(i){case"https":case"data":return t.push({type:"url",value:e}),{linkage:t,url:e};case"ipfs":{const o=an(e);return t.push({type:"ipfs",value:e}),t.push({type:"url",value:o}),{linkage:t,url:o}}case"erc721":case"erc1155":{const o=i==="erc721"?"tokenURI(uint256)":"uri(uint256)";t.push({type:i,value:e});const a=await this.getAddress();if(a==null)return t.push({type:"!owner",value:""}),{url:null,linkage:t};const c=(s[2]||"").split("/");if(c.length!==2)return t.push({type:`!${i}caip`,value:s[2]||""}),{url:null,linkage:t};const l=c[1],h=new ue(c[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if(i==="erc721"){const f=await h.ownerOf(l);if(a!==f)return t.push({type:"!owner",value:f}),{url:null,linkage:t};t.push({type:"owner",value:f})}else if(i==="erc1155"){const f=await h.balanceOf(a,l);if(!f)return t.push({type:"!balance",value:"0"}),{url:null,linkage:t};t.push({type:"balance",value:f.toString()})}let u=await h[o](l);if(u==null||u==="0x")return t.push({type:"!metadata-url",value:""}),{url:null,linkage:t};t.push({type:"metadata-url-base",value:u}),i==="erc1155"&&(u=u.replace("{id}",_t(l,32).substring(2)),t.push({type:"metadata-url-expanded",value:u})),u.match(/^ipfs:/i)&&(u=an(u)),t.push({type:"metadata-url",value:u});let d={};const w=await new bt(u).send();w.assertOk();try{d=w.bodyJson}catch{try{t.push({type:"!metadata",value:w.bodyText})}catch{const m=w.body;return m&&t.push({type:"!metadata",value:v(m)}),{url:null,linkage:t}}return{url:null,linkage:t}}if(!d)return t.push({type:"!metadata",value:""}),{url:null,linkage:t};t.push({type:"metadata",value:JSON.stringify(d)});let A=d.image;if(typeof A!="string")return t.push({type:"!imageUrl",value:""}),{url:null,linkage:t};if(!A.match(/^(https:\/\/|data:)/i)){if(A.match(Ns)==null)return t.push({type:"!imageUrl-ipfs",value:A}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:A}),A=an(A)}return t.push({type:"url",value:A}),{linkage:t,url:A}}}}}catch{}return{linkage:t,url:null}}static async getEnsAddress(t){const e=await t.getNetwork(),n=e.getPlugin("org.ethers.plugins.network.Ens");return I(n,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:e}}),n.address}static async#r(t,e){const n=await qt.getEnsAddress(t);try{const i=await new ue(n,["function resolver(bytes32) view returns (address)"],t).resolver(Cn(e),{enableCcipRead:!0});return i===de?null:i}catch(s){throw s}return null}static async fromName(t,e){let n=e;for(;;){if(n===""||n==="."||e!=="eth"&&n==="eth")return null;const s=await qt.#r(t,n);if(s!=null){const i=new qt(t,s,e);return n!==e&&!await i.supportsWildcard()?null:i}n=n.split(".").slice(1).join(".")}}}const Ir=BigInt(0);function D(r,t){return(function(e){return e==null?t:r(e)})}function Ye(r,t){return(e=>{if(t&&e==null)return null;if(!Array.isArray(e))throw new Error("not an array");return e.map(n=>r(n))})}function be(r,t){return(e=>{const n={};for(const s in r){let i=s;if(t&&s in t&&!(i in e)){for(const o of t[s])if(o in e){i=o;break}}try{const o=r[s](e[i]);o!==void 0&&(n[s]=o)}catch(o){const a=o instanceof Error?o.message:"not-an-error";I(!1,`invalid value for value.${s} (${a})`,"BAD_DATA",{value:e})}}return n})}function ua(r){switch(r){case!0:case"true":return!0;case!1:case"false":return!1}p(!1,`invalid boolean; ${JSON.stringify(r)}`,"value",r)}function se(r){return p(tt(r,!0),"invalid data","value",r),r}function _(r){return p(tt(r,32),"invalid hash","value",r),r}const ha=be({address:z,blockHash:_,blockNumber:L,data:se,index:L,removed:D(ua,!1),topics:Ye(_),transactionHash:_,transactionIndex:L},{index:["logIndex"]});function fa(r){return ha(r)}const da=be({hash:D(_),parentHash:_,parentBeaconBlockRoot:D(_,null),number:L,timestamp:L,nonce:D(se),difficulty:N,gasLimit:N,gasUsed:N,stateRoot:D(_,null),receiptsRoot:D(_,null),blobGasUsed:D(N,null),excessBlobGas:D(N,null),miner:D(z),prevRandao:D(_,null),extraData:se,baseFeePerGas:D(N)},{prevRandao:["mixHash"]});function ga(r){const t=da(r);return t.transactions=r.transactions.map(e=>typeof e=="string"?e:ks(e)),t}const pa=be({transactionIndex:L,blockNumber:L,transactionHash:_,address:z,topics:Ye(_),data:se,index:L,blockHash:_},{index:["logIndex"]});function Aa(r){return pa(r)}const wa=be({to:D(z,null),from:D(z,null),contractAddress:D(z,null),index:L,root:D(v),gasUsed:N,blobGasUsed:D(N,null),logsBloom:D(se),blockHash:_,hash:_,logs:Ye(Aa),blockNumber:L,cumulativeGasUsed:N,effectiveGasPrice:D(N),blobGasPrice:D(N,null),status:D(L),type:D(L,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function ma(r){return wa(r)}function ks(r){r.to&&N(r.to)===Ir&&(r.to="0x0000000000000000000000000000000000000000");const t=be({hash:_,index:D(L,void 0),type:e=>e==="0x"||e==null?0:L(e),accessList:D(ie,null),blobVersionedHashes:D(Ye(_,!0),null),blockHash:D(_,null),blockNumber:D(L,null),transactionIndex:D(L,null),from:z,gasPrice:D(N),maxPriorityFeePerGas:D(N),maxFeePerGas:D(N),maxFeePerBlobGas:D(N,null),gasLimit:N,to:D(z,null),value:N,nonce:L,data:se,creates:D(z,null),chainId:D(N,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(r);if(t.to==null&&t.creates==null&&(t.creates=eo(t)),(r.type===1||r.type===2)&&r.accessList==null&&(t.accessList=[]),r.signature?t.signature=K.from(r.signature):t.signature=K.from(r),t.chainId==null){const e=t.signature.legacyChainId;e!=null&&(t.chainId=e)}return t.blockHash&&N(t.blockHash)===Ir&&(t.blockHash=null),t}const ya="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class Ee{name;constructor(t){gt(this,{name:t})}clone(){return new Ee(this.name)}}class We extends Ee{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(t,e){t==null&&(t=0),super(`org.ethers.network.plugins.GasCost#${t||0}`);const n={effectiveBlock:t};function s(i,o){let a=(e||{})[i];a==null&&(a=o),p(typeof a=="number",`invalud value for ${i}`,"costs",e),n[i]=a}s("txBase",21e3),s("txCreate",32e3),s("txDataZero",4),s("txDataNonzero",16),s("txAccessListStorageKey",1900),s("txAccessListAddress",2400),gt(this,n)}clone(){return new We(this.effectiveBlock,this)}}class qe extends Ee{address;targetNetwork;constructor(t,e){super("org.ethers.plugins.network.Ens"),gt(this,{address:t||ya,targetNetwork:e??1})}clone(){return new qe(this.address,this.targetNetwork)}}class ba extends Ee{#t;#e;get url(){return this.#t}get processFunc(){return this.#e}constructor(t,e){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),this.#t=t,this.#e=e}clone(){return this}}const cn=new Map;class at{#t;#e;#n;constructor(t,e){this.#t=t,this.#e=N(e),this.#n=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#t}set name(t){this.#t=t}get chainId(){return this.#e}set chainId(t){this.#e=N(t,"chainId")}matches(t){if(t==null)return!1;if(typeof t=="string"){try{return this.chainId===N(t)}catch{}return this.name===t}if(typeof t=="number"||typeof t=="bigint"){try{return this.chainId===N(t)}catch{}return!1}if(typeof t=="object"){if(t.chainId!=null){try{return this.chainId===N(t.chainId)}catch{}return!1}return t.name!=null?this.name===t.name:!1}return!1}get plugins(){return Array.from(this.#n.values())}attachPlugin(t){if(this.#n.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#n.set(t.name,t.clone()),this}getPlugin(t){return this.#n.get(t)||null}getPlugins(t){return this.plugins.filter(e=>e.name.split("#")[0]===t)}clone(){const t=new at(this.name,this.chainId);return this.plugins.forEach(e=>{t.attachPlugin(e.clone())}),t}computeIntrinsicGas(t){const e=this.getPlugin("org.ethers.plugins.network.GasCost")||new We;let n=e.txBase;if(t.to==null&&(n+=e.txCreate),t.data)for(let s=2;s<t.data.length;s+=2)t.data.substring(s,s+2)==="00"?n+=e.txDataZero:n+=e.txDataNonzero;if(t.accessList){const s=ie(t.accessList);for(const i in s)n+=e.txAccessListAddress+e.txAccessListStorageKey*s[i].storageKeys.length}return n}static from(t){if(Ea(),t==null)return at.from("mainnet");if(typeof t=="number"&&(t=BigInt(t)),typeof t=="string"||typeof t=="bigint"){const e=cn.get(t);if(e)return e();if(typeof t=="bigint")return new at("unknown",t);p(!1,"unknown network","network",t)}if(typeof t.clone=="function")return t.clone();if(typeof t=="object"){p(typeof t.name=="string"&&typeof t.chainId=="number","invalid network object name or chainId","network",t);const e=new at(t.name,t.chainId);return(t.ensAddress||t.ensNetwork!=null)&&e.attachPlugin(new qe(t.ensAddress,t.ensNetwork)),e}p(!1,"invalid network","network",t)}static register(t,e){typeof t=="number"&&(t=BigInt(t));const n=cn.get(t);n&&p(!1,`conflicting network for ${JSON.stringify(n.name)}`,"nameOrChainId",t),cn.set(t,e)}}function Nr(r,t){const e=String(r);if(!e.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${r}`);const n=e.split(".");if(n.length===1&&n.push(""),n.length!==2)throw new Error(`invalid gwei value: ${r}`);for(;n[1].length<t;)n[1]+="0";if(n[1].length>9){let s=BigInt(n[1].substring(0,9));n[1].substring(9).match(/^0+$/)||s++,n[1]=s.toString()}return BigInt(n[0]+n[1])}function kr(r){return new ba(r,async(t,e,n)=>{n.setHeader("User-Agent","ethers");let s;try{const[i,o]=await Promise.all([n.send(),t()]);s=i;const a=s.bodyJson.standard;return{gasPrice:o.gasPrice,maxFeePerGas:Nr(a.maxFee,9),maxPriorityFeePerGas:Nr(a.maxPriorityFee,9)}}catch(i){I(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:s,error:i})}})}let vr=!1;function Ea(){if(vr)return;vr=!0;function r(t,e,n){const s=function(){const i=new at(t,e);return n.ensNetwork!=null&&i.attachPlugin(new qe(null,n.ensNetwork)),i.attachPlugin(new We),(n.plugins||[]).forEach(o=>{i.attachPlugin(o)}),i};at.register(t,s),at.register(e,s),n.altNames&&n.altNames.forEach(i=>{at.register(i,s)})}r("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),r("ropsten",3,{ensNetwork:3}),r("rinkeby",4,{ensNetwork:4}),r("goerli",5,{ensNetwork:5}),r("kovan",42,{ensNetwork:42}),r("sepolia",11155111,{ensNetwork:11155111}),r("holesky",17e3,{ensNetwork:17e3}),r("classic",61,{}),r("classicKotti",6,{}),r("arbitrum",42161,{ensNetwork:1}),r("arbitrum-goerli",421613,{}),r("arbitrum-sepolia",421614,{}),r("base",8453,{ensNetwork:1}),r("base-goerli",84531,{}),r("base-sepolia",84532,{}),r("bnb",56,{ensNetwork:1}),r("bnbt",97,{}),r("linea",59144,{ensNetwork:1}),r("linea-goerli",59140,{}),r("linea-sepolia",59141,{}),r("matic",137,{ensNetwork:1,plugins:[kr("https://gasstation.polygon.technology/v2")]}),r("matic-amoy",80002,{}),r("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[kr("https://gasstation-testnet.polygon.technology/v2")]}),r("optimism",10,{ensNetwork:1,plugins:[]}),r("optimism-goerli",420,{}),r("optimism-sepolia",11155420,{}),r("xdai",100,{ensNetwork:1})}function Pn(r){return JSON.parse(JSON.stringify(r))}class Ba{#t;#e;#n;#r;constructor(t){this.#t=t,this.#e=null,this.#n=4e3,this.#r=-2}get pollingInterval(){return this.#n}set pollingInterval(t){this.#n=t}async#s(){try{const t=await this.#t.getBlockNumber();if(this.#r===-2){this.#r=t;return}if(t!==this.#r){for(let e=this.#r+1;e<=t;e++){if(this.#e==null)return;await this.#t.emit("block",e)}this.#r=t}}catch{}this.#e!=null&&(this.#e=this.#t._setTimeout(this.#s.bind(this),this.#n))}start(){this.#e||(this.#e=this.#t._setTimeout(this.#s.bind(this),this.#n),this.#s())}stop(){this.#e&&(this.#t._clearTimeout(this.#e),this.#e=null)}pause(t){this.stop(),t&&(this.#r=-2)}resume(){this.start()}}class Hn{#t;#e;#n;constructor(t){this.#t=t,this.#n=!1,this.#e=e=>{this._poll(e,this.#t)}}async _poll(t,e){throw new Error("sub-classes must override this")}start(){this.#n||(this.#n=!0,this.#e(-2),this.#t.on("block",this.#e))}stop(){this.#n&&(this.#n=!1,this.#t.off("block",this.#e))}pause(t){this.stop()}resume(){this.start()}}class xa extends Hn{#t;#e;constructor(t,e){super(t),this.#t=e,this.#e=-2}pause(t){t&&(this.#e=-2),super.pause(t)}async _poll(t,e){const n=await e.getBlock(this.#t);n!=null&&(this.#e===-2?this.#e=n.number:n.number>this.#e&&(e.emit(this.#t,n.number),this.#e=n.number))}}class Ca extends Hn{#t;constructor(t,e){super(t),this.#t=Pn(e)}async _poll(t,e){throw new Error("@TODO")}}class Pa extends Hn{#t;constructor(t,e){super(t),this.#t=e}async _poll(t,e){const n=await e.getTransactionReceipt(this.#t);n&&e.emit(this.#t,n)}}class Vn{#t;#e;#n;#r;#s;constructor(t,e){this.#t=t,this.#e=Pn(e),this.#n=this.#o.bind(this),this.#r=!1,this.#s=-2}async#o(t){if(this.#s===-2)return;const e=Pn(this.#e);e.fromBlock=this.#s+1,e.toBlock=t;const n=await this.#t.getLogs(e);if(n.length===0){this.#s<t-60&&(this.#s=t-60);return}for(const s of n)this.#t.emit(this.#e,s),this.#s=s.blockNumber}start(){this.#r||(this.#r=!0,this.#s===-2&&this.#t.getBlockNumber().then(t=>{this.#s=t}),this.#t.on("block",this.#n))}stop(){this.#r&&(this.#r=!1,this.#t.off("block",this.#n))}pause(t){this.stop(),t&&(this.#s=-2)}resume(){this.start()}}const Ia=BigInt(2),Na=10;function ke(r){return r&&typeof r.then=="function"}function Re(r,t){return r+":"+JSON.stringify(t,(e,n)=>{if(n==null)return"null";if(typeof n=="bigint")return`bigint:${n.toString()}`;if(typeof n=="string")return n.toLowerCase();if(typeof n=="object"&&!Array.isArray(n)){const s=Object.keys(n);return s.sort(),s.reduce((i,o)=>(i[o]=n[o],i),{})}return n})}class vs{name;constructor(t){gt(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function ka(r){return JSON.parse(JSON.stringify(r))}function In(r){return r=Array.from(new Set(r).values()),r.sort(),r}async function ln(r,t){if(r==null)throw new Error("invalid event");if(Array.isArray(r)&&(r={topics:r}),typeof r=="string")switch(r){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:r,tag:r}}if(tt(r,32)){const e=r.toLowerCase();return{type:"transaction",tag:Re("tx",{hash:e}),hash:e}}if(r.orphan){const e=r;return{type:"orphan",tag:Re("orphan",e),filter:ka(e)}}if(r.address||r.topics){const e=r,n={topics:(e.topics||[]).map(s=>s==null?null:Array.isArray(s)?In(s.map(i=>i.toLowerCase())):s.toLowerCase())};if(e.address){const s=[],i=[],o=a=>{tt(a)?s.push(a):i.push((async()=>{s.push(await yt(a,t))})())};Array.isArray(e.address)?e.address.forEach(o):o(e.address),i.length&&await Promise.all(i),n.address=In(s.map(a=>a.toLowerCase()))}return{filter:n,tag:Re("event",n),type:"event"}}p(!1,"unknown ProviderEvent","event",r)}function un(){return new Date().getTime()}const va={cacheTimeout:250,pollingInterval:4e3};class Sa{#t;#e;#n;#r;#s;#o;#i;#a;#d;#l;#g;#p;constructor(t,e){if(this.#p=Object.assign({},va,e||{}),t==="any")this.#o=!0,this.#s=null;else if(t){const n=at.from(t);this.#o=!1,this.#s=Promise.resolve(n),setTimeout(()=>{this.emit("network",n,null)},0)}else this.#o=!1,this.#s=null;this.#a=-1,this.#i=new Map,this.#t=new Map,this.#e=new Map,this.#n=null,this.#r=!1,this.#d=1,this.#l=new Map,this.#g=!1}get pollingInterval(){return this.#p.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#e.values())}attachPlugin(t){if(this.#e.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#e.set(t.name,t.connect(this)),this}getPlugin(t){return this.#e.get(t)||null}get disableCcipRead(){return this.#g}set disableCcipRead(t){this.#g=!!t}async#c(t){const e=this.#p.cacheTimeout;if(e<0)return await this._perform(t);const n=Re(t.method,t);let s=this.#i.get(n);return s||(s=this._perform(t),this.#i.set(n,s),setTimeout(()=>{this.#i.get(n)===s&&this.#i.delete(n)},e)),await s}async ccipReadFetch(t,e,n){if(this.disableCcipRead||n.length===0||t.to==null)return null;const s=t.to.toLowerCase(),i=e.toLowerCase(),o=[];for(let a=0;a<n.length;a++){const c=n[a],l=c.replace("{sender}",s).replace("{data}",i),h=new bt(l);c.indexOf("{data}")===-1&&(h.body={data:i,sender:s}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:h,index:a,urls:n});let u="unknown error",d;try{d=await h.send()}catch(w){o.push(w.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:{error:w}});continue}try{const w=d.bodyJson;if(w.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:h,result:w}),w.data;w.message&&(u=w.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:w})}catch{}I(d.statusCode<400||d.statusCode>=500,`response not found during CCIP fetch: ${u}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:t,info:{url:c,errorMessage:u}}),o.push(u)}I(!1,`error encountered during CCIP fetch: ${o.map(a=>JSON.stringify(a)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:t,info:{urls:n,errorMessages:o}})}_wrapBlock(t,e){return new zs(ga(t),this)}_wrapLog(t,e){return new Ks(fa(t),this)}_wrapTransactionReceipt(t,e){return new js(ma(t),this)}_wrapTransactionResponse(t,e){return new Zs(ks(t),this)}_detectNetwork(){I(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){I(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=L(await this.#c({method:"getBlockNumber"}),"%response");return this.#a>=0&&(this.#a=t),t}_getAddress(t){return yt(t,this)}_getBlockTag(t){if(t==null)return"latest";switch(t){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return t}if(tt(t))return tt(t,32)?t:Zt(t);if(typeof t=="bigint"&&(t=L(t,"blockTag")),typeof t=="number")return t>=0?Zt(t):this.#a>=0?Zt(this.#a+t):this.getBlockNumber().then(e=>Zt(e+t));p(!1,"invalid blockTag","blockTag",t)}_getFilter(t){const e=(t.topics||[]).map(c=>c==null?null:Array.isArray(c)?In(c.map(l=>l.toLowerCase())):c.toLowerCase()),n="blockHash"in t?t.blockHash:void 0,s=(c,l,h)=>{let u;switch(c.length){case 0:break;case 1:u=c[0];break;default:c.sort(),u=c}if(n&&(l!=null||h!=null))throw new Error("invalid filter");const d={};return u&&(d.address=u),e.length&&(d.topics=e),l&&(d.fromBlock=l),h&&(d.toBlock=h),n&&(d.blockHash=n),d};let i=[];if(t.address)if(Array.isArray(t.address))for(const c of t.address)i.push(this._getAddress(c));else i.push(this._getAddress(t.address));let o;"fromBlock"in t&&(o=this._getBlockTag(t.fromBlock));let a;return"toBlock"in t&&(a=this._getBlockTag(t.toBlock)),i.filter(c=>typeof c!="string").length||o!=null&&typeof o!="string"||a!=null&&typeof a!="string"?Promise.all([Promise.all(i),o,a]).then(c=>s(c[0],c[1],c[2])):s(i,o,a)}_getTransactionRequest(t){const e=dn(t),n=[];if(["to","from"].forEach(s=>{if(e[s]==null)return;const i=yt(e[s],this);ke(i)?n.push((async function(){e[s]=await i})()):e[s]=i}),e.blockTag!=null){const s=this._getBlockTag(e.blockTag);ke(s)?n.push((async function(){e.blockTag=await s})()):e.blockTag=s}return n.length?(async function(){return await Promise.all(n),e})():e}async getNetwork(){if(this.#s==null){const s=(async()=>{try{const i=await this._detectNetwork();return this.emit("network",i,null),i}catch(i){throw this.#s===s&&(this.#s=null),i}})();return this.#s=s,(await s).clone()}const t=this.#s,[e,n]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==n.chainId&&(this.#o?(this.emit("network",n,e),this.#s===t&&(this.#s=Promise.resolve(n))):I(!1,`network changed: ${e.chainId} => ${n.chainId} `,"NETWORK_ERROR",{event:"changed"})),e.clone()}async getFeeData(){const t=await this.getNetwork(),e=async()=>{const{_block:s,gasPrice:i,priorityFee:o}=await lt({_block:this.#A("latest",!1),gasPrice:(async()=>{try{const h=await this.#c({method:"getGasPrice"});return N(h,"%response")}catch{}return null})(),priorityFee:(async()=>{try{const h=await this.#c({method:"getPriorityFee"});return N(h,"%response")}catch{}return null})()});let a=null,c=null;const l=this._wrapBlock(s,t);return l&&l.baseFeePerGas&&(c=o??BigInt("1000000000"),a=l.baseFeePerGas*Ia+c),new Zn(i,a,c)},n=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const s=new bt(n.url),i=await n.processFunc(e,this,s);return new Zn(i.gasPrice,i.maxFeePerGas,i.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return ke(e)&&(e=await e),N(await this.#c({method:"estimateGas",transaction:e}),"%response")}async#u(t,e,n){I(n<Na,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},t,{blockTag:e,enableCcipRead:!0})});const s=dn(t);try{return v(await this._perform({method:"call",transaction:s,blockTag:e}))}catch(i){if(!this.disableCcipRead&&Ys(i)&&i.data&&n>=0&&e==="latest"&&s.to!=null&&$(i.data,0,4)==="0x556f1830"){const o=i.data,a=await yt(s.to,this);let c;try{c=Fa($(i.data,4))}catch(u){I(!1,u.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:s,info:{data:o}})}I(c.sender.toLowerCase()===a.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:o,reason:"OffchainLookup",transaction:s,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:c.errorArgs}});const l=await this.ccipReadFetch(s,c.calldata,c.urls);I(l!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:s,info:{data:i.data,errorArgs:c.errorArgs}});const h={to:a,data:et([c.selector,Ta([l,c.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:h});try{const u=await this.#u(h,e,n+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},h),result:u}),u}catch(u){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},h),error:u}),u}}throw i}}async#h(t){const{value:e}=await lt({network:this.getNetwork(),value:t});return e}async call(t){const{tx:e,blockTag:n}=await lt({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await this.#h(this.#u(e,n,t.enableCcipRead?0:-1))}async#f(t,e,n){let s=this._getAddress(e),i=this._getBlockTag(n);return(typeof s!="string"||typeof i!="string")&&([s,i]=await Promise.all([s,i])),await this.#h(this.#c(Object.assign(t,{address:s,blockTag:i})))}async getBalance(t,e){return N(await this.#f({method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return L(await this.#f({method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return v(await this.#f({method:"getCode"},t,e))}async getStorage(t,e,n){const s=N(e,"position");return v(await this.#f({method:"getStorage",position:s},t,n))}async broadcastTransaction(t){const{blockNumber:e,hash:n,network:s}=await lt({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),i=mt.from(t);if(i.hash!==n)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(i,s).replaceableTransaction(e)}async#A(t,e){if(tt(t,32))return await this.#c({method:"getBlock",blockHash:t,includeTransactions:e});let n=this._getBlockTag(t);return typeof n!="string"&&(n=await n),await this.#c({method:"getBlock",blockTag:n,includeTransactions:e})}async getBlock(t,e){const{network:n,params:s}=await lt({network:this.getNetwork(),params:this.#A(t,!!e)});return s==null?null:this._wrapBlock(s,n)}async getTransaction(t){const{network:e,params:n}=await lt({network:this.getNetwork(),params:this.#c({method:"getTransaction",hash:t})});return n==null?null:this._wrapTransactionResponse(n,e)}async getTransactionReceipt(t){const{network:e,params:n}=await lt({network:this.getNetwork(),params:this.#c({method:"getTransactionReceipt",hash:t})});if(n==null)return null;if(n.gasPrice==null&&n.effectiveGasPrice==null){const s=await this.#c({method:"getTransaction",hash:t});if(s==null)throw new Error("report this; could not find tx or effectiveGasPrice");n.effectiveGasPrice=s.gasPrice}return this._wrapTransactionReceipt(n,e)}async getTransactionResult(t){const{result:e}=await lt({network:this.getNetwork(),result:this.#c({method:"getTransactionResult",hash:t})});return e==null?null:v(e)}async getLogs(t){let e=this._getFilter(t);ke(e)&&(e=await e);const{network:n,params:s}=await lt({network:this.getNetwork(),params:this.#c({method:"getLogs",filter:e})});return s.map(i=>this._wrapLog(i,n))}_getProvider(t){I(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await qt.fromName(this,t)}async getAvatar(t){const e=await this.getResolver(t);return e?await e.getAvatar():null}async resolveName(t){const e=await this.getResolver(t);return e?await e.getAddress():null}async lookupAddress(t){t=z(t);const e=Cn(t.substring(2).toLowerCase()+".addr.reverse");try{const n=await qt.getEnsAddress(this),i=await new ue(n,["function resolver(bytes32) view returns (address)"],this).resolver(e);if(i==null||i===de)return null;const a=await new ue(i,["function name(bytes32) view returns (string)"],this).name(e);return await this.resolveName(a)!==t?null:a}catch(n){if(dt(n,"BAD_DATA")&&n.value==="0x"||dt(n,"CALL_EXCEPTION"))return null;throw n}return null}async waitForTransaction(t,e,n){const s=e??1;return s===0?this.getTransactionReceipt(t):new Promise(async(i,o)=>{let a=null;const c=(async l=>{try{const h=await this.getTransactionReceipt(t);if(h!=null&&l-h.blockNumber+1>=s){i(h),a&&(clearTimeout(a),a=null);return}}catch(h){console.log("EEE",h)}this.once("block",c)});n!=null&&(a=setTimeout(()=>{a!=null&&(a=null,this.off("block",c),o(X("timeout","TIMEOUT",{reason:"timeout"})))},n)),c(await this.getBlockNumber())})}async waitForBlock(t){I(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(t){const e=this.#l.get(t);e&&(e.timer&&clearTimeout(e.timer),this.#l.delete(t))}_setTimeout(t,e){e==null&&(e=0);const n=this.#d++,s=()=>{this.#l.delete(n),t()};if(this.paused)this.#l.set(n,{timer:null,func:s,time:e});else{const i=setTimeout(s,e);this.#l.set(n,{timer:i,func:s,time:un()})}return n}_forEachSubscriber(t){for(const e of this.#t.values())t(e.subscriber)}_getSubscriber(t){switch(t.type){case"debug":case"error":case"network":return new vs(t.type);case"block":{const e=new Ba(this);return e.pollingInterval=this.pollingInterval,e}case"safe":case"finalized":return new xa(this,t.type);case"event":return new Vn(this,t.filter);case"transaction":return new Pa(this,t.hash);case"orphan":return new Ca(this,t.filter)}throw new Error(`unsupported event: ${t.type}`)}_recoverSubscriber(t,e){for(const n of this.#t.values())if(n.subscriber===t){n.started&&n.subscriber.stop(),n.subscriber=e,n.started&&e.start(),this.#n!=null&&e.pause(this.#n);break}}async#w(t,e){let n=await ln(t,this);return n.type==="event"&&e&&e.length>0&&e[0].removed===!0&&(n=await ln({orphan:"drop-log",log:e[0]},this)),this.#t.get(n.tag)||null}async#m(t){const e=await ln(t,this),n=e.tag;let s=this.#t.get(n);return s||(s={subscriber:this._getSubscriber(e),tag:n,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#t.set(n,s)),s}async on(t,e){const n=await this.#m(t);return n.listeners.push({listener:e,once:!1}),n.started||(n.subscriber.start(),n.started=!0,this.#n!=null&&n.subscriber.pause(this.#n)),this}async once(t,e){const n=await this.#m(t);return n.listeners.push({listener:e,once:!0}),n.started||(n.subscriber.start(),n.started=!0,this.#n!=null&&n.subscriber.pause(this.#n)),this}async emit(t,...e){const n=await this.#w(t,e);if(!n||n.listeners.length===0)return!1;const s=n.listeners.length;return n.listeners=n.listeners.filter(({listener:i,once:o})=>{const a=new Ws(this,o?null:i,t);try{i.call(this,...e,a)}catch{}return!o}),n.listeners.length===0&&(n.started&&n.subscriber.stop(),this.#t.delete(n.tag)),s>0}async listenerCount(t){if(t){const n=await this.#w(t);return n?n.listeners.length:0}let e=0;for(const{listeners:n}of this.#t.values())e+=n.length;return e}async listeners(t){if(t){const n=await this.#w(t);return n?n.listeners.map(({listener:s})=>s):[]}let e=[];for(const{listeners:n}of this.#t.values())e=e.concat(n.map(({listener:s})=>s));return e}async off(t,e){const n=await this.#w(t);if(!n)return this;if(e){const s=n.listeners.map(({listener:i})=>i).indexOf(e);s>=0&&n.listeners.splice(s,1)}return(!e||n.listeners.length===0)&&(n.started&&n.subscriber.stop(),this.#t.delete(n.tag)),this}async removeAllListeners(t){if(t){const{tag:e,started:n,subscriber:s}=await this.#m(t);n&&s.stop(),this.#t.delete(e)}else for(const[e,{started:n,subscriber:s}]of this.#t)n&&s.stop(),this.#t.delete(e);return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return this.off(t,e)}get destroyed(){return this.#r}destroy(){this.removeAllListeners();for(const t of this.#l.keys())this._clearTimeout(t);this.#r=!0}get paused(){return this.#n!=null}set paused(t){!!t!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(t){if(this.#a=-1,this.#n!=null){if(this.#n==!!t)return;I(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(e=>e.pause(t)),this.#n=!!t;for(const e of this.#l.values())e.timer&&clearTimeout(e.timer),e.time=un()-e.time}resume(){if(this.#n!=null){this._forEachSubscriber(t=>t.resume()),this.#n=null;for(const t of this.#l.values()){let e=t.time;e<0&&(e=0),t.time=un(),setTimeout(t.func,e)}}}}function Ra(r,t){try{const e=Nn(r,t);if(e)return fn(e)}catch{}return null}function Nn(r,t){if(r==="0x")return null;try{const e=L($(r,t,t+32)),n=L($(r,e,e+32));return $(r,e+32,e+32+n)}catch{}return null}function Sr(r){const t=ot(r);if(t.length>32)throw new Error("internal; should not happen");const e=new Uint8Array(32);return e.set(t,32-t.length),e}function Oa(r){if(r.length%32===0)return r;const t=new Uint8Array(Math.ceil(r.length/32)*32);return t.set(r),t}const Da=new Uint8Array([]);function Ta(r){const t=[];let e=0;for(let n=0;n<r.length;n++)t.push(Da),e+=32;for(let n=0;n<r.length;n++){const s=H(r[n]);t[n]=Sr(e),t.push(Sr(s.length)),t.push(Oa(s)),e+=32+Math.ceil(s.length/32)*32}return et(t)}const Rr="0x0000000000000000000000000000000000000000000000000000000000000000";function Fa(r){const t={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};I(Yt(r)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const e=$(r,0,32);I($(e,0,12)===$(Rr,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),t.sender=$(e,12);try{const n=[],s=L($(r,32,64)),i=L($(r,s,s+32)),o=$(r,s+32);for(let a=0;a<i;a++){const c=Ra(o,a*32);if(c==null)throw new Error("abort");n.push(c)}t.urls=n}catch{I(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const n=Nn(r,64);if(n==null)throw new Error("abort");t.calldata=n}catch{I(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}I($(r,100,128)===$(Rr,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),t.selector=$(r,96,100);try{const n=Nn(r,128);if(n==null)throw new Error("abort");t.extraData=n}catch{I(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return t.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map(n=>t[n]),t}function zt(r,t){if(r.provider)return r.provider;I(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:t})}async function Or(r,t){let e=dn(t);if(e.to!=null&&(e.to=yt(e.to,r)),e.from!=null){const n=e.from;e.from=Promise.all([r.getAddress(),yt(n,r)]).then(([s,i])=>(p(s.toLowerCase()===i.toLowerCase(),"transaction from mismatch","tx.from",i),s))}else e.from=r.getAddress();return await lt(e)}class Ss{provider;constructor(t){gt(this,{provider:t||null})}async getNonce(t){return zt(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await Or(this,t)}async populateTransaction(t){const e=zt(this,"populateTransaction"),n=await Or(this,t);n.nonce==null&&(n.nonce=await this.getNonce("pending")),n.gasLimit==null&&(n.gasLimit=await this.estimateGas(n));const s=await this.provider.getNetwork();if(n.chainId!=null){const o=N(n.chainId);p(o===s.chainId,"transaction chainId mismatch","tx.chainId",t.chainId)}else n.chainId=s.chainId;const i=n.maxFeePerGas!=null||n.maxPriorityFeePerGas!=null;if(n.gasPrice!=null&&(n.type===2||i)?p(!1,"eip-1559 transaction do not support gasPrice","tx",t):(n.type===0||n.type===1)&&i&&p(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t),(n.type===2||n.type==null)&&n.maxFeePerGas!=null&&n.maxPriorityFeePerGas!=null)n.type=2;else if(n.type===0||n.type===1){const o=await e.getFeeData();I(o.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),n.gasPrice==null&&(n.gasPrice=o.gasPrice)}else{const o=await e.getFeeData();if(n.type==null)if(o.maxFeePerGas!=null&&o.maxPriorityFeePerGas!=null)if(n.type=2,n.gasPrice!=null){const a=n.gasPrice;delete n.gasPrice,n.maxFeePerGas=a,n.maxPriorityFeePerGas=a}else n.maxFeePerGas==null&&(n.maxFeePerGas=o.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=o.maxPriorityFeePerGas);else o.gasPrice!=null?(I(!i,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),n.gasPrice==null&&(n.gasPrice=o.gasPrice),n.type=0):I(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else(n.type===2||n.type===3)&&(n.maxFeePerGas==null&&(n.maxFeePerGas=o.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=o.maxPriorityFeePerGas))}return await lt(n)}async estimateGas(t){return zt(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return zt(this,"call").call(await this.populateCall(t))}async resolveName(t){return await zt(this,"resolveName").resolveName(t)}async sendTransaction(t){const e=zt(this,"sendTransaction"),n=await this.populateTransaction(t);delete n.from;const s=mt.from(n);return await e.broadcastTransaction(await this.signTransaction(s))}}class Rs extends Ss{address;constructor(t,e){super(e),gt(this,{address:t})}async getAddress(){return this.address}connect(t){return new Rs(this.address,t)}#t(t,e){I(!1,`VoidSigner cannot sign ${t}`,"UNSUPPORTED_OPERATION",{operation:e})}async signTransaction(t){this.#t("transactions","signTransaction")}async signMessage(t){this.#t("messages","signMessage")}async signTypedData(t,e,n){this.#t("typed-data","signTypedData")}}function Ua(r){return JSON.parse(JSON.stringify(r))}class Os{#t;#e;#n;#r;#s;#o;constructor(t){this.#t=t,this.#e=null,this.#n=this.#i.bind(this),this.#r=!1,this.#s=null,this.#o=!1}_subscribe(t){throw new Error("subclasses must override this")}_emitResults(t,e){throw new Error("subclasses must override this")}_recover(t){throw new Error("subclasses must override this")}async#i(t){try{this.#e==null&&(this.#e=this._subscribe(this.#t));let e=null;try{e=await this.#e}catch(i){if(!dt(i,"UNSUPPORTED_OPERATION")||i.operation!=="eth_newFilter")throw i}if(e==null){this.#e=null,this.#t._recoverSubscriber(this,this._recover(this.#t));return}const n=await this.#t.getNetwork();if(this.#s||(this.#s=n),this.#s.chainId!==n.chainId)throw new Error("chaid changed");if(this.#o)return;const s=await this.#t.send("eth_getFilterChanges",[e]);await this._emitResults(this.#t,s)}catch(e){console.log("@TODO",e)}this.#t.once("block",this.#n)}#a(){const t=this.#e;t&&(this.#e=null,t.then(e=>{this.#t.destroyed||this.#t.send("eth_uninstallFilter",[e])}))}start(){this.#r||(this.#r=!0,this.#i(-2))}stop(){this.#r&&(this.#r=!1,this.#o=!0,this.#a(),this.#t.off("block",this.#n))}pause(t){t&&this.#a(),this.#t.off("block",this.#n)}resume(){this.start()}}class La extends Os{#t;constructor(t,e){super(t),this.#t=Ua(e)}_recover(t){return new Vn(t,this.#t)}async _subscribe(t){return await t.send("eth_newFilter",[this.#t])}async _emitResults(t,e){for(const n of e)t.emit(this.#t,t._wrapLog(n,t._network))}}class Ma extends Os{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const n of e)t.emit("pending",n)}}const Qa="bigint,boolean,function,number,string,symbol".split(/,/g);function Oe(r){if(r==null||Qa.indexOf(typeof r)>=0||typeof r.getAddress=="function")return r;if(Array.isArray(r))return r.map(Oe);if(typeof r=="object")return Object.keys(r).reduce((t,e)=>(t[e]=r[e],t),{});throw new Error(`should not happen: ${r} (${typeof r})`)}function Ga(r){return new Promise(t=>{setTimeout(t,r)})}function Kt(r){return r&&r.toLowerCase()}function Dr(r){return r&&typeof r.pollingInterval=="number"}const Ds={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class hn extends Ss{address;constructor(t,e){super(t),e=z(e),gt(this,{address:e})}connect(t){I(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const e=Oe(t),n=[];if(e.from){const i=e.from;n.push((async()=>{const o=await yt(i,this.provider);p(o!=null&&o.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=o})())}else e.from=this.address;if(e.gasLimit==null&&n.push((async()=>{e.gasLimit=await this.provider.estimateGas({...e,from:this.address})})()),e.to!=null){const i=e.to;n.push((async()=>{e.to=await yt(i,this.provider)})())}n.length&&await Promise.all(n);const s=this.provider.getRpcTransaction(e);return this.provider.send("eth_sendTransaction",[s])}async sendTransaction(t){const e=await this.provider.getBlockNumber(),n=await this.sendUncheckedTransaction(t);return await new Promise((s,i)=>{const o=[1e3,100];let a=0;const c=async()=>{try{const l=await this.provider.getTransaction(n);if(l!=null){s(l.replaceableTransaction(e));return}}catch(l){if(dt(l,"CANCELLED")||dt(l,"BAD_DATA")||dt(l,"NETWORK_ERROR")||dt(l,"UNSUPPORTED_OPERATION")){l.info==null&&(l.info={}),l.info.sendTransactionHash=n,i(l);return}if(dt(l,"INVALID_ARGUMENT")&&(a++,l.info==null&&(l.info={}),l.info.sendTransactionHash=n,a>10)){i(l);return}this.provider.emit("error",X("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:l}))}this.provider._setTimeout(()=>{c()},o.pop()||4e3)};c()})}async signTransaction(t){const e=Oe(t);if(e.from){const s=await yt(e.from,this.provider);p(s!=null&&s.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=s}else e.from=this.address;const n=this.provider.getRpcTransaction(e);return await this.provider.send("eth_signTransaction",[n])}async signMessage(t){const e=typeof t=="string"?Lt(t):t;return await this.provider.send("personal_sign",[v(e),this.address.toLowerCase()])}async signTypedData(t,e,n){const s=Oe(n),i=await it.resolveNames(t,e,s,async o=>{const a=await yt(o);return p(a!=null,"TypedData does not support null address","value",o),a});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(it.getPayload(i.domain,e,i.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const e=typeof t=="string"?Lt(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),v(e)])}}class Ha extends Sa{#t;#e;#n;#r;#s;#o;#i;#a(){if(this.#r)return;const t=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");this.#r=setTimeout(()=>{this.#r=null;const e=this.#n;for(this.#n=[];e.length;){const n=[e.shift()];for(;e.length&&n.length!==this.#t.batchMaxCount;)if(n.push(e.shift()),JSON.stringify(n.map(i=>i.payload)).length>this.#t.batchMaxSize){e.unshift(n.pop());break}(async()=>{const s=n.length===1?n[0].payload:n.map(i=>i.payload);this.emit("debug",{action:"sendRpcPayload",payload:s});try{const i=await this._send(s);this.emit("debug",{action:"receiveRpcResult",result:i});for(const{resolve:o,reject:a,payload:c}of n){if(this.destroyed){a(X("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:c.method}));continue}const l=i.filter(h=>h.id===c.id)[0];if(l==null){const h=X("missing response for request","BAD_DATA",{value:i,info:{payload:c}});this.emit("error",h),a(h);continue}if("error"in l){a(this.getRpcError(c,l));continue}o(l.result)}}catch(i){this.emit("debug",{action:"receiveRpcError",error:i});for(const{reject:o}of n)o(i)}})()}},t)}constructor(t,e){super(t,e),this.#e=1,this.#t=Object.assign({},Ds,e||{}),this.#n=[],this.#r=null,this.#o=null,this.#i=null;{let s=null;const i=new Promise(o=>{s=o});this.#s={promise:i,resolve:s}}const n=this._getOption("staticNetwork");typeof n=="boolean"?(p(!n||t!=="any","staticNetwork cannot be used on special network 'any'","options",e),n&&t!=null&&(this.#o=at.from(t))):n&&(p(t==null||n.matches(t),"staticNetwork MUST match network object","options",e),this.#o=n)}_getOption(t){return this.#t[t]}get _network(){return I(this.#o,"network is not available yet","NETWORK_ERROR"),this.#o}async _perform(t){if(t.method==="call"||t.method==="estimateGas"){let n=t.transaction;if(n&&n.type!=null&&N(n.type)&&n.maxFeePerGas==null&&n.maxPriorityFeePerGas==null){const s=await this.getFeeData();s.maxFeePerGas==null&&s.maxPriorityFeePerGas==null&&(t=Object.assign({},t,{transaction:Object.assign({},n,{type:void 0})}))}}const e=this.getRpcRequest(t);return e!=null?await this.send(e.method,e.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t)if(t===!0){if(this.#o)return this.#o}else return t;return this.#i?await this.#i:this.ready?(this.#i=(async()=>{try{const e=at.from(N(await this.send("eth_chainId",[])));return this.#i=null,e}catch(e){throw this.#i=null,e}})(),await this.#i):(this.#i=(async()=>{const e={id:this.#e++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:e});let n;try{n=(await this._send(e))[0],this.#i=null}catch(s){throw this.#i=null,this.emit("debug",{action:"receiveRpcError",error:s}),s}if(this.emit("debug",{action:"receiveRpcResult",result:n}),"result"in n)return at.from(N(n.result));throw this.getRpcError(e,n)})(),await this.#i)}_start(){this.#s==null||this.#s.resolve==null||(this.#s.resolve(),this.#s=null,(async()=>{for(;this.#o==null&&!this.destroyed;)try{this.#o=await this._detectNetwork()}catch(t){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",X("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await Ga(1e3)}this.#a()})())}async _waitUntilReady(){if(this.#s!=null)return await this.#s.promise}_getSubscriber(t){return t.type==="pending"?new Ma(this):t.type==="event"?this._getOption("polling")?new Vn(this,t.filter):new La(this,t.filter):t.type==="orphan"&&t.filter.orphan==="drop-log"?new vs("orphan"):super._getSubscriber(t)}get ready(){return this.#s==null}getRpcTransaction(t){const e={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(n=>{if(t[n]==null)return;let s=n;n==="gasLimit"&&(s="gas"),e[s]=Zt(N(t[n],`tx.${n}`))}),["from","to","data"].forEach(n=>{t[n]!=null&&(e[n]=v(t[n]))}),t.accessList&&(e.accessList=ie(t.accessList)),t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.map(n=>n.toLowerCase())),e}getRpcRequest(t){switch(t.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[Kt(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Kt(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Kt(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Kt(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&t.filter.address!=null&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(Kt):t.filter.address=Kt(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,e){const{method:n}=t,{error:s}=e;if(n==="eth_estimateGas"&&s.message){const a=s.message;if(!a.match(/revert/i)&&a.match(/insufficient funds/i))return X("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:s}})}if(n==="eth_call"||n==="eth_estimateGas"){const a=kn(s),c=qs.getBuiltinCallException(n==="eth_call"?"call":"estimateGas",t.params[0],a?a.data:null);return c.info={error:s,payload:t},c}const i=JSON.stringify(Ja(s));if(typeof s.message=="string"&&s.message.match(/user denied|ethers-user-denied/i))return X("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[n]||"unknown",reason:"rejected",info:{payload:t,error:s}});if(n==="eth_sendRawTransaction"||n==="eth_sendTransaction"){const a=t.params[0];if(i.match(/insufficient funds|base fee exceeds gas limit/i))return X("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:a,info:{error:s}});if(i.match(/nonce/i)&&i.match(/too low/i))return X("nonce has already been used","NONCE_EXPIRED",{transaction:a,info:{error:s}});if(i.match(/replacement transaction/i)&&i.match(/underpriced/i))return X("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:a,info:{error:s}});if(i.match(/only replay-protected/i))return X("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:n,info:{transaction:a,info:{error:s}}})}let o=!!i.match(/the method .* does not exist/i);return o||s&&s.details&&s.details.startsWith("Unauthorized method:")&&(o=!0),o?X("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:s,payload:t}}):X("could not coalesce error","UNKNOWN_ERROR",{error:s,payload:t})}send(t,e){if(this.destroyed)return Promise.reject(X("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const n=this.#e++,s=new Promise((i,o)=>{this.#n.push({resolve:i,reject:o,payload:{method:t,params:e,id:n,jsonrpc:"2.0"}})});return this.#a(),s}async getSigner(t){t==null&&(t=0);const e=this.send("eth_accounts",[]);if(typeof t=="number"){const s=await e;if(t>=s.length)throw new Error("no such account");return new hn(this,s[t])}const{accounts:n}=await lt({network:this.getNetwork(),accounts:e});t=z(t);for(const s of n)if(z(s)===t)return new hn(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(e=>new hn(this,e))}destroy(){this.#r&&(clearTimeout(this.#r),this.#r=null);for(const{payload:t,reject:e}of this.#n)e(X("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));this.#n=[],super.destroy()}}class Va extends Ha{#t;constructor(t,e){super(t,e);let n=this._getOption("pollingInterval");n==null&&(n=Ds.pollingInterval),this.#t=n}_getSubscriber(t){const e=super._getSubscriber(t);return Dr(e)&&(e.pollingInterval=this.#t),e}get pollingInterval(){return this.#t}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");this.#t=t,this._forEachSubscriber(e=>{Dr(e)&&(e.pollingInterval=this.#t)})}}class qa extends Va{#t;constructor(t,e,n){t==null&&(t="http://localhost:8545"),super(e,n),typeof t=="string"?this.#t=new bt(t):this.#t=t.clone()}_getConnection(){return this.#t.clone()}async send(t,e){return await this._start(),await super.send(t,e)}async _send(t){const e=this._getConnection();e.body=JSON.stringify(t),e.setHeader("content-type","application/json");const n=await e.send();n.assertOk();let s=n.bodyJson;return Array.isArray(s)||(s=[s]),s}}function kn(r){if(r==null)return null;if(typeof r.message=="string"&&r.message.match(/revert/i)&&tt(r.data))return{message:r.message,data:r.data};if(typeof r=="object"){for(const t in r){const e=kn(r[t]);if(e)return e}return null}if(typeof r=="string")try{return kn(JSON.parse(r))}catch{}return null}function vn(r,t){if(r!=null){if(typeof r.message=="string"&&t.push(r.message),typeof r=="object")for(const e in r)vn(r[e],t);if(typeof r=="string")try{return vn(JSON.parse(r),t)}catch{}}}function Ja(r){const t=[];return vn(r,t),t}export{Ss as A,Va as J,Kr as S,mt as T,Rs as V,de as Z,fi as a,Ho as b,ja as c,it as d,oe as e,Bt as f,eo as g,Ka as h,$s as i,qa as j,Za as p,Ya as r,Je as s};
|
|
1
|
+
import{f as H,t as Ts,b as p,c as I,aL as X,af as Lt,a9 as v,aM as fn,d as gt,aN as Tr,aO as Fr,aP as De,aQ as Te,aR as Fs,aS as ve,ac as Us,ad as _e,aT as Ls,aa as Ur,aU as wt,aV as R,H as jn,aW as Ms,aX as Qs,aY as Yt,g as L,ah as et,a as Gs,e as N,p as tt,aZ as Xt,aw as ot,as as ce,l as _t,ap as z,au as $,ag as ht,a_ as ie,av as Hs,aq as Lr,m as Vs,a$ as Js,b0 as Zt,o as ue,b1 as dt,b2 as zs,b3 as Ks,b4 as js,b5 as Zs,ao as yt,am as dn,b6 as Zn,b7 as Ys,an as lt,b8 as qs,b9 as Ws}from"../main.mjs";const Fe="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";let xe=null;function Xs(r){if(xe==null){xe={};for(let e=0;e<Fe.length;e++)xe[Fe[e]]=BigInt(e)}const t=xe[r];return p(t!=null,"invalid base58 value","letter",r),t}const _s=BigInt(0),gn=BigInt(58);function $s(r){const t=H(r);let e=Ts(t),n="";for(;e;)n=Fe[Number(e%gn)]+n,e/=gn;for(let s=0;s<t.length&&!t[s];s++)n=Fe[0]+n;return n}function Ka(r){let t=_s;for(let e=0;e<r.length;e++)t*=gn,t+=Xs(r[e]);return t}function ti(r){r=atob(r);const t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return H(t)}function ei(r){const t=H(r);let e="";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return btoa(e)}function Mr(r){async function t(e,n){I(n==null||!n.cancelled,"request cancelled before sending","CANCELLED");const s=e.url.split(":")[0].toLowerCase();I(s==="http"||s==="https",`unsupported protocol ${s}`,"UNSUPPORTED_OPERATION",{info:{protocol:s},operation:"request"}),I(s==="https"||!e.credentials||e.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let i=null;const o=new AbortController,a=setTimeout(()=>{i=X("request timeout","TIMEOUT"),o.abort()},e.timeout);n&&n.addListener(()=>{i=X("request cancelled","CANCELLED"),o.abort()});const c={method:e.method,headers:new Headers(Array.from(e)),body:e.body||void 0,signal:o.signal};let l;try{l=await fetch(e.url,c)}catch(w){throw clearTimeout(a),i||w}clearTimeout(a);const h={};l.headers.forEach((w,A)=>{h[A.toLowerCase()]=w});const u=await l.arrayBuffer(),d=u==null?null:new Uint8Array(u);return{statusCode:l.status,statusMessage:l.statusText,headers:h,body:d}}return t}const ni=12,ri=250;let Yn=Mr();const si=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),ii=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let $e=!1;async function Qr(r,t){try{const e=r.match(si);if(!e)throw new Error("invalid data");return new Rt(200,"OK",{"content-type":e[1]||"text/plain"},e[2]?ti(e[3]):ai(e[3]))}catch{return new Rt(599,"BAD REQUEST (invalid data: URI)",{},null,new bt(r))}}function Gr(r){async function t(e,n){try{const s=e.match(ii);if(!s)throw new Error("invalid link");return new bt(`${r}${s[2]}`)}catch{return new Rt(599,"BAD REQUEST (invalid IPFS URI)",{},null,new bt(e))}}return t}const Ce={data:Qr,ipfs:Gr("https://gateway.ipfs.io/ipfs/")},Hr=new WeakMap;class oi{#t;#e;constructor(t){this.#t=[],this.#e=!1,Hr.set(t,()=>{if(!this.#e){this.#e=!0;for(const e of this.#t)setTimeout(()=>{e()},0);this.#t=[]}})}addListener(t){I(!this.#e,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#t.push(t)}get cancelled(){return this.#e}checkSignal(){I(!this.cancelled,"cancelled","CANCELLED",{})}}function Pe(r){if(r==null)throw new Error("missing signal; should not happen");return r.checkSignal(),r}class bt{#t;#e;#n;#r;#s;#o;#i;#a;#d;#l;#g;#p;#c;#u;#h;get url(){return this.#o}set url(t){this.#o=String(t)}get body(){return this.#i==null?null:new Uint8Array(this.#i)}set body(t){if(t==null)this.#i=void 0,this.#a=void 0;else if(typeof t=="string")this.#i=Lt(t),this.#a="text/plain";else if(t instanceof Uint8Array)this.#i=t,this.#a="application/octet-stream";else if(typeof t=="object")this.#i=Lt(JSON.stringify(t)),this.#a="application/json";else throw new Error("invalid body")}hasBody(){return this.#i!=null}get method(){return this.#r?this.#r:this.hasBody()?"POST":"GET"}set method(t){t==null&&(t=""),this.#r=String(t).toUpperCase()}get headers(){const t=Object.assign({},this.#n);return this.#d&&(t.authorization=`Basic ${ei(Lt(this.#d))}`),this.allowGzip&&(t["accept-encoding"]="gzip"),t["content-type"]==null&&this.#a&&(t["content-type"]=this.#a),this.body&&(t["content-length"]=String(this.body.length)),t}getHeader(t){return this.headers[t.toLowerCase()]}setHeader(t,e){this.#n[String(t).toLowerCase()]=String(e)}clearHeaders(){this.#n={}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const s=e[n++];return{value:[s,t[s]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#d||null}setCredentials(t,e){p(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#d=`${t}:${e}`}get allowGzip(){return this.#e}set allowGzip(t){this.#e=!!t}get allowInsecureAuthentication(){return!!this.#t}set allowInsecureAuthentication(t){this.#t=!!t}get timeout(){return this.#s}set timeout(t){p(t>=0,"timeout must be non-zero","timeout",t),this.#s=t}get preflightFunc(){return this.#l||null}set preflightFunc(t){this.#l=t}get processFunc(){return this.#g||null}set processFunc(t){this.#g=t}get retryFunc(){return this.#p||null}set retryFunc(t){this.#p=t}get getUrlFunc(){return this.#h||Yn}set getUrlFunc(t){this.#h=t}constructor(t){this.#o=String(t),this.#t=!1,this.#e=!0,this.#n={},this.#r="",this.#s=3e5,this.#u={slotInterval:ri,maxAttempts:ni},this.#h=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#i?v(this.#i):"null"}>`}setThrottleParams(t){t.slotInterval!=null&&(this.#u.slotInterval=t.slotInterval),t.maxAttempts!=null&&(this.#u.maxAttempts=t.maxAttempts)}async#f(t,e,n,s,i){if(t>=this.#u.maxAttempts)return i.makeServerError("exceeded maximum retry limit");I(qn()<=e,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:s}),n>0&&await ci(n);let o=this.clone();const a=(o.url.split(":")[0]||"").toLowerCase();if(a in Ce){const h=await Ce[a](o.url,Pe(s.#c));if(h instanceof Rt){let u=h;if(this.processFunc){Pe(s.#c);try{u=await this.processFunc(o,u)}catch(d){(d.throttle==null||typeof d.stall!="number")&&u.makeServerError("error in post-processing function",d).assertOk()}}return u}o=h}this.preflightFunc&&(o=await this.preflightFunc(o));const c=await this.getUrlFunc(o,Pe(s.#c));let l=new Rt(c.statusCode,c.statusMessage,c.headers,c.body,s);if(l.statusCode===301||l.statusCode===302){try{const h=l.headers.location||"";return o.redirect(h).#f(t+1,e,0,s,l)}catch{}return l}else if(l.statusCode===429&&(this.retryFunc==null||await this.retryFunc(o,l,t))){const h=l.headers["retry-after"];let u=this.#u.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return typeof h=="string"&&h.match(/^[1-9][0-9]*$/)&&(u=parseInt(h)),o.clone().#f(t+1,e,u,s,l)}if(this.processFunc){Pe(s.#c);try{l=await this.processFunc(o,l)}catch(h){(h.throttle==null||typeof h.stall!="number")&&l.makeServerError("error in post-processing function",h).assertOk();let u=this.#u.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return h.stall>=0&&(u=h.stall),o.clone().#f(t+1,e,u,s,l)}}return l}send(){return I(this.#c==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#c=new oi(this),this.#f(0,qn()+this.timeout,0,this,new Rt(0,"",{},null,this))}cancel(){I(this.#c!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=Hr.get(this);if(!t)throw new Error("missing signal; should not happen");t()}redirect(t){const e=this.url.split(":")[0].toLowerCase(),n=t.split(":")[0].toLowerCase();I(this.method==="GET"&&(e!=="https"||n!=="http")&&t.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(t)})`});const s=new bt(t);return s.method="GET",s.allowGzip=this.allowGzip,s.timeout=this.timeout,s.#n=Object.assign({},this.#n),this.#i&&(s.#i=new Uint8Array(this.#i)),s.#a=this.#a,s}clone(){const t=new bt(this.url);return t.#r=this.#r,this.#i&&(t.#i=this.#i),t.#a=this.#a,t.#n=Object.assign({},this.#n),t.#d=this.#d,this.allowGzip&&(t.allowGzip=!0),t.timeout=this.timeout,this.allowInsecureAuthentication&&(t.allowInsecureAuthentication=!0),t.#l=this.#l,t.#g=this.#g,t.#p=this.#p,t.#u=Object.assign({},this.#u),t.#h=this.#h,t}static lockConfig(){$e=!0}static getGateway(t){return Ce[t.toLowerCase()]||null}static registerGateway(t,e){if(t=t.toLowerCase(),t==="http"||t==="https")throw new Error(`cannot intercept ${t}; use registerGetUrl`);if($e)throw new Error("gateways locked");Ce[t]=e}static registerGetUrl(t){if($e)throw new Error("gateways locked");Yn=t}static createGetUrlFunc(t){return Mr()}static createDataGateway(){return Qr}static createIpfsGatewayFunc(t){return Gr(t)}}class Rt{#t;#e;#n;#r;#s;#o;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#r?v(this.#r):"null"}>`}get statusCode(){return this.#t}get statusMessage(){return this.#e}get headers(){return Object.assign({},this.#n)}get body(){return this.#r==null?null:new Uint8Array(this.#r)}get bodyText(){try{return this.#r==null?"":fn(this.#r)}catch{I(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch{I(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const s=e[n++];return{value:[s,t[s]],done:!1}}return{value:void 0,done:!0}}}}constructor(t,e,n,s,i){this.#t=t,this.#e=e,this.#n=Object.keys(n).reduce((o,a)=>(o[a.toLowerCase()]=String(n[a]),o),{}),this.#r=s==null?null:new Uint8Array(s),this.#s=i||null,this.#o={message:""}}makeServerError(t,e){let n;t?n=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${t})`:(t=`${this.statusCode} ${this.statusMessage}`,n=`CLIENT ESCALATED SERVER ERROR (${t})`);const s=new Rt(599,n,this.headers,this.body,this.#s||void 0);return s.#o={message:t,error:e},s}throwThrottleError(t,e){e==null?e=-1:p(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const n=new Error(t||"throttling requests");throw gt(n,{stall:e,throttle:!0}),n}getHeader(t){return this.headers[t.toLowerCase()]}hasBody(){return this.#r!=null}get request(){return this.#s}ok(){return this.#o.message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:t,error:e}=this.#o;t===""&&(t=`server response ${this.statusCode} ${this.statusMessage}`);let n=null;this.request&&(n=this.request.url);let s=null;try{this.#r&&(s=fn(this.#r))}catch{}I(!1,t,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:e,info:{requestUrl:n,responseBody:s,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function qn(){return new Date().getTime()}function ai(r){return Lt(r.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16))))}function ci(r){return new Promise(t=>setTimeout(t,r))}function li(r){let t=r.toString(16);for(;t.length<2;)t="0"+t;return"0x"+t}function Wn(r,t,e){let n=0;for(let s=0;s<e;s++)n=n*256+r[t+s];return n}function Xn(r,t,e,n){const s=[];for(;e<t+1+n;){const i=Vr(r,e);s.push(i.result),e+=i.consumed,I(e<=t+1+n,"child data too short","BUFFER_OVERRUN",{buffer:r,length:n,offset:t})}return{consumed:1+n,result:s}}function Vr(r,t){I(r.length!==0,"data too short","BUFFER_OVERRUN",{buffer:r,length:0,offset:1});const e=n=>{I(n<=r.length,"data short segment too short","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:n})};if(r[t]>=248){const n=r[t]-247;e(t+1+n);const s=Wn(r,t+1,n);return e(t+1+n+s),Xn(r,t,t+1+n,n+s)}else if(r[t]>=192){const n=r[t]-192;return e(t+1+n),Xn(r,t,t+1,n)}else if(r[t]>=184){const n=r[t]-183;e(t+1+n);const s=Wn(r,t+1,n);e(t+1+n+s);const i=v(r.slice(t+1+n,t+1+n+s));return{consumed:1+n+s,result:i}}else if(r[t]>=128){const n=r[t]-128;e(t+1+n);const s=v(r.slice(t+1,t+1+n));return{consumed:1+n,result:s}}return{consumed:1,result:li(r[t])}}function He(r){const t=H(r,"data"),e=Vr(t,0);return p(e.consumed===t.length,"unexpected junk after rlp payload","data",r),e.result}function _n(r){const t=[];for(;r;)t.unshift(r&255),r>>=8;return t}function Jr(r){if(Array.isArray(r)){let n=[];if(r.forEach(function(i){n=n.concat(Jr(i))}),n.length<=55)return n.unshift(192+n.length),n;const s=_n(n.length);return s.unshift(247+s.length),s.concat(n)}const t=Array.prototype.slice.call(H(r,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const e=_n(t.length);return e.unshift(183+e.length),e.concat(t)}const $n="0123456789abcdef";function Qt(r){let t="0x";for(const e of Jr(r))t+=$n[e>>4],t+=$n[e&15];return t}class zr extends Tr{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,Fr(t);const n=De(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?t.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=t.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(t){return Te(this),this.iHash.update(t),this}digestInto(t){Te(this),Fs(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=o,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Ve=(r,t,e)=>new zr(r,t).update(e).digest();Ve.create=(r,t)=>new zr(r,t);function ui(r,t,e,n){Fr(r);const s=Us({dkLen:32,asyncTick:10},n),{c:i,dkLen:o,asyncTick:a}=s;if(_e(i),_e(o),_e(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const c=De(t),l=De(e),h=new Uint8Array(o),u=Ve.create(r,c),d=u._cloneInto().update(l);return{c:i,dkLen:o,asyncTick:a,DK:h,PRF:u,PRFSalt:d}}function hi(r,t,e,n,s){return r.destroy(),t.destroy(),n&&n.destroy(),s.fill(0),e}function fi(r,t,e,n){const{c:s,dkLen:i,DK:o,PRF:a,PRFSalt:c}=ui(r,t,e,n);let l;const h=new Uint8Array(4),u=ve(h),d=new Uint8Array(a.outputLen);for(let w=1,A=0;A<i;w++,A+=a.outputLen){const f=o.subarray(A,A+a.outputLen);u.setInt32(0,w,!1),(l=c._cloneInto(l)).update(h).digestInto(d),f.set(d.subarray(0,f.length));for(let g=1;g<s;g++){a._cloneInto(l).update(d).digestInto(d);for(let m=0;m<f.length;m++)f[m]^=d[m]}}return hi(a,c,o,l,d)}function di(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);const s=BigInt(32),i=BigInt(4294967295),o=Number(e>>s&i),a=Number(e&i),c=n?4:0,l=n?0:4;r.setUint32(t+c,o,n),r.setUint32(t+l,a,n)}class Kr extends Tr{constructor(t,e,n,s){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ve(this.buffer)}update(t){Te(this);const{view:e,buffer:n,blockLen:s}=this;t=De(t);const i=t.length;for(let o=0;o<i;){const a=Math.min(s-this.pos,i-o);if(a===s){const c=ve(t);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Te(this),Ls(t,this),this.finished=!0;const{buffer:e,view:n,blockLen:s,isLE:i}=this;let{pos:o}=this;e[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(n,0),o=0);for(let u=o;u<s;u++)e[u]=0;di(n,s-8,BigInt(this.length*8),i),this.process(n,0);const a=ve(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=c/4,h=this.get();if(l>h.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<l;u++)a.setUint32(4*u,h[u],i)}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return t.length=s,t.pos=a,t.finished=i,t.destroyed=o,s%e&&t.buffer.set(n),t}}const gi=(r,t,e)=>r&t^~r&e,pi=(r,t,e)=>r&t^r&e^t&e,Ai=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),It=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Nt=new Uint32Array(64);class wi extends Kr{constructor(){super(64,32,8,!1),this.A=It[0]|0,this.B=It[1]|0,this.C=It[2]|0,this.D=It[3]|0,this.E=It[4]|0,this.F=It[5]|0,this.G=It[6]|0,this.H=It[7]|0}get(){const{A:t,B:e,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[t,e,n,s,i,o,a,c]}set(t,e,n,s,i,o,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(t,e){for(let u=0;u<16;u++,e+=4)Nt[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const d=Nt[u-15],w=Nt[u-2],A=wt(d,7)^wt(d,18)^d>>>3,f=wt(w,17)^wt(w,19)^w>>>10;Nt[u]=f+Nt[u-7]+A+Nt[u-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:l,H:h}=this;for(let u=0;u<64;u++){const d=wt(a,6)^wt(a,11)^wt(a,25),w=h+d+gi(a,c,l)+Ai[u]+Nt[u]|0,f=(wt(n,2)^wt(n,13)^wt(n,22))+pi(n,s,i)|0;h=l,l=c,c=a,a=o+w|0,o=i,i=s,s=n,n=w+f|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,h=h+this.H|0,this.set(n,s,i,o,a,c,l,h)}roundClean(){Nt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Je=Ur(()=>new wi),[mi,yi]=R.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),kt=new Uint32Array(80),vt=new Uint32Array(80);class bi extends Kr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:l,El:h,Fh:u,Fl:d,Gh:w,Gl:A,Hh:f,Hl:g}=this;return[t,e,n,s,i,o,a,c,l,h,u,d,w,A,f,g]}set(t,e,n,s,i,o,a,c,l,h,u,d,w,A,f,g){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=l|0,this.El=h|0,this.Fh=u|0,this.Fl=d|0,this.Gh=w|0,this.Gl=A|0,this.Hh=f|0,this.Hl=g|0}process(t,e){for(let b=0;b<16;b++,e+=4)kt[b]=t.getUint32(e),vt[b]=t.getUint32(e+=4);for(let b=16;b<80;b++){const S=kt[b-15]|0,P=vt[b-15]|0,E=R.rotrSH(S,P,1)^R.rotrSH(S,P,8)^R.shrSH(S,P,7),k=R.rotrSL(S,P,1)^R.rotrSL(S,P,8)^R.shrSL(S,P,7),C=kt[b-2]|0,U=vt[b-2]|0,T=R.rotrSH(C,U,19)^R.rotrBH(C,U,61)^R.shrSH(C,U,6),F=R.rotrSL(C,U,19)^R.rotrBL(C,U,61)^R.shrSL(C,U,6),j=R.add4L(k,F,vt[b-7],vt[b-16]),W=R.add4H(j,E,T,kt[b-7],kt[b-16]);kt[b]=W|0,vt[b]=j|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:l,Dl:h,Eh:u,El:d,Fh:w,Fl:A,Gh:f,Gl:g,Hh:m,Hl:x}=this;for(let b=0;b<80;b++){const S=R.rotrSH(u,d,14)^R.rotrSH(u,d,18)^R.rotrBH(u,d,41),P=R.rotrSL(u,d,14)^R.rotrSL(u,d,18)^R.rotrBL(u,d,41),E=u&w^~u&f,k=d&A^~d&g,C=R.add5L(x,P,k,yi[b],vt[b]),U=R.add5H(C,m,S,E,mi[b],kt[b]),T=C|0,F=R.rotrSH(n,s,28)^R.rotrBH(n,s,34)^R.rotrBH(n,s,39),j=R.rotrSL(n,s,28)^R.rotrBL(n,s,34)^R.rotrBL(n,s,39),W=n&i^n&a^i&a,pt=s&o^s&c^o&c;m=f|0,x=g|0,f=w|0,g=A|0,w=u|0,A=d|0,{h:u,l:d}=R.add(l|0,h|0,U|0,T|0),l=a|0,h=c|0,a=i|0,c=o|0,i=n|0,o=s|0;const y=R.add3L(T,j,pt);n=R.add3H(y,U,F,W),s=y|0}({h:n,l:s}=R.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=R.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=R.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:l,l:h}=R.add(this.Dh|0,this.Dl|0,l|0,h|0),{h:u,l:d}=R.add(this.Eh|0,this.El|0,u|0,d|0),{h:w,l:A}=R.add(this.Fh|0,this.Fl|0,w|0,A|0),{h:f,l:g}=R.add(this.Gh|0,this.Gl|0,f|0,g|0),{h:m,l:x}=R.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,s,i,o,a,c,l,h,u,d,w,A,f,g,m,x)}roundClean(){kt.fill(0),vt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Sn=Ur(()=>new bi);function Ei(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof jn<"u")return jn;throw new Error("unable to locate global object")}const tr=Ei(),er=tr.crypto||tr.msCrypto;function Bi(r){switch(r){case"sha256":return Je.create();case"sha512":return Sn.create()}p(!1,"invalid hashing algorithm name","algorithm",r)}function ja(r,t){const e={sha256:Je,sha512:Sn}[r];return p(e!=null,"invalid hmac algorithm","algorithm",r),Ve.create(e,t)}function Za(r,t,e,n,s){const i={sha256:Je,sha512:Sn}[s];return p(i!=null,"invalid pbkdf2 algorithm","algorithm",s),fi(i,r,t,{c:e,dkLen:n})}function Ya(r){I(er!=null,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),p(Number.isInteger(r)&&r>0&&r<=1024,"invalid length","length",r);const t=new Uint8Array(r);return er.getRandomValues(t),t}const jr=function(r){return Bi("sha256").update(r).digest()};let Zr=jr,Yr=!1;function oe(r){const t=H(r,"data");return v(Zr(t))}oe._=jr;oe.lock=function(){Yr=!0};oe.register=function(r){if(Yr)throw new Error("sha256 is locked");Zr=r};Object.freeze(oe);Object.freeze(oe);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const qr=BigInt(0),ze=BigInt(1),xi=BigInt(2),Ke=r=>r instanceof Uint8Array,Ci=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function $t(r){if(!Ke(r))throw new Error("Uint8Array expected");let t="";for(let e=0;e<r.length;e++)t+=Ci[r[e]];return t}function Wr(r){const t=r.toString(16);return t.length&1?`0${t}`:t}function Rn(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}function te(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);const t=r.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const e=new Uint8Array(t/2);for(let n=0;n<e.length;n++){const s=n*2,i=r.slice(s,s+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");e[n]=o}return e}function Mt(r){return Rn($t(r))}function On(r){if(!Ke(r))throw new Error("Uint8Array expected");return Rn($t(Uint8Array.from(r).reverse()))}function ee(r,t){return te(r.toString(16).padStart(t*2,"0"))}function Dn(r,t){return ee(r,t).reverse()}function Pi(r){return te(Wr(r))}function ft(r,t,e){let n;if(typeof t=="string")try{n=te(t)}catch(i){throw new Error(`${r} must be valid hex string, got "${t}". Cause: ${i}`)}else if(Ke(t))n=Uint8Array.from(t);else throw new Error(`${r} must be hex string or Uint8Array`);const s=n.length;if(typeof e=="number"&&s!==e)throw new Error(`${r} expected ${e} bytes, got ${s}`);return n}function fe(...r){const t=new Uint8Array(r.reduce((n,s)=>n+s.length,0));let e=0;return r.forEach(n=>{if(!Ke(n))throw new Error("Uint8Array expected");t.set(n,e),e+=n.length}),t}function Ii(r,t){if(r.length!==t.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==t[e])return!1;return!0}function Ni(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function ki(r){let t;for(t=0;r>qr;r>>=ze,t+=1);return t}function vi(r,t){return r>>BigInt(t)&ze}const Si=(r,t,e)=>r|(e?ze:qr)<<BigInt(t),Tn=r=>(xi<<BigInt(r-1))-ze,tn=r=>new Uint8Array(r),nr=r=>Uint8Array.from(r);function Xr(r,t,e){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let n=tn(r),s=tn(r),i=0;const o=()=>{n.fill(1),s.fill(0),i=0},a=(...u)=>e(s,n,...u),c=(u=tn())=>{s=a(nr([0]),u),n=a(),u.length!==0&&(s=a(nr([1]),u),n=a())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0;const d=[];for(;u<t;){n=a();const w=n.slice();d.push(w),u+=n.length}return fe(...d)};return(u,d)=>{o(),c(u);let w;for(;!(w=d(l()));)c();return o(),w}}const Ri={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||r instanceof Uint8Array,isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,t)=>t.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function me(r,t,e={}){const n=(s,i,o)=>{const a=Ri[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);const c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${i}`)};for(const[s,i]of Object.entries(t))n(s,i,!1);for(const[s,i]of Object.entries(e))n(s,i,!0);return r}const Oi=Object.freeze(Object.defineProperty({__proto__:null,bitGet:vi,bitLen:ki,bitMask:Tn,bitSet:Si,bytesToHex:$t,bytesToNumberBE:Mt,bytesToNumberLE:On,concatBytes:fe,createHmacDrbg:Xr,ensureBytes:ft,equalBytes:Ii,hexToBytes:te,hexToNumber:Rn,numberToBytesBE:ee,numberToBytesLE:Dn,numberToHexUnpadded:Wr,numberToVarBytesBE:Pi,utf8ToBytes:Ni,validateObject:me},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const q=BigInt(0),V=BigInt(1),Tt=BigInt(2),Di=BigInt(3),pn=BigInt(4),rr=BigInt(5),sr=BigInt(8);BigInt(9);BigInt(16);function nt(r,t){const e=r%t;return e>=q?e:t+e}function Ti(r,t,e){if(e<=q||t<q)throw new Error("Expected power/modulo > 0");if(e===V)return q;let n=V;for(;t>q;)t&V&&(n=n*r%e),r=r*r%e,t>>=V;return n}function ct(r,t,e){let n=r;for(;t-- >q;)n*=n,n%=e;return n}function An(r,t){if(r===q||t<=q)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=nt(r,t),n=t,s=q,i=V;for(;e!==q;){const a=n/e,c=n%e,l=s-i*a;n=e,e=c,s=i,i=l}if(n!==V)throw new Error("invert: does not exist");return nt(s,t)}function Fi(r){const t=(r-V)/Tt;let e,n,s;for(e=r-V,n=0;e%Tt===q;e/=Tt,n++);for(s=Tt;s<r&&Ti(s,t,r)!==r-V;s++);if(n===1){const o=(r+V)/pn;return function(c,l){const h=c.pow(l,o);if(!c.eql(c.sqr(h),l))throw new Error("Cannot find square root");return h}}const i=(e+V)/Tt;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let l=n,h=a.pow(a.mul(a.ONE,s),e),u=a.pow(c,i),d=a.pow(c,e);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let w=1;for(let f=a.sqr(d);w<l&&!a.eql(f,a.ONE);w++)f=a.sqr(f);const A=a.pow(h,V<<BigInt(l-w-1));h=a.sqr(A),u=a.mul(u,A),d=a.mul(d,h),l=w}return u}}function Ui(r){if(r%pn===Di){const t=(r+V)/pn;return function(n,s){const i=n.pow(s,t);if(!n.eql(n.sqr(i),s))throw new Error("Cannot find square root");return i}}if(r%sr===rr){const t=(r-rr)/sr;return function(n,s){const i=n.mul(s,Tt),o=n.pow(i,t),a=n.mul(s,o),c=n.mul(n.mul(a,Tt),o),l=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(l),s))throw new Error("Cannot find square root");return l}}return Fi(r)}const Li=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Mi(r){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=Li.reduce((n,s)=>(n[s]="function",n),t);return me(r,e)}function Qi(r,t,e){if(e<q)throw new Error("Expected power > 0");if(e===q)return r.ONE;if(e===V)return t;let n=r.ONE,s=t;for(;e>q;)e&V&&(n=r.mul(n,s)),s=r.sqr(s),e>>=V;return n}function Gi(r,t){const e=new Array(t.length),n=t.reduce((i,o,a)=>r.is0(o)?i:(e[a]=i,r.mul(i,o)),r.ONE),s=r.inv(n);return t.reduceRight((i,o,a)=>r.is0(o)?i:(e[a]=r.mul(i,e[a]),r.mul(i,o)),s),e}function _r(r,t){const e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function Hi(r,t,e=!1,n={}){if(r<=q)throw new Error(`Expected Field ORDER > 0, got ${r}`);const{nBitLength:s,nByteLength:i}=_r(r,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=Ui(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:i,MASK:Tn(s),ZERO:q,ONE:V,create:c=>nt(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return q<=c&&c<r},is0:c=>c===q,isOdd:c=>(c&V)===V,neg:c=>nt(-c,r),eql:(c,l)=>c===l,sqr:c=>nt(c*c,r),add:(c,l)=>nt(c+l,r),sub:(c,l)=>nt(c-l,r),mul:(c,l)=>nt(c*l,r),pow:(c,l)=>Qi(a,c,l),div:(c,l)=>nt(c*An(l,r),r),sqrN:c=>c*c,addN:(c,l)=>c+l,subN:(c,l)=>c-l,mulN:(c,l)=>c*l,inv:c=>An(c,r),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>Gi(a,c),cmov:(c,l,h)=>h?l:c,toBytes:c=>e?Dn(c,i):ee(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return e?On(c):Mt(c)}});return Object.freeze(a)}function $r(r){if(typeof r!="bigint")throw new Error("field order must be bigint");const t=r.toString(2).length;return Math.ceil(t/8)}function ts(r){const t=$r(r);return t+Math.ceil(t/2)}function Vi(r,t,e=!1){const n=r.length,s=$r(t),i=ts(t);if(n<16||n<i||n>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);const o=e?Mt(r):On(r),a=nt(o,t-V)+V;return e?Dn(a,s):ee(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ji=BigInt(0),en=BigInt(1);function zi(r,t){const e=(s,i)=>{const o=i.negate();return s?o:i},n=s=>{const i=Math.ceil(t/s)+1,o=2**(s-1);return{windows:i,windowSize:o}};return{constTimeNegate:e,unsafeLadder(s,i){let o=r.ZERO,a=s;for(;i>Ji;)i&en&&(o=o.add(a)),a=a.double(),i>>=en;return o},precomputeWindow(s,i){const{windows:o,windowSize:a}=n(i),c=[];let l=s,h=l;for(let u=0;u<o;u++){h=l,c.push(h);for(let d=1;d<a;d++)h=h.add(l),c.push(h);l=h.double()}return c},wNAF(s,i,o){const{windows:a,windowSize:c}=n(s);let l=r.ZERO,h=r.BASE;const u=BigInt(2**s-1),d=2**s,w=BigInt(s);for(let A=0;A<a;A++){const f=A*c;let g=Number(o&u);o>>=w,g>c&&(g-=d,o+=en);const m=f,x=f+Math.abs(g)-1,b=A%2!==0,S=g<0;g===0?h=h.add(e(b,i[m])):l=l.add(e(S,i[x]))}return{p:l,f:h}},wNAFCached(s,i,o,a){const c=s._WINDOW_SIZE||1;let l=i.get(s);return l||(l=this.precomputeWindow(s,c),c!==1&&i.set(s,a(l))),this.wNAF(c,l,o)}}}function es(r){return Mi(r.Fp),me(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({..._r(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ki(r){const t=es(r);me(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:ji,hexToBytes:Zi}=Oi,Ft={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(r){const{Err:t}=Ft;if(r.length<2||r[0]!==2)throw new t("Invalid signature integer tag");const e=r[1],n=r.subarray(2,e+2);if(!e||n.length!==e)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:ji(n),l:r.subarray(e+2)}},toSig(r){const{Err:t}=Ft,e=typeof r=="string"?Zi(r):r;if(!(e instanceof Uint8Array))throw new Error("ui8a expected");let n=e.length;if(n<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==n-2)throw new t("Invalid signature: incorrect length");const{d:s,l:i}=Ft._parseInt(e.subarray(2)),{d:o,l:a}=Ft._parseInt(i);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:o}},hexFromSig(r){const t=l=>Number.parseInt(l[0],16)&8?"00"+l:l,e=l=>{const h=l.toString(16);return h.length&1?`0${h}`:h},n=t(e(r.s)),s=t(e(r.r)),i=n.length/2,o=s.length/2,a=e(i),c=e(o);return`30${e(o+i+4)}02${c}${s}02${a}${n}`}},Et=BigInt(0),ut=BigInt(1);BigInt(2);const ir=BigInt(3);BigInt(4);function Yi(r){const t=Ki(r),{Fp:e}=t,n=t.toBytes||((A,f,g)=>{const m=f.toAffine();return fe(Uint8Array.from([4]),e.toBytes(m.x),e.toBytes(m.y))}),s=t.fromBytes||(A=>{const f=A.subarray(1),g=e.fromBytes(f.subarray(0,e.BYTES)),m=e.fromBytes(f.subarray(e.BYTES,2*e.BYTES));return{x:g,y:m}});function i(A){const{a:f,b:g}=t,m=e.sqr(A),x=e.mul(m,A);return e.add(e.add(x,e.mul(A,f)),g)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function o(A){return typeof A=="bigint"&&Et<A&&A<t.n}function a(A){if(!o(A))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(A){const{allowedPrivateKeyLengths:f,nByteLength:g,wrapPrivateKey:m,n:x}=t;if(f&&typeof A!="bigint"){if(A instanceof Uint8Array&&(A=$t(A)),typeof A!="string"||!f.includes(A.length))throw new Error("Invalid key");A=A.padStart(g*2,"0")}let b;try{b=typeof A=="bigint"?A:Mt(ft("private key",A,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof A}`)}return m&&(b=nt(b,x)),a(b),b}const l=new Map;function h(A){if(!(A instanceof u))throw new Error("ProjectivePoint expected")}class u{constructor(f,g,m){if(this.px=f,this.py=g,this.pz=m,f==null||!e.isValid(f))throw new Error("x required");if(g==null||!e.isValid(g))throw new Error("y required");if(m==null||!e.isValid(m))throw new Error("z required")}static fromAffine(f){const{x:g,y:m}=f||{};if(!f||!e.isValid(g)||!e.isValid(m))throw new Error("invalid affine point");if(f instanceof u)throw new Error("projective point not allowed");const x=b=>e.eql(b,e.ZERO);return x(g)&&x(m)?u.ZERO:new u(g,m,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(f){const g=e.invertBatch(f.map(m=>m.pz));return f.map((m,x)=>m.toAffine(g[x])).map(u.fromAffine)}static fromHex(f){const g=u.fromAffine(s(ft("pointHex",f)));return g.assertValidity(),g}static fromPrivateKey(f){return u.BASE.multiply(c(f))}_setWindowSize(f){this._WINDOW_SIZE=f,l.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!e.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:f,y:g}=this.toAffine();if(!e.isValid(f)||!e.isValid(g))throw new Error("bad point: x or y not FE");const m=e.sqr(g),x=i(f);if(!e.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:f}=this.toAffine();if(e.isOdd)return!e.isOdd(f);throw new Error("Field doesn't support isOdd")}equals(f){h(f);const{px:g,py:m,pz:x}=this,{px:b,py:S,pz:P}=f,E=e.eql(e.mul(g,P),e.mul(b,x)),k=e.eql(e.mul(m,P),e.mul(S,x));return E&&k}negate(){return new u(this.px,e.neg(this.py),this.pz)}double(){const{a:f,b:g}=t,m=e.mul(g,ir),{px:x,py:b,pz:S}=this;let P=e.ZERO,E=e.ZERO,k=e.ZERO,C=e.mul(x,x),U=e.mul(b,b),T=e.mul(S,S),F=e.mul(x,b);return F=e.add(F,F),k=e.mul(x,S),k=e.add(k,k),P=e.mul(f,k),E=e.mul(m,T),E=e.add(P,E),P=e.sub(U,E),E=e.add(U,E),E=e.mul(P,E),P=e.mul(F,P),k=e.mul(m,k),T=e.mul(f,T),F=e.sub(C,T),F=e.mul(f,F),F=e.add(F,k),k=e.add(C,C),C=e.add(k,C),C=e.add(C,T),C=e.mul(C,F),E=e.add(E,C),T=e.mul(b,S),T=e.add(T,T),C=e.mul(T,F),P=e.sub(P,C),k=e.mul(T,U),k=e.add(k,k),k=e.add(k,k),new u(P,E,k)}add(f){h(f);const{px:g,py:m,pz:x}=this,{px:b,py:S,pz:P}=f;let E=e.ZERO,k=e.ZERO,C=e.ZERO;const U=t.a,T=e.mul(t.b,ir);let F=e.mul(g,b),j=e.mul(m,S),W=e.mul(x,P),pt=e.add(g,m),y=e.add(b,S);pt=e.mul(pt,y),y=e.add(F,j),pt=e.sub(pt,y),y=e.add(g,x);let B=e.add(b,P);return y=e.mul(y,B),B=e.add(F,W),y=e.sub(y,B),B=e.add(m,x),E=e.add(S,P),B=e.mul(B,E),E=e.add(j,W),B=e.sub(B,E),C=e.mul(U,y),E=e.mul(T,W),C=e.add(E,C),E=e.sub(j,C),C=e.add(j,C),k=e.mul(E,C),j=e.add(F,F),j=e.add(j,F),W=e.mul(U,W),y=e.mul(T,y),j=e.add(j,W),W=e.sub(F,W),W=e.mul(U,W),y=e.add(y,W),F=e.mul(j,y),k=e.add(k,F),F=e.mul(B,y),E=e.mul(pt,E),E=e.sub(E,F),F=e.mul(pt,j),C=e.mul(B,C),C=e.add(C,F),new u(E,k,C)}subtract(f){return this.add(f.negate())}is0(){return this.equals(u.ZERO)}wNAF(f){return w.wNAFCached(this,l,f,g=>{const m=e.invertBatch(g.map(x=>x.pz));return g.map((x,b)=>x.toAffine(m[b])).map(u.fromAffine)})}multiplyUnsafe(f){const g=u.ZERO;if(f===Et)return g;if(a(f),f===ut)return this;const{endo:m}=t;if(!m)return w.unsafeLadder(this,f);let{k1neg:x,k1:b,k2neg:S,k2:P}=m.splitScalar(f),E=g,k=g,C=this;for(;b>Et||P>Et;)b&ut&&(E=E.add(C)),P&ut&&(k=k.add(C)),C=C.double(),b>>=ut,P>>=ut;return x&&(E=E.negate()),S&&(k=k.negate()),k=new u(e.mul(k.px,m.beta),k.py,k.pz),E.add(k)}multiply(f){a(f);let g=f,m,x;const{endo:b}=t;if(b){const{k1neg:S,k1:P,k2neg:E,k2:k}=b.splitScalar(g);let{p:C,f:U}=this.wNAF(P),{p:T,f:F}=this.wNAF(k);C=w.constTimeNegate(S,C),T=w.constTimeNegate(E,T),T=new u(e.mul(T.px,b.beta),T.py,T.pz),m=C.add(T),x=U.add(F)}else{const{p:S,f:P}=this.wNAF(g);m=S,x=P}return u.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(f,g,m){const x=u.BASE,b=(P,E)=>E===Et||E===ut||!P.equals(x)?P.multiplyUnsafe(E):P.multiply(E),S=b(this,g).add(b(f,m));return S.is0()?void 0:S}toAffine(f){const{px:g,py:m,pz:x}=this,b=this.is0();f==null&&(f=b?e.ONE:e.inv(x));const S=e.mul(g,f),P=e.mul(m,f),E=e.mul(x,f);if(b)return{x:e.ZERO,y:e.ZERO};if(!e.eql(E,e.ONE))throw new Error("invZ was invalid");return{x:S,y:P}}isTorsionFree(){const{h:f,isTorsionFree:g}=t;if(f===ut)return!0;if(g)return g(u,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:f,clearCofactor:g}=t;return f===ut?this:g?g(u,this):this.multiplyUnsafe(t.h)}toRawBytes(f=!0){return this.assertValidity(),n(u,this,f)}toHex(f=!0){return $t(this.toRawBytes(f))}}u.BASE=new u(t.Gx,t.Gy,e.ONE),u.ZERO=new u(e.ZERO,e.ONE,e.ZERO);const d=t.nBitLength,w=zi(u,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:o}}function qi(r){const t=es(r);return me(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Wi(r){const t=qi(r),{Fp:e,n}=t,s=e.BYTES+1,i=2*e.BYTES+1;function o(y){return Et<y&&y<e.ORDER}function a(y){return nt(y,n)}function c(y){return An(y,n)}const{ProjectivePoint:l,normPrivateKeyToScalar:h,weierstrassEquation:u,isWithinCurveOrder:d}=Yi({...t,toBytes(y,B,O){const Q=B.toAffine(),M=e.toBytes(Q.x),Z=fe;return O?Z(Uint8Array.from([B.hasEvenY()?2:3]),M):Z(Uint8Array.from([4]),M,e.toBytes(Q.y))},fromBytes(y){const B=y.length,O=y[0],Q=y.subarray(1);if(B===s&&(O===2||O===3)){const M=Mt(Q);if(!o(M))throw new Error("Point is not on curve");const Z=u(M);let rt=e.sqrt(Z);const st=(rt&ut)===ut;return(O&1)===1!==st&&(rt=e.neg(rt)),{x:M,y:rt}}else if(B===i&&O===4){const M=e.fromBytes(Q.subarray(0,e.BYTES)),Z=e.fromBytes(Q.subarray(e.BYTES,2*e.BYTES));return{x:M,y:Z}}else throw new Error(`Point of length ${B} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),w=y=>$t(ee(y,t.nByteLength));function A(y){const B=n>>ut;return y>B}function f(y){return A(y)?a(-y):y}const g=(y,B,O)=>Mt(y.slice(B,O));class m{constructor(B,O,Q){this.r=B,this.s=O,this.recovery=Q,this.assertValidity()}static fromCompact(B){const O=t.nByteLength;return B=ft("compactSignature",B,O*2),new m(g(B,0,O),g(B,O,2*O))}static fromDER(B){const{r:O,s:Q}=Ft.toSig(ft("DER",B));return new m(O,Q)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(B){return new m(this.r,this.s,B)}recoverPublicKey(B){const{r:O,s:Q,recovery:M}=this,Z=k(ft("msgHash",B));if(M==null||![0,1,2,3].includes(M))throw new Error("recovery id invalid");const rt=M===2||M===3?O+t.n:O;if(rt>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");const st=(M&1)===0?"02":"03",xt=l.fromHex(st+w(rt)),Ct=c(rt),Gt=a(-Z*Ct),ae=a(Q*Ct),Pt=l.BASE.multiplyAndAddUnsafe(xt,Gt,ae);if(!Pt)throw new Error("point at infinify");return Pt.assertValidity(),Pt}hasHighS(){return A(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return te(this.toDERHex())}toDERHex(){return Ft.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return te(this.toCompactHex())}toCompactHex(){return w(this.r)+w(this.s)}}const x={isValidPrivateKey(y){try{return h(y),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const y=ts(t.n);return Vi(t.randomBytes(y),t.n)},precompute(y=8,B=l.BASE){return B._setWindowSize(y),B.multiply(BigInt(3)),B}};function b(y,B=!0){return l.fromPrivateKey(y).toRawBytes(B)}function S(y){const B=y instanceof Uint8Array,O=typeof y=="string",Q=(B||O)&&y.length;return B?Q===s||Q===i:O?Q===2*s||Q===2*i:y instanceof l}function P(y,B,O=!0){if(S(y))throw new Error("first arg must be private key");if(!S(B))throw new Error("second arg must be public key");return l.fromHex(B).multiply(h(y)).toRawBytes(O)}const E=t.bits2int||function(y){const B=Mt(y),O=y.length*8-t.nBitLength;return O>0?B>>BigInt(O):B},k=t.bits2int_modN||function(y){return a(E(y))},C=Tn(t.nBitLength);function U(y){if(typeof y!="bigint")throw new Error("bigint expected");if(!(Et<=y&&y<C))throw new Error(`bigint expected < 2^${t.nBitLength}`);return ee(y,t.nByteLength)}function T(y,B,O=F){if(["recovered","canonical"].some(Ot=>Ot in O))throw new Error("sign() legacy options not supported");const{hash:Q,randomBytes:M}=t;let{lowS:Z,prehash:rt,extraEntropy:st}=O;Z==null&&(Z=!0),y=ft("msgHash",y),rt&&(y=ft("prehashed msgHash",Q(y)));const xt=k(y),Ct=h(B),Gt=[U(Ct),U(xt)];if(st!=null){const Ot=st===!0?M(e.BYTES):st;Gt.push(ft("extraEntropy",Ot))}const ae=fe(...Gt),Pt=xt;function Xe(Ot){const Ht=E(Ot);if(!d(Ht))return;const Jn=c(Ht),At=l.BASE.multiply(Ht).toAffine(),Vt=a(At.x);if(Vt===Et)return;const Be=a(Jn*a(Pt+Vt*Ct));if(Be===Et)return;let zn=(At.x===Vt?0:2)|Number(At.y&ut),Kn=Be;return Z&&A(Be)&&(Kn=f(Be),zn^=1),new m(Vt,Kn,zn)}return{seed:ae,k2sig:Xe}}const F={lowS:t.lowS,prehash:!1},j={lowS:t.lowS,prehash:!1};function W(y,B,O=F){const{seed:Q,k2sig:M}=T(y,B,O),Z=t;return Xr(Z.hash.outputLen,Z.nByteLength,Z.hmac)(Q,M)}l.BASE._setWindowSize(8);function pt(y,B,O,Q=j){const M=y;if(B=ft("msgHash",B),O=ft("publicKey",O),"strict"in Q)throw new Error("options.strict was renamed to lowS");const{lowS:Z,prehash:rt}=Q;let st,xt;try{if(typeof M=="string"||M instanceof Uint8Array)try{st=m.fromDER(M)}catch(At){if(!(At instanceof Ft.Err))throw At;st=m.fromCompact(M)}else if(typeof M=="object"&&typeof M.r=="bigint"&&typeof M.s=="bigint"){const{r:At,s:Vt}=M;st=new m(At,Vt)}else throw new Error("PARSE");xt=l.fromHex(O)}catch(At){if(At.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(Z&&st.hasHighS())return!1;rt&&(B=t.hash(B));const{r:Ct,s:Gt}=st,ae=k(B),Pt=c(Gt),Xe=a(ae*Pt),Ot=a(Ct*Pt),Ht=l.BASE.multiplyAndAddUnsafe(xt,Xe,Ot)?.toAffine();return Ht?a(Ht.x)===Ct:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:P,sign:W,verify:pt,ProjectivePoint:l,Signature:m,utils:x}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Xi(r){return{hash:r,hmac:(t,...e)=>Ve(r,t,Qs(...e)),randomBytes:Ms}}function _i(r,t){const e=n=>Wi({...r,...Xi(n)});return Object.freeze({...e(t),create:e})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ns=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),or=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),$i=BigInt(1),wn=BigInt(2),ar=(r,t)=>(r+t/wn)/t;function to(r){const t=ns,e=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%t,h=l*l*r%t,u=ct(h,e,t)*h%t,d=ct(u,e,t)*h%t,w=ct(d,wn,t)*l%t,A=ct(w,s,t)*w%t,f=ct(A,i,t)*A%t,g=ct(f,a,t)*f%t,m=ct(g,c,t)*g%t,x=ct(m,a,t)*f%t,b=ct(x,e,t)*h%t,S=ct(b,o,t)*A%t,P=ct(S,n,t)*l%t,E=ct(P,wn,t);if(!mn.eql(mn.sqr(E),r))throw new Error("Cannot find square root");return E}const mn=Hi(ns,void 0,void 0,{sqrt:to}),St=_i({a:BigInt(0),b:BigInt(7),Fp:mn,n:or,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{const t=or,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-$i*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,o=BigInt("0x100000000000000000000000000000000"),a=ar(i*r,t),c=ar(-n*r,t);let l=nt(r-a*e-c*s,t),h=nt(-a*n-c*i,t);const u=l>o,d=h>o;if(u&&(l=t-l),d&&(h=t-h),l>o||h>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:l,k2neg:d,k2:h}}}},Je);BigInt(0);St.ProjectivePoint;const de="0x0000000000000000000000000000000000000000",cr="0x0000000000000000000000000000000000000000000000000000000000000000",lr=BigInt(0),ur=BigInt(1),hr=BigInt(2),fr=BigInt(27),dr=BigInt(28),Ie=BigInt(35),Jt={};function gr(r){return Xt(ot(r),32)}class K{#t;#e;#n;#r;get r(){return this.#t}set r(t){p(Yt(t)===32,"invalid r","value",t),this.#t=v(t)}get s(){return this.#e}set s(t){p(Yt(t)===32,"invalid s","value",t);const e=v(t);p(parseInt(e.substring(0,3))<8,"non-canonical s","value",e),this.#e=e}get v(){return this.#n}set v(t){const e=L(t,"value");p(e===27||e===28,"invalid v","v",t),this.#n=e}get networkV(){return this.#r}get legacyChainId(){const t=this.networkV;return t==null?null:K.getChainId(t)}get yParity(){return this.v===27?0:1}get yParityAndS(){const t=H(this.s);return this.yParity&&(t[0]|=128),v(t)}get compactSerialized(){return et([this.r,this.yParityAndS])}get serialized(){return et([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(t,e,n,s){Gs(t,Jt,"Signature"),this.#t=e,this.#e=n,this.#n=s,this.#r=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const t=new K(Jt,this.r,this.s,this.v);return this.networkV&&(t.#r=this.networkV),t}toJSON(){const t=this.networkV;return{_type:"signature",networkV:t!=null?t.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(t){const e=N(t,"v");return e==fr||e==dr?lr:(p(e>=Ie,"invalid EIP-155 v","v",t),(e-Ie)/hr)}static getChainIdV(t,e){return N(t)*hr+BigInt(35+e-27)}static getNormalizedV(t){const e=N(t);return e===lr||e===fr?27:e===ur||e===dr?28:(p(e>=Ie,"invalid v","v",t),e&ur?27:28)}static from(t){function e(l,h){p(l,h,"signature",t)}if(t==null)return new K(Jt,cr,cr,27);if(typeof t=="string"){const l=H(t,"signature");if(l.length===64){const h=v(l.slice(0,32)),u=l.slice(32,64),d=u[0]&128?28:27;return u[0]&=127,new K(Jt,h,v(u),d)}if(l.length===65){const h=v(l.slice(0,32)),u=l.slice(32,64);e((u[0]&128)===0,"non-canonical s");const d=K.getNormalizedV(l[64]);return new K(Jt,h,v(u),d)}e(!1,"invalid raw signature length")}if(t instanceof K)return t.clone();const n=t.r;e(n!=null,"missing r");const s=gr(n),i=(function(l,h){if(l!=null)return gr(l);if(h!=null){e(tt(h,32),"invalid yParityAndS");const u=H(h);return u[0]&=127,v(u)}e(!1,"missing s")})(t.s,t.yParityAndS);e((H(i)[0]&128)==0,"non-canonical s");const{networkV:o,v:a}=(function(l,h,u){if(l!=null){const d=N(l);return{networkV:d>=Ie?d:void 0,v:K.getNormalizedV(d)}}if(h!=null)return e(tt(h,32),"invalid yParityAndS"),{v:H(h)[0]&128?28:27};if(u!=null){switch(L(u,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}e(!1,"invalid yParity")}e(!1,"missing v")})(t.v,t.yParityAndS,t.yParity),c=new K(Jt,s,i,a);return o&&(c.#r=o),e(t.yParity==null||L(t.yParity,"sig.yParity")===c.yParity,"yParity mismatch"),e(t.yParityAndS==null||t.yParityAndS===c.yParityAndS,"yParityAndS mismatch"),c}}class Bt{#t;constructor(t){p(Yt(t)===32,"invalid private key","privateKey","[REDACTED]"),this.#t=v(t)}get privateKey(){return this.#t}get publicKey(){return Bt.computePublicKey(this.#t)}get compressedPublicKey(){return Bt.computePublicKey(this.#t,!0)}sign(t){p(Yt(t)===32,"invalid digest length","digest",t);const e=St.sign(ce(t),ce(this.#t),{lowS:!0});return K.from({r:_t(e.r,32),s:_t(e.s,32),v:e.recovery?28:27})}computeSharedSecret(t){const e=Bt.computePublicKey(t);return v(St.getSharedSecret(ce(this.#t),H(e),!1))}static computePublicKey(t,e){let n=H(t,"key");if(n.length===32){const i=St.getPublicKey(n,!!e);return v(i)}if(n.length===64){const i=new Uint8Array(65);i[0]=4,i.set(n,1),n=i}const s=St.ProjectivePoint.fromHex(n);return v(s.toRawBytes(e))}static recoverPublicKey(t,e){p(Yt(t)===32,"invalid digest length","digest",t);const n=K.from(e);let s=St.Signature.fromCompact(ce(et([n.r,n.s])));s=s.addRecoveryBit(n.yParity);const i=s.recoverPublicKey(ce(t));return p(i!=null,"invalid signautre for digest","signature",e),"0x"+i.toHex(!1)}static addPoints(t,e,n){const s=St.ProjectivePoint.fromHex(Bt.computePublicKey(t).substring(2)),i=St.ProjectivePoint.fromHex(Bt.computePublicKey(e).substring(2));return"0x"+s.add(i).toHex(!!n)}}function eo(r){const t=z(r.from);let n=N(r.nonce,"tx.nonce").toString(16);return n==="0"?n="0x":n.length%2?n="0x0"+n:n="0x"+n,z($(ht(Qt([t,n])),12))}var no="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";const pr=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),Ar=4;function ro(r){let t=0;function e(){return r[t++]<<8|r[t++]}let n=e(),s=1,i=[0,1];for(let P=1;P<n;P++)i.push(s+=e());let o=e(),a=t;t+=o;let c=0,l=0;function h(){return c==0&&(l=l<<8|r[t++],c=8),l>>--c&1}const u=31,d=2**u,w=d>>>1,A=w>>1,f=d-1;let g=0;for(let P=0;P<u;P++)g=g<<1|h();let m=[],x=0,b=d;for(;;){let P=Math.floor(((g-x+1)*s-1)/b),E=0,k=n;for(;k-E>1;){let T=E+k>>>1;P<i[T]?k=T:E=T}if(E==0)break;m.push(E);let C=x+Math.floor(b*i[E]/s),U=x+Math.floor(b*i[E+1]/s)-1;for(;((C^U)&w)==0;)g=g<<1&f|h(),C=C<<1&f,U=U<<1&f|1;for(;C&~U&A;)g=g&w|g<<1&f>>>1|h(),C=C<<1^w,U=(U^w)<<1|w|1;x=C,b=1+U-C}let S=n-4;return m.map(P=>{switch(P-S){case 3:return S+65792+(r[a++]<<16|r[a++]<<8|r[a++]);case 2:return S+256+(r[a++]<<8|r[a++]);case 1:return S+r[a++];default:return P-1}})}function so(r){let t=0;return()=>r[t++]}function rs(r){return so(ro(io(r)))}function io(r){let t=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((s,i)=>t[s.charCodeAt(0)]=i);let e=r.length,n=new Uint8Array(6*e>>3);for(let s=0,i=0,o=0,a=0;s<e;s++)a=a<<6|t[r.charCodeAt(s)],o+=6,o>=8&&(n[i++]=a>>(o-=8));return n}function oo(r){return r&1?~r>>1:r>>1}function ao(r,t){let e=Array(r);for(let n=0,s=0;n<r;n++)e[n]=s+=oo(t());return e}function ge(r,t=0){let e=[];for(;;){let n=r(),s=r();if(!s)break;t+=n;for(let i=0;i<s;i++)e.push(t+i);t+=s+1}return e}function ss(r){return pe(()=>{let t=ge(r);if(t.length)return t})}function is(r){let t=[];for(;;){let e=r();if(e==0)break;t.push(co(e,r))}for(;;){let e=r()-1;if(e<0)break;t.push(lo(e,r))}return t.flat()}function pe(r){let t=[];for(;;){let e=r(t.length);if(!e)break;t.push(e)}return t}function os(r,t,e){let n=Array(r).fill().map(()=>[]);for(let s=0;s<t;s++)ao(r,e).forEach((i,o)=>n[o].push(i));return n}function co(r,t){let e=1+t(),n=t(),s=pe(t);return os(s.length,1+r,t).flatMap((o,a)=>{let[c,...l]=o;return Array(s[a]).fill().map((h,u)=>{let d=u*n;return[c+u*e,l.map(w=>w+d)]})})}function lo(r,t){let e=1+t();return os(e,1+r,t).map(s=>[s[0],s.slice(1)])}function uo(r){let t=[],e=ge(r);return s(n([]),[]),t;function n(i){let o=r(),a=pe(()=>{let c=ge(r).map(l=>e[l]);if(c.length)return n(c)});return{S:o,B:a,Q:i}}function s({S:i,B:o},a,c){if(!(i&4&&c===a[a.length-1])){i&2&&(c=a[a.length-1]),i&1&&t.push(a);for(let l of o)for(let h of l.Q)s(l,[...a,h],c)}}}function ho(r){return r.toString(16).toUpperCase().padStart(2,"0")}function as(r){return`{${ho(r)}}`}function fo(r){let t=[];for(let e=0,n=r.length;e<n;){let s=r.codePointAt(e);e+=s<65536?1:2,t.push(s)}return t}function ne(r){let e=r.length;if(e<4096)return String.fromCodePoint(...r);let n=[];for(let s=0;s<e;)n.push(String.fromCodePoint(...r.slice(s,s+=4096)));return n.join("")}function go(r,t){let e=r.length,n=e-t.length;for(let s=0;n==0&&s<e;s++)n=r[s]-t[s];return n}var po="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";const Ae=44032,Ue=4352,Le=4449,Me=4519,cs=19,ls=21,re=28,Qe=ls*re,Ao=cs*Qe,wo=Ae+Ao,mo=Ue+cs,yo=Le+ls,bo=Me+re;function le(r){return r>>24&255}function us(r){return r&16777215}let yn,wr,bn,Se;function Eo(){let r=rs(po);yn=new Map(ss(r).flatMap((t,e)=>t.map(n=>[n,e+1<<24]))),wr=new Set(ge(r)),bn=new Map,Se=new Map;for(let[t,e]of is(r)){if(!wr.has(t)&&e.length==2){let[n,s]=e,i=Se.get(n);i||(i=new Map,Se.set(n,i)),i.set(s,t)}bn.set(t,e.reverse())}}function hs(r){return r>=Ae&&r<wo}function Bo(r,t){if(r>=Ue&&r<mo&&t>=Le&&t<yo)return Ae+(r-Ue)*Qe+(t-Le)*re;if(hs(r)&&t>Me&&t<bo&&(r-Ae)%re==0)return r+(t-Me);{let e=Se.get(r);return e&&(e=e.get(t),e)?e:-1}}function fs(r){yn||Eo();let t=[],e=[],n=!1;function s(i){let o=yn.get(i);o&&(n=!0,i|=o),t.push(i)}for(let i of r)for(;;){if(i<128)t.push(i);else if(hs(i)){let o=i-Ae,a=o/Qe|0,c=o%Qe/re|0,l=o%re;s(Ue+a),s(Le+c),l>0&&s(Me+l)}else{let o=bn.get(i);o?e.push(...o):s(i)}if(!e.length)break;i=e.pop()}if(n&&t.length>1){let i=le(t[0]);for(let o=1;o<t.length;o++){let a=le(t[o]);if(a==0||i<=a){i=a;continue}let c=o-1;for(;;){let l=t[c+1];if(t[c+1]=t[c],t[c]=l,!c||(i=le(t[--c]),i<=a))break}i=le(t[o])}}return t}function xo(r){let t=[],e=[],n=-1,s=0;for(let i of r){let o=le(i),a=us(i);if(n==-1)o==0?n=a:t.push(a);else if(s>0&&s>=o)o==0?(t.push(n,...e),e.length=0,n=a):e.push(a),s=o;else{let c=Bo(n,a);c>=0?n=c:s==0&&o==0?(t.push(n),n=a):(e.push(a),s=o)}}return n>=0&&t.push(n,...e),t}function ds(r){return fs(r).map(us)}function Co(r){return xo(fs(r))}const mr=45,gs=".",ps=65039,As=1,Ge=r=>Array.from(r);function we(r,t){return r.P.has(t)||r.Q.has(t)}class Po extends Array{get is_emoji(){return!0}}let En,ws,Ut,Bn,ms,qt,nn,jt,Dt,yr,xn;function Fn(){if(En)return;let r=rs(no);const t=()=>ge(r),e=()=>new Set(t()),n=(h,u)=>u.forEach(d=>h.add(d));En=new Map(is(r)),ws=e(),Ut=t(),Bn=new Set(t().map(h=>Ut[h])),Ut=new Set(Ut),ms=e(),e();let s=ss(r),i=r();const o=()=>{let h=new Set;return t().forEach(u=>n(h,s[u])),n(h,t()),h};qt=pe(h=>{let u=pe(r).map(d=>d+96);if(u.length){let d=h>=i;u[0]-=32,u=ne(u),d&&(u=`Restricted[${u}]`);let w=o(),A=o(),f=!r();return{N:u,P:w,Q:A,M:f,R:d}}}),nn=e(),jt=new Map;let a=t().concat(Ge(nn)).sort((h,u)=>h-u);a.forEach((h,u)=>{let d=r(),w=a[u]=d?a[u-d]:{V:[],M:new Map};w.V.push(h),nn.has(h)||jt.set(h,w)});for(let{V:h,M:u}of new Set(jt.values())){let d=[];for(let A of h){let f=qt.filter(m=>we(m,A)),g=d.find(({G:m})=>f.some(x=>m.has(x)));g||(g={G:new Set,V:[]},d.push(g)),g.V.push(A),n(g.G,f)}let w=d.flatMap(A=>Ge(A.G));for(let{G:A,V:f}of d){let g=new Set(w.filter(m=>!A.has(m)));for(let m of f)u.set(m,g)}}Dt=new Set;let c=new Set;const l=h=>Dt.has(h)?c.add(h):Dt.add(h);for(let h of qt){for(let u of h.P)l(u);for(let u of h.Q)l(u)}for(let h of Dt)!jt.has(h)&&!c.has(h)&&jt.set(h,As);n(Dt,ds(Dt)),yr=uo(r).map(h=>Po.from(h)).sort(go),xn=new Map;for(let h of yr){let u=[xn];for(let d of h){let w=u.map(A=>{let f=A.get(d);return f||(f=new Map,A.set(d,f)),f});d===ps?u.push(...w):u=w}for(let d of u)d.V=h}}function Un(r){return(ys(r)?"":`${Ln(je([r]))} `)+as(r)}function Ln(r){return`"${r}"`}function Io(r){if(r.length>=4&&r[2]==mr&&r[3]==mr)throw new Error(`invalid label extension: "${ne(r.slice(0,4))}"`)}function No(r){for(let e=r.lastIndexOf(95);e>0;)if(r[--e]!==95)throw new Error("underscore allowed only at start")}function ko(r){let t=r[0],e=pr.get(t);if(e)throw he(`leading ${e}`);let n=r.length,s=-1;for(let i=1;i<n;i++){t=r[i];let o=pr.get(t);if(o){if(s==i)throw he(`${e} + ${o}`);s=i+1,e=o}}if(s==n)throw he(`trailing ${e}`)}function je(r,t=1/0,e=as){let n=[];vo(r[0])&&n.push("◌"),r.length>t&&(t>>=1,r=[...r.slice(0,t),8230,...r.slice(-t)]);let s=0,i=r.length;for(let o=0;o<i;o++){let a=r[o];ys(a)&&(n.push(ne(r.slice(s,o))),n.push(e(a)),s=o+1)}return n.push(ne(r.slice(s,i))),n.join("")}function vo(r){return Fn(),Ut.has(r)}function ys(r){return Fn(),ms.has(r)}function So(r){return To(Ro(r,Co,Lo))}function Ro(r,t,e){if(!r)return[];Fn();let n=0;return r.split(gs).map(s=>{let i=fo(s),o={input:i,offset:n};n+=i.length+1;try{let a=o.tokens=Uo(i,t,e),c=a.length,l;if(!c)throw new Error("empty label");let h=o.output=a.flat();if(No(h),!(o.emoji=c>1||a[0].is_emoji)&&h.every(d=>d<128))Io(h),l="ASCII";else{let d=a.flatMap(w=>w.is_emoji?[]:w);if(!d.length)l="Emoji";else{if(Ut.has(h[0]))throw he("leading combining mark");for(let f=1;f<c;f++){let g=a[f];if(!g.is_emoji&&Ut.has(g[0]))throw he(`emoji + combining mark: "${ne(a[f-1])} + ${je([g[0]])}"`)}ko(h);let w=Ge(new Set(d)),[A]=Do(w);Fo(A,d),Oo(A,w),l=A.N}}o.type=l}catch(a){o.error=a}return o})}function Oo(r,t){let e,n=[];for(let s of t){let i=jt.get(s);if(i===As)return;if(i){let o=i.M.get(s);if(e=e?e.filter(a=>o.has(a)):Ge(o),!e.length)return}else n.push(s)}if(e){for(let s of e)if(n.every(i=>we(s,i)))throw new Error(`whole-script confusable: ${r.N}/${s.N}`)}}function Do(r){let t=qt;for(let e of r){let n=t.filter(s=>we(s,e));if(!n.length)throw qt.some(s=>we(s,e))?Es(t[0],e):bs(e);if(t=n,n.length==1)break}return t}function To(r){return r.map(({input:t,error:e,output:n})=>{if(e){let s=e.message;throw new Error(r.length==1?s:`Invalid label ${Ln(je(t,63))}: ${s}`)}return ne(n)}).join(gs)}function bs(r){return new Error(`disallowed character: ${Un(r)}`)}function Es(r,t){let e=Un(t),n=qt.find(s=>s.P.has(t));return n&&(e=`${n.N} ${e}`),new Error(`illegal mixture: ${r.N} + ${e}`)}function he(r){return new Error(`illegal placement: ${r}`)}function Fo(r,t){for(let e of t)if(!we(r,e))throw Es(r,e);if(r.M){let e=ds(t);for(let n=1,s=e.length;n<s;n++)if(Bn.has(e[n])){let i=n+1;for(let o;i<s&&Bn.has(o=e[i]);i++)for(let a=n;a<i;a++)if(e[a]==o)throw new Error(`duplicate non-spacing marks: ${Un(o)}`);if(i-n>Ar)throw new Error(`excessive non-spacing marks: ${Ln(je(e.slice(n-1,i)))} (${i-n}/${Ar})`);n=i}}}function Uo(r,t,e){let n=[],s=[];for(r=r.slice().reverse();r.length;){let i=Mo(r);if(i)s.length&&(n.push(t(s)),s=[]),n.push(e(i));else{let o=r.pop();if(Dt.has(o))s.push(o);else{let a=En.get(o);if(a)s.push(...a);else if(!ws.has(o))throw bs(o)}}}return s.length&&n.push(t(s)),n}function Lo(r){return r.filter(t=>t!=ps)}function Mo(r,t){let e=xn,n,s=r.length;for(;s&&(e=e.get(r[--s]),!!e);){let{V:i}=e;i&&(n=i,r.length=s)}return n}const Bs=new Uint8Array(32);Bs.fill(0);function br(r){return p(r.length!==0,"invalid ENS name; empty component","comp",r),r}function xs(r){const t=Lt(Qo(r)),e=[];if(r.length===0)return e;let n=0;for(let s=0;s<t.length;s++)t[s]===46&&(e.push(br(t.slice(n,s))),n=s+1);return p(n<t.length,"invalid ENS name; empty component","name",r),e.push(br(t.slice(n))),e}function Qo(r){try{if(r.length===0)throw new Error("empty label");return So(r)}catch(t){p(!1,`invalid ENS name (${t.message})`,"name",r)}}function Cn(r){p(typeof r=="string","invalid ENS name; not a string","name",r),p(r.length,"invalid ENS name (empty label)","name",r);let t=Bs;const e=xs(r);for(;e.length;)t=ht(et([t,ht(e.pop())]));return v(t)}function Go(r,t){const e=t;return p(e<=255,"DNS encoded label cannot exceed 255","length",e),v(et(xs(r).map(n=>{p(n.length<=e,`label ${JSON.stringify(r)} exceeds ${e} bytes`,"name",r);const s=new Uint8Array(n.length+1);return s.set(n,1),s[0]=s.length-1,s})))+"00"}function Ho(r){let t;return typeof r=="string"?t=Bt.computePublicKey(r,!1):t=r.publicKey,z(ht("0x"+t.substring(4)).substring(26))}function Vo(r,t){return Ho(Bt.recoverPublicKey(r,t))}const Y=BigInt(0),Jo=BigInt(2),zo=BigInt(27),Ko=BigInt(28),jo=BigInt(35),Zo=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),rn=4096*32;function Er(r,t){let e=r.toString(16);for(;e.length<2;)e="0"+e;return e+=oe(t).substring(4),"0x"+e}function Ze(r){return r==="0x"?null:z(r)}function Mn(r,t){try{return ie(r)}catch(e){p(!1,e.message,t,r)}}function ye(r,t){return r==="0x"?0:L(r,t)}function J(r,t){if(r==="0x")return Y;const e=N(r,t);return p(e<=Zo,"value exceeds uint size",t,e),e}function G(r,t){const e=N(r,"value"),n=ot(e);return p(n.length<=32,"value too large",`tx.${t}`,e),n}function Qn(r){return ie(r).map(t=>[t.address,t.storageKeys])}function Yo(r,t){p(Array.isArray(r),`invalid ${t}`,"value",r);for(let e=0;e<r.length;e++)p(tt(r[e],32),"invalid ${ param } hash",`value[${e}]`,r[e]);return r}function qo(r){const t=He(r);p(Array.isArray(t)&&(t.length===9||t.length===6),"invalid field count for legacy transaction","data",r);const e={type:0,nonce:ye(t[0],"nonce"),gasPrice:J(t[1],"gasPrice"),gasLimit:J(t[2],"gasLimit"),to:Ze(t[3]),value:J(t[4],"value"),data:v(t[5]),chainId:Y};if(t.length===6)return e;const n=J(t[6],"v"),s=J(t[7],"r"),i=J(t[8],"s");if(s===Y&&i===Y)e.chainId=n;else{let o=(n-jo)/Jo;o<Y&&(o=Y),e.chainId=o,p(o!==Y||n===zo||n===Ko,"non-canonical legacy v","v",t[6]),e.signature=K.from({r:Xt(t[7],32),s:Xt(t[8],32),v:n})}return e}function Wo(r,t){const e=[G(r.nonce,"nonce"),G(r.gasPrice||0,"gasPrice"),G(r.gasLimit,"gasLimit"),r.to||"0x",G(r.value,"value"),r.data];let n=Y;if(r.chainId!=Y)n=N(r.chainId,"tx.chainId"),p(!t||t.networkV==null||t.legacyChainId===n,"tx.chainId/sig.v mismatch","sig",t);else if(r.signature){const i=r.signature.legacyChainId;i!=null&&(n=i)}if(!t)return n!==Y&&(e.push(ot(n)),e.push("0x"),e.push("0x")),Qt(e);let s=BigInt(27+t.yParity);return n!==Y?s=K.getChainIdV(n,t.v):BigInt(t.v)!==s&&p(!1,"tx.chainId/sig.v mismatch","sig",t),e.push(ot(s)),e.push(ot(t.r)),e.push(ot(t.s)),Qt(e)}function Gn(r,t){let e;try{if(e=ye(t[0],"yParity"),e!==0&&e!==1)throw new Error("bad yParity")}catch{p(!1,"invalid yParity","yParity",t[0])}const n=Xt(t[1],32),s=Xt(t[2],32),i=K.from({r:n,s,yParity:e});r.signature=i}function Xo(r){const t=He(H(r).slice(1));p(Array.isArray(t)&&(t.length===9||t.length===12),"invalid field count for transaction type: 2","data",v(r));const e={type:2,chainId:J(t[0],"chainId"),nonce:ye(t[1],"nonce"),maxPriorityFeePerGas:J(t[2],"maxPriorityFeePerGas"),maxFeePerGas:J(t[3],"maxFeePerGas"),gasPrice:null,gasLimit:J(t[4],"gasLimit"),to:Ze(t[5]),value:J(t[6],"value"),data:v(t[7]),accessList:Mn(t[8],"accessList")};return t.length===9||Gn(e,t.slice(9)),e}function _o(r,t){const e=[G(r.chainId,"chainId"),G(r.nonce,"nonce"),G(r.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),G(r.maxFeePerGas||0,"maxFeePerGas"),G(r.gasLimit,"gasLimit"),r.to||"0x",G(r.value,"value"),r.data,Qn(r.accessList||[])];return t&&(e.push(G(t.yParity,"yParity")),e.push(ot(t.r)),e.push(ot(t.s))),et(["0x02",Qt(e)])}function $o(r){const t=He(H(r).slice(1));p(Array.isArray(t)&&(t.length===8||t.length===11),"invalid field count for transaction type: 1","data",v(r));const e={type:1,chainId:J(t[0],"chainId"),nonce:ye(t[1],"nonce"),gasPrice:J(t[2],"gasPrice"),gasLimit:J(t[3],"gasLimit"),to:Ze(t[4]),value:J(t[5],"value"),data:v(t[6]),accessList:Mn(t[7],"accessList")};return t.length===8||Gn(e,t.slice(8)),e}function ta(r,t){const e=[G(r.chainId,"chainId"),G(r.nonce,"nonce"),G(r.gasPrice||0,"gasPrice"),G(r.gasLimit,"gasLimit"),r.to||"0x",G(r.value,"value"),r.data,Qn(r.accessList||[])];return t&&(e.push(G(t.yParity,"recoveryParam")),e.push(ot(t.r)),e.push(ot(t.s))),et(["0x01",Qt(e)])}function ea(r){let t=He(H(r).slice(1)),e="3",n=null;if(t.length===4&&Array.isArray(t[0])){e="3 (network format)";const i=t[1],o=t[2],a=t[3];p(Array.isArray(i),"invalid network format: blobs not an array","fields[1]",i),p(Array.isArray(o),"invalid network format: commitments not an array","fields[2]",o),p(Array.isArray(a),"invalid network format: proofs not an array","fields[3]",a),p(i.length===o.length,"invalid network format: blobs/commitments length mismatch","fields",t),p(i.length===a.length,"invalid network format: blobs/proofs length mismatch","fields",t),n=[];for(let c=0;c<t[1].length;c++)n.push({data:i[c],commitment:o[c],proof:a[c]});t=t[0]}p(Array.isArray(t)&&(t.length===11||t.length===14),`invalid field count for transaction type: ${e}`,"data",v(r));const s={type:3,chainId:J(t[0],"chainId"),nonce:ye(t[1],"nonce"),maxPriorityFeePerGas:J(t[2],"maxPriorityFeePerGas"),maxFeePerGas:J(t[3],"maxFeePerGas"),gasPrice:null,gasLimit:J(t[4],"gasLimit"),to:Ze(t[5]),value:J(t[6],"value"),data:v(t[7]),accessList:Mn(t[8],"accessList"),maxFeePerBlobGas:J(t[9],"maxFeePerBlobGas"),blobVersionedHashes:t[10]};n&&(s.blobs=n),p(s.to!=null,`invalid address for transaction type: ${e}`,"data",r),p(Array.isArray(s.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",r);for(let i=0;i<s.blobVersionedHashes.length;i++)p(tt(s.blobVersionedHashes[i],32),`invalid blobVersionedHash at index ${i}: must be length 32`,"data",r);return t.length===11||Gn(s,t.slice(11)),s}function na(r,t,e){const n=[G(r.chainId,"chainId"),G(r.nonce,"nonce"),G(r.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),G(r.maxFeePerGas||0,"maxFeePerGas"),G(r.gasLimit,"gasLimit"),r.to||de,G(r.value,"value"),r.data,Qn(r.accessList||[]),G(r.maxFeePerBlobGas||0,"maxFeePerBlobGas"),Yo(r.blobVersionedHashes||[],"blobVersionedHashes")];return t&&(n.push(G(t.yParity,"yParity")),n.push(ot(t.r)),n.push(ot(t.s)),e)?et(["0x03",Qt([n,e.map(s=>s.data),e.map(s=>s.commitment),e.map(s=>s.proof)])]):et(["0x03",Qt(n)])}class mt{#t;#e;#n;#r;#s;#o;#i;#a;#d;#l;#g;#p;#c;#u;#h;#f;get type(){return this.#t}set type(t){switch(t){case null:this.#t=null;break;case 0:case"legacy":this.#t=0;break;case 1:case"berlin":case"eip-2930":this.#t=1;break;case 2:case"london":case"eip-1559":this.#t=2;break;case 3:case"cancun":case"eip-4844":this.#t=3;break;default:p(!1,"unsupported transaction type","type",t)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const t=this.#e;return t==null&&this.type===3?de:t}set to(t){this.#e=t==null?null:z(t)}get nonce(){return this.#r}set nonce(t){this.#r=L(t,"value")}get gasLimit(){return this.#s}set gasLimit(t){this.#s=N(t)}get gasPrice(){const t=this.#o;return t==null&&(this.type===0||this.type===1)?Y:t}set gasPrice(t){this.#o=t==null?null:N(t,"gasPrice")}get maxPriorityFeePerGas(){const t=this.#i;return t??(this.type===2||this.type===3?Y:null)}set maxPriorityFeePerGas(t){this.#i=t==null?null:N(t,"maxPriorityFeePerGas")}get maxFeePerGas(){const t=this.#a;return t??(this.type===2||this.type===3?Y:null)}set maxFeePerGas(t){this.#a=t==null?null:N(t,"maxFeePerGas")}get data(){return this.#n}set data(t){this.#n=v(t)}get value(){return this.#d}set value(t){this.#d=N(t,"value")}get chainId(){return this.#l}set chainId(t){this.#l=N(t)}get signature(){return this.#g||null}set signature(t){this.#g=t==null?null:K.from(t)}get accessList(){const t=this.#p||null;return t??(this.type===1||this.type===2||this.type===3?[]:null)}set accessList(t){this.#p=t==null?null:ie(t)}get maxFeePerBlobGas(){const t=this.#c;return t==null&&this.type===3?Y:t}set maxFeePerBlobGas(t){this.#c=t==null?null:N(t,"maxFeePerBlobGas")}get blobVersionedHashes(){let t=this.#u;return t==null&&this.type===3?[]:t}set blobVersionedHashes(t){if(t!=null){p(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;e<t.length;e++)p(tt(t[e],32),"invalid blobVersionedHash",`value[${e}]`,t[e])}this.#u=t}get blobs(){return this.#f==null?null:this.#f.map(t=>Object.assign({},t))}set blobs(t){if(t==null){this.#f=null;return}const e=[],n=[];for(let s=0;s<t.length;s++){const i=t[s];if(Hs(i)){I(this.#h,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let o=H(i);if(p(o.length<=rn,"blob is too large",`blobs[${s}]`,i),o.length!==rn){const l=new Uint8Array(rn);l.set(o),o=l}const a=this.#h.blobToKzgCommitment(o),c=v(this.#h.computeBlobKzgProof(o,a));e.push({data:v(o),commitment:v(a),proof:c}),n.push(Er(1,a))}else{const o=v(i.commitment);e.push({data:v(i.data),commitment:o,proof:v(i.proof)}),n.push(Er(1,o))}}this.#f=e,this.#u=n}get kzg(){return this.#h}set kzg(t){this.#h=t}constructor(){this.#t=null,this.#e=null,this.#r=0,this.#s=Y,this.#o=null,this.#i=null,this.#a=null,this.#n="0x",this.#d=Y,this.#l=Y,this.#g=null,this.#p=null,this.#c=null,this.#u=null,this.#f=null,this.#h=null}get hash(){return this.signature==null?null:ht(this.#A(!0,!1))}get unsignedHash(){return ht(this.unsignedSerialized)}get from(){return this.signature==null?null:Vo(this.unsignedHash,this.signature)}get fromPublicKey(){return this.signature==null?null:Bt.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#A(t,e){I(!t||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const n=t?this.signature:null;switch(this.inferType()){case 0:return Wo(this,n);case 1:return ta(this,n);case 2:return _o(this,n);case 3:return na(this,n,e?this.blobs:null)}I(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#A(!0,!0)}get unsignedSerialized(){return this.#A(!1,!1)}inferType(){const t=this.inferTypes();return t.indexOf(2)>=0?2:t.pop()}inferTypes(){const t=this.gasPrice!=null,e=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,n=this.accessList!=null,s=this.#c!=null||this.#u;this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null&&I(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),I(!e||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),I(this.type!==0||!n,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const i=[];return this.type!=null?i.push(this.type):e?i.push(2):t?(i.push(1),n||i.push(0)):n?(i.push(1),i.push(2)):(s&&this.to||(i.push(0),i.push(1),i.push(2)),i.push(3)),i.sort(),i}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return mt.from(this)}toJSON(){const t=e=>e==null?null:e.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(t==null)return new mt;if(typeof t=="string"){const n=H(t);if(n[0]>=127)return mt.from(qo(n));switch(n[0]){case 1:return mt.from($o(n));case 2:return mt.from(Xo(n));case 3:return mt.from(ea(n))}I(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new mt;return t.type!=null&&(e.type=t.type),t.to!=null&&(e.to=t.to),t.nonce!=null&&(e.nonce=t.nonce),t.gasLimit!=null&&(e.gasLimit=t.gasLimit),t.gasPrice!=null&&(e.gasPrice=t.gasPrice),t.maxPriorityFeePerGas!=null&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas),t.maxFeePerGas!=null&&(e.maxFeePerGas=t.maxFeePerGas),t.maxFeePerBlobGas!=null&&(e.maxFeePerBlobGas=t.maxFeePerBlobGas),t.data!=null&&(e.data=t.data),t.value!=null&&(e.value=t.value),t.chainId!=null&&(e.chainId=t.chainId),t.signature!=null&&(e.signature=K.from(t.signature)),t.accessList!=null&&(e.accessList=t.accessList),t.blobVersionedHashes!=null&&(e.blobVersionedHashes=t.blobVersionedHashes),t.kzg!=null&&(e.kzg=t.kzg),t.blobs!=null&&(e.blobs=t.blobs),t.hash!=null&&(p(e.isSigned(),"unsigned transaction cannot define '.hash'","tx",t),p(e.hash===t.hash,"hash mismatch","tx",t)),t.from!=null&&(p(e.isSigned(),"unsigned transaction cannot define '.from'","tx",t),p(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}}const Cs=new Uint8Array(32);Cs.fill(0);const ra=BigInt(-1),Ps=BigInt(0),Is=BigInt(1),sa=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function ia(r){const t=H(r),e=t.length%32;return e?et([t,Cs.slice(e)]):v(t)}const oa=_t(Is,32),aa=_t(Ps,32),Br={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},sn=["name","version","chainId","verifyingContract","salt"];function xr(r){return function(t){return p(typeof t=="string",`invalid domain value for ${JSON.stringify(r)}`,`domain.${r}`,t),t}}const ca={name:xr("name"),version:xr("version"),chainId:function(r){const t=N(r,"domain.chainId");return p(t>=0,"invalid chain ID","domain.chainId",r),Number.isSafeInteger(t)?Number(t):Zt(t)},verifyingContract:function(r){try{return z(r).toLowerCase()}catch{}p(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",r)},salt:function(r){const t=H(r,"domain.salt");return p(t.length===32,'invalid domain value "salt"',"domain.salt",r),v(t)}};function on(r){{const t=r.match(/^(u?)int(\d+)$/);if(t){const e=t[1]==="",n=parseInt(t[2]);p(n%8===0&&n!==0&&n<=256&&t[2]===String(n),"invalid numeric width","type",r);const s=Vs(sa,e?n-1:n),i=e?(s+Is)*ra:Ps;return function(o){const a=N(o,"value");return p(a>=i&&a<=s,`value out-of-bounds for ${r}`,"value",a),_t(e?Js(a,256):a,32)}}}{const t=r.match(/^bytes(\d+)$/);if(t){const e=parseInt(t[1]);return p(e!==0&&e<=32&&t[1]===String(e),"invalid bytes width","type",r),function(n){const s=H(n);return p(s.length===e,`invalid length for ${r}`,"value",n),ia(n)}}}switch(r){case"address":return function(t){return Xt(z(t),32)};case"bool":return function(t){return t?oa:aa};case"bytes":return function(t){return ht(t)};case"string":return function(t){return Lr(t)}}return null}function Cr(r,t){return`${r}(${t.map(({name:e,type:n})=>n+" "+e).join(",")})`}function Ne(r){const t=r.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return t?{base:t[1],index:t[2]+t[4],array:{base:t[1],prefix:t[1]+t[2],count:t[5]?parseInt(t[5]):-1}}:{base:r}}class it{primaryType;#t;get types(){return JSON.parse(this.#t)}#e;#n;constructor(t){this.#e=new Map,this.#n=new Map;const e=new Map,n=new Map,s=new Map,i={};Object.keys(t).forEach(c=>{i[c]=t[c].map(({name:l,type:h})=>{let{base:u,index:d}=Ne(h);return u==="int"&&!t.int&&(u="int256"),u==="uint"&&!t.uint&&(u="uint256"),{name:l,type:u+(d||"")}}),e.set(c,new Set),n.set(c,[]),s.set(c,new Set)}),this.#t=JSON.stringify(i);for(const c in i){const l=new Set;for(const h of i[c]){p(!l.has(h.name),`duplicate variable name ${JSON.stringify(h.name)} in ${JSON.stringify(c)}`,"types",t),l.add(h.name);const u=Ne(h.type).base;p(u!==c,`circular type reference to ${JSON.stringify(u)}`,"types",t),!on(u)&&(p(n.has(u),`unknown type ${JSON.stringify(u)}`,"types",t),n.get(u).push(c),e.get(c).add(u))}}const o=Array.from(n.keys()).filter(c=>n.get(c).length===0);p(o.length!==0,"missing primary type","types",t),p(o.length===1,`ambiguous primary types or unused types: ${o.map(c=>JSON.stringify(c)).join(", ")}`,"types",t),gt(this,{primaryType:o[0]});function a(c,l){p(!l.has(c),`circular type reference to ${JSON.stringify(c)}`,"types",t),l.add(c);for(const h of e.get(c))if(n.has(h)){a(h,l);for(const u of l)s.get(u).add(h)}l.delete(c)}a(this.primaryType,new Set);for(const[c,l]of s){const h=Array.from(l);h.sort(),this.#e.set(c,Cr(c,i[c])+h.map(u=>Cr(u,i[u])).join(""))}}getEncoder(t){let e=this.#n.get(t);return e||(e=this.#r(t),this.#n.set(t,e)),e}#r(t){{const s=on(t);if(s)return s}const e=Ne(t).array;if(e){const s=e.prefix,i=this.getEncoder(s);return o=>{p(e.count===-1||e.count===o.length,`array length mismatch; expected length ${e.count}`,"value",o);let a=o.map(i);return this.#e.has(s)&&(a=a.map(ht)),ht(et(a))}}const n=this.types[t];if(n){const s=Lr(this.#e.get(t));return i=>{const o=n.map(({name:a,type:c})=>{const l=this.getEncoder(c)(i[a]);return this.#e.has(c)?ht(l):l});return o.unshift(s),et(o)}}p(!1,`unknown type: ${t}`,"type",t)}encodeType(t){const e=this.#e.get(t);return p(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return ht(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,n){if(on(t))return n(t,e);const s=Ne(t).array;if(s)return p(s.count===-1||s.count===e.length,`array length mismatch; expected length ${s.count}`,"value",e),e.map(o=>this._visit(s.prefix,o,n));const i=this.types[t];if(i)return i.reduce((o,{name:a,type:c})=>(o[a]=this._visit(c,e[a],n),o),{});p(!1,`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new it(t)}static getPrimaryType(t){return it.from(t).primaryType}static hashStruct(t,e,n){return it.from(e).hashStruct(t,n)}static hashDomain(t){const e=[];for(const n in t){if(t[n]==null)continue;const s=Br[n];p(s,`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",t),e.push({name:n,type:s})}return e.sort((n,s)=>sn.indexOf(n.name)-sn.indexOf(s.name)),it.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,n){return et(["0x1901",it.hashDomain(t),it.from(e).hash(n)])}static hash(t,e,n){return ht(it.encode(t,e,n))}static async resolveNames(t,e,n,s){t=Object.assign({},t);for(const a in t)t[a]==null&&delete t[a];const i={};t.verifyingContract&&!tt(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const o=it.from(e);o.visit(n,(a,c)=>(a==="address"&&!tt(c,20)&&(i[c]="0x"),c));for(const a in i)i[a]=await s(a);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),n=o.visit(n,(a,c)=>a==="address"&&i[c]?i[c]:c),{domain:t,value:n}}static getPayload(t,e,n){it.hashDomain(t);const s={},i=[];sn.forEach(c=>{const l=t[c];l!=null&&(s[c]=ca[c](l),i.push({name:c,type:Br[c]}))});const o=it.from(e);e=o.types;const a=Object.assign({},e);return p(a.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",e),a.EIP712Domain=i,o.encode(n),{types:a,domain:s,primaryType:o.primaryType,message:o.visit(n,(c,l)=>{if(c.match(/^bytes(\d*)/))return v(H(l));if(c.match(/^u?int/))return N(l).toString();switch(c){case"address":return l.toLowerCase();case"bool":return!!l;case"string":return p(typeof l=="string","invalid string","value",l),l}p(!1,"unsupported type","type",c)})}}}function an(r){return r.match(/^ipfs:\/\/ipfs\//i)?r=r.substring(12):r.match(/^ipfs:\/\//i)?r=r.substring(7):p(!1,"unsupported IPFS format","link",r),`https://gateway.ipfs.io/ipfs/${r}`}class la{name;constructor(t){gt(this,{name:t})}connect(t){return this}supportsCoinType(t){return!1}async encodeAddress(t,e){throw new Error("unsupported coin")}async decodeAddress(t,e){throw new Error("unsupported coin")}}const Ns=new RegExp("^(ipfs)://(.*)$","i"),Pr=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Ns,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class Wt{provider;address;name;#t;#e;constructor(t,e,n){gt(this,{provider:t,address:e,name:n}),this.#t=null,this.#e=new ue(e,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],t)}async supportsWildcard(){return this.#t==null&&(this.#t=(async()=>{try{return await this.#e.supportsInterface("0x9061b923")}catch(t){if(dt(t,"CALL_EXCEPTION"))return!1;throw this.#t=null,t}})()),await this.#t}async#n(t,e){e=(e||[]).slice();const n=this.#e.interface;e.unshift(Cn(this.name));let s=null;await this.supportsWildcard()&&(s=n.getFunction(t),I(s,"missing fragment","UNKNOWN_ERROR",{info:{funcName:t}}),e=[Go(this.name,255),n.encodeFunctionData(s,e)],t="resolve(bytes,bytes)"),e.push({enableCcipRead:!0});try{const i=await this.#e[t](...e);return s?n.decodeFunctionResult(s,i)[0]:i}catch(i){if(!dt(i,"CALL_EXCEPTION"))throw i}return null}async getAddress(t){if(t==null&&(t=60),t===60)try{const i=await this.#n("addr(bytes32)");return i==null||i===de?null:i}catch(i){if(dt(i,"CALL_EXCEPTION"))return null;throw i}if(t>=0&&t<2147483648){let i=t+2147483648;const o=await this.#n("addr(bytes32,uint)",[i]);if(tt(o,20))return z(o)}let e=null;for(const i of this.provider.plugins)if(i instanceof la&&i.supportsCoinType(t)){e=i;break}if(e==null)return null;const n=await this.#n("addr(bytes32,uint)",[t]);if(n==null||n==="0x")return null;const s=await e.decodeAddress(t,n);if(s!=null)return s;I(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${t})`,info:{coinType:t,data:n}})}async getText(t){const e=await this.#n("text(bytes32,string)",[t]);return e==null||e==="0x"?null:e}async getContentHash(){const t=await this.#n("contenthash(bytes32)");if(t==null||t==="0x")return null;const e=t.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const s=e[1]==="e3010170"?"ipfs":"ipns",i=parseInt(e[4],16);if(e[5].length===i*2)return`${s}://${$s("0x"+e[2])}`}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&n[1].length===64)return`bzz://${n[1]}`;I(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:t}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const t=[{type:"name",value:this.name}];try{const e=await this.getText("avatar");if(e==null)return t.push({type:"!avatar",value:""}),{url:null,linkage:t};t.push({type:"avatar",value:e});for(let n=0;n<Pr.length;n++){const s=e.match(Pr[n]);if(s==null)continue;const i=s[1].toLowerCase();switch(i){case"https":case"data":return t.push({type:"url",value:e}),{linkage:t,url:e};case"ipfs":{const o=an(e);return t.push({type:"ipfs",value:e}),t.push({type:"url",value:o}),{linkage:t,url:o}}case"erc721":case"erc1155":{const o=i==="erc721"?"tokenURI(uint256)":"uri(uint256)";t.push({type:i,value:e});const a=await this.getAddress();if(a==null)return t.push({type:"!owner",value:""}),{url:null,linkage:t};const c=(s[2]||"").split("/");if(c.length!==2)return t.push({type:`!${i}caip`,value:s[2]||""}),{url:null,linkage:t};const l=c[1],h=new ue(c[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if(i==="erc721"){const f=await h.ownerOf(l);if(a!==f)return t.push({type:"!owner",value:f}),{url:null,linkage:t};t.push({type:"owner",value:f})}else if(i==="erc1155"){const f=await h.balanceOf(a,l);if(!f)return t.push({type:"!balance",value:"0"}),{url:null,linkage:t};t.push({type:"balance",value:f.toString()})}let u=await h[o](l);if(u==null||u==="0x")return t.push({type:"!metadata-url",value:""}),{url:null,linkage:t};t.push({type:"metadata-url-base",value:u}),i==="erc1155"&&(u=u.replace("{id}",_t(l,32).substring(2)),t.push({type:"metadata-url-expanded",value:u})),u.match(/^ipfs:/i)&&(u=an(u)),t.push({type:"metadata-url",value:u});let d={};const w=await new bt(u).send();w.assertOk();try{d=w.bodyJson}catch{try{t.push({type:"!metadata",value:w.bodyText})}catch{const m=w.body;return m&&t.push({type:"!metadata",value:v(m)}),{url:null,linkage:t}}return{url:null,linkage:t}}if(!d)return t.push({type:"!metadata",value:""}),{url:null,linkage:t};t.push({type:"metadata",value:JSON.stringify(d)});let A=d.image;if(typeof A!="string")return t.push({type:"!imageUrl",value:""}),{url:null,linkage:t};if(!A.match(/^(https:\/\/|data:)/i)){if(A.match(Ns)==null)return t.push({type:"!imageUrl-ipfs",value:A}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:A}),A=an(A)}return t.push({type:"url",value:A}),{linkage:t,url:A}}}}}catch{}return{linkage:t,url:null}}static async getEnsAddress(t){const e=await t.getNetwork(),n=e.getPlugin("org.ethers.plugins.network.Ens");return I(n,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:e}}),n.address}static async#r(t,e){const n=await Wt.getEnsAddress(t);try{const i=await new ue(n,["function resolver(bytes32) view returns (address)"],t).resolver(Cn(e),{enableCcipRead:!0});return i===de?null:i}catch(s){throw s}return null}static async fromName(t,e){let n=e;for(;;){if(n===""||n==="."||e!=="eth"&&n==="eth")return null;const s=await Wt.#r(t,n);if(s!=null){const i=new Wt(t,s,e);return n!==e&&!await i.supportsWildcard()?null:i}n=n.split(".").slice(1).join(".")}}}const Ir=BigInt(0);function D(r,t){return(function(e){return e==null?t:r(e)})}function Ye(r,t){return(e=>{if(t&&e==null)return null;if(!Array.isArray(e))throw new Error("not an array");return e.map(n=>r(n))})}function be(r,t){return(e=>{const n={};for(const s in r){let i=s;if(t&&s in t&&!(i in e)){for(const o of t[s])if(o in e){i=o;break}}try{const o=r[s](e[i]);o!==void 0&&(n[s]=o)}catch(o){const a=o instanceof Error?o.message:"not-an-error";I(!1,`invalid value for value.${s} (${a})`,"BAD_DATA",{value:e})}}return n})}function ua(r){switch(r){case!0:case"true":return!0;case!1:case"false":return!1}p(!1,`invalid boolean; ${JSON.stringify(r)}`,"value",r)}function se(r){return p(tt(r,!0),"invalid data","value",r),r}function _(r){return p(tt(r,32),"invalid hash","value",r),r}const ha=be({address:z,blockHash:_,blockNumber:L,data:se,index:L,removed:D(ua,!1),topics:Ye(_),transactionHash:_,transactionIndex:L},{index:["logIndex"]});function fa(r){return ha(r)}const da=be({hash:D(_),parentHash:_,parentBeaconBlockRoot:D(_,null),number:L,timestamp:L,nonce:D(se),difficulty:N,gasLimit:N,gasUsed:N,stateRoot:D(_,null),receiptsRoot:D(_,null),blobGasUsed:D(N,null),excessBlobGas:D(N,null),miner:D(z),prevRandao:D(_,null),extraData:se,baseFeePerGas:D(N)},{prevRandao:["mixHash"]});function ga(r){const t=da(r);return t.transactions=r.transactions.map(e=>typeof e=="string"?e:ks(e)),t}const pa=be({transactionIndex:L,blockNumber:L,transactionHash:_,address:z,topics:Ye(_),data:se,index:L,blockHash:_},{index:["logIndex"]});function Aa(r){return pa(r)}const wa=be({to:D(z,null),from:D(z,null),contractAddress:D(z,null),index:L,root:D(v),gasUsed:N,blobGasUsed:D(N,null),logsBloom:D(se),blockHash:_,hash:_,logs:Ye(Aa),blockNumber:L,cumulativeGasUsed:N,effectiveGasPrice:D(N),blobGasPrice:D(N,null),status:D(L),type:D(L,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function ma(r){return wa(r)}function ks(r){r.to&&N(r.to)===Ir&&(r.to="0x0000000000000000000000000000000000000000");const t=be({hash:_,index:D(L,void 0),type:e=>e==="0x"||e==null?0:L(e),accessList:D(ie,null),blobVersionedHashes:D(Ye(_,!0),null),blockHash:D(_,null),blockNumber:D(L,null),transactionIndex:D(L,null),from:z,gasPrice:D(N),maxPriorityFeePerGas:D(N),maxFeePerGas:D(N),maxFeePerBlobGas:D(N,null),gasLimit:N,to:D(z,null),value:N,nonce:L,data:se,creates:D(z,null),chainId:D(N,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(r);if(t.to==null&&t.creates==null&&(t.creates=eo(t)),(r.type===1||r.type===2)&&r.accessList==null&&(t.accessList=[]),r.signature?t.signature=K.from(r.signature):t.signature=K.from(r),t.chainId==null){const e=t.signature.legacyChainId;e!=null&&(t.chainId=e)}return t.blockHash&&N(t.blockHash)===Ir&&(t.blockHash=null),t}const ya="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class Ee{name;constructor(t){gt(this,{name:t})}clone(){return new Ee(this.name)}}class qe extends Ee{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(t,e){t==null&&(t=0),super(`org.ethers.network.plugins.GasCost#${t||0}`);const n={effectiveBlock:t};function s(i,o){let a=(e||{})[i];a==null&&(a=o),p(typeof a=="number",`invalud value for ${i}`,"costs",e),n[i]=a}s("txBase",21e3),s("txCreate",32e3),s("txDataZero",4),s("txDataNonzero",16),s("txAccessListStorageKey",1900),s("txAccessListAddress",2400),gt(this,n)}clone(){return new qe(this.effectiveBlock,this)}}class We extends Ee{address;targetNetwork;constructor(t,e){super("org.ethers.plugins.network.Ens"),gt(this,{address:t||ya,targetNetwork:e??1})}clone(){return new We(this.address,this.targetNetwork)}}class ba extends Ee{#t;#e;get url(){return this.#t}get processFunc(){return this.#e}constructor(t,e){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),this.#t=t,this.#e=e}clone(){return this}}const cn=new Map;class at{#t;#e;#n;constructor(t,e){this.#t=t,this.#e=N(e),this.#n=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#t}set name(t){this.#t=t}get chainId(){return this.#e}set chainId(t){this.#e=N(t,"chainId")}matches(t){if(t==null)return!1;if(typeof t=="string"){try{return this.chainId===N(t)}catch{}return this.name===t}if(typeof t=="number"||typeof t=="bigint"){try{return this.chainId===N(t)}catch{}return!1}if(typeof t=="object"){if(t.chainId!=null){try{return this.chainId===N(t.chainId)}catch{}return!1}return t.name!=null?this.name===t.name:!1}return!1}get plugins(){return Array.from(this.#n.values())}attachPlugin(t){if(this.#n.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#n.set(t.name,t.clone()),this}getPlugin(t){return this.#n.get(t)||null}getPlugins(t){return this.plugins.filter(e=>e.name.split("#")[0]===t)}clone(){const t=new at(this.name,this.chainId);return this.plugins.forEach(e=>{t.attachPlugin(e.clone())}),t}computeIntrinsicGas(t){const e=this.getPlugin("org.ethers.plugins.network.GasCost")||new qe;let n=e.txBase;if(t.to==null&&(n+=e.txCreate),t.data)for(let s=2;s<t.data.length;s+=2)t.data.substring(s,s+2)==="00"?n+=e.txDataZero:n+=e.txDataNonzero;if(t.accessList){const s=ie(t.accessList);for(const i in s)n+=e.txAccessListAddress+e.txAccessListStorageKey*s[i].storageKeys.length}return n}static from(t){if(Ea(),t==null)return at.from("mainnet");if(typeof t=="number"&&(t=BigInt(t)),typeof t=="string"||typeof t=="bigint"){const e=cn.get(t);if(e)return e();if(typeof t=="bigint")return new at("unknown",t);p(!1,"unknown network","network",t)}if(typeof t.clone=="function")return t.clone();if(typeof t=="object"){p(typeof t.name=="string"&&typeof t.chainId=="number","invalid network object name or chainId","network",t);const e=new at(t.name,t.chainId);return(t.ensAddress||t.ensNetwork!=null)&&e.attachPlugin(new We(t.ensAddress,t.ensNetwork)),e}p(!1,"invalid network","network",t)}static register(t,e){typeof t=="number"&&(t=BigInt(t));const n=cn.get(t);n&&p(!1,`conflicting network for ${JSON.stringify(n.name)}`,"nameOrChainId",t),cn.set(t,e)}}function Nr(r,t){const e=String(r);if(!e.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${r}`);const n=e.split(".");if(n.length===1&&n.push(""),n.length!==2)throw new Error(`invalid gwei value: ${r}`);for(;n[1].length<t;)n[1]+="0";if(n[1].length>9){let s=BigInt(n[1].substring(0,9));n[1].substring(9).match(/^0+$/)||s++,n[1]=s.toString()}return BigInt(n[0]+n[1])}function kr(r){return new ba(r,async(t,e,n)=>{n.setHeader("User-Agent","ethers");let s;try{const[i,o]=await Promise.all([n.send(),t()]);s=i;const a=s.bodyJson.standard;return{gasPrice:o.gasPrice,maxFeePerGas:Nr(a.maxFee,9),maxPriorityFeePerGas:Nr(a.maxPriorityFee,9)}}catch(i){I(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:s,error:i})}})}let vr=!1;function Ea(){if(vr)return;vr=!0;function r(t,e,n){const s=function(){const i=new at(t,e);return n.ensNetwork!=null&&i.attachPlugin(new We(null,n.ensNetwork)),i.attachPlugin(new qe),(n.plugins||[]).forEach(o=>{i.attachPlugin(o)}),i};at.register(t,s),at.register(e,s),n.altNames&&n.altNames.forEach(i=>{at.register(i,s)})}r("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),r("ropsten",3,{ensNetwork:3}),r("rinkeby",4,{ensNetwork:4}),r("goerli",5,{ensNetwork:5}),r("kovan",42,{ensNetwork:42}),r("sepolia",11155111,{ensNetwork:11155111}),r("holesky",17e3,{ensNetwork:17e3}),r("classic",61,{}),r("classicKotti",6,{}),r("arbitrum",42161,{ensNetwork:1}),r("arbitrum-goerli",421613,{}),r("arbitrum-sepolia",421614,{}),r("base",8453,{ensNetwork:1}),r("base-goerli",84531,{}),r("base-sepolia",84532,{}),r("bnb",56,{ensNetwork:1}),r("bnbt",97,{}),r("linea",59144,{ensNetwork:1}),r("linea-goerli",59140,{}),r("linea-sepolia",59141,{}),r("matic",137,{ensNetwork:1,plugins:[kr("https://gasstation.polygon.technology/v2")]}),r("matic-amoy",80002,{}),r("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[kr("https://gasstation-testnet.polygon.technology/v2")]}),r("optimism",10,{ensNetwork:1,plugins:[]}),r("optimism-goerli",420,{}),r("optimism-sepolia",11155420,{}),r("xdai",100,{ensNetwork:1})}function Pn(r){return JSON.parse(JSON.stringify(r))}class Ba{#t;#e;#n;#r;constructor(t){this.#t=t,this.#e=null,this.#n=4e3,this.#r=-2}get pollingInterval(){return this.#n}set pollingInterval(t){this.#n=t}async#s(){try{const t=await this.#t.getBlockNumber();if(this.#r===-2){this.#r=t;return}if(t!==this.#r){for(let e=this.#r+1;e<=t;e++){if(this.#e==null)return;await this.#t.emit("block",e)}this.#r=t}}catch{}this.#e!=null&&(this.#e=this.#t._setTimeout(this.#s.bind(this),this.#n))}start(){this.#e||(this.#e=this.#t._setTimeout(this.#s.bind(this),this.#n),this.#s())}stop(){this.#e&&(this.#t._clearTimeout(this.#e),this.#e=null)}pause(t){this.stop(),t&&(this.#r=-2)}resume(){this.start()}}class Hn{#t;#e;#n;constructor(t){this.#t=t,this.#n=!1,this.#e=e=>{this._poll(e,this.#t)}}async _poll(t,e){throw new Error("sub-classes must override this")}start(){this.#n||(this.#n=!0,this.#e(-2),this.#t.on("block",this.#e))}stop(){this.#n&&(this.#n=!1,this.#t.off("block",this.#e))}pause(t){this.stop()}resume(){this.start()}}class xa extends Hn{#t;#e;constructor(t,e){super(t),this.#t=e,this.#e=-2}pause(t){t&&(this.#e=-2),super.pause(t)}async _poll(t,e){const n=await e.getBlock(this.#t);n!=null&&(this.#e===-2?this.#e=n.number:n.number>this.#e&&(e.emit(this.#t,n.number),this.#e=n.number))}}class Ca extends Hn{#t;constructor(t,e){super(t),this.#t=Pn(e)}async _poll(t,e){throw new Error("@TODO")}}class Pa extends Hn{#t;constructor(t,e){super(t),this.#t=e}async _poll(t,e){const n=await e.getTransactionReceipt(this.#t);n&&e.emit(this.#t,n)}}class Vn{#t;#e;#n;#r;#s;constructor(t,e){this.#t=t,this.#e=Pn(e),this.#n=this.#o.bind(this),this.#r=!1,this.#s=-2}async#o(t){if(this.#s===-2)return;const e=Pn(this.#e);e.fromBlock=this.#s+1,e.toBlock=t;const n=await this.#t.getLogs(e);if(n.length===0){this.#s<t-60&&(this.#s=t-60);return}for(const s of n)this.#t.emit(this.#e,s),this.#s=s.blockNumber}start(){this.#r||(this.#r=!0,this.#s===-2&&this.#t.getBlockNumber().then(t=>{this.#s=t}),this.#t.on("block",this.#n))}stop(){this.#r&&(this.#r=!1,this.#t.off("block",this.#n))}pause(t){this.stop(),t&&(this.#s=-2)}resume(){this.start()}}const Ia=BigInt(2),Na=10;function ke(r){return r&&typeof r.then=="function"}function Re(r,t){return r+":"+JSON.stringify(t,(e,n)=>{if(n==null)return"null";if(typeof n=="bigint")return`bigint:${n.toString()}`;if(typeof n=="string")return n.toLowerCase();if(typeof n=="object"&&!Array.isArray(n)){const s=Object.keys(n);return s.sort(),s.reduce((i,o)=>(i[o]=n[o],i),{})}return n})}class vs{name;constructor(t){gt(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function ka(r){return JSON.parse(JSON.stringify(r))}function In(r){return r=Array.from(new Set(r).values()),r.sort(),r}async function ln(r,t){if(r==null)throw new Error("invalid event");if(Array.isArray(r)&&(r={topics:r}),typeof r=="string")switch(r){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:r,tag:r}}if(tt(r,32)){const e=r.toLowerCase();return{type:"transaction",tag:Re("tx",{hash:e}),hash:e}}if(r.orphan){const e=r;return{type:"orphan",tag:Re("orphan",e),filter:ka(e)}}if(r.address||r.topics){const e=r,n={topics:(e.topics||[]).map(s=>s==null?null:Array.isArray(s)?In(s.map(i=>i.toLowerCase())):s.toLowerCase())};if(e.address){const s=[],i=[],o=a=>{tt(a)?s.push(a):i.push((async()=>{s.push(await yt(a,t))})())};Array.isArray(e.address)?e.address.forEach(o):o(e.address),i.length&&await Promise.all(i),n.address=In(s.map(a=>a.toLowerCase()))}return{filter:n,tag:Re("event",n),type:"event"}}p(!1,"unknown ProviderEvent","event",r)}function un(){return new Date().getTime()}const va={cacheTimeout:250,pollingInterval:4e3};class Sa{#t;#e;#n;#r;#s;#o;#i;#a;#d;#l;#g;#p;constructor(t,e){if(this.#p=Object.assign({},va,e||{}),t==="any")this.#o=!0,this.#s=null;else if(t){const n=at.from(t);this.#o=!1,this.#s=Promise.resolve(n),setTimeout(()=>{this.emit("network",n,null)},0)}else this.#o=!1,this.#s=null;this.#a=-1,this.#i=new Map,this.#t=new Map,this.#e=new Map,this.#n=null,this.#r=!1,this.#d=1,this.#l=new Map,this.#g=!1}get pollingInterval(){return this.#p.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#e.values())}attachPlugin(t){if(this.#e.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#e.set(t.name,t.connect(this)),this}getPlugin(t){return this.#e.get(t)||null}get disableCcipRead(){return this.#g}set disableCcipRead(t){this.#g=!!t}async#c(t){const e=this.#p.cacheTimeout;if(e<0)return await this._perform(t);const n=Re(t.method,t);let s=this.#i.get(n);return s||(s=this._perform(t),this.#i.set(n,s),setTimeout(()=>{this.#i.get(n)===s&&this.#i.delete(n)},e)),await s}async ccipReadFetch(t,e,n){if(this.disableCcipRead||n.length===0||t.to==null)return null;const s=t.to.toLowerCase(),i=e.toLowerCase(),o=[];for(let a=0;a<n.length;a++){const c=n[a],l=c.replace("{sender}",s).replace("{data}",i),h=new bt(l);c.indexOf("{data}")===-1&&(h.body={data:i,sender:s}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:h,index:a,urls:n});let u="unknown error",d;try{d=await h.send()}catch(w){o.push(w.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:{error:w}});continue}try{const w=d.bodyJson;if(w.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:h,result:w}),w.data;w.message&&(u=w.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:w})}catch{}I(d.statusCode<400||d.statusCode>=500,`response not found during CCIP fetch: ${u}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:t,info:{url:c,errorMessage:u}}),o.push(u)}I(!1,`error encountered during CCIP fetch: ${o.map(a=>JSON.stringify(a)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:t,info:{urls:n,errorMessages:o}})}_wrapBlock(t,e){return new zs(ga(t),this)}_wrapLog(t,e){return new Ks(fa(t),this)}_wrapTransactionReceipt(t,e){return new js(ma(t),this)}_wrapTransactionResponse(t,e){return new Zs(ks(t),this)}_detectNetwork(){I(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){I(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=L(await this.#c({method:"getBlockNumber"}),"%response");return this.#a>=0&&(this.#a=t),t}_getAddress(t){return yt(t,this)}_getBlockTag(t){if(t==null)return"latest";switch(t){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return t}if(tt(t))return tt(t,32)?t:Zt(t);if(typeof t=="bigint"&&(t=L(t,"blockTag")),typeof t=="number")return t>=0?Zt(t):this.#a>=0?Zt(this.#a+t):this.getBlockNumber().then(e=>Zt(e+t));p(!1,"invalid blockTag","blockTag",t)}_getFilter(t){const e=(t.topics||[]).map(c=>c==null?null:Array.isArray(c)?In(c.map(l=>l.toLowerCase())):c.toLowerCase()),n="blockHash"in t?t.blockHash:void 0,s=(c,l,h)=>{let u;switch(c.length){case 0:break;case 1:u=c[0];break;default:c.sort(),u=c}if(n&&(l!=null||h!=null))throw new Error("invalid filter");const d={};return u&&(d.address=u),e.length&&(d.topics=e),l&&(d.fromBlock=l),h&&(d.toBlock=h),n&&(d.blockHash=n),d};let i=[];if(t.address)if(Array.isArray(t.address))for(const c of t.address)i.push(this._getAddress(c));else i.push(this._getAddress(t.address));let o;"fromBlock"in t&&(o=this._getBlockTag(t.fromBlock));let a;return"toBlock"in t&&(a=this._getBlockTag(t.toBlock)),i.filter(c=>typeof c!="string").length||o!=null&&typeof o!="string"||a!=null&&typeof a!="string"?Promise.all([Promise.all(i),o,a]).then(c=>s(c[0],c[1],c[2])):s(i,o,a)}_getTransactionRequest(t){const e=dn(t),n=[];if(["to","from"].forEach(s=>{if(e[s]==null)return;const i=yt(e[s],this);ke(i)?n.push((async function(){e[s]=await i})()):e[s]=i}),e.blockTag!=null){const s=this._getBlockTag(e.blockTag);ke(s)?n.push((async function(){e.blockTag=await s})()):e.blockTag=s}return n.length?(async function(){return await Promise.all(n),e})():e}async getNetwork(){if(this.#s==null){const s=(async()=>{try{const i=await this._detectNetwork();return this.emit("network",i,null),i}catch(i){throw this.#s===s&&(this.#s=null),i}})();return this.#s=s,(await s).clone()}const t=this.#s,[e,n]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==n.chainId&&(this.#o?(this.emit("network",n,e),this.#s===t&&(this.#s=Promise.resolve(n))):I(!1,`network changed: ${e.chainId} => ${n.chainId} `,"NETWORK_ERROR",{event:"changed"})),e.clone()}async getFeeData(){const t=await this.getNetwork(),e=async()=>{const{_block:s,gasPrice:i,priorityFee:o}=await lt({_block:this.#A("latest",!1),gasPrice:(async()=>{try{const h=await this.#c({method:"getGasPrice"});return N(h,"%response")}catch{}return null})(),priorityFee:(async()=>{try{const h=await this.#c({method:"getPriorityFee"});return N(h,"%response")}catch{}return null})()});let a=null,c=null;const l=this._wrapBlock(s,t);return l&&l.baseFeePerGas&&(c=o??BigInt("1000000000"),a=l.baseFeePerGas*Ia+c),new Zn(i,a,c)},n=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const s=new bt(n.url),i=await n.processFunc(e,this,s);return new Zn(i.gasPrice,i.maxFeePerGas,i.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return ke(e)&&(e=await e),N(await this.#c({method:"estimateGas",transaction:e}),"%response")}async#u(t,e,n){I(n<Na,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},t,{blockTag:e,enableCcipRead:!0})});const s=dn(t);try{return v(await this._perform({method:"call",transaction:s,blockTag:e}))}catch(i){if(!this.disableCcipRead&&Ys(i)&&i.data&&n>=0&&e==="latest"&&s.to!=null&&$(i.data,0,4)==="0x556f1830"){const o=i.data,a=await yt(s.to,this);let c;try{c=Fa($(i.data,4))}catch(u){I(!1,u.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:s,info:{data:o}})}I(c.sender.toLowerCase()===a.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:o,reason:"OffchainLookup",transaction:s,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:c.errorArgs}});const l=await this.ccipReadFetch(s,c.calldata,c.urls);I(l!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:s,info:{data:i.data,errorArgs:c.errorArgs}});const h={to:a,data:et([c.selector,Ta([l,c.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:h});try{const u=await this.#u(h,e,n+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},h),result:u}),u}catch(u){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},h),error:u}),u}}throw i}}async#h(t){const{value:e}=await lt({network:this.getNetwork(),value:t});return e}async call(t){const{tx:e,blockTag:n}=await lt({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await this.#h(this.#u(e,n,t.enableCcipRead?0:-1))}async#f(t,e,n){let s=this._getAddress(e),i=this._getBlockTag(n);return(typeof s!="string"||typeof i!="string")&&([s,i]=await Promise.all([s,i])),await this.#h(this.#c(Object.assign(t,{address:s,blockTag:i})))}async getBalance(t,e){return N(await this.#f({method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return L(await this.#f({method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return v(await this.#f({method:"getCode"},t,e))}async getStorage(t,e,n){const s=N(e,"position");return v(await this.#f({method:"getStorage",position:s},t,n))}async broadcastTransaction(t){const{blockNumber:e,hash:n,network:s}=await lt({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),i=mt.from(t);if(i.hash!==n)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(i,s).replaceableTransaction(e)}async#A(t,e){if(tt(t,32))return await this.#c({method:"getBlock",blockHash:t,includeTransactions:e});let n=this._getBlockTag(t);return typeof n!="string"&&(n=await n),await this.#c({method:"getBlock",blockTag:n,includeTransactions:e})}async getBlock(t,e){const{network:n,params:s}=await lt({network:this.getNetwork(),params:this.#A(t,!!e)});return s==null?null:this._wrapBlock(s,n)}async getTransaction(t){const{network:e,params:n}=await lt({network:this.getNetwork(),params:this.#c({method:"getTransaction",hash:t})});return n==null?null:this._wrapTransactionResponse(n,e)}async getTransactionReceipt(t){const{network:e,params:n}=await lt({network:this.getNetwork(),params:this.#c({method:"getTransactionReceipt",hash:t})});if(n==null)return null;if(n.gasPrice==null&&n.effectiveGasPrice==null){const s=await this.#c({method:"getTransaction",hash:t});if(s==null)throw new Error("report this; could not find tx or effectiveGasPrice");n.effectiveGasPrice=s.gasPrice}return this._wrapTransactionReceipt(n,e)}async getTransactionResult(t){const{result:e}=await lt({network:this.getNetwork(),result:this.#c({method:"getTransactionResult",hash:t})});return e==null?null:v(e)}async getLogs(t){let e=this._getFilter(t);ke(e)&&(e=await e);const{network:n,params:s}=await lt({network:this.getNetwork(),params:this.#c({method:"getLogs",filter:e})});return s.map(i=>this._wrapLog(i,n))}_getProvider(t){I(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await Wt.fromName(this,t)}async getAvatar(t){const e=await this.getResolver(t);return e?await e.getAvatar():null}async resolveName(t){const e=await this.getResolver(t);return e?await e.getAddress():null}async lookupAddress(t){t=z(t);const e=Cn(t.substring(2).toLowerCase()+".addr.reverse");try{const n=await Wt.getEnsAddress(this),i=await new ue(n,["function resolver(bytes32) view returns (address)"],this).resolver(e);if(i==null||i===de)return null;const a=await new ue(i,["function name(bytes32) view returns (string)"],this).name(e);return await this.resolveName(a)!==t?null:a}catch(n){if(dt(n,"BAD_DATA")&&n.value==="0x"||dt(n,"CALL_EXCEPTION"))return null;throw n}return null}async waitForTransaction(t,e,n){const s=e??1;return s===0?this.getTransactionReceipt(t):new Promise(async(i,o)=>{let a=null;const c=(async l=>{try{const h=await this.getTransactionReceipt(t);if(h!=null&&l-h.blockNumber+1>=s){i(h),a&&(clearTimeout(a),a=null);return}}catch(h){console.log("EEE",h)}this.once("block",c)});n!=null&&(a=setTimeout(()=>{a!=null&&(a=null,this.off("block",c),o(X("timeout","TIMEOUT",{reason:"timeout"})))},n)),c(await this.getBlockNumber())})}async waitForBlock(t){I(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(t){const e=this.#l.get(t);e&&(e.timer&&clearTimeout(e.timer),this.#l.delete(t))}_setTimeout(t,e){e==null&&(e=0);const n=this.#d++,s=()=>{this.#l.delete(n),t()};if(this.paused)this.#l.set(n,{timer:null,func:s,time:e});else{const i=setTimeout(s,e);this.#l.set(n,{timer:i,func:s,time:un()})}return n}_forEachSubscriber(t){for(const e of this.#t.values())t(e.subscriber)}_getSubscriber(t){switch(t.type){case"debug":case"error":case"network":return new vs(t.type);case"block":{const e=new Ba(this);return e.pollingInterval=this.pollingInterval,e}case"safe":case"finalized":return new xa(this,t.type);case"event":return new Vn(this,t.filter);case"transaction":return new Pa(this,t.hash);case"orphan":return new Ca(this,t.filter)}throw new Error(`unsupported event: ${t.type}`)}_recoverSubscriber(t,e){for(const n of this.#t.values())if(n.subscriber===t){n.started&&n.subscriber.stop(),n.subscriber=e,n.started&&e.start(),this.#n!=null&&e.pause(this.#n);break}}async#w(t,e){let n=await ln(t,this);return n.type==="event"&&e&&e.length>0&&e[0].removed===!0&&(n=await ln({orphan:"drop-log",log:e[0]},this)),this.#t.get(n.tag)||null}async#m(t){const e=await ln(t,this),n=e.tag;let s=this.#t.get(n);return s||(s={subscriber:this._getSubscriber(e),tag:n,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#t.set(n,s)),s}async on(t,e){const n=await this.#m(t);return n.listeners.push({listener:e,once:!1}),n.started||(n.subscriber.start(),n.started=!0,this.#n!=null&&n.subscriber.pause(this.#n)),this}async once(t,e){const n=await this.#m(t);return n.listeners.push({listener:e,once:!0}),n.started||(n.subscriber.start(),n.started=!0,this.#n!=null&&n.subscriber.pause(this.#n)),this}async emit(t,...e){const n=await this.#w(t,e);if(!n||n.listeners.length===0)return!1;const s=n.listeners.length;return n.listeners=n.listeners.filter(({listener:i,once:o})=>{const a=new qs(this,o?null:i,t);try{i.call(this,...e,a)}catch{}return!o}),n.listeners.length===0&&(n.started&&n.subscriber.stop(),this.#t.delete(n.tag)),s>0}async listenerCount(t){if(t){const n=await this.#w(t);return n?n.listeners.length:0}let e=0;for(const{listeners:n}of this.#t.values())e+=n.length;return e}async listeners(t){if(t){const n=await this.#w(t);return n?n.listeners.map(({listener:s})=>s):[]}let e=[];for(const{listeners:n}of this.#t.values())e=e.concat(n.map(({listener:s})=>s));return e}async off(t,e){const n=await this.#w(t);if(!n)return this;if(e){const s=n.listeners.map(({listener:i})=>i).indexOf(e);s>=0&&n.listeners.splice(s,1)}return(!e||n.listeners.length===0)&&(n.started&&n.subscriber.stop(),this.#t.delete(n.tag)),this}async removeAllListeners(t){if(t){const{tag:e,started:n,subscriber:s}=await this.#m(t);n&&s.stop(),this.#t.delete(e)}else for(const[e,{started:n,subscriber:s}]of this.#t)n&&s.stop(),this.#t.delete(e);return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return this.off(t,e)}get destroyed(){return this.#r}destroy(){this.removeAllListeners();for(const t of this.#l.keys())this._clearTimeout(t);this.#r=!0}get paused(){return this.#n!=null}set paused(t){!!t!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(t){if(this.#a=-1,this.#n!=null){if(this.#n==!!t)return;I(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(e=>e.pause(t)),this.#n=!!t;for(const e of this.#l.values())e.timer&&clearTimeout(e.timer),e.time=un()-e.time}resume(){if(this.#n!=null){this._forEachSubscriber(t=>t.resume()),this.#n=null;for(const t of this.#l.values()){let e=t.time;e<0&&(e=0),t.time=un(),setTimeout(t.func,e)}}}}function Ra(r,t){try{const e=Nn(r,t);if(e)return fn(e)}catch{}return null}function Nn(r,t){if(r==="0x")return null;try{const e=L($(r,t,t+32)),n=L($(r,e,e+32));return $(r,e+32,e+32+n)}catch{}return null}function Sr(r){const t=ot(r);if(t.length>32)throw new Error("internal; should not happen");const e=new Uint8Array(32);return e.set(t,32-t.length),e}function Oa(r){if(r.length%32===0)return r;const t=new Uint8Array(Math.ceil(r.length/32)*32);return t.set(r),t}const Da=new Uint8Array([]);function Ta(r){const t=[];let e=0;for(let n=0;n<r.length;n++)t.push(Da),e+=32;for(let n=0;n<r.length;n++){const s=H(r[n]);t[n]=Sr(e),t.push(Sr(s.length)),t.push(Oa(s)),e+=32+Math.ceil(s.length/32)*32}return et(t)}const Rr="0x0000000000000000000000000000000000000000000000000000000000000000";function Fa(r){const t={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};I(Yt(r)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const e=$(r,0,32);I($(e,0,12)===$(Rr,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),t.sender=$(e,12);try{const n=[],s=L($(r,32,64)),i=L($(r,s,s+32)),o=$(r,s+32);for(let a=0;a<i;a++){const c=Ra(o,a*32);if(c==null)throw new Error("abort");n.push(c)}t.urls=n}catch{I(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const n=Nn(r,64);if(n==null)throw new Error("abort");t.calldata=n}catch{I(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}I($(r,100,128)===$(Rr,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),t.selector=$(r,96,100);try{const n=Nn(r,128);if(n==null)throw new Error("abort");t.extraData=n}catch{I(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return t.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map(n=>t[n]),t}function zt(r,t){if(r.provider)return r.provider;I(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:t})}async function Or(r,t){let e=dn(t);if(e.to!=null&&(e.to=yt(e.to,r)),e.from!=null){const n=e.from;e.from=Promise.all([r.getAddress(),yt(n,r)]).then(([s,i])=>(p(s.toLowerCase()===i.toLowerCase(),"transaction from mismatch","tx.from",i),s))}else e.from=r.getAddress();return await lt(e)}class Ss{provider;constructor(t){gt(this,{provider:t||null})}async getNonce(t){return zt(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await Or(this,t)}async populateTransaction(t){const e=zt(this,"populateTransaction"),n=await Or(this,t);n.nonce==null&&(n.nonce=await this.getNonce("pending")),n.gasLimit==null&&(n.gasLimit=await this.estimateGas(n));const s=await this.provider.getNetwork();if(n.chainId!=null){const o=N(n.chainId);p(o===s.chainId,"transaction chainId mismatch","tx.chainId",t.chainId)}else n.chainId=s.chainId;const i=n.maxFeePerGas!=null||n.maxPriorityFeePerGas!=null;if(n.gasPrice!=null&&(n.type===2||i)?p(!1,"eip-1559 transaction do not support gasPrice","tx",t):(n.type===0||n.type===1)&&i&&p(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t),(n.type===2||n.type==null)&&n.maxFeePerGas!=null&&n.maxPriorityFeePerGas!=null)n.type=2;else if(n.type===0||n.type===1){const o=await e.getFeeData();I(o.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),n.gasPrice==null&&(n.gasPrice=o.gasPrice)}else{const o=await e.getFeeData();if(n.type==null)if(o.maxFeePerGas!=null&&o.maxPriorityFeePerGas!=null)if(n.type=2,n.gasPrice!=null){const a=n.gasPrice;delete n.gasPrice,n.maxFeePerGas=a,n.maxPriorityFeePerGas=a}else n.maxFeePerGas==null&&(n.maxFeePerGas=o.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=o.maxPriorityFeePerGas);else o.gasPrice!=null?(I(!i,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),n.gasPrice==null&&(n.gasPrice=o.gasPrice),n.type=0):I(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else(n.type===2||n.type===3)&&(n.maxFeePerGas==null&&(n.maxFeePerGas=o.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=o.maxPriorityFeePerGas))}return await lt(n)}async estimateGas(t){return zt(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return zt(this,"call").call(await this.populateCall(t))}async resolveName(t){return await zt(this,"resolveName").resolveName(t)}async sendTransaction(t){const e=zt(this,"sendTransaction"),n=await this.populateTransaction(t);delete n.from;const s=mt.from(n);return await e.broadcastTransaction(await this.signTransaction(s))}}class Rs extends Ss{address;constructor(t,e){super(e),gt(this,{address:t})}async getAddress(){return this.address}connect(t){return new Rs(this.address,t)}#t(t,e){I(!1,`VoidSigner cannot sign ${t}`,"UNSUPPORTED_OPERATION",{operation:e})}async signTransaction(t){this.#t("transactions","signTransaction")}async signMessage(t){this.#t("messages","signMessage")}async signTypedData(t,e,n){this.#t("typed-data","signTypedData")}}function Ua(r){return JSON.parse(JSON.stringify(r))}class Os{#t;#e;#n;#r;#s;#o;constructor(t){this.#t=t,this.#e=null,this.#n=this.#i.bind(this),this.#r=!1,this.#s=null,this.#o=!1}_subscribe(t){throw new Error("subclasses must override this")}_emitResults(t,e){throw new Error("subclasses must override this")}_recover(t){throw new Error("subclasses must override this")}async#i(t){try{this.#e==null&&(this.#e=this._subscribe(this.#t));let e=null;try{e=await this.#e}catch(i){if(!dt(i,"UNSUPPORTED_OPERATION")||i.operation!=="eth_newFilter")throw i}if(e==null){this.#e=null,this.#t._recoverSubscriber(this,this._recover(this.#t));return}const n=await this.#t.getNetwork();if(this.#s||(this.#s=n),this.#s.chainId!==n.chainId)throw new Error("chaid changed");if(this.#o)return;const s=await this.#t.send("eth_getFilterChanges",[e]);await this._emitResults(this.#t,s)}catch(e){console.log("@TODO",e)}this.#t.once("block",this.#n)}#a(){const t=this.#e;t&&(this.#e=null,t.then(e=>{this.#t.destroyed||this.#t.send("eth_uninstallFilter",[e])}))}start(){this.#r||(this.#r=!0,this.#i(-2))}stop(){this.#r&&(this.#r=!1,this.#o=!0,this.#a(),this.#t.off("block",this.#n))}pause(t){t&&this.#a(),this.#t.off("block",this.#n)}resume(){this.start()}}class La extends Os{#t;constructor(t,e){super(t),this.#t=Ua(e)}_recover(t){return new Vn(t,this.#t)}async _subscribe(t){return await t.send("eth_newFilter",[this.#t])}async _emitResults(t,e){for(const n of e)t.emit(this.#t,t._wrapLog(n,t._network))}}class Ma extends Os{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const n of e)t.emit("pending",n)}}const Qa="bigint,boolean,function,number,string,symbol".split(/,/g);function Oe(r){if(r==null||Qa.indexOf(typeof r)>=0||typeof r.getAddress=="function")return r;if(Array.isArray(r))return r.map(Oe);if(typeof r=="object")return Object.keys(r).reduce((t,e)=>(t[e]=r[e],t),{});throw new Error(`should not happen: ${r} (${typeof r})`)}function Ga(r){return new Promise(t=>{setTimeout(t,r)})}function Kt(r){return r&&r.toLowerCase()}function Dr(r){return r&&typeof r.pollingInterval=="number"}const Ds={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class hn extends Ss{address;constructor(t,e){super(t),e=z(e),gt(this,{address:e})}connect(t){I(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const e=Oe(t),n=[];if(e.from){const i=e.from;n.push((async()=>{const o=await yt(i,this.provider);p(o!=null&&o.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=o})())}else e.from=this.address;if(e.gasLimit==null&&n.push((async()=>{e.gasLimit=await this.provider.estimateGas({...e,from:this.address})})()),e.to!=null){const i=e.to;n.push((async()=>{e.to=await yt(i,this.provider)})())}n.length&&await Promise.all(n);const s=this.provider.getRpcTransaction(e);return this.provider.send("eth_sendTransaction",[s])}async sendTransaction(t){const e=await this.provider.getBlockNumber(),n=await this.sendUncheckedTransaction(t);return await new Promise((s,i)=>{const o=[1e3,100];let a=0;const c=async()=>{try{const l=await this.provider.getTransaction(n);if(l!=null){s(l.replaceableTransaction(e));return}}catch(l){if(dt(l,"CANCELLED")||dt(l,"BAD_DATA")||dt(l,"NETWORK_ERROR")||dt(l,"UNSUPPORTED_OPERATION")){l.info==null&&(l.info={}),l.info.sendTransactionHash=n,i(l);return}if(dt(l,"INVALID_ARGUMENT")&&(a++,l.info==null&&(l.info={}),l.info.sendTransactionHash=n,a>10)){i(l);return}this.provider.emit("error",X("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:l}))}this.provider._setTimeout(()=>{c()},o.pop()||4e3)};c()})}async signTransaction(t){const e=Oe(t);if(e.from){const s=await yt(e.from,this.provider);p(s!=null&&s.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=s}else e.from=this.address;const n=this.provider.getRpcTransaction(e);return await this.provider.send("eth_signTransaction",[n])}async signMessage(t){const e=typeof t=="string"?Lt(t):t;return await this.provider.send("personal_sign",[v(e),this.address.toLowerCase()])}async signTypedData(t,e,n){const s=Oe(n),i=await it.resolveNames(t,e,s,async o=>{const a=await yt(o);return p(a!=null,"TypedData does not support null address","value",o),a});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(it.getPayload(i.domain,e,i.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const e=typeof t=="string"?Lt(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),v(e)])}}class Ha extends Sa{#t;#e;#n;#r;#s;#o;#i;#a(){if(this.#r)return;const t=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");this.#r=setTimeout(()=>{this.#r=null;const e=this.#n;for(this.#n=[];e.length;){const n=[e.shift()];for(;e.length&&n.length!==this.#t.batchMaxCount;)if(n.push(e.shift()),JSON.stringify(n.map(i=>i.payload)).length>this.#t.batchMaxSize){e.unshift(n.pop());break}(async()=>{const s=n.length===1?n[0].payload:n.map(i=>i.payload);this.emit("debug",{action:"sendRpcPayload",payload:s});try{const i=await this._send(s);this.emit("debug",{action:"receiveRpcResult",result:i});for(const{resolve:o,reject:a,payload:c}of n){if(this.destroyed){a(X("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:c.method}));continue}const l=i.filter(h=>h.id===c.id)[0];if(l==null){const h=X("missing response for request","BAD_DATA",{value:i,info:{payload:c}});this.emit("error",h),a(h);continue}if("error"in l){a(this.getRpcError(c,l));continue}o(l.result)}}catch(i){this.emit("debug",{action:"receiveRpcError",error:i});for(const{reject:o}of n)o(i)}})()}},t)}constructor(t,e){super(t,e),this.#e=1,this.#t=Object.assign({},Ds,e||{}),this.#n=[],this.#r=null,this.#o=null,this.#i=null;{let s=null;const i=new Promise(o=>{s=o});this.#s={promise:i,resolve:s}}const n=this._getOption("staticNetwork");typeof n=="boolean"?(p(!n||t!=="any","staticNetwork cannot be used on special network 'any'","options",e),n&&t!=null&&(this.#o=at.from(t))):n&&(p(t==null||n.matches(t),"staticNetwork MUST match network object","options",e),this.#o=n)}_getOption(t){return this.#t[t]}get _network(){return I(this.#o,"network is not available yet","NETWORK_ERROR"),this.#o}async _perform(t){if(t.method==="call"||t.method==="estimateGas"){let n=t.transaction;if(n&&n.type!=null&&N(n.type)&&n.maxFeePerGas==null&&n.maxPriorityFeePerGas==null){const s=await this.getFeeData();s.maxFeePerGas==null&&s.maxPriorityFeePerGas==null&&(t=Object.assign({},t,{transaction:Object.assign({},n,{type:void 0})}))}}const e=this.getRpcRequest(t);return e!=null?await this.send(e.method,e.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t)if(t===!0){if(this.#o)return this.#o}else return t;return this.#i?await this.#i:this.ready?(this.#i=(async()=>{try{const e=at.from(N(await this.send("eth_chainId",[])));return this.#i=null,e}catch(e){throw this.#i=null,e}})(),await this.#i):(this.#i=(async()=>{const e={id:this.#e++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:e});let n;try{n=(await this._send(e))[0],this.#i=null}catch(s){throw this.#i=null,this.emit("debug",{action:"receiveRpcError",error:s}),s}if(this.emit("debug",{action:"receiveRpcResult",result:n}),"result"in n)return at.from(N(n.result));throw this.getRpcError(e,n)})(),await this.#i)}_start(){this.#s==null||this.#s.resolve==null||(this.#s.resolve(),this.#s=null,(async()=>{for(;this.#o==null&&!this.destroyed;)try{this.#o=await this._detectNetwork()}catch(t){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",X("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await Ga(1e3)}this.#a()})())}async _waitUntilReady(){if(this.#s!=null)return await this.#s.promise}_getSubscriber(t){return t.type==="pending"?new Ma(this):t.type==="event"?this._getOption("polling")?new Vn(this,t.filter):new La(this,t.filter):t.type==="orphan"&&t.filter.orphan==="drop-log"?new vs("orphan"):super._getSubscriber(t)}get ready(){return this.#s==null}getRpcTransaction(t){const e={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(n=>{if(t[n]==null)return;let s=n;n==="gasLimit"&&(s="gas"),e[s]=Zt(N(t[n],`tx.${n}`))}),["from","to","data"].forEach(n=>{t[n]!=null&&(e[n]=v(t[n]))}),t.accessList&&(e.accessList=ie(t.accessList)),t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.map(n=>n.toLowerCase())),e}getRpcRequest(t){switch(t.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[Kt(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Kt(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Kt(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Kt(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&t.filter.address!=null&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(Kt):t.filter.address=Kt(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,e){const{method:n}=t,{error:s}=e;if(n==="eth_estimateGas"&&s.message){const a=s.message;if(!a.match(/revert/i)&&a.match(/insufficient funds/i))return X("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:s}})}if(n==="eth_call"||n==="eth_estimateGas"){const a=kn(s),c=Ws.getBuiltinCallException(n==="eth_call"?"call":"estimateGas",t.params[0],a?a.data:null);return c.info={error:s,payload:t},c}const i=JSON.stringify(Ja(s));if(typeof s.message=="string"&&s.message.match(/user denied|ethers-user-denied/i))return X("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[n]||"unknown",reason:"rejected",info:{payload:t,error:s}});if(n==="eth_sendRawTransaction"||n==="eth_sendTransaction"){const a=t.params[0];if(i.match(/insufficient funds|base fee exceeds gas limit/i))return X("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:a,info:{error:s}});if(i.match(/nonce/i)&&i.match(/too low/i))return X("nonce has already been used","NONCE_EXPIRED",{transaction:a,info:{error:s}});if(i.match(/replacement transaction/i)&&i.match(/underpriced/i))return X("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:a,info:{error:s}});if(i.match(/only replay-protected/i))return X("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:n,info:{transaction:a,info:{error:s}}})}let o=!!i.match(/the method .* does not exist/i);return o||s&&s.details&&s.details.startsWith("Unauthorized method:")&&(o=!0),o?X("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:s,payload:t}}):X("could not coalesce error","UNKNOWN_ERROR",{error:s,payload:t})}send(t,e){if(this.destroyed)return Promise.reject(X("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const n=this.#e++,s=new Promise((i,o)=>{this.#n.push({resolve:i,reject:o,payload:{method:t,params:e,id:n,jsonrpc:"2.0"}})});return this.#a(),s}async getSigner(t){t==null&&(t=0);const e=this.send("eth_accounts",[]);if(typeof t=="number"){const s=await e;if(t>=s.length)throw new Error("no such account");return new hn(this,s[t])}const{accounts:n}=await lt({network:this.getNetwork(),accounts:e});t=z(t);for(const s of n)if(z(s)===t)return new hn(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(e=>new hn(this,e))}destroy(){this.#r&&(clearTimeout(this.#r),this.#r=null);for(const{payload:t,reject:e}of this.#n)e(X("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));this.#n=[],super.destroy()}}class Va extends Ha{#t;constructor(t,e){super(t,e);let n=this._getOption("pollingInterval");n==null&&(n=Ds.pollingInterval),this.#t=n}_getSubscriber(t){const e=super._getSubscriber(t);return Dr(e)&&(e.pollingInterval=this.#t),e}get pollingInterval(){return this.#t}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");this.#t=t,this._forEachSubscriber(e=>{Dr(e)&&(e.pollingInterval=this.#t)})}}class Wa extends Va{#t;constructor(t,e,n){t==null&&(t="http://localhost:8545"),super(e,n),typeof t=="string"?this.#t=new bt(t):this.#t=t.clone()}_getConnection(){return this.#t.clone()}async send(t,e){return await this._start(),await super.send(t,e)}async _send(t){const e=this._getConnection();e.body=JSON.stringify(t),e.setHeader("content-type","application/json");const n=await e.send();n.assertOk();let s=n.bodyJson;return Array.isArray(s)||(s=[s]),s}}function kn(r){if(r==null)return null;if(typeof r.message=="string"&&r.message.match(/revert/i)&&tt(r.data))return{message:r.message,data:r.data};if(typeof r=="object"){for(const t in r){const e=kn(r[t]);if(e)return e}return null}if(typeof r=="string")try{return kn(JSON.parse(r))}catch{}return null}function vn(r,t){if(r!=null){if(typeof r.message=="string"&&t.push(r.message),typeof r=="object")for(const e in r)vn(r[e],t);if(typeof r=="string")try{return vn(JSON.parse(r),t)}catch{}}}function Ja(r){const t=[];return vn(r,t),t}export{Ss as A,Va as J,Kr as S,mt as T,Rs as V,de as Z,fi as a,Ho as b,ja as c,it as d,oe as e,Bt as f,eo as g,Ka as h,$s as i,Wa as j,Za as p,Ya as r,Je as s};
|