@swapkit/core 1.0.0-rc.0 → 1.0.0-rc.2
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/index.cjs +2 -2
- package/dist/index.es.js +124 -114
- package/package.json +13 -7
- package/dist/index.es-320ea117.js +0 -13836
- package/dist/index.es-66e7d15a.js +0 -11436
- package/dist/index.es-8503fb04-8503fb04.js +0 -34669
- package/dist/index.es-8503fb04-903b9173.cjs +0 -1
- package/dist/index.es-c82b553a.cjs +0 -14
- package/dist/index.es-e22f22e9.cjs +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const wn=require("./index.cjs");var nu=Object.defineProperty,iu=(r,t,e)=>t in r?nu(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,m=(r,t,e)=>(iu(r,typeof t!="symbol"?t+"":t,e),e),va=(r,t,e)=>{if(!t.has(r))throw TypeError("Cannot "+e)},l=(r,t,e)=>(va(r,t,"read from private field"),e?e.call(r):t.get(r)),A=(r,t,e)=>{if(t.has(r))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(r):t.set(r,e)},f=(r,t,e,s)=>(va(r,t,"write to private field"),s?s.call(r,e):t.set(r,e),e),ri=(r,t,e,s)=>({set _(n){f(r,t,n,e)},get _(){return l(r,t,s)}}),E=(r,t,e)=>(va(r,t,"access private method"),e),S=(r=>(r.INVALID_INPUT_PARAMETERS="1000",r.UNKNOWN_PROVIDERS="1001",r.CANNOT_FIND_INBOUND_ADDRESS="1002",r.NO_INBOUND_ADDRESSES="1003",r.CHAIN_HALTED_OR_UNSUPPORTED="1004",r.MISSING_INPUT_PARAMETER="1005",r.INVALID_TYPE_GENERIC="1100",r.INVALID_NUMBER_STRING="1101",r.INVALID_NUMBER="1102",r.INVALID_BOOLEAN="1103",r.INVALID_OBJECT="1104",r.INVALID_ARRAY="1105",r.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER="2000",r.SELL_BUY_ASSETS_ARE_THE_SAME="2001",r.MISSING_SOURCE_ADDRESS_FOR_SYNTH="2002",r.AFF_ADDRESS_AND_BPS_OR_NEITHER="2003",r.AFF_ADDRESS_TOO_LONG="2004",r.AFF_BPS_INTEGER_0_100="2005",r.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN="2006",r.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN="2007",r.PREFERRED_PROFVIDER_NOT_SUPPORTED="2008",r.DESTINATION_ADDRESS_SMART_CONTRACT="2009",r.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER="2010",r.SOURCE_ADDRESS_SMART_CONTRACT="2011",r.INVALID_PROVIDER="2100",r.MISSING_CROSS_CHAIN_PROVIDER="2101",r.MISSING_AVAX_PROVIDER="2102",r.MISSING_BSC_PROVIDER="2103",r.MISSING_ETH_PROVIDER="2104",r.INVALID_PROVIDER_FOR_SWAP_OUT="2105",r.MISSING_ARB_PROVIDER="2106",r.INVALID_CHAIN="2200",r.INVALID_ASSET="2201",r.INVALID_ASSET_IDENTIFIER="2202",r.UNSUPPORTED_CHAIN="2204",r.UNSUPPORTED_ASSET="2203",r.UNSUPPORTED_ASSET_FOR_SWAPOUT="2205",r.INVALID_SOURCE_ADDRESS="2300",r.INVALID_DESTINATION_ADDRESS="2301",r.THORNODE_QUOTE_GENERIC_ERROR="3000",r.NOT_ENOUGH_SYNTH_BALANCE="3001",r.SYNTH_MINTING_CAP_REACHED="3002",r.INVALID_QUOTE_MODE="4000",r.NO_QUOTES="4001",r.SERVICE_UNAVAILABLE_GENERIC="5000",r.MISSING_GAS_DATA_GENERIC="5100",r.MISSING_TOKEN_INFO_GENERIC="5200",r.CANT_FIND_TOKEN_LIST="5201",r.NO_PRICE="5202",r.PRICE_IS_STALE="5203",r.ADDRESS_NOT_WHITELISTED="6000",r.ADDRESS_ALREADY_CLAIMED="6001",r.TEMPORARY_ERROR="9999",r))(S||{});S.INVALID_INPUT_PARAMETERS+"",S.UNKNOWN_PROVIDERS+"",S.CANNOT_FIND_INBOUND_ADDRESS+"",S.NO_INBOUND_ADDRESSES+"",S.CHAIN_HALTED_OR_UNSUPPORTED+"",S.MISSING_INPUT_PARAMETER+"",S.INVALID_TYPE_GENERIC+"",S.INVALID_NUMBER_STRING+"",S.INVALID_NUMBER+"",S.INVALID_BOOLEAN+"",S.INVALID_OBJECT+"",S.INVALID_ARRAY+"",S.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER+"",S.SELL_BUY_ASSETS_ARE_THE_SAME+"",S.MISSING_SOURCE_ADDRESS_FOR_SYNTH+"",S.AFF_ADDRESS_AND_BPS_OR_NEITHER+"",S.AFF_ADDRESS_TOO_LONG+"",S.AFF_BPS_INTEGER_0_100+"",S.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN+"",S.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN+"",S.PREFERRED_PROFVIDER_NOT_SUPPORTED+"",S.DESTINATION_ADDRESS_SMART_CONTRACT+"",S.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER+"",S.INVALID_PROVIDER+"",S.MISSING_CROSS_CHAIN_PROVIDER+"",S.MISSING_AVAX_PROVIDER+"",S.MISSING_BSC_PROVIDER+"",S.MISSING_ETH_PROVIDER+"",S.MISSING_ARB_PROVIDER+"",S.INVALID_PROVIDER_FOR_SWAP_OUT+"",S.INVALID_CHAIN+"",S.INVALID_ASSET+"",S.UNSUPPORTED_CHAIN+"",S.UNSUPPORTED_ASSET+"",S.UNSUPPORTED_ASSET_FOR_SWAPOUT+"",S.THORNODE_QUOTE_GENERIC_ERROR+"",S.INVALID_SOURCE_ADDRESS+"",S.INVALID_DESTINATION_ADDRESS+"",S.NOT_ENOUGH_SYNTH_BALANCE+"",S.SYNTH_MINTING_CAP_REACHED+"",S.INVALID_QUOTE_MODE+"",S.NO_QUOTES+"",S.SERVICE_UNAVAILABLE_GENERIC+"",S.MISSING_GAS_DATA_GENERIC+"",S.MISSING_TOKEN_INFO_GENERIC+"",S.CANT_FIND_TOKEN_LIST+"",S.NO_PRICE+"",S.PRICE_IS_STALE+"",S.ADDRESS_NOT_WHITELISTED+"",S.ADDRESS_ALREADY_CLAIMED+"";var Mt=(r=>(r.Arbitrum="ARB",r.Avalanche="AVAX",r.Binance="BNB",r.BinanceSmartChain="BSC",r.Bitcoin="BTC",r.BitcoinCash="BCH",r.Cosmos="GAIA",r.Dogecoin="DOGE",r.Ethereum="ETH",r.Litecoin="LTC",r.Maya="MAYA",r.Optimism="OP",r.Polygon="MATIC",r.THORChain="THOR",r))(Mt||{}),je=(r=>(r.ARB="0x0000000000000000000000000000000000000000",r.AVAX="0x0000000000000000000000000000000000000000",r.ETH="0x0000000000000000000000000000000000000000",r.BSC="0x0000000000000000000000000000000000000000",r.MATIC="0x0000000000000000000000000000000000001010",r.OP="0x4200000000000000000000000000000000000042",r))(je||{}),Ia=(r=>(r.Arbitrum="42161",r.ArbitrumHex="0xa4b1",r.Avalanche="43114",r.AvalancheHex="0xa86a",r.Binance="Binance-Chain-Tigris",r.BinanceSmartChain="56",r.BinanceSmartChainHex="0x38",r.Bitcoin="bitcoin",r.BitcoinCash="bitcoincash",r.Cosmos="cosmoshub-4",r.Dogecoin="dogecoin",r.Ethereum="1",r.EthereumHex="0x1",r.Litecoin="litecoin",r.Maya="mayachain-mainnet-v1",r.MayaStagenet="mayachain-stagenet-v1",r.Optimism="10",r.OptimismHex="0xa",r.Polygon="137",r.PolygonHex="0x89",r.THORChain="thorchain-mainnet-v1",r.THORChainStagenet="thorchain-stagenet-v2",r))(Ia||{}),cc=(r=>(r.Arbitrum="https://arb1.arbitrum.io/rpc",r.Avalanche="https://node-router.thorswap.net/avalanche-c",r.Binance="",r.BinanceSmartChain="https://bsc-dataseed.binance.org",r.Bitcoin="https://node-router.thorswap.net/bitcoin",r.BitcoinCash="https://node-router.thorswap.net/bitcoin-cash",r.Cosmos="https://node-router.thorswap.net/cosmos/rpc",r.Dogecoin="https://node-router.thorswap.net/dogecoin",r.Ethereum="https://node-router.thorswap.net/ethereum",r.Litecoin="https://node-router.thorswap.net/litecoin",r.Maya="https://tendermint.mayachain.info",r.MayaStagenet="https://stagenet.tendermint.mayachain.info",r.Optimism="https://mainnet.optimism.io",r.Polygon="https://polygon-rpc.com",r.THORChain="https://rpc.thorswap.net",r.THORChainStagenet="https://stagenet-rpc.ninerealms.com",r))(cc||{});const mi=Object.values(Mt),au=Object.keys(Mt),Na=mi.reduce((r,t)=>{const e=au.find(s=>Mt[s]===t);return e&&(r[t]=e),r},{});mi.reduce((r,t)=>(r[t]=Ia[Na[t]],r),{});const ou=mi.reduce((r,t)=>(r[t]=cc[Na[t]],r),{});mi.reduce((r,t)=>{const e=`${Na[t]}Hex`;return r[t]=Ia[e],r},{});var lc=(r=>(r.Average="average",r.Fast="fast",r.Fastest="fastest",r))(lc||{});const cu=async({toolbox:r,from:t,memo:e="",feeOptionKey:s=lc.Fastest,assetValue:n,abi:i,funcName:a,funcParams:o,contractAddress:c,txOverrides:u})=>{const h=(await r.getBalance(t)).find(({symbol:P,chain:G})=>{var H;return n?P===n.symbol:P===((H=wn.AssetValue.fromChainOrSignature(G))==null?void 0:H.symbol)}),d=(await r.estimateGasPrices())[s];if(!h)return wn.AssetValue.fromChainOrSignature(n.chain,0);if(n&&(h.chain!==n.chain||h.symbol!==(n==null?void 0:n.symbol)))return h;if([i,a,o,c].some(P=>!P))throw new Error("Missing required parameters for smart contract estimateMaxSendableAmount");const p=i&&a&&o&&c?await r.estimateCall({contractAddress:c,abi:i,funcName:a,funcParams:o,txOverrides:u}):await r.estimateGasLimit({from:t,recipient:t,memo:e,assetValue:n}),y="maxFeePerGas"in d;if(!("gasPrice"in d)&&!y)throw new Error("Could not fetch fee data");const b=p*(y?d.maxFeePerGas+(d.maxPriorityFeePerGas||1n):d.gasPrice),N=wn.SwapKitNumber.fromBigInt(h.baseValueBigInt).sub(b.toString());return wn.AssetValue.fromChainOrSignature(h.chain,N.value)};function Wi(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Wrong positive integer: ${r}`)}function lu(r){if(typeof r!="boolean")throw new Error(`Expected boolean, not ${r}`)}function uc(r,...t){if(!(r instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(r.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${r.length}`)}function uu(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Wi(r.outputLen),Wi(r.blockLen)}function hu(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function fu(r,t){uc(r);const e=t.outputLen;if(r.length<e)throw new Error(`digestInto() expects output buffer of length at least ${e}`)}const vt={number:Wi,bool:lu,bytes:uc,hash:uu,exists:hu,output:fu};/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const du=r=>new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)),Ri=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),Wt=(r,t)=>r<<32-t|r>>>t,pu=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!pu)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function gu(r){if(typeof r!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof r}`);return new TextEncoder().encode(r)}function hn(r){if(typeof r=="string"&&(r=gu(r)),!(r instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof r})`);return r}class si{clone(){return this._cloneInto()}}function fn(r){const t=s=>r().update(hn(s)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function mu(r){const t=(s,n)=>r(n).update(hn(s)).digest(),e=r({});return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=s=>r(s),t}class hc extends si{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,vt.hash(t);const s=hn(e);if(this.iHash=t.create(),!(this.iHash instanceof si))throw new TypeError("Expected instance of class which extends utils.Hash");const n=this.blockLen=this.iHash.blockLen;this.outputLen=this.iHash.outputLen;const i=new Uint8Array(n);i.set(s.length>this.iHash.blockLen?t.create().update(s).digest():s);for(let a=0;a<i.length;a++)i[a]^=54;this.iHash.update(i),this.oHash=t.create();for(let a=0;a<i.length;a++)i[a]^=106;this.oHash.update(i),i.fill(0)}update(t){return vt.exists(this),this.iHash.update(t),this}digestInto(t){vt.exists(this),vt.bytes(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:s,finished:n,destroyed:i,blockLen:a,outputLen:o}=this;return t=t,t.finished=n,t.destroyed=i,t.blockLen=a,t.outputLen=o,t.oHash=e._cloneInto(t.oHash),t.iHash=s._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const fc=(r,t,e)=>new hc(r,t).update(e).digest();fc.create=(r,t)=>new hc(r,t);function Au(r,t,e,s){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,s);const n=BigInt(32),i=BigInt(4294967295),a=Number(e>>n&i),o=Number(e&i),c=s?4:0,u=s?0:4;r.setUint32(t+c,a,s),r.setUint32(t+u,o,s)}class dc extends si{constructor(t,e,s,n){super(),this.blockLen=t,this.outputLen=e,this.padOffset=s,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Ri(this.buffer)}update(t){vt.exists(this);const{view:e,buffer:s,blockLen:n}=this;t=hn(t);const i=t.length;for(let a=0;a<i;){const o=Math.min(n-this.pos,i-a);if(o===n){const c=Ri(t);for(;n<=i-a;a+=n)this.process(c,a);continue}s.set(t.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===n&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){vt.exists(this),vt.output(t,this),this.finished=!0;const{buffer:e,view:s,blockLen:n,isLE:i}=this;let{pos:a}=this;e[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>n-a&&(this.process(s,0),a=0);for(let c=a;c<n;c++)e[c]=0;Au(s,n-8,BigInt(this.length*8),i),this.process(s,0);const o=Ri(t);this.get().forEach((c,u)=>o.setUint32(4*u,c,i))}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const s=t.slice(0,e);return this.destroy(),s}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:s,length:n,finished:i,destroyed:a,pos:o}=this;return t.length=n,t.pos=o,t.finished=i,t.destroyed=a,n%e&&t.buffer.set(s),t}}const yu=(r,t,e)=>r&t^~r&e,wu=(r,t,e)=>r&t^r&e^t&e,bu=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]),pe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ge=new Uint32Array(64);class Eu extends dc{constructor(){super(64,32,8,!1),this.A=pe[0]|0,this.B=pe[1]|0,this.C=pe[2]|0,this.D=pe[3]|0,this.E=pe[4]|0,this.F=pe[5]|0,this.G=pe[6]|0,this.H=pe[7]|0}get(){const{A:t,B:e,C:s,D:n,E:i,F:a,G:o,H:c}=this;return[t,e,s,n,i,a,o,c]}set(t,e,s,n,i,a,o,c){this.A=t|0,this.B=e|0,this.C=s|0,this.D=n|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0}process(t,e){for(let d=0;d<16;d++,e+=4)ge[d]=t.getUint32(e,!1);for(let d=16;d<64;d++){const p=ge[d-15],y=ge[d-2],b=Wt(p,7)^Wt(p,18)^p>>>3,N=Wt(y,17)^Wt(y,19)^y>>>10;ge[d]=N+ge[d-7]+b+ge[d-16]|0}let{A:s,B:n,C:i,D:a,E:o,F:c,G:u,H:h}=this;for(let d=0;d<64;d++){const p=Wt(o,6)^Wt(o,11)^Wt(o,25),y=h+p+yu(o,c,u)+bu[d]+ge[d]|0,b=(Wt(s,2)^Wt(s,13)^Wt(s,22))+wu(s,n,i)|0;h=u,u=c,c=o,o=a+y|0,a=i,i=n,n=s,s=y+b|0}s=s+this.A|0,n=n+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,h=h+this.H|0,this.set(s,n,i,a,o,c,u,h)}roundClean(){ge.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const vu=fn(()=>new Eu),bn=BigInt(2**32-1),Qi=BigInt(32);function pc(r,t=!1){return t?{h:Number(r&bn),l:Number(r>>Qi&bn)}:{h:Number(r>>Qi&bn)|0,l:Number(r&bn)|0}}function Iu(r,t=!1){let e=new Uint32Array(r.length),s=new Uint32Array(r.length);for(let n=0;n<r.length;n++){const{h:i,l:a}=pc(r[n],t);[e[n],s[n]]=[i,a]}return[e,s]}const Nu=(r,t)=>BigInt(r>>>0)<<Qi|BigInt(t>>>0),Pu=(r,t,e)=>r>>>e,Cu=(r,t,e)=>r<<32-e|t>>>e,ku=(r,t,e)=>r>>>e|t<<32-e,Su=(r,t,e)=>r<<32-e|t>>>e,Ou=(r,t,e)=>r<<64-e|t>>>e-32,xu=(r,t,e)=>r>>>e-32|t<<64-e,Ru=(r,t)=>t,Tu=(r,t)=>r,Bu=(r,t,e)=>r<<e|t>>>32-e,Du=(r,t,e)=>t<<e|r>>>32-e,Lu=(r,t,e)=>t<<e-32|r>>>64-e,Uu=(r,t,e)=>r<<e-32|t>>>64-e;function Fu(r,t,e,s){const n=(t>>>0)+(s>>>0);return{h:r+e+(n/2**32|0)|0,l:n|0}}const Mu=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Gu=(r,t,e,s)=>t+e+s+(r/2**32|0)|0,Hu=(r,t,e,s)=>(r>>>0)+(t>>>0)+(e>>>0)+(s>>>0),Vu=(r,t,e,s,n)=>t+e+s+n+(r/2**32|0)|0,ju=(r,t,e,s,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(s>>>0)+(n>>>0),Wu=(r,t,e,s,n,i)=>t+e+s+n+i+(r/2**32|0)|0,x={fromBig:pc,split:Iu,toBig:Nu,shrSH:Pu,shrSL:Cu,rotrSH:ku,rotrSL:Su,rotrBH:Ou,rotrBL:xu,rotr32H:Ru,rotr32L:Tu,rotlSH:Bu,rotlSL:Du,rotlBH:Lu,rotlBL:Uu,add:Fu,add3L:Mu,add3H:Gu,add4L:Hu,add4H:Vu,add5H:Wu,add5L:ju},[Qu,Ju]=x.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))),me=new Uint32Array(80),Ae=new Uint32Array(80);class Pa extends dc{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:s,Bl:n,Ch:i,Cl:a,Dh:o,Dl:c,Eh:u,El:h,Fh:d,Fl:p,Gh:y,Gl:b,Hh:N,Hl:P}=this;return[t,e,s,n,i,a,o,c,u,h,d,p,y,b,N,P]}set(t,e,s,n,i,a,o,c,u,h,d,p,y,b,N,P){this.Ah=t|0,this.Al=e|0,this.Bh=s|0,this.Bl=n|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=h|0,this.Fh=d|0,this.Fl=p|0,this.Gh=y|0,this.Gl=b|0,this.Hh=N|0,this.Hl=P|0}process(t,e){for(let T=0;T<16;T++,e+=4)me[T]=t.getUint32(e),Ae[T]=t.getUint32(e+=4);for(let T=16;T<80;T++){const X=me[T-15]|0,V=Ae[T-15]|0,Bt=x.rotrSH(X,V,1)^x.rotrSH(X,V,8)^x.shrSH(X,V,7),Ve=x.rotrSL(X,V,1)^x.rotrSL(X,V,8)^x.shrSL(X,V,7),Z=me[T-2]|0,$=Ae[T-2]|0,de=x.rotrSH(Z,$,19)^x.rotrBH(Z,$,61)^x.shrSH(Z,$,6),Oi=x.rotrSL(Z,$,19)^x.rotrBL(Z,$,61)^x.shrSL(Z,$,6),yn=x.add4L(Ve,Oi,Ae[T-7],Ae[T-16]),xi=x.add4H(yn,Bt,de,me[T-7],me[T-16]);me[T]=xi|0,Ae[T]=yn|0}let{Ah:s,Al:n,Bh:i,Bl:a,Ch:o,Cl:c,Dh:u,Dl:h,Eh:d,El:p,Fh:y,Fl:b,Gh:N,Gl:P,Hh:G,Hl:H}=this;for(let T=0;T<80;T++){const X=x.rotrSH(d,p,14)^x.rotrSH(d,p,18)^x.rotrBH(d,p,41),V=x.rotrSL(d,p,14)^x.rotrSL(d,p,18)^x.rotrBL(d,p,41),Bt=d&y^~d&N,Ve=p&b^~p&P,Z=x.add5L(H,V,Ve,Ju[T],Ae[T]),$=x.add5H(Z,G,X,Bt,Qu[T],me[T]),de=Z|0,Oi=x.rotrSH(s,n,28)^x.rotrBH(s,n,34)^x.rotrBH(s,n,39),yn=x.rotrSL(s,n,28)^x.rotrBL(s,n,34)^x.rotrBL(s,n,39),xi=s&i^s&o^i&o,su=n&a^n&c^a&c;G=N|0,H=P|0,N=y|0,P=b|0,y=d|0,b=p|0,{h:d,l:p}=x.add(u|0,h|0,$|0,de|0),u=o|0,h=c|0,o=i|0,c=a|0,i=s|0,a=n|0;const Ja=x.add3L(de,yn,su);s=x.add3H(Ja,$,Oi,xi),n=Ja|0}({h:s,l:n}=x.add(this.Ah|0,this.Al|0,s|0,n|0)),{h:i,l:a}=x.add(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:c}=x.add(this.Ch|0,this.Cl|0,o|0,c|0),{h:u,l:h}=x.add(this.Dh|0,this.Dl|0,u|0,h|0),{h:d,l:p}=x.add(this.Eh|0,this.El|0,d|0,p|0),{h:y,l:b}=x.add(this.Fh|0,this.Fl|0,y|0,b|0),{h:N,l:P}=x.add(this.Gh|0,this.Gl|0,N|0,P|0),{h:G,l:H}=x.add(this.Hh|0,this.Hl|0,G|0,H|0),this.set(s,n,i,a,o,c,u,h,d,p,y,b,N,P,G,H)}roundClean(){me.fill(0),Ae.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)}}class _u extends Pa{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class zu extends Pa{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}const Ku=fn(()=>new Pa);fn(()=>new _u);fn(()=>new zu);const Yu="6.7.1";function qu(r,t,e){const s=t.split("|").map(i=>i.trim());for(let i=0;i<s.length;i++)switch(t){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof r===t)return}const n=new Error(`invalid value for type ${t}`);throw n.code="INVALID_ARGUMENT",n.argument=`value.${e}`,n.value=r,n}async function ot(r){const t=Object.keys(r);return(await Promise.all(t.map(e=>Promise.resolve(r[e])))).reduce((e,s,n)=>(e[t[n]]=s,e),{})}function O(r,t,e){for(let s in t){let n=t[s];const i=e?e[s]:null;i&&qu(n,i,s),Object.defineProperty(r,s,{enumerable:!0,value:n,writable:!1})}}function Br(r){if(r==null)return"null";if(Array.isArray(r))return"[ "+r.map(Br).join(", ")+" ]";if(r instanceof Uint8Array){const t="0123456789abcdef";let e="0x";for(let s=0;s<r.length;s++)e+=t[r[s]>>4],e+=t[r[s]&15];return e}if(typeof r=="object"&&typeof r.toJSON=="function")return Br(r.toJSON());switch(typeof r){case"boolean":case"symbol":return r.toString();case"bigint":return BigInt(r).toString();case"number":return r.toString();case"string":return JSON.stringify(r);case"object":{const t=Object.keys(r);return t.sort(),"{ "+t.map(e=>`${Br(e)}: ${Br(r[e])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Tt(r,t){return r&&r.code===t}function Ca(r){return Tt(r,"CALL_EXCEPTION")}function q(r,t,e){{const n=[];if(e){if("message"in e||"code"in e||"name"in e)throw new Error(`value will overwrite populated values: ${Br(e)}`);for(const i in e){const a=e[i];n.push(i+"="+Br(a))}}n.push(`code=${t}`),n.push(`version=${Yu}`),n.length&&(r+=" ("+n.join(", ")+")")}let s;switch(t){case"INVALID_ARGUMENT":s=new TypeError(r);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":s=new RangeError(r);break;default:s=new Error(r)}return O(s,{code:t}),e&&Object.assign(s,e),s}function w(r,t,e,s){if(!r)throw q(t,e,s)}function g(r,t,e,s){w(r,t,"INVALID_ARGUMENT",{argument:e,value:s})}function gc(r,t,e){e==null&&(e=""),e&&(e=": "+e),w(r>=t,"missing arguemnt"+e,"MISSING_ARGUMENT",{count:r,expectedCount:t}),w(r<=t,"too many arguemnts"+e,"UNEXPECTED_ARGUMENT",{count:r,expectedCount:t})}const Zu=["NFD","NFC","NFKD","NFKC"].reduce((r,t)=>{try{if("test".normalize(t)!=="test")throw new Error("bad");if(t==="NFD"){const e=String.fromCharCode(233).normalize("NFD"),s=String.fromCharCode(101,769);if(e!==s)throw new Error("broken")}r.push(t)}catch{}return r},[]);function Xu(r){w(Zu.indexOf(r)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:r}})}function Ai(r,t,e){if(e==null&&(e=""),r!==t){let s=e,n="new";e&&(s+=".",n+=" "+e),w(!1,`private constructor; use ${s}from* methods`,"UNSUPPORTED_OPERATION",{operation:n})}}function mc(r,t,e){if(r instanceof Uint8Array)return e?new Uint8Array(r):r;if(typeof r=="string"&&r.match(/^0x([0-9a-f][0-9a-f])*$/i)){const s=new Uint8Array((r.length-2)/2);let n=2;for(let i=0;i<s.length;i++)s[i]=parseInt(r.substring(n,n+2),16),n+=2;return s}g(!1,"invalid BytesLike value",t||"value",r)}function L(r,t){return mc(r,t,!1)}function pt(r,t){return mc(r,t,!0)}function _(r,t){return!(typeof r!="string"||!r.match(/^0x[0-9A-Fa-f]*$/)||typeof t=="number"&&r.length!==2+2*t||t===!0&&r.length%2!==0)}function $u(r){return _(r,!0)||r instanceof Uint8Array}const _a="0123456789abcdef";function C(r){const t=L(r);let e="0x";for(let s=0;s<t.length;s++){const n=t[s];e+=_a[(n&240)>>4]+_a[n&15]}return e}function Y(r){return"0x"+r.map(t=>C(t).substring(2)).join("")}function Gr(r){return _(r,!0)?(r.length-2)/2:L(r).length}function z(r,t,e){const s=L(r);return e!=null&&e>s.length&&w(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:s,length:s.length,offset:e}),C(s.slice(t??0,e??s.length))}function Ac(r,t,e){const s=L(r);w(t>=s.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(s),length:t,offset:t+1});const n=new Uint8Array(t);return n.fill(0),e?n.set(s,t-s.length):n.set(s,0),C(n)}function cr(r,t){return Ac(r,t,!0)}function th(r,t){return Ac(r,t,!1)}const yi=BigInt(0),Ht=BigInt(1),Dr=9007199254740991;function eh(r,t){const e=wi(r,"value"),s=BigInt(R(t,"width"));if(w(e>>s===yi,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:r}),e>>s-Ht){const n=(Ht<<s)-Ht;return-((~e&n)+Ht)}return e}function yc(r,t){let e=k(r,"value");const s=BigInt(R(t,"width")),n=Ht<<s-Ht;if(e<yi){e=-e,w(e<=n,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:r});const i=(Ht<<s)-Ht;return(~e&i)+Ht}else w(e<n,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:r});return e}function es(r,t){const e=wi(r,"value"),s=BigInt(R(t,"bits"));return e&(Ht<<s)-Ht}function k(r,t){switch(typeof r){case"bigint":return r;case"number":return g(Number.isInteger(r),"underflow",t||"value",r),g(r>=-Dr&&r<=Dr,"overflow",t||"value",r),BigInt(r);case"string":try{if(r==="")throw new Error("empty string");return r[0]==="-"&&r[1]!=="-"?-BigInt(r.substring(1)):BigInt(r)}catch(e){g(!1,`invalid BigNumberish string: ${e.message}`,t||"value",r)}}g(!1,"invalid BigNumberish value",t||"value",r)}function wi(r,t){const e=k(r,t);return w(e>=yi,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:r}),e}const za="0123456789abcdef";function ka(r){if(r instanceof Uint8Array){let t="0x0";for(const e of r)t+=za[e>>4],t+=za[e&15];return BigInt(t)}return k(r)}function R(r,t){switch(typeof r){case"bigint":return g(r>=-Dr&&r<=Dr,"overflow",t||"value",r),Number(r);case"number":return g(Number.isInteger(r),"underflow",t||"value",r),g(r>=-Dr&&r<=Dr,"overflow",t||"value",r),r;case"string":try{if(r==="")throw new Error("empty string");return R(BigInt(r),t)}catch(e){g(!1,`invalid numeric string: ${e.message}`,t||"value",r)}}g(!1,"invalid numeric value",t||"value",r)}function rh(r){return R(ka(r))}function Fe(r,t){let e=wi(r,"value").toString(16);if(t==null)e.length%2&&(e="0"+e);else{const s=R(t,"width");for(w(s*2>=e.length,`value exceeds width (${s} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:r});e.length<s*2;)e="0"+e}return"0x"+e}function It(r){const t=wi(r,"value");if(t===yi)return new Uint8Array([]);let e=t.toString(16);e.length%2&&(e="0"+e);const s=new Uint8Array(e.length/2);for(let n=0;n<s.length;n++){const i=n*2;s[n]=parseInt(e.substring(i,i+2),16)}return s}function Lr(r){let t=C($u(r)?r:It(r)).substring(2);for(;t.startsWith("0");)t=t.substring(1);return t===""&&(t="0"),"0x"+t}const sh="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";BigInt(0);const Ka=BigInt(58);function nh(r){let t=ka(L(r)),e="";for(;t;)e=sh[Number(t%Ka)]+e,t/=Ka;return e}function ih(r){r=atob(r);const t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return L(t)}function ah(r){const t=L(r);let e="";for(let s=0;s<t.length;s++)e+=String.fromCharCode(t[s]);return btoa(e)}var rs;class wc{constructor(t,e,s){m(this,"filter"),m(this,"emitter"),A(this,rs,void 0),f(this,rs,e),O(this,{emitter:t,filter:s})}async removeListener(){l(this,rs)!=null&&await this.emitter.off(this.filter,l(this,rs))}}rs=new WeakMap;function oh(r,t,e,s,n){g(!1,`invalid codepoint at offset ${t}; ${r}`,"bytes",e)}function bc(r,t,e,s,n){if(r==="BAD_PREFIX"||r==="UNEXPECTED_CONTINUE"){let i=0;for(let a=t+1;a<e.length&&e[a]>>6===2;a++)i++;return i}return r==="OVERRUN"?e.length-t-1:0}function ch(r,t,e,s,n){return r==="OVERLONG"?(g(typeof n=="number","invalid bad code point for replacement","badCodepoint",n),s.push(n),0):(s.push(65533),bc(r,t,e))}const lh=Object.freeze({error:oh,ignore:bc,replace:ch});function uh(r,t){t==null&&(t=lh.error);const e=L(r,"bytes"),s=[];let n=0;for(;n<e.length;){const i=e[n++];if(!(i>>7)){s.push(i);continue}let a=null,o=null;if((i&224)===192)a=1,o=127;else if((i&240)===224)a=2,o=2047;else if((i&248)===240)a=3,o=65535;else{(i&192)===128?n+=t("UNEXPECTED_CONTINUE",n-1,e,s):n+=t("BAD_PREFIX",n-1,e,s);continue}if(n-1+a>=e.length){n+=t("OVERRUN",n-1,e,s);continue}let c=i&(1<<8-a-1)-1;for(let u=0;u<a;u++){let h=e[n];if((h&192)!=128){n+=t("MISSING_CONTINUE",n,e,s),c=null;break}c=c<<6|h&63,n++}if(c!==null){if(c>1114111){n+=t("OUT_OF_RANGE",n-1-a,e,s,c);continue}if(c>=55296&&c<=57343){n+=t("UTF16_SURROGATE",n-1-a,e,s,c);continue}if(c<=o){n+=t("OVERLONG",n-1-a,e,s,c);continue}s.push(c)}}return s}function oe(r,t){t!=null&&(Xu(t),r=r.normalize(t));let e=[];for(let s=0;s<r.length;s++){const n=r.charCodeAt(s);if(n<128)e.push(n);else if(n<2048)e.push(n>>6|192),e.push(n&63|128);else if((n&64512)==55296){s++;const i=r.charCodeAt(s);g(s<r.length&&(i&64512)===56320,"invalid surrogate pair","str",r);const a=65536+((n&1023)<<10)+(i&1023);e.push(a>>18|240),e.push(a>>12&63|128),e.push(a>>6&63|128),e.push(a&63|128)}else e.push(n>>12|224),e.push(n>>6&63|128),e.push(n&63|128)}return new Uint8Array(e)}function hh(r){return r.map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10&1023)+55296,(t&1023)+56320))).join("")}function Sa(r,t){return hh(uh(r,t))}async function fh(r,t){const e=r.url.split(":")[0].toLowerCase();w(e==="http"||e==="https",`unsupported protocol ${e}`,"UNSUPPORTED_OPERATION",{info:{protocol:e},operation:"request"}),w(e==="https"||!r.credentials||r.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let s;if(t){const u=new AbortController;s=u.signal,t.addListener(()=>{u.abort()})}const n={method:r.method,headers:new Headers(Array.from(r)),body:r.body||void 0,signal:s},i=await fetch(r.url,n),a={};i.headers.forEach((u,h)=>{a[h.toLowerCase()]=u});const o=await i.arrayBuffer(),c=o==null?null:new Uint8Array(o);return{statusCode:i.status,statusMessage:i.statusText,headers:a,body:c}}const dh=12,ph=250;let Ec=fh;const gh=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),mh=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let Ti=!1;async function vc(r,t){try{const e=r.match(gh);if(!e)throw new Error("invalid data");return new _r(200,"OK",{"content-type":e[1]||"text/plain"},e[2]?ih(e[3]):bh(e[3]))}catch{return new _r(599,"BAD REQUEST (invalid data: URI)",{},null,new lr(r))}}function Ic(r){async function t(e,s){try{const n=e.match(mh);if(!n)throw new Error("invalid link");return new lr(`${r}${n[2]}`)}catch{return new _r(599,"BAD REQUEST (invalid IPFS URI)",{},null,new lr(e))}}return t}const ni={data:vc,ipfs:Ic("https://gateway.ipfs.io/ipfs/")},Nc=new WeakMap;var yr,We;class Ah{constructor(t){A(this,yr,void 0),A(this,We,void 0),f(this,yr,[]),f(this,We,!1),Nc.set(t,()=>{if(!l(this,We)){f(this,We,!0);for(const e of l(this,yr))setTimeout(()=>{e()},0);f(this,yr,[])}})}addListener(t){w(!l(this,We),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),l(this,yr).push(t)}get cancelled(){return l(this,We)}checkSignal(){w(!this.cancelled,"cancelled","CANCELLED",{})}}yr=new WeakMap,We=new WeakMap;function En(r){if(r==null)throw new Error("missing signal; should not happen");return r.checkSignal(),r}var ss,ns,Qt,ye,is,as,tt,Ct,we,wr,br,Er,re,Re,Ur,os;const yh=class Ji{constructor(t){A(this,Ur),A(this,ss,void 0),A(this,ns,void 0),A(this,Qt,void 0),A(this,ye,void 0),A(this,is,void 0),A(this,as,void 0),A(this,tt,void 0),A(this,Ct,void 0),A(this,we,void 0),A(this,wr,void 0),A(this,br,void 0),A(this,Er,void 0),A(this,re,void 0),A(this,Re,void 0),f(this,as,String(t)),f(this,ss,!1),f(this,ns,!0),f(this,Qt,{}),f(this,ye,""),f(this,is,3e5),f(this,Re,{slotInterval:ph,maxAttempts:dh})}get url(){return l(this,as)}set url(t){f(this,as,String(t))}get body(){return l(this,tt)==null?null:new Uint8Array(l(this,tt))}set body(t){if(t==null)f(this,tt,void 0),f(this,Ct,void 0);else if(typeof t=="string")f(this,tt,oe(t)),f(this,Ct,"text/plain");else if(t instanceof Uint8Array)f(this,tt,t),f(this,Ct,"application/octet-stream");else if(typeof t=="object")f(this,tt,oe(JSON.stringify(t))),f(this,Ct,"application/json");else throw new Error("invalid body")}hasBody(){return l(this,tt)!=null}get method(){return l(this,ye)?l(this,ye):this.hasBody()?"POST":"GET"}set method(t){t==null&&(t=""),f(this,ye,String(t).toUpperCase())}get headers(){const t=Object.assign({},l(this,Qt));return l(this,we)&&(t.authorization=`Basic ${ah(oe(l(this,we)))}`),this.allowGzip&&(t["accept-encoding"]="gzip"),t["content-type"]==null&&l(this,Ct)&&(t["content-type"]=l(this,Ct)),this.body&&(t["content-length"]=String(this.body.length)),t}getHeader(t){return this.headers[t.toLowerCase()]}setHeader(t,e){l(this,Qt)[String(t).toLowerCase()]=String(e)}clearHeaders(){f(this,Qt,{})}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let s=0;return{next:()=>{if(s<e.length){const n=e[s++];return{value:[n,t[n]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return l(this,we)||null}setCredentials(t,e){g(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),f(this,we,`${t}:${e}`)}get allowGzip(){return l(this,ns)}set allowGzip(t){f(this,ns,!!t)}get allowInsecureAuthentication(){return!!l(this,ss)}set allowInsecureAuthentication(t){f(this,ss,!!t)}get timeout(){return l(this,is)}set timeout(t){g(t>=0,"timeout must be non-zero","timeout",t),f(this,is,t)}get preflightFunc(){return l(this,wr)||null}set preflightFunc(t){f(this,wr,t)}get processFunc(){return l(this,br)||null}set processFunc(t){f(this,br,t)}get retryFunc(){return l(this,Er)||null}set retryFunc(t){f(this,Er,t)}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${l(this,tt)?C(l(this,tt)):"null"}>`}setThrottleParams(t){t.slotInterval!=null&&(l(this,Re).slotInterval=t.slotInterval),t.maxAttempts!=null&&(l(this,Re).maxAttempts=t.maxAttempts)}send(){return w(l(this,re)==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),f(this,re,new Ah(this)),E(this,Ur,os).call(this,0,Cc()+this.timeout,0,this,new _r(0,"",{},null,this))}cancel(){w(l(this,re)!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=Nc.get(this);if(!t)throw new Error("missing signal; should not happen");t()}redirect(t){const e=this.url.split(":")[0].toLowerCase(),s=t.split(":")[0].toLowerCase();w(this.method==="GET"&&(e!=="https"||s!=="http")&&t.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(t)})`});const n=new Ji(t);return n.method="GET",n.allowGzip=this.allowGzip,n.timeout=this.timeout,f(n,Qt,Object.assign({},l(this,Qt))),l(this,tt)&&f(n,tt,new Uint8Array(l(this,tt))),f(n,Ct,l(this,Ct)),n}clone(){const t=new Ji(this.url);return f(t,ye,l(this,ye)),l(this,tt)&&f(t,tt,l(this,tt)),f(t,Ct,l(this,Ct)),f(t,Qt,Object.assign({},l(this,Qt))),f(t,we,l(this,we)),this.allowGzip&&(t.allowGzip=!0),t.timeout=this.timeout,this.allowInsecureAuthentication&&(t.allowInsecureAuthentication=!0),f(t,wr,l(this,wr)),f(t,br,l(this,br)),f(t,Er,l(this,Er)),t}static lockConfig(){Ti=!0}static getGateway(t){return ni[t.toLowerCase()]||null}static registerGateway(t,e){if(t=t.toLowerCase(),t==="http"||t==="https")throw new Error(`cannot intercept ${t}; use registerGetUrl`);if(Ti)throw new Error("gateways locked");ni[t]=e}static registerGetUrl(t){if(Ti)throw new Error("gateways locked");Ec=t}static createDataGateway(){return vc}static createIpfsGatewayFunc(t){return Ic(t)}};ss=new WeakMap,ns=new WeakMap,Qt=new WeakMap,ye=new WeakMap,is=new WeakMap,as=new WeakMap,tt=new WeakMap,Ct=new WeakMap,we=new WeakMap,wr=new WeakMap,br=new WeakMap,Er=new WeakMap,re=new WeakMap,Re=new WeakMap,Ur=new WeakSet,os=async function(r,t,e,s,n){var i,a,o;if(r>=l(this,Re).maxAttempts)return n.makeServerError("exceeded maximum retry limit");w(Cc()<=t,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:s}),e>0&&await Eh(e);let c=this.clone();const u=(c.url.split(":")[0]||"").toLowerCase();if(u in ni){const p=await ni[u](c.url,En(l(s,re)));if(p instanceof _r){let y=p;if(this.processFunc){En(l(s,re));try{y=await this.processFunc(c,y)}catch(b){(b.throttle==null||typeof b.stall!="number")&&y.makeServerError("error in post-processing function",b).assertOk()}}return y}c=p}this.preflightFunc&&(c=await this.preflightFunc(c));const h=await Ec(c,En(l(s,re)));let d=new _r(h.statusCode,h.statusMessage,h.headers,h.body,s);if(d.statusCode===301||d.statusCode===302){try{const p=d.headers.location||"";return E(i=c.redirect(p),Ur,os).call(i,r+1,t,0,s,d)}catch{}return d}else if(d.statusCode===429&&(this.retryFunc==null||await this.retryFunc(c,d,r))){const p=d.headers["retry-after"];let y=l(this,Re).slotInterval*Math.trunc(Math.random()*Math.pow(2,r));return typeof p=="string"&&p.match(/^[1-9][0-9]*$/)&&(y=parseInt(p)),E(a=c.clone(),Ur,os).call(a,r+1,t,y,s,d)}if(this.processFunc){En(l(s,re));try{d=await this.processFunc(c,d)}catch(p){(p.throttle==null||typeof p.stall!="number")&&d.makeServerError("error in post-processing function",p).assertOk();let y=l(this,Re).slotInterval*Math.trunc(Math.random()*Math.pow(2,r));return p.stall>=0&&(y=p.stall),E(o=c.clone(),Ur,os).call(o,r+1,t,y,s,d)}}return d};let lr=yh;var xn,Rn,Tn,Jt,cs,vr;const wh=class Pc{constructor(t,e,s,n,i){A(this,xn,void 0),A(this,Rn,void 0),A(this,Tn,void 0),A(this,Jt,void 0),A(this,cs,void 0),A(this,vr,void 0),f(this,xn,t),f(this,Rn,e),f(this,Tn,Object.keys(s).reduce((a,o)=>(a[o.toLowerCase()]=String(s[o]),a),{})),f(this,Jt,n==null?null:new Uint8Array(n)),f(this,cs,i||null),f(this,vr,{message:""})}toString(){return`<FetchResponse status=${this.statusCode} body=${l(this,Jt)?C(l(this,Jt)):"null"}>`}get statusCode(){return l(this,xn)}get statusMessage(){return l(this,Rn)}get headers(){return Object.assign({},l(this,Tn))}get body(){return l(this,Jt)==null?null:new Uint8Array(l(this,Jt))}get bodyText(){try{return l(this,Jt)==null?"":Sa(l(this,Jt))}catch{w(!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{w(!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 s=0;return{next:()=>{if(s<e.length){const n=e[s++];return{value:[n,t[n]],done:!1}}return{value:void 0,done:!0}}}}makeServerError(t,e){let s;t?s=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${t})`:(t=`${this.statusCode} ${this.statusMessage}`,s=`CLIENT ESCALATED SERVER ERROR (${t})`);const n=new Pc(599,s,this.headers,this.body,l(this,cs)||void 0);return f(n,vr,{message:t,error:e}),n}throwThrottleError(t,e){e==null?e=-1:g(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const s=new Error(t||"throttling requests");throw O(s,{stall:e,throttle:!0}),s}getHeader(t){return this.headers[t.toLowerCase()]}hasBody(){return l(this,Jt)!=null}get request(){return l(this,cs)}ok(){return l(this,vr).message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:t,error:e}=l(this,vr);t===""&&(t=`server response ${this.statusCode} ${this.statusMessage}`),w(!1,t,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:e})}};xn=new WeakMap,Rn=new WeakMap,Tn=new WeakMap,Jt=new WeakMap,cs=new WeakMap,vr=new WeakMap;let _r=wh;function Cc(){return new Date().getTime()}function bh(r){return oe(r.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16))))}function Eh(r){return new Promise(t=>setTimeout(t,r))}function vh(r){let t=r.toString(16);for(;t.length<2;)t="0"+t;return"0x"+t}function Ya(r,t,e){let s=0;for(let n=0;n<e;n++)s=s*256+r[t+n];return s}function qa(r,t,e,s){const n=[];for(;e<t+1+s;){const i=kc(r,e);n.push(i.result),e+=i.consumed,w(e<=t+1+s,"child data too short","BUFFER_OVERRUN",{buffer:r,length:s,offset:t})}return{consumed:1+s,result:n}}function kc(r,t){w(r.length!==0,"data too short","BUFFER_OVERRUN",{buffer:r,length:0,offset:1});const e=s=>{w(s<=r.length,"data short segment too short","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:s})};if(r[t]>=248){const s=r[t]-247;e(t+1+s);const n=Ya(r,t+1,s);return e(t+1+s+n),qa(r,t,t+1+s,s+n)}else if(r[t]>=192){const s=r[t]-192;return e(t+1+s),qa(r,t,t+1,s)}else if(r[t]>=184){const s=r[t]-183;e(t+1+s);const n=Ya(r,t+1,s);e(t+1+s+n);const i=C(r.slice(t+1+s,t+1+s+n));return{consumed:1+s+n,result:i}}else if(r[t]>=128){const s=r[t]-128;e(t+1+s);const n=C(r.slice(t+1,t+1+s));return{consumed:1+s,result:n}}return{consumed:1,result:vh(r[t])}}function Oa(r){const t=L(r,"data"),e=kc(t,0);return g(e.consumed===t.length,"unexpected junk after rlp payload","data",r),e.result}function Za(r){const t=[];for(;r;)t.unshift(r&255),r>>=8;return t}function Sc(r){if(Array.isArray(r)){let s=[];if(r.forEach(function(i){s=s.concat(Sc(i))}),s.length<=55)return s.unshift(192+s.length),s;const n=Za(s.length);return n.unshift(247+n.length),n.concat(s)}const t=Array.prototype.slice.call(L(r,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const e=Za(t.length);return e.unshift(183+e.length),e.concat(t)}const Xa="0123456789abcdef";function Xs(r){let t="0x";for(const e of Sc(r))t+=Xa[e>>4],t+=Xa[e&15];return t}function Ih(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")}const $a=Ih();$a.crypto||$a.msCrypto;function Nh(r,t){const e={sha256:vu,sha512:Ku}[r];return g(e!=null,"invalid hmac algorithm","algorithm",r),fc.create(e,t)}let Oc=!1;const xc=function(r,t,e){return Nh(r,t).update(e).digest()};let Rc=xc;function dn(r,t,e){const s=L(t,"key"),n=L(e,"data");return C(Rc(r,s,n))}dn._=xc;dn.lock=function(){Oc=!0};dn.register=function(r){if(Oc)throw new Error("computeHmac is locked");Rc=r};Object.freeze(dn);const[Tc,Bc,Dc]=[[],[],[]],Ph=BigInt(0),Xr=BigInt(1),Ch=BigInt(2),kh=BigInt(7),Sh=BigInt(256),Oh=BigInt(113);for(let r=0,t=Xr,e=1,s=0;r<24;r++){[e,s]=[s,(2*e+3*s)%5],Tc.push(2*(5*s+e)),Bc.push((r+1)*(r+2)/2%64);let n=Ph;for(let i=0;i<7;i++)t=(t<<Xr^(t>>kh)*Oh)%Sh,t&Ch&&(n^=Xr<<(Xr<<BigInt(i))-Xr);Dc.push(n)}const[xh,Rh]=x.split(Dc,!0),to=(r,t,e)=>e>32?x.rotlBH(r,t,e):x.rotlSH(r,t,e),eo=(r,t,e)=>e>32?x.rotlBL(r,t,e):x.rotlSL(r,t,e);function Th(r,t=24){const e=new Uint32Array(10);for(let s=24-t;s<24;s++){for(let a=0;a<10;a++)e[a]=r[a]^r[a+10]^r[a+20]^r[a+30]^r[a+40];for(let a=0;a<10;a+=2){const o=(a+8)%10,c=(a+2)%10,u=e[c],h=e[c+1],d=to(u,h,1)^e[o],p=eo(u,h,1)^e[o+1];for(let y=0;y<50;y+=10)r[a+y]^=d,r[a+y+1]^=p}let n=r[2],i=r[3];for(let a=0;a<24;a++){const o=Bc[a],c=to(n,i,o),u=eo(n,i,o),h=Tc[a];n=r[h],i=r[h+1],r[h]=c,r[h+1]=u}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)e[o]=r[a+o];for(let o=0;o<10;o++)r[a+o]^=~e[(o+2)%10]&e[(o+4)%10]}r[0]^=xh[s],r[1]^=Rh[s]}e.fill(0)}class bi extends si{constructor(t,e,s,n=!1,i=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=s,this.enableXOF=n,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,vt.number(s),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=du(this.state)}keccak(){Th(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){vt.exists(this);const{blockLen:e,state:s}=this;t=hn(t);const n=t.length;for(let i=0;i<n;){const a=Math.min(e-this.pos,n-i);for(let o=0;o<a;o++)s[this.pos++]^=t[i++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:e,pos:s,blockLen:n}=this;t[s]^=e,e&128&&s===n-1&&this.keccak(),t[n-1]^=128,this.keccak()}writeInto(t){vt.exists(this,!1),vt.bytes(t),this.finish();const e=this.state,{blockLen:s}=this;for(let n=0,i=t.length;n<i;){this.posOut>=s&&this.keccak();const a=Math.min(s-this.posOut,i-n);t.set(e.subarray(this.posOut,this.posOut+a),n),this.posOut+=a,n+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return vt.number(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(vt.output(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:s,outputLen:n,rounds:i,enableXOF:a}=this;return t||(t=new bi(e,s,n,a,i)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=i,t.suffix=s,t.outputLen=n,t.enableXOF=a,t.destroyed=this.destroyed,t}}const Ge=(r,t,e)=>fn(()=>new bi(t,r,e));Ge(6,144,224/8);Ge(6,136,256/8);Ge(6,104,384/8);Ge(6,72,512/8);Ge(1,144,224/8);const Bh=Ge(1,136,256/8);Ge(1,104,384/8);Ge(1,72,512/8);const Lc=(r,t,e)=>mu((s={})=>new bi(t,r,s.dkLen===void 0?e:s.dkLen,!0));Lc(31,168,128/8);Lc(31,136,256/8);let Uc=!1;const Fc=function(r){return Bh(r)};let Mc=Fc;function J(r){const t=L(r,"data");return C(Mc(t))}J._=Fc;J.lock=function(){Uc=!0};J.register=function(r){if(Uc)throw new TypeError("keccak256 is locked");Mc=r};Object.freeze(J);const Dh={},Lh=Object.freeze(Object.defineProperty({__proto__:null,default:Dh},Symbol.toStringTag,{value:"Module"}));/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const D=BigInt(0),j=BigInt(1),Te=BigInt(2),Ws=BigInt(3),ro=BigInt(8),K=Object.freeze({a:D,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:j,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),so=(r,t)=>(r+t/Te)/t,vn={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(r){const{n:t}=K,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),s=-j*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),n=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,a=BigInt("0x100000000000000000000000000000000"),o=so(i*r,t),c=so(-s*r,t);let u=I(r-o*e-c*n,t),h=I(-o*s-c*i,t);const d=u>a,p=h>a;if(d&&(u=t-u),p&&(h=t-h),u>a||h>a)throw new Error("splitScalarEndo: Endomorphism failed, k="+r);return{k1neg:d,k1:u,k2neg:p,k2:h}}},Vt=32,zr=32,Uh=32,ii=Vt+1,ai=2*Vt+1;function no(r){const{a:t,b:e}=K,s=I(r*r),n=I(s*r);return I(n+t*r+e)}const In=K.a===D;class Gc extends Error{constructor(t){super(t)}}function io(r){if(!(r instanceof F))throw new TypeError("JacobianPoint expected")}class F{constructor(t,e,s){this.x=t,this.y=e,this.z=s}static fromAffine(t){if(!(t instanceof M))throw new TypeError("JacobianPoint#fromAffine: expected Point");return t.equals(M.ZERO)?F.ZERO:new F(t.x,t.y,j)}static toAffineBatch(t){const e=Vh(t.map(s=>s.z));return t.map((s,n)=>s.toAffine(e[n]))}static normalizeZ(t){return F.toAffineBatch(t).map(F.fromAffine)}equals(t){io(t);const{x:e,y:s,z:n}=this,{x:i,y:a,z:o}=t,c=I(n*n),u=I(o*o),h=I(e*u),d=I(i*c),p=I(I(s*o)*u),y=I(I(a*n)*c);return h===d&&p===y}negate(){return new F(this.x,I(-this.y),this.z)}double(){const{x:t,y:e,z:s}=this,n=I(t*t),i=I(e*e),a=I(i*i),o=t+i,c=I(Te*(I(o*o)-n-a)),u=I(Ws*n),h=I(u*u),d=I(h-Te*c),p=I(u*(c-d)-ro*a),y=I(Te*e*s);return new F(d,p,y)}add(t){io(t);const{x:e,y:s,z:n}=this,{x:i,y:a,z:o}=t;if(i===D||a===D)return this;if(e===D||s===D)return t;const c=I(n*n),u=I(o*o),h=I(e*u),d=I(i*c),p=I(I(s*o)*u),y=I(I(a*n)*c),b=I(d-h),N=I(y-p);if(b===D)return N===D?this.double():F.ZERO;const P=I(b*b),G=I(b*P),H=I(h*P),T=I(N*N-G-Te*H),X=I(N*(H-T)-p*G),V=I(n*o*b);return new F(T,X,V)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){const e=F.ZERO;if(typeof t=="bigint"&&t===D)return e;let s=co(t);if(s===j)return this;if(!In){let d=e,p=this;for(;s>D;)s&j&&(d=d.add(p)),p=p.double(),s>>=j;return d}let{k1neg:n,k1:i,k2neg:a,k2:o}=vn.splitScalar(s),c=e,u=e,h=this;for(;i>D||o>D;)i&j&&(c=c.add(h)),o&j&&(u=u.add(h)),h=h.double(),i>>=j,o>>=j;return n&&(c=c.negate()),a&&(u=u.negate()),u=new F(I(u.x*vn.beta),u.y,u.z),c.add(u)}precomputeWindow(t){const e=In?128/t+1:256/t+1,s=[];let n=this,i=n;for(let a=0;a<e;a++){i=n,s.push(i);for(let o=1;o<2**(t-1);o++)i=i.add(n),s.push(i);n=i.double()}return s}wNAF(t,e){!e&&this.equals(F.BASE)&&(e=M.BASE);const s=e&&e._WINDOW_SIZE||1;if(256%s)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let n=e&&_i.get(e);n||(n=this.precomputeWindow(s),e&&s!==1&&(n=F.normalizeZ(n),_i.set(e,n)));let i=F.ZERO,a=F.BASE;const o=1+(In?128/s:256/s),c=2**(s-1),u=BigInt(2**s-1),h=2**s,d=BigInt(s);for(let p=0;p<o;p++){const y=p*c;let b=Number(t&u);t>>=d,b>c&&(b-=h,t+=j);const N=y,P=y+Math.abs(b)-1,G=p%2!==0,H=b<0;b===0?a=a.add(Nn(G,n[N])):i=i.add(Nn(H,n[P]))}return{p:i,f:a}}multiply(t,e){let s=co(t),n,i;if(In){const{k1neg:a,k1:o,k2neg:c,k2:u}=vn.splitScalar(s);let{p:h,f:d}=this.wNAF(o,e),{p,f:y}=this.wNAF(u,e);h=Nn(a,h),p=Nn(c,p),p=new F(I(p.x*vn.beta),p.y,p.z),n=h.add(p),i=d.add(y)}else{const{p:a,f:o}=this.wNAF(s,e);n=a,i=o}return F.normalizeZ([n,i])[0]}toAffine(t){const{x:e,y:s,z:n}=this,i=this.equals(F.ZERO);t==null&&(t=i?ro:pn(n));const a=t,o=I(a*a),c=I(o*a),u=I(e*o),h=I(s*c),d=I(n*a);if(i)return M.ZERO;if(d!==j)throw new Error("invZ was invalid");return new M(u,h)}}F.BASE=new F(K.Gx,K.Gy,j);F.ZERO=new F(D,j,D);function Nn(r,t){const e=t.negate();return r?e:t}const _i=new WeakMap;class M{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,_i.delete(this)}hasEvenY(){return this.y%Te===D}static fromCompressedHex(t){const e=t.length===32,s=Ue(e?t:t.subarray(1));if(!Bi(s))throw new Error("Point is not on curve");const n=no(s);let i=Hh(n);const a=(i&j)===j;e?a&&(i=I(-i)):(t[0]&1)===1!==a&&(i=I(-i));const o=new M(s,i);return o.assertValidity(),o}static fromUncompressedHex(t){const e=Ue(t.subarray(1,Vt+1)),s=Ue(t.subarray(Vt+1,Vt*2+1)),n=new M(e,s);return n.assertValidity(),n}static fromHex(t){const e=$s(t),s=e.length,n=e[0];if(s===Vt)return this.fromCompressedHex(e);if(s===ii&&(n===2||n===3))return this.fromCompressedHex(e);if(s===ai&&n===4)return this.fromUncompressedHex(e);throw new Error(`Point.fromHex: received invalid point. Expected 32-${ii} compressed bytes or ${ai} uncompressed bytes, not ${s}`)}static fromPrivateKey(t){return M.BASE.multiply(en(t))}static fromSignature(t,e,s){const{r:n,s:i}=_h(e);if(![0,1,2,3].includes(s))throw new Error("Cannot recover: invalid recovery bit");const a=Hc($s(t)),{n:o}=K,c=s===2||s===3?n+o:n,u=pn(c,o),h=I(-a*u,o),d=I(i*u,o),p=s&1?"03":"02",y=M.fromHex(p+Vr(c)),b=M.BASE.multiplyAndAddUnsafe(y,h,d);if(!b)throw new Error("Cannot recover signature: point at infinify");return b.assertValidity(),b}toRawBytes(t=!1){return ar(this.toHex(t))}toHex(t=!1){const e=Vr(this.x);return t?`${this.hasEvenY()?"02":"03"}${e}`:`04${e}${Vr(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const t="Point is not on elliptic curve",{x:e,y:s}=this;if(!Bi(e)||!Bi(s))throw new Error(t);const n=I(s*s),i=no(e);if(I(n-i)!==D)throw new Error(t)}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new M(this.x,I(-this.y))}double(){return F.fromAffine(this).double().toAffine()}add(t){return F.fromAffine(this).add(F.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return F.fromAffine(this).multiply(t,this).toAffine()}multiplyAndAddUnsafe(t,e,s){const n=F.fromAffine(this),i=e===D||e===j||this!==M.BASE?n.multiplyUnsafe(e):n.multiply(e),a=F.fromAffine(t).multiplyUnsafe(s),o=i.add(a);return o.equals(F.ZERO)?void 0:o.toAffine()}}M.BASE=new M(K.Gx,K.Gy);M.ZERO=new M(D,D);function ao(r){return Number.parseInt(r[0],16)>=8?"00"+r:r}function oo(r){if(r.length<2||r[0]!==2)throw new Error(`Invalid signature integer tag: ${Kr(r)}`);const t=r[1],e=r.subarray(2,t+2);if(!t||e.length!==t)throw new Error("Invalid signature integer: wrong length");if(e[0]===0&&e[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:Ue(e),left:r.subarray(t+2)}}function Fh(r){if(r.length<2||r[0]!=48)throw new Error(`Invalid signature tag: ${Kr(r)}`);if(r[1]!==r.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:e}=oo(r.subarray(2)),{data:s,left:n}=oo(e);if(n.length)throw new Error(`Invalid signature: left bytes after parsing: ${Kr(n)}`);return{r:t,s}}let Hr=class Bn{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromCompact(t){const e=t instanceof Uint8Array,s="Signature.fromCompact";if(typeof t!="string"&&!e)throw new TypeError(`${s}: Expected string or Uint8Array`);const n=e?Kr(t):t;if(n.length!==128)throw new Error(`${s}: Expected 64-byte hex`);return new Bn(oi(n.slice(0,64)),oi(n.slice(64,128)))}static fromDER(t){const e=t instanceof Uint8Array;if(typeof t!="string"&&!e)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r:s,s:n}=Fh(e?t:ar(t));return new Bn(s,n)}static fromHex(t){return this.fromDER(t)}assertValidity(){const{r:t,s:e}=this;if(!tn(t))throw new Error("Invalid Signature: r must be 0 < r < n");if(!tn(e))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const t=K.n>>j;return this.s>t}normalizeS(){return this.hasHighS()?new Bn(this.r,I(-this.s,K.n)):this}toDERRawBytes(){return ar(this.toDERHex())}toDERHex(){const t=ao($r(this.s)),e=ao($r(this.r)),s=t.length/2,n=e.length/2,i=$r(s),a=$r(n);return`30${$r(n+s+4)}02${a}${e}02${i}${t}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return ar(this.toCompactHex())}toCompactHex(){return Vr(this.r)+Vr(this.s)}};function ke(...r){if(!r.every(s=>s instanceof Uint8Array))throw new Error("Uint8Array list expected");if(r.length===1)return r[0];const t=r.reduce((s,n)=>s+n.length,0),e=new Uint8Array(t);for(let s=0,n=0;s<r.length;s++){const i=r[s];e.set(i,n),n+=i.length}return e}const Mh=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Kr(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let e=0;e<r.length;e++)t+=Mh[r[e]];return t}const Gh=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Vr(r){if(typeof r!="bigint")throw new Error("Expected bigint");if(!(D<=r&&r<Gh))throw new Error("Expected number 0 <= n < 2^256");return r.toString(16).padStart(64,"0")}function zi(r){const t=ar(Vr(r));if(t.length!==32)throw new Error("Error: expected 32 bytes");return t}function $r(r){const t=r.toString(16);return t.length&1?`0${t}`:t}function oi(r){if(typeof r!="string")throw new TypeError("hexToNumber: expected string, got "+typeof r);return BigInt(`0x${r}`)}function ar(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+r.length);const t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){const s=e*2,n=r.slice(s,s+2),i=Number.parseInt(n,16);if(Number.isNaN(i)||i<0)throw new Error("Invalid byte sequence");t[e]=i}return t}function Ue(r){return oi(Kr(r))}function $s(r){return r instanceof Uint8Array?Uint8Array.from(r):ar(r)}function co(r){if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)return BigInt(r);if(typeof r=="bigint"&&tn(r))return r;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function I(r,t=K.P){const e=r%t;return e>=D?e:t+e}function Pt(r,t){const{P:e}=K;let s=r;for(;t-- >D;)s*=s,s%=e;return s}function Hh(r){const{P:t}=K,e=BigInt(6),s=BigInt(11),n=BigInt(22),i=BigInt(23),a=BigInt(44),o=BigInt(88),c=r*r*r%t,u=c*c*r%t,h=Pt(u,Ws)*u%t,d=Pt(h,Ws)*u%t,p=Pt(d,Te)*c%t,y=Pt(p,s)*p%t,b=Pt(y,n)*y%t,N=Pt(b,a)*b%t,P=Pt(N,o)*N%t,G=Pt(P,a)*b%t,H=Pt(G,Ws)*u%t,T=Pt(H,i)*y%t,X=Pt(T,e)*c%t,V=Pt(X,Te);if(V*V%t!==r)throw new Error("Cannot find square root");return V}function pn(r,t=K.P){if(r===D||t<=D)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=I(r,t),s=t,n=D,i=j;for(;e!==D;){const a=s/e,o=s%e,c=n-i*a;s=e,e=o,n=i,i=c}if(s!==j)throw new Error("invert: does not exist");return I(n,t)}function Vh(r,t=K.P){const e=new Array(r.length),s=r.reduce((i,a,o)=>a===D?i:(e[o]=i,I(i*a,t)),j),n=pn(s,t);return r.reduceRight((i,a,o)=>a===D?i:(e[o]=I(i*e[o],t),I(i*a,t)),n),e}function jh(r){const t=r.length*8-zr*8,e=Ue(r);return t>0?e>>BigInt(t):e}function Hc(r,t=!1){const e=jh(r);if(t)return e;const{n:s}=K;return e>=s?e-s:e}let jr,Qs;class Wh{constructor(t,e){if(this.hashLen=t,this.qByteLen=e,typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(t).fill(1),this.k=new Uint8Array(t).fill(0),this.counter=0}hmac(...t){return Be.hmacSha256(this.k,...t)}hmacSync(...t){return Qs(this.k,...t)}checkSync(){if(typeof Qs!="function")throw new Gc("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(t=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),t),this.v=await this.hmac(this.v),t.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),t),this.v=await this.hmac(this.v))}reseedSync(t=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),t),this.v=this.hmacSync(this.v),t.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),t),this.v=this.hmacSync(this.v))}async generate(){this.incr();let t=0;const e=[];for(;t<this.qByteLen;){this.v=await this.hmac(this.v);const s=this.v.slice();e.push(s),t+=this.v.length}return ke(...e)}generateSync(){this.checkSync(),this.incr();let t=0;const e=[];for(;t<this.qByteLen;){this.v=this.hmacSync(this.v);const s=this.v.slice();e.push(s),t+=this.v.length}return ke(...e)}}function tn(r){return D<r&&r<K.n}function Bi(r){return D<r&&r<K.P}function Qh(r,t,e,s=!0){const{n}=K,i=Hc(r,!0);if(!tn(i))return;const a=pn(i,n),o=M.BASE.multiply(i),c=I(o.x,n);if(c===D)return;const u=I(a*I(t+e*c,n),n);if(u===D)return;let h=new Hr(c,u),d=(o.x===h.r?0:2)|Number(o.y&j);return s&&h.hasHighS()&&(h=h.normalizeS(),d^=1),{sig:h,recovery:d}}function en(r){let t;if(typeof r=="bigint")t=r;else if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)t=BigInt(r);else if(typeof r=="string"){if(r.length!==2*zr)throw new Error("Expected 32 bytes of private key");t=oi(r)}else if(r instanceof Uint8Array){if(r.length!==zr)throw new Error("Expected 32 bytes of private key");t=Ue(r)}else throw new TypeError("Expected valid private key");if(!tn(t))throw new Error("Expected private key: 0 < key < n");return t}function Jh(r){return r instanceof M?(r.assertValidity(),r):M.fromHex(r)}function _h(r){if(r instanceof Hr)return r.assertValidity(),r;try{return Hr.fromDER(r)}catch{return Hr.fromCompact(r)}}function zh(r,t=!1){return M.fromPrivateKey(r).toRawBytes(t)}function Kh(r,t,e,s=!1){return M.fromSignature(r,t,e).toRawBytes(s)}function lo(r){const t=r instanceof Uint8Array,e=typeof r=="string",s=(t||e)&&r.length;return t?s===ii||s===ai:e?s===ii*2||s===ai*2:r instanceof M}function Yh(r,t,e=!1){if(lo(r))throw new TypeError("getSharedSecret: first arg must be private key");if(!lo(t))throw new TypeError("getSharedSecret: second arg must be public key");const s=Jh(t);return s.assertValidity(),s.multiply(en(r)).toRawBytes(e)}function Vc(r){const t=r.length>Vt?r.slice(0,Vt):r;return Ue(t)}function qh(r){const t=Vc(r),e=I(t,K.n);return jc(e<D?t:e)}function jc(r){return zi(r)}function Zh(r,t,e){if(r==null)throw new Error(`sign: expected valid message hash, not "${r}"`);const s=$s(r),n=en(t),i=[jc(n),qh(s)];if(e!=null){e===!0&&(e=Be.randomBytes(Vt));const c=$s(e);if(c.length!==Vt)throw new Error(`sign: Expected ${Vt} bytes of extra data`);i.push(c)}const a=ke(...i),o=Vc(s);return{seed:a,m:o,d:n}}function Xh(r,t){const{sig:e,recovery:s}=r,{der:n,recovered:i}=Object.assign({canonical:!0,der:!0},t),a=n?e.toDERRawBytes():e.toCompactRawBytes();return i?[a,s]:a}function $h(r,t,e={}){const{seed:s,m:n,d:i}=Zh(r,t,e.extraEntropy),a=new Wh(Uh,zr);a.reseedSync(s);let o;for(;!(o=Qh(a.generateSync(),n,i,e.canonical));)a.reseedSync();return Xh(o,e)}M.BASE._setWindowSize(8);const yt={node:Lh,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},Pn={},Be={bytesToHex:Kr,hexToBytes:ar,concatBytes:ke,mod:I,invert:pn,isValidPrivateKey(r){try{return en(r),!0}catch{return!1}},_bigintTo32Bytes:zi,_normalizePrivateKey:en,hashToPrivateKey:r=>{r=$s(r);const t=zr+8;if(r.length<t||r.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");const e=I(Ue(r),K.n-j)+j;return zi(e)},randomBytes:(r=32)=>{if(yt.web)return yt.web.getRandomValues(new Uint8Array(r));if(yt.node){const{randomBytes:t}=yt.node;return Uint8Array.from(t(r))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Be.hashToPrivateKey(Be.randomBytes(zr+8)),precompute(r=8,t=M.BASE){const e=t===M.BASE?t:new M(t.x,t.y);return e._setWindowSize(r),e.multiply(Ws),e},sha256:async(...r)=>{if(yt.web){const t=await yt.web.subtle.digest("SHA-256",ke(...r));return new Uint8Array(t)}else if(yt.node){const{createHash:t}=yt.node,e=t("sha256");return r.forEach(s=>e.update(s)),Uint8Array.from(e.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(r,...t)=>{if(yt.web){const e=await yt.web.subtle.importKey("raw",r,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),s=ke(...t),n=await yt.web.subtle.sign("HMAC",e,s);return new Uint8Array(n)}else if(yt.node){const{createHmac:e}=yt.node,s=e("sha256",r);return t.forEach(n=>s.update(n)),Uint8Array.from(s.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(r,...t)=>{let e=Pn[r];if(e===void 0){const s=await Be.sha256(Uint8Array.from(r,n=>n.charCodeAt(0)));e=ke(s,s),Pn[r]=e}return Be.sha256(e,...t)},taggedHashSync:(r,...t)=>{if(typeof jr!="function")throw new Gc("sha256Sync is undefined, you need to set it");let e=Pn[r];if(e===void 0){const s=jr(Uint8Array.from(r,n=>n.charCodeAt(0)));e=ke(s,s),Pn[r]=e}return jr(e,...t)},_JacobianPoint:F};Object.defineProperties(Be,{sha256Sync:{configurable:!1,get(){return jr},set(r){jr||(jr=r)}},hmacSha256Sync:{configurable:!1,get(){return Qs},set(r){Qs||(Qs=r)}}});const xa="0x0000000000000000000000000000000000000000",uo="0x0000000000000000000000000000000000000000000000000000000000000000";BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");BigInt("1000000000000000000");BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");BigInt("0x8000000000000000000000000000000000000000000000000000000000000000")*BigInt(-1);BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const ho=BigInt(0),fo=BigInt(1),po=BigInt(2),go=BigInt(27),mo=BigInt(28),Cn=BigInt(35),gr={};function Ao(r){return cr(It(r),32)}var ls,us,hs,Ir;const tf=class _t{constructor(t,e,s,n){A(this,ls,void 0),A(this,us,void 0),A(this,hs,void 0),A(this,Ir,void 0),Ai(t,gr,"Signature"),f(this,ls,e),f(this,us,s),f(this,hs,n),f(this,Ir,null)}get r(){return l(this,ls)}set r(t){g(Gr(t)===32,"invalid r","value",t),f(this,ls,C(t))}get s(){return l(this,us)}set s(t){g(Gr(t)===32,"invalid s","value",t);const e=C(t);g(parseInt(e.substring(0,3))<8,"non-canonical s","value",e),f(this,us,e)}get v(){return l(this,hs)}set v(t){const e=R(t,"value");g(e===27||e===28,"invalid v","v",t),f(this,hs,e)}get networkV(){return l(this,Ir)}get legacyChainId(){const t=this.networkV;return t==null?null:_t.getChainId(t)}get yParity(){return this.v===27?0:1}get yParityAndS(){const t=L(this.s);return this.yParity&&(t[0]|=128),C(t)}get compactSerialized(){return Y([this.r,this.yParityAndS])}get serialized(){return Y([this.r,this.s,this.yParity?"0x1c":"0x1b"])}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const t=new _t(gr,this.r,this.s,this.v);return this.networkV&&f(t,Ir,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=k(t,"v");return e==go||e==mo?ho:(g(e>=Cn,"invalid EIP-155 v","v",t),(e-Cn)/po)}static getChainIdV(t,e){return k(t)*po+BigInt(35+e-27)}static getNormalizedV(t){const e=k(t);return e===ho||e===go?27:e===fo||e===mo?28:(g(e>=Cn,"invalid v","v",t),e&fo?27:28)}static from(t){function e(u,h){g(u,h,"signature",t)}if(t==null)return new _t(gr,uo,uo,27);if(typeof t=="string"){const u=L(t,"signature");if(u.length===64){const h=C(u.slice(0,32)),d=u.slice(32,64),p=d[0]&128?28:27;return d[0]&=127,new _t(gr,h,C(d),p)}if(u.length===65){const h=C(u.slice(0,32)),d=u.slice(32,64);e((d[0]&128)===0,"non-canonical s");const p=_t.getNormalizedV(u[64]);return new _t(gr,h,C(d),p)}e(!1,"invalid raw signature length")}if(t instanceof _t)return t.clone();const s=t.r;e(s!=null,"missing r");const n=Ao(s),i=function(u,h){if(u!=null)return Ao(u);if(h!=null){e(_(h,32),"invalid yParityAndS");const d=L(h);return d[0]&=127,C(d)}e(!1,"missing s")}(t.s,t.yParityAndS);e((L(i)[0]&128)==0,"non-canonical s");const{networkV:a,v:o}=function(u,h,d){if(u!=null){const p=k(u);return{networkV:p>=Cn?p:void 0,v:_t.getNormalizedV(p)}}if(h!=null)return e(_(h,32),"invalid yParityAndS"),{v:L(h)[0]&128?28:27};if(d!=null){switch(R(d,"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 _t(gr,n,i,o);return a&&f(c,Ir,a),e(t.yParity==null||R(t.yParity,"sig.yParity")===c.yParity,"yParity mismatch"),e(t.yParityAndS==null||t.yParityAndS===c.yParityAndS,"yParityAndS mismatch"),c}};ls=new WeakMap,us=new WeakMap,hs=new WeakMap,Ir=new WeakMap;let le=tf;Be.hmacSha256Sync=function(r,...t){return L(dn("sha256",r,Y(t)))};var be;const ef=class Nr{constructor(t){A(this,be,void 0),g(Gr(t)===32,"invalid private key","privateKey","[REDACTED]"),f(this,be,C(t))}get privateKey(){return l(this,be)}get publicKey(){return Nr.computePublicKey(l(this,be))}get compressedPublicKey(){return Nr.computePublicKey(l(this,be),!0)}sign(t){g(Gr(t)===32,"invalid digest length","digest",t);const[e,s]=$h(pt(t),pt(l(this,be)),{recovered:!0,canonical:!0}),n=Hr.fromHex(e);return le.from({r:Fe("0x"+n.r.toString(16),32),s:Fe("0x"+n.s.toString(16),32),v:s?28:27})}computeSharedSecret(t){const e=Nr.computePublicKey(t);return C(Yh(pt(l(this,be)),L(e)))}static computePublicKey(t,e){let s=L(t,"key");if(s.length===32){const i=zh(s,!!e);return C(i)}if(s.length===64){const i=new Uint8Array(65);i[0]=4,i.set(s,1),s=i}const n=M.fromHex(s);return C(n.toRawBytes(e))}static recoverPublicKey(t,e){g(Gr(t)===32,"invalid digest length","digest",t);const s=le.from(e),n=Hr.fromCompact(pt(Y([s.r,s.s]))).toDERRawBytes(),i=Kh(pt(t),n,s.yParity);return g(i!=null,"invalid signature for digest","signature",e),C(i)}static addPoints(t,e,s){const n=M.fromHex(Nr.computePublicKey(t).substring(2)),i=M.fromHex(Nr.computePublicKey(e).substring(2));return"0x"+n.add(i).toHex(!!s)}};be=new WeakMap;let Ra=ef;const rf=BigInt(0),sf=BigInt(36);function yo(r){r=r.toLowerCase();const t=r.substring(2).split(""),e=new Uint8Array(40);for(let n=0;n<40;n++)e[n]=t[n].charCodeAt(0);const s=L(J(e));for(let n=0;n<40;n+=2)s[n>>1]>>4>=8&&(t[n]=t[n].toUpperCase()),(s[n>>1]&15)>=8&&(t[n+1]=t[n+1].toUpperCase());return"0x"+t.join("")}const Ta={};for(let r=0;r<10;r++)Ta[String(r)]=String(r);for(let r=0;r<26;r++)Ta[String.fromCharCode(65+r)]=String(10+r);const wo=15;function nf(r){r=r.toUpperCase(),r=r.substring(4)+r.substring(0,2)+"00";let t=r.split("").map(s=>Ta[s]).join("");for(;t.length>=wo;){let s=t.substring(0,wo);t=parseInt(s,10)%97+t.substring(s.length)}let e=String(98-parseInt(t,10)%97);for(;e.length<2;)e="0"+e;return e}const af=function(){const r={};for(let t=0;t<36;t++){const e="0123456789abcdefghijklmnopqrstuvwxyz"[t];r[e]=BigInt(t)}return r}();function of(r){r=r.toLowerCase();let t=rf;for(let e=0;e<r.length;e++)t=t*sf+af[r[e]];return t}function B(r){if(g(typeof r=="string","invalid address","address",r),r.match(/^(0x)?[0-9a-fA-F]{40}$/)){r.startsWith("0x")||(r="0x"+r);const t=yo(r);return g(!r.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||t===r,"bad address checksum","address",r),t}if(r.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){g(r.substring(2,4)===nf(r),"bad icap checksum","address",r);let t=of(r.substring(4)).toString(16);for(;t.length<40;)t="0"+t;return yo("0x"+t)}g(!1,"invalid address","address",r)}function cf(r){const t=B(r.from);let e=k(r.nonce,"tx.nonce").toString(16);return e==="0"?e="0x":e.length%2?e="0x0"+e:e="0x"+e,B(z(J(Xs([t,e])),12))}function Wc(r){return r&&typeof r.getAddress=="function"}async function Di(r,t){const e=await t;return(e==null||e==="0x0000000000000000000000000000000000000000")&&(w(typeof r!="string","unconfigured name","UNCONFIGURED_NAME",{value:r}),g(!1,"invalid AddressLike value; did not resolve to a value address","target",r)),B(e)}function gt(r,t){if(typeof r=="string")return r.match(/^0x[0-9a-f]{40}$/i)?B(r):(w(t!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),Di(r,t.resolveName(r)));if(Wc(r))return Di(r,r.getAddress());if(r&&typeof r.then=="function")return Di(r,r);g(!1,"unsupported addressable value","target",r)}const lt=32,Ki=new Uint8Array(lt),lf=["then"],kn={};function ts(r,t){const e=new Error(`deferred error during ABI decoding triggered accessing ${r}`);throw e.error=t,e}var Qe;const uf=class Dn extends Array{constructor(...t){const e=t[0];let s=t[1],n=(t[2]||[]).slice(),i=!0;e!==kn&&(s=t,n=[],i=!1),super(s.length),A(this,Qe,void 0),s.forEach((o,c)=>{this[c]=o});const a=n.reduce((o,c)=>(typeof c=="string"&&o.set(c,(o.get(c)||0)+1),o),new Map);if(f(this,Qe,Object.freeze(s.map((o,c)=>{const u=n[c];return u!=null&&a.get(u)===1?u:null}))),!!i)return Object.freeze(this),new Proxy(this,{get:(o,c,u)=>{if(typeof c=="string"){if(c.match(/^[0-9]+$/)){const d=R(c,"%index");if(d<0||d>=this.length)throw new RangeError("out of result range");const p=o[d];return p instanceof Error&&ts(`index ${d}`,p),p}if(lf.indexOf(c)>=0)return Reflect.get(o,c,u);const h=o[c];if(h instanceof Function)return function(...d){return h.apply(this===u?o:this,d)};if(!(c in o))return o.getValue.apply(this===u?o:this,[c])}return Reflect.get(o,c,u)}})}toArray(){const t=[];return this.forEach((e,s)=>{e instanceof Error&&ts(`index ${s}`,e),t.push(e)}),t}toObject(){return l(this,Qe).reduce((t,e,s)=>(w(e!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),e in t||(t[e]=this.getValue(e)),t),{})}slice(t,e){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),e==null&&(e=this.length),e<0&&(e+=this.length,e<0&&(e=0)),e>this.length&&(e=this.length);const s=[],n=[];for(let i=t;i<e;i++)s.push(this[i]),n.push(l(this,Qe)[i]);return new Dn(kn,s,n)}filter(t,e){const s=[],n=[];for(let i=0;i<this.length;i++){const a=this[i];a instanceof Error&&ts(`index ${i}`,a),t.call(e,a,i,this)&&(s.push(a),n.push(l(this,Qe)[i]))}return new Dn(kn,s,n)}map(t,e){const s=[];for(let n=0;n<this.length;n++){const i=this[n];i instanceof Error&&ts(`index ${n}`,i),s.push(t.call(e,i,n,this))}return s}getValue(t){const e=l(this,Qe).indexOf(t);if(e===-1)return;const s=this[e];return s instanceof Error&&ts(`property ${JSON.stringify(t)}`,s.error),s}static fromItems(t,e){return new Dn(kn,t,e)}};Qe=new WeakMap;let Qc=uf;function bo(r){let t=It(r);return w(t.length<=lt,"value out-of-bounds","BUFFER_OVERRUN",{buffer:t,length:lt,offset:t.length}),t.length!==lt&&(t=pt(Y([Ki.slice(t.length%lt),t]))),t}class he{constructor(t,e,s,n){m(this,"name"),m(this,"type"),m(this,"localName"),m(this,"dynamic"),O(this,{name:t,type:e,localName:s,dynamic:n},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){g(!1,t,this.localName,e)}}var Ce,Se,fs,Ln;class Yi{constructor(){A(this,fs),A(this,Ce,void 0),A(this,Se,void 0),f(this,Ce,[]),f(this,Se,0)}get data(){return Y(l(this,Ce))}get length(){return l(this,Se)}appendWriter(t){return E(this,fs,Ln).call(this,pt(t.data))}writeBytes(t){let e=pt(t);const s=e.length%lt;return s&&(e=pt(Y([e,Ki.slice(s)]))),E(this,fs,Ln).call(this,e)}writeValue(t){return E(this,fs,Ln).call(this,bo(t))}writeUpdatableValue(){const t=l(this,Ce).length;return l(this,Ce).push(Ki),f(this,Se,l(this,Se)+lt),e=>{l(this,Ce)[t]=bo(e)}}}Ce=new WeakMap,Se=new WeakMap,fs=new WeakSet,Ln=function(r){return l(this,Ce).push(r),f(this,Se,l(this,Se)+r.length),r.length};var Ot,xt,qi,Jc;const hf=class _c{constructor(t,e){A(this,qi),m(this,"allowLoose"),A(this,Ot,void 0),A(this,xt,void 0),O(this,{allowLoose:!!e}),f(this,Ot,pt(t)),f(this,xt,0)}get data(){return C(l(this,Ot))}get dataLength(){return l(this,Ot).length}get consumed(){return l(this,xt)}get bytes(){return new Uint8Array(l(this,Ot))}subReader(t){return new _c(l(this,Ot).slice(l(this,xt)+t),this.allowLoose)}readBytes(t,e){let s=E(this,qi,Jc).call(this,0,t,!!e);return f(this,xt,l(this,xt)+s.length),s.slice(0,t)}readValue(){return ka(this.readBytes(lt))}readIndex(){return rh(this.readBytes(lt))}};Ot=new WeakMap,xt=new WeakMap,qi=new WeakSet,Jc=function(r,t,e){let s=Math.ceil(t/lt)*lt;return l(this,xt)+s>l(this,Ot).length&&(this.allowLoose&&e&&l(this,xt)+t<=l(this,Ot).length?s=t:w(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:pt(l(this,Ot)),length:l(this,Ot).length,offset:l(this,xt)+s})),l(this,Ot).slice(l(this,xt),l(this,xt)+s)};let ff=hf;const Xt={};function v(r,t){let e=!1;return t<0&&(e=!0,t*=-1),new mt(Xt,`${e?"":"u"}int${t}`,r,{signed:e,width:t})}function U(r,t){return new mt(Xt,`bytes${t||""}`,r,{size:t})}const Eo=Symbol.for("_ethers_typed");var Pr;const df=class Ee{constructor(t,e,s,n){m(this,"type"),m(this,"value"),A(this,Pr,void 0),m(this,"_typedSymbol"),n==null&&(n=null),Ai(Xt,t,"Typed"),O(this,{_typedSymbol:Eo,type:e,value:s}),f(this,Pr,n),this.format()}format(){if(this.type==="array")throw new Error("");if(this.type==="dynamicArray")throw new Error("");return this.type==="tuple"?`tuple(${this.value.map(t=>t.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return l(this,Pr)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return l(this,Pr)===!0?-1:l(this,Pr)===!1?this.value.length:null}static from(t,e){return new Ee(Xt,t,e)}static uint8(t){return v(t,8)}static uint16(t){return v(t,16)}static uint24(t){return v(t,24)}static uint32(t){return v(t,32)}static uint40(t){return v(t,40)}static uint48(t){return v(t,48)}static uint56(t){return v(t,56)}static uint64(t){return v(t,64)}static uint72(t){return v(t,72)}static uint80(t){return v(t,80)}static uint88(t){return v(t,88)}static uint96(t){return v(t,96)}static uint104(t){return v(t,104)}static uint112(t){return v(t,112)}static uint120(t){return v(t,120)}static uint128(t){return v(t,128)}static uint136(t){return v(t,136)}static uint144(t){return v(t,144)}static uint152(t){return v(t,152)}static uint160(t){return v(t,160)}static uint168(t){return v(t,168)}static uint176(t){return v(t,176)}static uint184(t){return v(t,184)}static uint192(t){return v(t,192)}static uint200(t){return v(t,200)}static uint208(t){return v(t,208)}static uint216(t){return v(t,216)}static uint224(t){return v(t,224)}static uint232(t){return v(t,232)}static uint240(t){return v(t,240)}static uint248(t){return v(t,248)}static uint256(t){return v(t,256)}static uint(t){return v(t,256)}static int8(t){return v(t,-8)}static int16(t){return v(t,-16)}static int24(t){return v(t,-24)}static int32(t){return v(t,-32)}static int40(t){return v(t,-40)}static int48(t){return v(t,-48)}static int56(t){return v(t,-56)}static int64(t){return v(t,-64)}static int72(t){return v(t,-72)}static int80(t){return v(t,-80)}static int88(t){return v(t,-88)}static int96(t){return v(t,-96)}static int104(t){return v(t,-104)}static int112(t){return v(t,-112)}static int120(t){return v(t,-120)}static int128(t){return v(t,-128)}static int136(t){return v(t,-136)}static int144(t){return v(t,-144)}static int152(t){return v(t,-152)}static int160(t){return v(t,-160)}static int168(t){return v(t,-168)}static int176(t){return v(t,-176)}static int184(t){return v(t,-184)}static int192(t){return v(t,-192)}static int200(t){return v(t,-200)}static int208(t){return v(t,-208)}static int216(t){return v(t,-216)}static int224(t){return v(t,-224)}static int232(t){return v(t,-232)}static int240(t){return v(t,-240)}static int248(t){return v(t,-248)}static int256(t){return v(t,-256)}static int(t){return v(t,-256)}static bytes1(t){return U(t,1)}static bytes2(t){return U(t,2)}static bytes3(t){return U(t,3)}static bytes4(t){return U(t,4)}static bytes5(t){return U(t,5)}static bytes6(t){return U(t,6)}static bytes7(t){return U(t,7)}static bytes8(t){return U(t,8)}static bytes9(t){return U(t,9)}static bytes10(t){return U(t,10)}static bytes11(t){return U(t,11)}static bytes12(t){return U(t,12)}static bytes13(t){return U(t,13)}static bytes14(t){return U(t,14)}static bytes15(t){return U(t,15)}static bytes16(t){return U(t,16)}static bytes17(t){return U(t,17)}static bytes18(t){return U(t,18)}static bytes19(t){return U(t,19)}static bytes20(t){return U(t,20)}static bytes21(t){return U(t,21)}static bytes22(t){return U(t,22)}static bytes23(t){return U(t,23)}static bytes24(t){return U(t,24)}static bytes25(t){return U(t,25)}static bytes26(t){return U(t,26)}static bytes27(t){return U(t,27)}static bytes28(t){return U(t,28)}static bytes29(t){return U(t,29)}static bytes30(t){return U(t,30)}static bytes31(t){return U(t,31)}static bytes32(t){return U(t,32)}static address(t){return new Ee(Xt,"address",t)}static bool(t){return new Ee(Xt,"bool",!!t)}static bytes(t){return new Ee(Xt,"bytes",t)}static string(t){return new Ee(Xt,"string",t)}static array(t,e){throw new Error("not implemented yet")}static tuple(t,e){throw new Error("not implemented yet")}static overrides(t){return new Ee(Xt,"overrides",Object.assign({},t))}static isTyped(t){return t&&typeof t=="object"&&"_typedSymbol"in t&&t._typedSymbol===Eo}static dereference(t,e){if(Ee.isTyped(t)){if(t.type!==e)throw new Error(`invalid type: expecetd ${e}, got ${t.type}`);return t.value}return t}};Pr=new WeakMap;let mt=df;class pf extends he{constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let s=mt.dereference(e,"string");try{s=B(s)}catch(n){return this._throwError(n.message,e)}return t.writeValue(s)}decode(t){return B(Fe(t.readValue(),20))}}class gf extends he{constructor(t){super(t.name,t.type,"_",t.dynamic),m(this,"coder"),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}}function zc(r,t,e){let s=[];if(Array.isArray(e))s=e;else if(e&&typeof e=="object"){let c={};s=t.map(u=>{const h=u.localName;return w(h,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:e}),w(!c[h],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:e}),c[h]=!0,e[h]})}else g(!1,"invalid tuple value","tuple",e);g(t.length===s.length,"types/value length mismatch","tuple",e);let n=new Yi,i=new Yi,a=[];t.forEach((c,u)=>{let h=s[u];if(c.dynamic){let d=i.length;c.encode(i,h);let p=n.writeUpdatableValue();a.push(y=>{p(y+d)})}else c.encode(n,h)}),a.forEach(c=>{c(n.length)});let o=r.appendWriter(n);return o+=r.appendWriter(i),o}function Kc(r,t){let e=[],s=[],n=r.subReader(0);return t.forEach(i=>{let a=null;if(i.dynamic){let o=r.readIndex(),c=n.subReader(o);try{a=i.decode(c)}catch(u){if(Tt(u,"BUFFER_OVERRUN"))throw u;a=u,a.baseType=i.name,a.name=i.localName,a.type=i.type}}else try{a=i.decode(r)}catch(o){if(Tt(o,"BUFFER_OVERRUN"))throw o;a=o,a.baseType=i.name,a.name=i.localName,a.type=i.type}if(a==null)throw new Error("investigate");e.push(a),s.push(i.localName||null)}),Qc.fromItems(e,s)}class mf extends he{constructor(t,e,s){const n=t.type+"["+(e>=0?e:"")+"]",i=e===-1||t.dynamic;super("array",n,s,i),m(this,"coder"),m(this,"length"),O(this,{coder:t,length:e})}defaultValue(){const t=this.coder.defaultValue(),e=[];for(let s=0;s<this.length;s++)e.push(t);return e}encode(t,e){const s=mt.dereference(e,"array");Array.isArray(s)||this._throwError("expected array value",s);let n=this.length;n===-1&&(n=s.length,t.writeValue(s.length)),gc(s.length,n,"coder array"+(this.localName?" "+this.localName:""));let i=[];for(let a=0;a<s.length;a++)i.push(this.coder);return zc(t,i,s)}decode(t){let e=this.length;e===-1&&(e=t.readIndex(),w(e*lt<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:e*lt,length:t.dataLength}));let s=[];for(let n=0;n<e;n++)s.push(new gf(this.coder));return Kc(t,s)}}class Af extends he{constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){const s=mt.dereference(e,"bool");return t.writeValue(s?1:0)}decode(t){return!!t.readValue()}}class Yc extends he{constructor(t,e){super(t,t,e,!0)}defaultValue(){return"0x"}encode(t,e){e=pt(e);let s=t.writeValue(e.length);return s+=t.writeBytes(e),s}decode(t){return t.readBytes(t.readIndex(),!0)}}class yf extends Yc{constructor(t){super("bytes",t)}decode(t){return C(super.decode(t))}}class wf extends he{constructor(t,e){let s="bytes"+String(t);super(s,s,e,!1),m(this,"size"),O(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,e){let s=pt(mt.dereference(e,this.type));return s.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(s)}decode(t){return C(t.readBytes(this.size))}}const bf=new Uint8Array([]);class Ef extends he{constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return e!=null&&this._throwError("not null",e),t.writeBytes(bf)}decode(t){return t.readBytes(0),null}}const vf=BigInt(0),If=BigInt(1),Nf=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Pf extends he{constructor(t,e,s){const n=(e?"int":"uint")+t*8;super(n,n,s,!1),m(this,"size"),m(this,"signed"),O(this,{size:t,signed:e},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,e){let s=k(mt.dereference(e,this.type)),n=es(Nf,lt*8);if(this.signed){let i=es(n,this.size*8-1);(s>i||s<-(i+If))&&this._throwError("value out-of-bounds",e),s=yc(s,8*lt)}else(s<vf||s>es(n,this.size*8))&&this._throwError("value out-of-bounds",e);return t.writeValue(s)}decode(t){let e=es(t.readValue(),this.size*8);return this.signed&&(e=eh(e,this.size*8)),e}}class Cf extends Yc{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,oe(mt.dereference(e,"string")))}decode(t){return Sa(super.decode(t))}}class Un extends he{constructor(t,e){let s=!1;const n=[];t.forEach(a=>{a.dynamic&&(s=!0),n.push(a.type)});const i="tuple("+n.join(",")+")";super("tuple",i,e,s),m(this,"coders"),O(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(s=>{t.push(s.defaultValue())});const e=this.coders.reduce((s,n)=>{const i=n.localName;return i&&(s[i]||(s[i]=0),s[i]++),s},{});return this.coders.forEach((s,n)=>{let i=s.localName;!i||e[i]!==1||(i==="length"&&(i="_length"),t[i]==null&&(t[i]=t[n]))}),Object.freeze(t)}encode(t,e){const s=mt.dereference(e,"tuple");return zc(t,this.coders,s)}decode(t){return Kc(t,this.coders)}}function ur(r){return J(oe(r))}function kf(r){let t=0;function e(){return r[t++]<<8|r[t++]}let s=e(),n=1,i=[0,1];for(let V=1;V<s;V++)i.push(n+=e());let a=e(),o=t;t+=a;let c=0,u=0;function h(){return c==0&&(u=u<<8|r[t++],c=8),u>>--c&1}const d=31,p=2**d,y=p>>>1,b=y>>1,N=p-1;let P=0;for(let V=0;V<d;V++)P=P<<1|h();let G=[],H=0,T=p;for(;;){let V=Math.floor(((P-H+1)*n-1)/T),Bt=0,Ve=s;for(;Ve-Bt>1;){let de=Bt+Ve>>>1;V<i[de]?Ve=de:Bt=de}if(Bt==0)break;G.push(Bt);let Z=H+Math.floor(T*i[Bt]/n),$=H+Math.floor(T*i[Bt+1]/n)-1;for(;!((Z^$)&y);)P=P<<1&N|h(),Z=Z<<1&N,$=$<<1&N|1;for(;Z&~$&b;)P=P&y|P<<1&N>>>1|h(),Z=Z<<1^y,$=($^y)<<1|y|1;H=Z,T=1+$-Z}let X=s-4;return G.map(V=>{switch(V-X){case 3:return X+65792+(r[o++]<<16|r[o++]<<8|r[o++]);case 2:return X+256+(r[o++]<<8|r[o++]);case 1:return X+r[o++];default:return V-1}})}function Sf(r){let t=0;return()=>r[t++]}function qc(r){return Sf(kf(Of(r)))}function Of(r){let t=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((n,i)=>t[n.charCodeAt(0)]=i);let e=r.length,s=new Uint8Array(6*e>>3);for(let n=0,i=0,a=0,o=0;n<e;n++)o=o<<6|t[r.charCodeAt(n)],a+=6,a>=8&&(s[i++]=o>>(a-=8));return s}function xf(r){return r&1?~r>>1:r>>1}function Rf(r,t){let e=Array(r);for(let s=0,n=0;s<r;s++)e[s]=n+=xf(t());return e}function Me(r,t=0){let e=[];for(;;){let s=r(),n=r();if(!n)break;t+=s;for(let i=0;i<n;i++)e.push(t+i);t+=n+1}return e}function Zc(r){return rn(()=>{let t=Me(r);if(t.length)return t})}function Xc(r){let t=[];for(;;){let e=r();if(e==0)break;t.push(Tf(e,r))}for(;;){let e=r()-1;if(e<0)break;t.push(Bf(e,r))}return t.flat()}function rn(r){let t=[];for(;;){let e=r(t.length);if(!e)break;t.push(e)}return t}function $c(r,t,e){let s=Array(r).fill().map(()=>[]);for(let n=0;n<t;n++)Rf(r,e).forEach((i,a)=>s[a].push(i));return s}function Tf(r,t){let e=1+t(),s=t(),n=rn(t);return $c(n.length,1+r,t).flatMap((i,a)=>{let[o,...c]=i;return Array(n[a]).fill().map((u,h)=>{let d=h*s;return[o+h*e,c.map(p=>p+d)]})})}function Bf(r,t){let e=1+t();return $c(e,1+r,t).map(s=>[s[0],s.slice(1)])}var Nt=qc("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");const vo=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),Io=4;function Df(r){return r.toString(16).toUpperCase().padStart(2,"0")}function tl(r){return`{${Df(r)}}`}function Lf(r){let t=[];for(let e=0,s=r.length;e<s;){let n=r.codePointAt(e);e+=n<65536?1:2,t.push(n)}return t}function sn(r){let t=r.length;if(t<4096)return String.fromCodePoint(...r);let e=[];for(let s=0;s<t;)e.push(String.fromCodePoint(...r.slice(s,s+=4096)));return e.join("")}var Ba=qc("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");function ds(r){return r>>24&255}function el(r){return r&16777215}const Uf=new Map(Zc(Ba).flatMap((r,t)=>r.map(e=>[e,t+1<<24]))),Ff=new Set(Me(Ba)),rl=new Map,Zi=new Map;for(let[r,t]of Xc(Ba)){if(!Ff.has(r)&&t.length==2){let[e,s]=t,n=Zi.get(e);n||(n=new Map,Zi.set(e,n)),n.set(s,r)}rl.set(r,t.reverse())}const nn=44032,ci=4352,li=4449,ui=4519,sl=19,nl=21,Yr=28,hi=nl*Yr,Mf=sl*hi,Gf=nn+Mf,Hf=ci+sl,Vf=li+nl,jf=ui+Yr;function il(r){return r>=nn&&r<Gf}function Wf(r,t){if(r>=ci&&r<Hf&&t>=li&&t<Vf)return nn+(r-ci)*hi+(t-li)*Yr;if(il(r)&&t>ui&&t<jf&&(r-nn)%Yr==0)return r+(t-ui);{let e=Zi.get(r);return e&&(e=e.get(t),e)?e:-1}}function al(r){let t=[],e=[],s=!1;function n(i){let a=Uf.get(i);a&&(s=!0,i|=a),t.push(i)}for(let i of r)for(;;){if(i<128)t.push(i);else if(il(i)){let a=i-nn,o=a/hi|0,c=a%hi/Yr|0,u=a%Yr;n(ci+o),n(li+c),u>0&&n(ui+u)}else{let a=rl.get(i);a?e.push(...a):n(i)}if(!e.length)break;i=e.pop()}if(s&&t.length>1){let i=ds(t[0]);for(let a=1;a<t.length;a++){let o=ds(t[a]);if(o==0||i<=o){i=o;continue}let c=a-1;for(;;){let u=t[c+1];if(t[c+1]=t[c],t[c]=u,!c||(i=ds(t[--c]),i<=o))break}i=ds(t[a])}}return t}function Qf(r){let t=[],e=[],s=-1,n=0;for(let i of r){let a=ds(i),o=el(i);if(s==-1)a==0?s=o:t.push(o);else if(n>0&&n>=a)a==0?(t.push(s,...e),e.length=0,s=o):e.push(o),n=a;else{let c=Wf(s,o);c>=0?s=c:n==0&&a==0?(t.push(s),s=o):(e.push(o),n=a)}}return s>=0&&t.push(s,...e),t}function ol(r){return al(r).map(el)}function Jf(r){return Qf(al(r))}const Xi=65039,cl=".",ll=1,No=45;function Zr(){return new Set(Me(Nt))}const _f=new Map(Xc(Nt)),zf=Zr(),fi=Zr(),Po=new Set(Me(Nt).map(function(r){return this[r]},[...fi])),Kf=Zr();Zr();const Yf=Zc(Nt);function Co(){return new Set([Me(Nt).map(r=>Yf[r]),Me(Nt)].flat(2))}const qf=Nt(),an=rn(r=>{let t=rn(Nt).map(e=>e+96);if(t.length){let e=r>=qf;t[0]-=32,t=sn(t),e&&(t=`Restricted[${t}]`);let s=Co(),n=Co(),i=[...s,...n].sort((o,c)=>o-c),a=!Nt();return{N:t,P:s,M:a,R:e,V:new Set(i)}}}),ko=Zr(),on=new Map;[...ko,...Zr()].sort((r,t)=>r-t).map((r,t,e)=>{let s=Nt(),n=e[t]=s?e[t-s]:{V:[],M:new Map};n.V.push(r),ko.has(r)||on.set(r,n)});for(let{V:r,M:t}of new Set(on.values())){let e=[];for(let n of r){let i=an.filter(o=>o.V.has(n)),a=e.find(({G:o})=>i.some(c=>o.has(c)));a||(a={G:new Set,V:[]},e.push(a)),a.V.push(n),i.forEach(o=>a.G.add(o))}let s=e.flatMap(({G:n})=>[...n]);for(let{G:n,V:i}of e){let a=new Set(s.filter(o=>!n.has(o)));for(let o of i)t.set(o,a)}}let cn=new Set,ul=new Set;for(let r of an)for(let t of r.V)(cn.has(t)?ul:cn).add(t);for(let r of cn)!on.has(r)&&!ul.has(r)&&on.set(r,ll);const Zf=new Set([...cn,...ol(cn)]),Xf=Me(Nt),$f=hl([]);function hl(r){let t=rn(()=>{let o=Me(Nt).map(c=>Xf[c]);if(o.length)return hl(o)}).sort((o,c)=>c.Q.size-o.Q.size),e=Nt(),s=e%3;e=e/3|0;let n=e&1;e>>=1;let i=e&1,a=e&2;return{B:t,V:s,F:n,S:i,C:a,Q:new Set(r)}}class td extends Array{get is_emoji(){return!0}}function Ei(r,t=tl){let e=[];sd(r[0])&&e.push("◌");let s=0,n=r.length;for(let i=0;i<n;i++){let a=r[i];fl(a)&&(e.push(sn(r.slice(s,i))),e.push(t(a)),s=i+1)}return e.push(sn(r.slice(s,n))),e.join("")}function Da(r){return(fl(r)?"":`${La(Ei([r]))} `)+tl(r)}function La(r){return`"${r}"`}function ed(r){if(r.length>=4&&r[2]==No&&r[3]==No)throw new Error("invalid label extension")}function So(r){for(let t=r.lastIndexOf(95);t>0;)if(r[--t]!==95)throw new Error("underscore allowed only at start")}function rd(r){let t=r[0],e=vo.get(t);if(e)throw Js(`leading ${e}`);let s=r.length,n=-1;for(let i=1;i<s;i++){t=r[i];let a=vo.get(t);if(a){if(n==i)throw Js(`${e} + ${a}`);n=i+1,e=a}}if(n==s)throw Js(`trailing ${e}`)}function sd(r){return fi.has(r)}function fl(r){return Kf.has(r)}function nd(r){return cd(id(r))}function id(r,t){let e=0;return r.split(cl).map(s=>{let n=Lf(s),i={input:n,offset:e};e+=n.length+1;let a;try{let o=i.tokens=ud(n,Jf),c=o.length,u;if(c){let h=o[0],d=c>1||h.is_emoji;if(!d&&h.every(p=>p<128))a=h,So(a),ed(a),u="ASCII";else if(d&&(i.emoji=!0,h=o.flatMap(p=>p.is_emoji?[]:p)),a=o.flatMap(p=>!t&&p.is_emoji?hd(p):p),So(a),!h.length)u="Emoji";else{if(fi.has(a[0]))throw Js("leading combining mark");for(let b=1;b<c;b++){let N=o[b];if(!N.is_emoji&&fi.has(N[0]))throw Js(`emoji + combining mark: "${sn(o[b-1])} + ${Ei([N[0]])}"`)}rd(a);let p=[...new Set(h)],[y]=od(p);ld(y,h),ad(y,p),u=y.N}}else throw new Error("empty label");i.type=u}catch(o){i.error=o}return i.output=a,i})}function ad(r,t){let e,s=[];for(let n of t){let i=on.get(n);if(i===ll)return;if(i){let a=i.M.get(n);if(e=e?e.filter(o=>a.has(o)):[...a],!e.length)return}else s.push(n)}if(e){for(let n of e)if(s.every(i=>n.V.has(i)))throw new Error(`whole-script confusable: ${r.N}/${n.N}`)}}function od(r){let t=an;for(let e of r){let s=t.filter(n=>n.V.has(e));if(!s.length)throw t===an?dl(e):pl(t[0],e);if(t=s,s.length==1)break}return t}function cd(r){return r.map(({input:t,error:e,output:s})=>{if(e){let n=e.message;throw new Error(r.length==1?n:`Invalid label ${La(Ei(t))}: ${n}`)}return sn(s)}).join(cl)}function dl(r){return new Error(`disallowed character: ${Da(r)}`)}function pl(r,t){let e=Da(t),s=an.find(n=>n.P.has(t));return s&&(e=`${s.N} ${e}`),new Error(`illegal mixture: ${r.N} + ${e}`)}function Js(r){return new Error(`illegal placement: ${r}`)}function ld(r,t){let{V:e,M:s}=r;for(let n of t)if(!e.has(n))throw pl(r,n);if(s){let n=ol(t);for(let i=1,a=n.length;i<a;i++)if(Po.has(n[i])){let o=i+1;for(let c;o<a&&Po.has(c=n[o]);o++)for(let u=i;u<o;u++)if(n[u]==c)throw new Error(`non-spacing marks: repeated ${Da(c)}`);if(o-i>Io)throw new Error(`non-spacing marks: too many ${La(Ei(n.slice(i-1,o)))} (${o-i}/${Io})`);i=o}}}function ud(r,t){let e=[],s=[];for(r=r.slice().reverse();r.length;){let n=fd(r);if(n)s.length&&(e.push(t(s)),s=[]),e.push(n);else{let i=r.pop();if(Zf.has(i))s.push(i);else{let a=_f.get(i);if(a)s.push(...a);else if(!zf.has(i))throw dl(i)}}}return s.length&&e.push(t(s)),e}function hd(r){return r.filter(t=>t!=Xi)}function fd(r,t){let e=$f,s,n,i=[],a=r.length;for(t&&(t.length=0);a;){let o=r[--a];if(e=e.B.find(c=>c.Q.has(o)),!e)break;if(e.S)n=o;else if(e.C&&o===n)break;i.push(o),e.F&&(i.push(Xi),a>0&&r[a-1]==Xi&&a--),e.V&&(s=dd(i,e),t&&t.push(...r.slice(a).reverse()),r.length=a)}return s}function dd(r,t){let e=td.from(r);return t.V==2&&e.splice(1,1),e}const gl=new Uint8Array(32);gl.fill(0);function Oo(r){return g(r.length!==0,"invalid ENS name; empty component","comp",r),r}function ml(r){const t=oe(pd(r)),e=[];if(r.length===0)return e;let s=0;for(let n=0;n<t.length;n++)t[n]===46&&(e.push(Oo(t.slice(s,n))),s=n+1);return g(s<t.length,"invalid ENS name; empty component","name",r),e.push(Oo(t.slice(s))),e}function pd(r){try{return nd(r)}catch(t){g(!1,`invalid ENS name (${t.message})`,"name",r)}}function $i(r){g(typeof r=="string","invalid ENS name; not a string","name",r);let t=gl;const e=ml(r);for(;e.length;)t=J(Y([t,J(e.pop())]));return C(t)}function gd(r){return C(Y(ml(r).map(t=>{if(t.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const e=new Uint8Array(t.length+1);return e.set(t,1),e[0]=e.length-1,e})))+"00"}function Li(r,t){return{address:B(r),storageKeys:t.map((e,s)=>(g(_(e,32),"invalid slot",`storageKeys[${s}]`,e),e.toLowerCase()))}}function pr(r){if(Array.isArray(r))return r.map((e,s)=>Array.isArray(e)?(g(e.length===2,"invalid slot set",`value[${s}]`,e),Li(e[0],e[1])):(g(e!=null&&typeof e=="object","invalid address-slot set","value",r),Li(e.address,e.storageKeys)));g(r!=null&&typeof r=="object","invalid access list","value",r);const t=Object.keys(r).map(e=>{const s=r[e].reduce((n,i)=>(n[i]=!0,n),{});return Li(e,Object.keys(s).sort())});return t.sort((e,s)=>e.address.localeCompare(s.address)),t}function md(r){let t;return typeof r=="string"?t=Ra.computePublicKey(r,!1):t=r.publicKey,B(J("0x"+t.substring(4)).substring(26))}function Ad(r,t){return md(Ra.recoverPublicKey(r,t))}const ft=BigInt(0),yd=BigInt(2),wd=BigInt(27),bd=BigInt(28),Ed=BigInt(35),vd=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Ua(r){return r==="0x"?null:B(r)}function Al(r,t){try{return pr(r)}catch(e){g(!1,e.message,t,r)}}function vi(r,t){return r==="0x"?0:R(r,t)}function ct(r,t){if(r==="0x")return ft;const e=k(r,t);return g(e<=vd,"value exceeds uint size",t,e),e}function et(r,t){const e=k(r,"value"),s=It(e);return g(s.length<=32,"value too large",`tx.${t}`,e),s}function yl(r){return pr(r).map(t=>[t.address,t.storageKeys])}function Id(r){const t=Oa(r);g(Array.isArray(t)&&(t.length===9||t.length===6),"invalid field count for legacy transaction","data",r);const e={type:0,nonce:vi(t[0],"nonce"),gasPrice:ct(t[1],"gasPrice"),gasLimit:ct(t[2],"gasLimit"),to:Ua(t[3]),value:ct(t[4],"value"),data:C(t[5]),chainId:ft};if(t.length===6)return e;const s=ct(t[6],"v"),n=ct(t[7],"r"),i=ct(t[8],"s");if(n===ft&&i===ft)e.chainId=s;else{let a=(s-Ed)/yd;a<ft&&(a=ft),e.chainId=a,g(a!==ft||s===wd||s===bd,"non-canonical legacy v","v",t[6]),e.signature=le.from({r:cr(t[7],32),s:cr(t[8],32),v:s}),e.hash=J(r)}return e}function xo(r,t){const e=[et(r.nonce||0,"nonce"),et(r.gasPrice||0,"gasPrice"),et(r.gasLimit||0,"gasLimit"),r.to!=null?B(r.to):"0x",et(r.value||0,"value"),r.data||"0x"];let s=ft;if(r.chainId!=ft)s=k(r.chainId,"tx.chainId"),g(!t||t.networkV==null||t.legacyChainId===s,"tx.chainId/sig.v mismatch","sig",t);else if(r.signature){const i=r.signature.legacyChainId;i!=null&&(s=i)}if(!t)return s!==ft&&(e.push(It(s)),e.push("0x"),e.push("0x")),Xs(e);let n=BigInt(27+t.yParity);return s!==ft?n=le.getChainIdV(s,t.v):BigInt(t.v)!==n&&g(!1,"tx.chainId/sig.v mismatch","sig",t),e.push(It(n)),e.push(It(t.r)),e.push(It(t.s)),Xs(e)}function wl(r,t){let e;try{if(e=vi(t[0],"yParity"),e!==0&&e!==1)throw new Error("bad yParity")}catch{g(!1,"invalid yParity","yParity",t[0])}const s=cr(t[1],32),n=cr(t[2],32),i=le.from({r:s,s:n,yParity:e});r.signature=i}function Nd(r){const t=Oa(L(r).slice(1));g(Array.isArray(t)&&(t.length===9||t.length===12),"invalid field count for transaction type: 2","data",C(r));const e=ct(t[2],"maxPriorityFeePerGas"),s=ct(t[3],"maxFeePerGas"),n={type:2,chainId:ct(t[0],"chainId"),nonce:vi(t[1],"nonce"),maxPriorityFeePerGas:e,maxFeePerGas:s,gasPrice:null,gasLimit:ct(t[4],"gasLimit"),to:Ua(t[5]),value:ct(t[6],"value"),data:C(t[7]),accessList:Al(t[8],"accessList")};return t.length===9||(n.hash=J(r),wl(n,t.slice(9))),n}function Ro(r,t){const e=[et(r.chainId||0,"chainId"),et(r.nonce||0,"nonce"),et(r.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),et(r.maxFeePerGas||0,"maxFeePerGas"),et(r.gasLimit||0,"gasLimit"),r.to!=null?B(r.to):"0x",et(r.value||0,"value"),r.data||"0x",yl(r.accessList||[])];return t&&(e.push(et(t.yParity,"yParity")),e.push(It(t.r)),e.push(It(t.s))),Y(["0x02",Xs(e)])}function Pd(r){const t=Oa(L(r).slice(1));g(Array.isArray(t)&&(t.length===8||t.length===11),"invalid field count for transaction type: 1","data",C(r));const e={type:1,chainId:ct(t[0],"chainId"),nonce:vi(t[1],"nonce"),gasPrice:ct(t[2],"gasPrice"),gasLimit:ct(t[3],"gasLimit"),to:Ua(t[4]),value:ct(t[5],"value"),data:C(t[6]),accessList:Al(t[7],"accessList")};return t.length===8||(e.hash=J(r),wl(e,t.slice(8))),e}function To(r,t){const e=[et(r.chainId||0,"chainId"),et(r.nonce||0,"nonce"),et(r.gasPrice||0,"gasPrice"),et(r.gasLimit||0,"gasLimit"),r.to!=null?B(r.to):"0x",et(r.value||0,"value"),r.data||"0x",yl(r.accessList||[])];return t&&(e.push(et(t.yParity,"recoveryParam")),e.push(It(t.r)),e.push(It(t.s))),Y(["0x01",Xs(e)])}var ve,ps,gs,ms,As,ys,ws,bs,Es,vs,Is,Ns;const Cd=class Je{constructor(){A(this,ve,void 0),A(this,ps,void 0),A(this,gs,void 0),A(this,ms,void 0),A(this,As,void 0),A(this,ys,void 0),A(this,ws,void 0),A(this,bs,void 0),A(this,Es,void 0),A(this,vs,void 0),A(this,Is,void 0),A(this,Ns,void 0),f(this,ve,null),f(this,ps,null),f(this,ms,0),f(this,As,BigInt(0)),f(this,ys,null),f(this,ws,null),f(this,bs,null),f(this,gs,"0x"),f(this,Es,BigInt(0)),f(this,vs,BigInt(0)),f(this,Is,null),f(this,Ns,null)}get type(){return l(this,ve)}set type(t){switch(t){case null:f(this,ve,null);break;case 0:case"legacy":f(this,ve,0);break;case 1:case"berlin":case"eip-2930":f(this,ve,1);break;case 2:case"london":case"eip-1559":f(this,ve,2);break;default:g(!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"}return null}get to(){return l(this,ps)}set to(t){f(this,ps,t==null?null:B(t))}get nonce(){return l(this,ms)}set nonce(t){f(this,ms,R(t,"value"))}get gasLimit(){return l(this,As)}set gasLimit(t){f(this,As,k(t))}get gasPrice(){const t=l(this,ys);return t==null&&(this.type===0||this.type===1)?ft:t}set gasPrice(t){f(this,ys,t==null?null:k(t,"gasPrice"))}get maxPriorityFeePerGas(){return l(this,ws)??(this.type===2?ft:null)}set maxPriorityFeePerGas(t){f(this,ws,t==null?null:k(t,"maxPriorityFeePerGas"))}get maxFeePerGas(){return l(this,bs)??(this.type===2?ft:null)}set maxFeePerGas(t){f(this,bs,t==null?null:k(t,"maxFeePerGas"))}get data(){return l(this,gs)}set data(t){f(this,gs,C(t))}get value(){return l(this,Es)}set value(t){f(this,Es,k(t,"value"))}get chainId(){return l(this,vs)}set chainId(t){f(this,vs,k(t))}get signature(){return l(this,Is)||null}set signature(t){f(this,Is,t==null?null:le.from(t))}get accessList(){return(l(this,Ns)||null)??(this.type===1||this.type===2?[]:null)}set accessList(t){f(this,Ns,t==null?null:pr(t))}get hash(){return this.signature==null?null:J(this.serialized)}get unsignedHash(){return J(this.unsignedSerialized)}get from(){return this.signature==null?null:Ad(this.unsignedHash,this.signature)}get fromPublicKey(){return this.signature==null?null:Ra.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}get serialized(){switch(w(this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"}),this.inferType()){case 0:return xo(this,this.signature);case 1:return To(this,this.signature);case 2:return Ro(this,this.signature)}w(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get unsignedSerialized(){switch(this.inferType()){case 0:return xo(this);case 1:return To(this);case 2:return Ro(this)}w(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".unsignedSerialized"})}inferType(){return this.inferTypes().pop()}inferTypes(){const t=this.gasPrice!=null,e=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,s=this.accessList!=null;this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null&&w(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),w(!e||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),w(this.type!==0||!s,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const n=[];return this.type!=null?n.push(this.type):e?n.push(2):t?(n.push(1),s||n.push(0)):s?(n.push(1),n.push(2)):(n.push(0),n.push(1),n.push(2)),n.sort(),n}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}clone(){return Je.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 Je;if(typeof t=="string"){const s=L(t);if(s[0]>=127)return Je.from(Id(s));switch(s[0]){case 1:return Je.from(Pd(s));case 2:return Je.from(Nd(s))}w(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new Je;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.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=le.from(t.signature)),t.accessList!=null&&(e.accessList=t.accessList),t.hash!=null&&(g(e.isSigned(),"unsigned transaction cannot define hash","tx",t),g(e.hash===t.hash,"hash mismatch","tx",t)),t.from!=null&&(g(e.isSigned(),"unsigned transaction cannot define from","tx",t),g(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}};ve=new WeakMap,ps=new WeakMap,gs=new WeakMap,ms=new WeakMap,As=new WeakMap,ys=new WeakMap,ws=new WeakMap,bs=new WeakMap,Es=new WeakMap,vs=new WeakMap,Is=new WeakMap,Ns=new WeakMap;let bl=Cd;const El=new Uint8Array(32);El.fill(0);const kd=BigInt(-1),vl=BigInt(0),Il=BigInt(1),Sd=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Od(r){const t=L(r),e=t.length%32;return e?Y([t,El.slice(e)]):C(t)}const xd=Fe(Il,32),Rd=Fe(vl,32),Bo={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Ui=["name","version","chainId","verifyingContract","salt"];function Do(r){return function(t){return g(typeof t=="string",`invalid domain value for ${JSON.stringify(r)}`,`domain.${r}`,t),t}}const Td={name:Do("name"),version:Do("version"),chainId:function(r){const t=k(r,"domain.chainId");return g(t>=0,"invalid chain ID","domain.chainId",r),Number.isSafeInteger(t)?Number(t):Lr(t)},verifyingContract:function(r){try{return B(r).toLowerCase()}catch{}g(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",r)},salt:function(r){const t=L(r,"domain.salt");return g(t.length===32,'invalid domain value "salt"',"domain.salt",r),C(t)}};function ta(r){{const t=r.match(/^(u?)int(\d*)$/);if(t){const e=t[1]==="",s=parseInt(t[2]||"256");g(s%8===0&&s!==0&&s<=256&&(t[2]==null||t[2]===String(s)),"invalid numeric width","type",r);const n=es(Sd,e?s-1:s),i=e?(n+Il)*kd:vl;return function(a){const o=k(a,"value");return g(o>=i&&o<=n,`value out-of-bounds for ${r}`,"value",o),Fe(e?yc(o,256):o,32)}}}{const t=r.match(/^bytes(\d+)$/);if(t){const e=parseInt(t[1]);return g(e!==0&&e<=32&&t[1]===String(e),"invalid bytes width","type",r),function(s){const n=L(s);return g(n.length===e,`invalid length for ${r}`,"value",s),Od(s)}}}switch(r){case"address":return function(t){return cr(B(t),32)};case"bool":return function(t){return t?xd:Rd};case"bytes":return function(t){return J(t)};case"string":return function(t){return ur(t)}}return null}function Lo(r,t){return`${r}(${t.map(({name:e,type:s})=>s+" "+e).join(",")})`}var Fn,De,Ps,ea,Nl;const Bd=class Dt{constructor(t){A(this,ea),m(this,"primaryType"),A(this,Fn,void 0),A(this,De,void 0),A(this,Ps,void 0),f(this,Fn,JSON.stringify(t)),f(this,De,new Map),f(this,Ps,new Map);const e=new Map,s=new Map,n=new Map;Object.keys(t).forEach(o=>{e.set(o,new Set),s.set(o,[]),n.set(o,new Set)});for(const o in t){const c=new Set;for(const u of t[o]){g(!c.has(u.name),`duplicate variable name ${JSON.stringify(u.name)} in ${JSON.stringify(o)}`,"types",t),c.add(u.name);const h=u.type.match(/^([^\x5b]*)(\x5b|$)/)[1]||null;g(h!==o,`circular type reference to ${JSON.stringify(h)}`,"types",t),!ta(h)&&(g(s.has(h),`unknown type ${JSON.stringify(h)}`,"types",t),s.get(h).push(o),e.get(o).add(h))}}const i=Array.from(s.keys()).filter(o=>s.get(o).length===0);g(i.length!==0,"missing primary type","types",t),g(i.length===1,`ambiguous primary types or unused types: ${i.map(o=>JSON.stringify(o)).join(", ")}`,"types",t),O(this,{primaryType:i[0]});function a(o,c){g(!c.has(o),`circular type reference to ${JSON.stringify(o)}`,"types",t),c.add(o);for(const u of e.get(o))if(s.has(u)){a(u,c);for(const h of c)n.get(h).add(u)}c.delete(o)}a(this.primaryType,new Set);for(const[o,c]of n){const u=Array.from(c);u.sort(),l(this,De).set(o,Lo(o,t[o])+u.map(h=>Lo(h,t[h])).join(""))}}get types(){return JSON.parse(l(this,Fn))}getEncoder(t){let e=l(this,Ps).get(t);return e||(e=E(this,ea,Nl).call(this,t),l(this,Ps).set(t,e)),e}encodeType(t){const e=l(this,De).get(t);return g(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return J(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,s){if(ta(t))return s(t,e);const n=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n)return g(!n[3]||parseInt(n[3])===e.length,`array length mismatch; expected length ${parseInt(n[3])}`,"value",e),e.map(a=>this._visit(n[1],a,s));const i=this.types[t];if(i)return i.reduce((a,{name:o,type:c})=>(a[o]=this._visit(c,e[o],s),a),{});g(!1,`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new Dt(t)}static getPrimaryType(t){return Dt.from(t).primaryType}static hashStruct(t,e,s){return Dt.from(e).hashStruct(t,s)}static hashDomain(t){const e=[];for(const s in t){if(t[s]==null)continue;const n=Bo[s];g(n,`invalid typed-data domain key: ${JSON.stringify(s)}`,"domain",t),e.push({name:s,type:n})}return e.sort((s,n)=>Ui.indexOf(s.name)-Ui.indexOf(n.name)),Dt.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,s){return Y(["0x1901",Dt.hashDomain(t),Dt.from(e).hash(s)])}static hash(t,e,s){return J(Dt.encode(t,e,s))}static async resolveNames(t,e,s,n){t=Object.assign({},t);for(const o in t)t[o]==null&&delete t[o];const i={};t.verifyingContract&&!_(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const a=Dt.from(e);a.visit(s,(o,c)=>(o==="address"&&!_(c,20)&&(i[c]="0x"),c));for(const o in i)i[o]=await n(o);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),s=a.visit(s,(o,c)=>o==="address"&&i[c]?i[c]:c),{domain:t,value:s}}static getPayload(t,e,s){Dt.hashDomain(t);const n={},i=[];Ui.forEach(c=>{const u=t[c];u!=null&&(n[c]=Td[c](u),i.push({name:c,type:Bo[c]}))});const a=Dt.from(e),o=Object.assign({},e);return g(o.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",e),o.EIP712Domain=i,a.encode(s),{types:o,domain:n,primaryType:a.primaryType,message:a.visit(s,(c,u)=>{if(c.match(/^bytes(\d*)/))return C(L(u));if(c.match(/^u?int/))return k(u).toString();switch(c){case"address":return u.toLowerCase();case"bool":return!!u;case"string":return g(typeof u=="string","invalid string","value",u),u}g(!1,"unsupported type","type",c)})}}};Fn=new WeakMap,De=new WeakMap,Ps=new WeakMap,ea=new WeakSet,Nl=function(r){{const s=ta(r);if(s)return s}const t=r.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const s=t[1],n=this.getEncoder(s);return i=>{g(!t[3]||parseInt(t[3])===i.length,`array length mismatch; expected length ${parseInt(t[3])}`,"value",i);let a=i.map(n);return l(this,De).has(s)&&(a=a.map(J)),J(Y(a))}}const e=this.types[r];if(e){const s=ur(l(this,De).get(r));return n=>{const i=e.map(({name:a,type:o})=>{const c=this.getEncoder(o)(n[a]);return l(this,De).has(o)?J(c):c});return i.unshift(s),Y(i)}}g(!1,`unknown type: ${r}`,"type",r)};let Uo=Bd;function ut(r){const t=new Set;return r.forEach(e=>t.add(e)),Object.freeze(t)}const Dd="external public payable",Ld=ut(Dd.split(" ")),Pl="constant external internal payable private public pure view",Ud=ut(Pl.split(" ")),Cl="constructor error event fallback function receive struct",kl=ut(Cl.split(" ")),Sl="calldata memory storage payable indexed",Fd=ut(Sl.split(" ")),Md="tuple returns",Gd=[Cl,Sl,Md,Pl].join(" "),Hd=ut(Gd.split(" ")),Vd={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},jd=new RegExp("^(\\s*)"),Wd=new RegExp("^([0-9]+)"),Qd=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Ol=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),xl=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var rt,Kt,Mn,ra;const Rl=class Tl{constructor(t){A(this,Mn),A(this,rt,void 0),A(this,Kt,void 0),f(this,rt,0),f(this,Kt,t.slice())}get offset(){return l(this,rt)}get length(){return l(this,Kt).length-l(this,rt)}clone(){return new Tl(l(this,Kt))}reset(){f(this,rt,0)}popKeyword(t){const e=this.peek();if(e.type!=="KEYWORD"||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t)throw new Error(`expected ${t}; got ${JSON.stringify(this.peek())}`);return this.pop().text}popParen(){const t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");const e=E(this,Mn,ra).call(this,l(this,rt)+1,t.match+1);return f(this,rt,t.match+1),e}popParams(){const t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");const e=[];for(;l(this,rt)<t.match-1;){const s=this.peek().linkNext;e.push(E(this,Mn,ra).call(this,l(this,rt)+1,s)),f(this,rt,s)}return f(this,rt,t.match+1),e}peek(){if(l(this,rt)>=l(this,Kt).length)throw new Error("out-of-bounds");return l(this,Kt)[l(this,rt)]}peekKeyword(t){const e=this.peekType("KEYWORD");return e!=null&&t.has(e)?e:null}peekType(t){if(this.length===0)return null;const e=this.peek();return e.type===t?e.text:null}pop(){const t=this.peek();return ri(this,rt)._++,t}toString(){const t=[];for(let e=l(this,rt);e<l(this,Kt).length;e++){const s=l(this,Kt)[e];t.push(`${s.type}:${s.text}`)}return`<TokenString ${t.join(" ")}>`}};rt=new WeakMap,Kt=new WeakMap,Mn=new WeakSet,ra=function(r=0,t=0){return new Rl(l(this,Kt).slice(r,t).map(e=>Object.freeze(Object.assign({},e,{match:e.match-r,linkBack:e.linkBack-r,linkNext:e.linkNext-r}))))};let fe=Rl;function He(r){const t=[],e=a=>{const o=i<r.length?JSON.stringify(r[i]):"$EOI";throw new Error(`invalid token ${o} at ${i}: ${a}`)};let s=[],n=[],i=0;for(;i<r.length;){let a=r.substring(i),o=a.match(jd);o&&(i+=o[1].length,a=r.substring(i));const c={depth:s.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};t.push(c);let u=Vd[a[0]]||"";if(u){if(c.type=u,c.text=a[0],i++,u==="OPEN_PAREN")s.push(t.length-1),n.push(t.length-1);else if(u=="CLOSE_PAREN")s.length===0&&e("no matching open bracket"),c.match=s.pop(),t[c.match].match=t.length-1,c.depth--,c.linkBack=n.pop(),t[c.linkBack].linkNext=t.length-1;else if(u==="COMMA")c.linkBack=n.pop(),t[c.linkBack].linkNext=t.length-1,n.push(t.length-1);else if(u==="OPEN_BRACKET")c.type="BRACKET";else if(u==="CLOSE_BRACKET"){let h=t.pop().text;if(t.length>0&&t[t.length-1].type==="NUMBER"){const d=t.pop().text;h=d+h,t[t.length-1].value=R(d)}if(t.length===0||t[t.length-1].type!=="BRACKET")throw new Error("missing opening bracket");t[t.length-1].text+=h}continue}if(o=a.match(Qd),o){if(c.text=o[1],i+=c.text.length,Hd.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(xl)){c.type="TYPE";continue}c.type="ID";continue}if(o=a.match(Wd),o){c.text=o[1],c.type="NUMBER",i+=c.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(a[0])} at position ${i}`)}return new fe(t.map(a=>Object.freeze(a)))}function Fo(r,t){let e=[];for(const s in t.keys())r.has(s)&&e.push(s);if(e.length>1)throw new Error(`conflicting types: ${e.join(", ")}`)}function Ii(r,t){if(t.peekKeyword(kl)){const e=t.pop().text;if(e!==r)throw new Error(`expected ${r}, got ${e}`)}return t.popType("ID")}function ue(r,t){const e=new Set;for(;;){const s=r.peekType("KEYWORD");if(s==null||t&&!t.has(s))break;if(r.pop(),e.has(s))throw new Error(`duplicate keywords: ${JSON.stringify(s)}`);e.add(s)}return Object.freeze(e)}function Bl(r){let t=ue(r,Ud);return Fo(t,ut("constant payable nonpayable".split(" "))),Fo(t,ut("pure view payable nonpayable".split(" "))),t.has("view")?"view":t.has("pure")?"pure":t.has("payable")?"payable":t.has("nonpayable")?"nonpayable":t.has("constant")?"view":"nonpayable"}function ce(r,t){return r.popParams().map(e=>ht.from(e,t))}function Dl(r){if(r.peekType("AT")){if(r.pop(),r.peekType("NUMBER"))return k(r.pop().text);throw new Error("invalid gas")}return null}function hr(r){if(r.length)throw new Error(`unexpected tokens: ${r.toString()}`)}const Jd=new RegExp(/^(.*)\[([0-9]*)\]$/);function Mo(r){const t=r.match(xl);if(g(t,"invalid type","type",r),r==="uint")return"uint256";if(r==="int")return"int256";if(t[2]){const e=parseInt(t[2]);g(e!==0&&e<=32,"invalid bytes length","type",r)}else if(t[3]){const e=parseInt(t[3]);g(e!==0&&e<=256&&e%8===0,"invalid numeric width","type",r)}return r}const Q={},At=Symbol.for("_ethers_internal"),Go="_ParamTypeInternal",Ho="_ErrorInternal",Vo="_EventInternal",jo="_ConstructorInternal",Wo="_FallbackInternal",Qo="_FunctionInternal",Jo="_StructInternal";var _s,Gn;const _d=class Lt{constructor(t,e,s,n,i,a,o,c){if(A(this,_s),m(this,"name"),m(this,"type"),m(this,"baseType"),m(this,"indexed"),m(this,"components"),m(this,"arrayLength"),m(this,"arrayChildren"),Ai(t,Q,"ParamType"),Object.defineProperty(this,At,{value:Go}),a&&(a=Object.freeze(a.slice())),n==="array"){if(o==null||c==null)throw new Error("")}else if(o!=null||c!=null)throw new Error("");if(n==="tuple"){if(a==null)throw new Error("")}else if(a!=null)throw new Error("");O(this,{name:e,type:s,baseType:n,indexed:i,components:a,arrayLength:o,arrayChildren:c})}format(t){if(t==null&&(t="sighash"),t==="json"){const s=this.name||"";if(this.isArray()){const i=JSON.parse(this.arrayChildren.format("json"));return i.name=s,i.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(i)}const n={type:this.baseType==="tuple"?"tuple":this.type,name:s};return typeof this.indexed=="boolean"&&(n.indexed=this.indexed),this.isTuple()&&(n.components=this.components.map(i=>JSON.parse(i.format(t)))),JSON.stringify(n)}let e="";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?(t!=="sighash"&&(e+=this.type),e+="("+this.components.map(s=>s.format(t)).join(t==="full"?", ":",")+")"):e+=this.type,t!=="sighash"&&(this.indexed===!0&&(e+=" indexed"),t==="full"&&this.name&&(e+=" "+this.name)),e}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(t,e){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const s=this;return t.map(n=>s.arrayChildren.walk(n,e))}if(this.isTuple()){if(!Array.isArray(t))throw new Error("invalid tuple value");if(t.length!==this.components.length)throw new Error("array is wrong length");const s=this;return t.map((n,i)=>s.components[i].walk(n,e))}return e(this.type,t)}async walkAsync(t,e){const s=[],n=[t];return E(this,_s,Gn).call(this,s,t,e,i=>{n[0]=i}),s.length&&await Promise.all(s),n[0]}static from(t,e){if(Lt.isParamType(t))return t;if(typeof t=="string")try{return Lt.from(He(t),e)}catch{g(!1,"invalid param type","obj",t)}else if(t instanceof fe){let o="",c="",u=null;ue(t,ut(["tuple"])).has("tuple")||t.peekType("OPEN_PAREN")?(c="tuple",u=t.popParams().map(b=>Lt.from(b)),o=`tuple(${u.map(b=>b.format()).join(",")})`):(o=Mo(t.popType("TYPE")),c=o);let h=null,d=null;for(;t.length&&t.peekType("BRACKET");){const b=t.pop();h=new Lt(Q,"",o,c,null,u,d,h),d=b.value,o+=b.text,c="array",u=null}let p=null;if(ue(t,Fd).has("indexed")){if(!e)throw new Error("");p=!0}const y=t.peekType("ID")?t.pop().text:"";if(t.length)throw new Error("leftover tokens");return new Lt(Q,y,o,c,p,u,d,h)}const s=t.name;g(!s||typeof s=="string"&&s.match(Ol),"invalid name","obj.name",s);let n=t.indexed;n!=null&&(g(e,"parameter cannot be indexed","obj.indexed",t.indexed),n=!!n);let i=t.type,a=i.match(Jd);if(a){const o=parseInt(a[2]||"-1"),c=Lt.from({type:a[1],components:t.components});return new Lt(Q,s||"",i,"array",n,null,o,c)}if(i==="tuple"||i.startsWith("tuple(")||i.startsWith("(")){const o=t.components!=null?t.components.map(c=>Lt.from(c)):null;return new Lt(Q,s||"",i,"tuple",n,o,null,null)}return i=Mo(t.type),new Lt(Q,s||"",i,i,n,null,null,null)}static isParamType(t){return t&&t[At]===Go}};_s=new WeakSet,Gn=function(r,t,e,s){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const i=this.arrayChildren,a=t.slice();a.forEach((o,c)=>{var u;E(u=i,_s,Gn).call(u,r,o,e,h=>{a[c]=h})}),s(a);return}if(this.isTuple()){const i=this.components;let a;if(Array.isArray(t))a=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");a=i.map(o=>{if(!o.name)throw new Error("cannot use object value with unnamed components");if(!(o.name in t))throw new Error(`missing value for component ${o.name}`);return t[o.name]})}if(a.length!==this.components.length)throw new Error("array is wrong length");a.forEach((o,c)=>{var u;E(u=i[c],_s,Gn).call(u,r,o,e,h=>{a[c]=h})}),s(a);return}const n=e(this.type,t);n.then?r.push(async function(){s(await n)}()):s(n)};let ht=_d;class fr{constructor(t,e,s){m(this,"type"),m(this,"inputs"),Ai(t,Q,"Fragment"),s=Object.freeze(s.slice()),O(this,{type:e,inputs:s})}static from(t){if(typeof t=="string"){try{fr.from(JSON.parse(t))}catch{}return fr.from(He(t))}if(t instanceof fe)switch(t.peekKeyword(kl)){case"constructor":return ae.from(t);case"error":return dt.from(t);case"event":return Yt.from(t);case"fallback":case"receive":return te.from(t);case"function":return qt.from(t);case"struct":return or.from(t)}else if(typeof t=="object"){switch(t.type){case"constructor":return ae.from(t);case"error":return dt.from(t);case"event":return Yt.from(t);case"fallback":case"receive":return te.from(t);case"function":return qt.from(t);case"struct":return or.from(t)}w(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}g(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return ae.isFragment(t)}static isError(t){return dt.isFragment(t)}static isEvent(t){return Yt.isFragment(t)}static isFunction(t){return qt.isFragment(t)}static isStruct(t){return or.isFragment(t)}}class Ni extends fr{constructor(t,e,s,n){super(t,e,n),m(this,"name"),g(typeof s=="string"&&s.match(Ol),"invalid identifier","name",s),n=Object.freeze(n.slice()),O(this,{name:s})}}function ln(r,t){return"("+t.map(e=>e.format(r)).join(r==="full"?", ":",")+")"}class dt extends Ni{constructor(t,e,s){super(t,"error",e,s),Object.defineProperty(this,At,{value:Ho})}get selector(){return ur(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const e=[];return t!=="sighash"&&e.push("error"),e.push(this.name+ln(t,this.inputs)),e.join(" ")}static from(t){if(dt.isFragment(t))return t;if(typeof t=="string")return dt.from(He(t));if(t instanceof fe){const e=Ii("error",t),s=ce(t);return hr(t),new dt(Q,e,s)}return new dt(Q,t.name,t.inputs?t.inputs.map(ht.from):[])}static isFragment(t){return t&&t[At]===Ho}}class Yt extends Ni{constructor(t,e,s,n){super(t,"event",e,s),m(this,"anonymous"),Object.defineProperty(this,At,{value:Vo}),O(this,{anonymous:n})}get topicHash(){return ur(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const e=[];return t!=="sighash"&&e.push("event"),e.push(this.name+ln(t,this.inputs)),t!=="sighash"&&this.anonymous&&e.push("anonymous"),e.join(" ")}static getTopicHash(t,e){return e=(e||[]).map(s=>ht.from(s)),new Yt(Q,t,e,!1).topicHash}static from(t){if(Yt.isFragment(t))return t;if(typeof t=="string")try{return Yt.from(He(t))}catch{g(!1,"invalid event fragment","obj",t)}else if(t instanceof fe){const e=Ii("event",t),s=ce(t,!0),n=!!ue(t,ut(["anonymous"])).has("anonymous");return hr(t),new Yt(Q,e,s,n)}return new Yt(Q,t.name,t.inputs?t.inputs.map(e=>ht.from(e,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[At]===Vo}}class ae extends fr{constructor(t,e,s,n,i){super(t,e,s),m(this,"payable"),m(this,"gas"),Object.defineProperty(this,At,{value:jo}),O(this,{payable:n,gas:i})}format(t){if(w(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const e=[`constructor${ln(t,this.inputs)}`];return e.push(this.payable?"payable":"nonpayable"),this.gas!=null&&e.push(`@${this.gas.toString()}`),e.join(" ")}static from(t){if(ae.isFragment(t))return t;if(typeof t=="string")try{return ae.from(He(t))}catch{g(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof fe){ue(t,ut(["constructor"]));const e=ce(t),s=!!ue(t,Ld).has("payable"),n=Dl(t);return hr(t),new ae(Q,"constructor",e,s,n)}return new ae(Q,"constructor",t.inputs?t.inputs.map(ht.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[At]===jo}}class te extends fr{constructor(t,e,s){super(t,"fallback",e),m(this,"payable"),Object.defineProperty(this,At,{value:Wo}),O(this,{payable:s})}format(t){const e=this.inputs.length===0?"receive":"fallback";if(t==="json"){const s=this.payable?"payable":"nonpayable";return JSON.stringify({type:e,stateMutability:s})}return`${e}()${this.payable?" payable":""}`}static from(t){if(te.isFragment(t))return t;if(typeof t=="string")try{return te.from(He(t))}catch{g(!1,"invalid fallback fragment","obj",t)}else if(t instanceof fe){const e=t.toString(),s=t.peekKeyword(ut(["fallback","receive"]));if(g(s,"type must be fallback or receive","obj",e),t.popKeyword(ut(["fallback","receive"]))==="receive"){const a=ce(t);return g(a.length===0,"receive cannot have arguments","obj.inputs",a),ue(t,ut(["payable"])),hr(t),new te(Q,[],!0)}let n=ce(t);n.length?g(n.length===1&&n[0].type==="bytes","invalid fallback inputs","obj.inputs",n.map(a=>a.format("minimal")).join(", ")):n=[ht.from("bytes")];const i=Bl(t);if(g(i==="nonpayable"||i==="payable","fallback cannot be constants","obj.stateMutability",i),ue(t,ut(["returns"])).has("returns")){const a=ce(t);g(a.length===1&&a[0].type==="bytes","invalid fallback outputs","obj.outputs",a.map(o=>o.format("minimal")).join(", "))}return hr(t),new te(Q,n,i==="payable")}if(t.type==="receive")return new te(Q,[],!0);if(t.type==="fallback"){const e=[ht.from("bytes")],s=t.stateMutability==="payable";return new te(Q,e,s)}g(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[At]===Wo}}class qt extends Ni{constructor(t,e,s,n,i,a){super(t,"function",e,n),m(this,"constant"),m(this,"outputs"),m(this,"stateMutability"),m(this,"payable"),m(this,"gas"),Object.defineProperty(this,At,{value:Qo}),i=Object.freeze(i.slice()),O(this,{constant:s==="view"||s==="pure",gas:a,outputs:i,payable:s==="payable",stateMutability:s})}get selector(){return ur(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t))),outputs:this.outputs.map(s=>JSON.parse(s.format(t)))});const e=[];return t!=="sighash"&&e.push("function"),e.push(this.name+ln(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push("returns"),e.push(ln(t,this.outputs))),this.gas!=null&&e.push(`@${this.gas.toString()}`)),e.join(" ")}static getSelector(t,e){return e=(e||[]).map(s=>ht.from(s)),new qt(Q,t,"view",e,[],null).selector}static from(t){if(qt.isFragment(t))return t;if(typeof t=="string")try{return qt.from(He(t))}catch{g(!1,"invalid function fragment","obj",t)}else if(t instanceof fe){const s=Ii("function",t),n=ce(t),i=Bl(t);let a=[];ue(t,ut(["returns"])).has("returns")&&(a=ce(t));const o=Dl(t);return hr(t),new qt(Q,s,i,n,a,o)}let e=t.stateMutability;return e==null&&(e="payable",typeof t.constant=="boolean"?(e="view",t.constant||(e="payable",typeof t.payable=="boolean"&&!t.payable&&(e="nonpayable"))):typeof t.payable=="boolean"&&!t.payable&&(e="nonpayable")),new qt(Q,t.name,e,t.inputs?t.inputs.map(ht.from):[],t.outputs?t.outputs.map(ht.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[At]===Qo}}class or extends Ni{constructor(t,e,s){super(t,"struct",e,s),Object.defineProperty(this,At,{value:Jo})}format(){throw new Error("@TODO")}static from(t){if(typeof t=="string")try{return or.from(He(t))}catch{g(!1,"invalid struct fragment","obj",t)}else if(t instanceof fe){const e=Ii("struct",t),s=ce(t);return hr(t),new or(Q,e,s)}return new or(Q,t.name,t.inputs?t.inputs.map(ht.from):[])}static isFragment(t){return t&&t[At]===Jo}}const jt=new Map;jt.set(0,"GENERIC_PANIC");jt.set(1,"ASSERT_FALSE");jt.set(17,"OVERFLOW");jt.set(18,"DIVIDE_BY_ZERO");jt.set(33,"ENUM_RANGE_ERROR");jt.set(34,"BAD_STORAGE_DATA");jt.set(49,"STACK_UNDERFLOW");jt.set(50,"ARRAY_RANGE_ERROR");jt.set(65,"OUT_OF_MEMORY");jt.set(81,"UNINITIALIZED_FUNCTION_CALL");const zd=new RegExp(/^bytes([0-9]*)$/),Kd=new RegExp(/^(u?int)([0-9]*)$/);let Fi=null;function Yd(r,t,e,s){let n="missing revert data",i=null;const a=null;let o=null;if(e){n="execution reverted";const u=L(e);if(e=C(e),u.length===0)n+=" (no data present; likely require(false) occurred",i="require(false)";else if(u.length%32!==4)n+=" (could not decode reason; invalid data length)";else if(C(u.slice(0,4))==="0x08c379a0")try{i=s.decode(["string"],u.slice(4))[0],o={signature:"Error(string)",name:"Error",args:[i]},n+=`: ${JSON.stringify(i)}`}catch{n+=" (could not decode reason; invalid string data)"}else if(C(u.slice(0,4))==="0x4e487b71")try{const h=Number(s.decode(["uint256"],u.slice(4))[0]);o={signature:"Panic(uint256)",name:"Panic",args:[h]},i=`Panic due to ${jt.get(h)||"UNKNOWN"}(${h})`,n+=`: ${i}`}catch{n+=" (could not decode panic code)"}else n+=" (unknown custom error)"}const c={to:t.to?B(t.to):null,data:t.data||"0x"};return t.from&&(c.from=B(t.from)),q(n,"CALL_EXCEPTION",{action:r,data:e,reason:i,transaction:c,invocation:a,revert:o})}var sr,Wr;const qd=class sa{constructor(){A(this,sr)}getDefaultValue(t){const e=t.map(s=>E(this,sr,Wr).call(this,ht.from(s)));return new Un(e,"_").defaultValue()}encode(t,e){gc(e.length,t.length,"types/values length mismatch");const s=t.map(a=>E(this,sr,Wr).call(this,ht.from(a))),n=new Un(s,"_"),i=new Yi;return n.encode(i,e),i.data}decode(t,e,s){const n=t.map(i=>E(this,sr,Wr).call(this,ht.from(i)));return new Un(n,"_").decode(new ff(e,s))}static defaultAbiCoder(){return Fi==null&&(Fi=new sa),Fi}static getBuiltinCallException(t,e,s){return Yd(t,e,s,sa.defaultAbiCoder())}};sr=new WeakSet,Wr=function(r){if(r.isArray())return new mf(E(this,sr,Wr).call(this,r.arrayChildren),r.arrayLength,r.name);if(r.isTuple())return new Un(r.components.map(e=>E(this,sr,Wr).call(this,e)),r.name);switch(r.baseType){case"address":return new pf(r.name);case"bool":return new Af(r.name);case"string":return new Cf(r.name);case"bytes":return new yf(r.name);case"":return new Ef(r.name)}let t=r.type.match(Kd);if(t){let e=parseInt(t[2]||"256");return g(e!==0&&e<=256&&e%8===0,"invalid "+t[1]+" bit length","param",r),new Pf(e/8,t[1]==="int",r.name)}if(t=r.type.match(zd),t){let e=parseInt(t[1]);return g(e!==0&&e<=32,"invalid bytes length","param",r),new wf(e,r.name)}g(!1,"invalid type","type",r.type)};let na=qd;class Zd{constructor(t,e,s){m(this,"fragment"),m(this,"name"),m(this,"signature"),m(this,"topic"),m(this,"args");const n=t.name,i=t.format();O(this,{fragment:t,name:n,signature:i,topic:e,args:s})}}class Xd{constructor(t,e,s,n){m(this,"fragment"),m(this,"name"),m(this,"args"),m(this,"signature"),m(this,"selector"),m(this,"value");const i=t.name,a=t.format();O(this,{fragment:t,name:i,args:s,signature:a,selector:e,value:n})}}class $d{constructor(t,e,s){m(this,"fragment"),m(this,"name"),m(this,"args"),m(this,"signature"),m(this,"selector");const n=t.name,i=t.format();O(this,{fragment:t,name:n,args:s,signature:i,selector:e})}}class _o{constructor(t){m(this,"hash"),m(this,"_isIndexed"),O(this,{hash:t,_isIndexed:!0})}static isIndexed(t){return!!(t&&t._isIndexed)}}const zo={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},Ko={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:r=>`reverted with reason string ${JSON.stringify(r)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:r=>{let t="unknown panic code";return r>=0&&r<=255&&zo[r.toString()]&&(t=zo[r.toString()]),`reverted with panic code 0x${r.toString(16)} (${t})`}}};var Zt,se,ne,nt,Cs,Hn,ks,Vn;const tp=class Ss{constructor(t){A(this,Cs),A(this,ks),m(this,"fragments"),m(this,"deploy"),m(this,"fallback"),m(this,"receive"),A(this,Zt,void 0),A(this,se,void 0),A(this,ne,void 0),A(this,nt,void 0);let e=[];typeof t=="string"?e=JSON.parse(t):e=t,f(this,ne,new Map),f(this,Zt,new Map),f(this,se,new Map);const s=[];for(const a of e)try{s.push(fr.from(a))}catch(o){console.log("EE",o)}O(this,{fragments:Object.freeze(s)});let n=null,i=!1;f(this,nt,this.getAbiCoder()),this.fragments.forEach((a,o)=>{let c;switch(a.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}O(this,{deploy:a});return;case"fallback":a.inputs.length===0?i=!0:(g(!n||a.payable!==n.payable,"conflicting fallback fragments",`fragments[${o}]`,a),n=a,i=n.payable);return;case"function":c=l(this,ne);break;case"event":c=l(this,se);break;case"error":c=l(this,Zt);break;default:return}const u=a.format();c.has(u)||c.set(u,a)}),this.deploy||O(this,{deploy:ae.from("constructor()")}),O(this,{fallback:n,receive:i})}format(t){const e=t?"minimal":"full";return this.fragments.map(s=>s.format(e))}formatJson(){const t=this.fragments.map(e=>e.format("json"));return JSON.stringify(t.map(e=>JSON.parse(e)))}getAbiCoder(){return na.defaultAbiCoder()}getFunctionName(t){const e=E(this,Cs,Hn).call(this,t,null,!1);return g(e,"no matching function","key",t),e.name}hasFunction(t){return!!E(this,Cs,Hn).call(this,t,null,!1)}getFunction(t,e){return E(this,Cs,Hn).call(this,t,e||null,!0)}forEachFunction(t){const e=Array.from(l(this,ne).keys());e.sort((s,n)=>s.localeCompare(n));for(let s=0;s<e.length;s++){const n=e[s];t(l(this,ne).get(n),s)}}getEventName(t){const e=E(this,ks,Vn).call(this,t,null,!1);return g(e,"no matching event","key",t),e.name}hasEvent(t){return!!E(this,ks,Vn).call(this,t,null,!1)}getEvent(t,e){return E(this,ks,Vn).call(this,t,e||null,!0)}forEachEvent(t){const e=Array.from(l(this,se).keys());e.sort((s,n)=>s.localeCompare(n));for(let s=0;s<e.length;s++){const n=e[s];t(l(this,se).get(n),s)}}getError(t,e){if(_(t)){const n=t.toLowerCase();if(Ko[n])return dt.from(Ko[n].signature);for(const i of l(this,Zt).values())if(n===i.selector)return i;return null}if(t.indexOf("(")===-1){const n=[];for(const[i,a]of l(this,Zt))i.split("(")[0]===t&&n.push(a);if(n.length===0)return t==="Error"?dt.from("error Error(string)"):t==="Panic"?dt.from("error Panic(uint256)"):null;if(n.length>1){const i=n.map(a=>JSON.stringify(a.format())).join(", ");g(!1,`ambiguous error description (i.e. ${i})`,"name",t)}return n[0]}return t=dt.from(t).format(),t==="Error(string)"?dt.from("error Error(string)"):t==="Panic(uint256)"?dt.from("error Panic(uint256)"):l(this,Zt).get(t)||null}forEachError(t){const e=Array.from(l(this,Zt).keys());e.sort((s,n)=>s.localeCompare(n));for(let s=0;s<e.length;s++){const n=e[s];t(l(this,Zt).get(n),s)}}_decodeParams(t,e){return l(this,nt).decode(t,e)}_encodeParams(t,e){return l(this,nt).encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if(typeof t=="string"){const s=this.getError(t);g(s,"unknown error","fragment",t),t=s}return g(z(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,z(e,4))}encodeErrorResult(t,e){if(typeof t=="string"){const s=this.getError(t);g(s,"unknown error","fragment",t),t=s}return Y([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if(typeof t=="string"){const s=this.getFunction(t);g(s,"unknown function","fragment",t),t=s}return g(z(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,z(e,4))}encodeFunctionData(t,e){if(typeof t=="string"){const s=this.getFunction(t);g(s,"unknown function","fragment",t),t=s}return Y([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if(typeof t=="string"){const i=this.getFunction(t);g(i,"unknown function","fragment",t),t=i}let s="invalid length for result data";const n=pt(e);if(n.length%32===0)try{return l(this,nt).decode(t.outputs,n)}catch{s="could not decode result data"}w(!1,s,"BAD_DATA",{value:C(n),info:{method:t.name,signature:t.format()}})}makeError(t,e){const s=L(t,"data"),n=na.getBuiltinCallException("call",e,s),i="execution reverted (unknown custom error)";if(n.message.startsWith(i)){const o=C(s.slice(0,4)),c=this.getError(o);if(c)try{const u=l(this,nt).decode(c.inputs,s.slice(4));n.revert={name:c.name,signature:c.format(),args:u},n.reason=n.revert.signature,n.message=`execution reverted: ${n.reason}`}catch{n.message="execution reverted (coult not decode custom error)"}}const a=this.parseTransaction(e);return a&&(n.invocation={method:a.name,signature:a.signature,args:a.args}),n}encodeFunctionResult(t,e){if(typeof t=="string"){const s=this.getFunction(t);g(s,"unknown function","fragment",t),t=s}return C(l(this,nt).encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if(typeof t=="string"){const i=this.getEvent(t);g(i,"unknown event","eventFragment",t),t=i}w(e.length<=t.inputs.length,`too many arguments for ${t.format()}`,"UNEXPECTED_ARGUMENT",{count:e.length,expectedCount:t.inputs.length});const s=[];t.anonymous||s.push(t.topicHash);const n=(i,a)=>i.type==="string"?ur(a):i.type==="bytes"?J(C(a)):(i.type==="bool"&&typeof a=="boolean"?a=a?"0x01":"0x00":i.type.match(/^u?int/)?a=Fe(a):i.type.match(/^bytes/)?a=th(a,32):i.type==="address"&&l(this,nt).encode(["address"],[a]),cr(C(a),32));for(e.forEach((i,a)=>{const o=t.inputs[a];if(!o.indexed){g(i==null,"cannot filter non-indexed parameters; must be null","contract."+o.name,i);return}i==null?s.push(null):o.baseType==="array"||o.baseType==="tuple"?g(!1,"filtering with tuples or arrays not supported","contract."+o.name,i):Array.isArray(i)?s.push(i.map(c=>n(o,c))):s.push(n(o,i))});s.length&&s[s.length-1]===null;)s.pop();return s}encodeEventLog(t,e){if(typeof t=="string"){const a=this.getEvent(t);g(a,"unknown event","eventFragment",t),t=a}const s=[],n=[],i=[];return t.anonymous||s.push(t.topicHash),g(e.length===t.inputs.length,"event arguments/values mismatch","values",e),t.inputs.forEach((a,o)=>{const c=e[o];if(a.indexed)if(a.type==="string")s.push(ur(c));else if(a.type==="bytes")s.push(J(c));else{if(a.baseType==="tuple"||a.baseType==="array")throw new Error("not implemented");s.push(l(this,nt).encode([a.type],[c]))}else n.push(a),i.push(c)}),{data:l(this,nt).encode(n,i),topics:s}}decodeEventLog(t,e,s){if(typeof t=="string"){const y=this.getEvent(t);g(y,"unknown event","eventFragment",t),t=y}if(s!=null&&!t.anonymous){const y=t.topicHash;g(_(s[0],32)&&s[0].toLowerCase()===y,"fragment/topic mismatch","topics[0]",s[0]),s=s.slice(1)}const n=[],i=[],a=[];t.inputs.forEach((y,b)=>{y.indexed?y.type==="string"||y.type==="bytes"||y.baseType==="tuple"||y.baseType==="array"?(n.push(ht.from({type:"bytes32",name:y.name})),a.push(!0)):(n.push(y),a.push(!1)):(i.push(y),a.push(!1))});const o=s!=null?l(this,nt).decode(n,Y(s)):null,c=l(this,nt).decode(i,e,!0),u=[],h=[];let d=0,p=0;return t.inputs.forEach((y,b)=>{let N=null;if(y.indexed)if(o==null)N=new _o(null);else if(a[b])N=new _o(o[p++]);else try{N=o[p++]}catch(P){N=P}else try{N=c[d++]}catch(P){N=P}u.push(N),h.push(y.name||null)}),Qc.fromItems(u,h)}parseTransaction(t){const e=L(t.data,"tx.data"),s=k(t.value!=null?t.value:0,"tx.value"),n=this.getFunction(C(e.slice(0,4)));if(!n)return null;const i=l(this,nt).decode(n.inputs,e.slice(4));return new Xd(n,n.selector,i,s)}parseCallResult(t){throw new Error("@TODO")}parseLog(t){const e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new Zd(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){const e=C(t),s=this.getError(z(e,0,4));if(!s)return null;const n=l(this,nt).decode(s.inputs,z(e,4));return new $d(s,s.selector,n)}static from(t){return t instanceof Ss?t:typeof t=="string"?new Ss(JSON.parse(t)):typeof t.format=="function"?new Ss(t.format("json")):new Ss(t)}};Zt=new WeakMap,se=new WeakMap,ne=new WeakMap,nt=new WeakMap,Cs=new WeakSet,Hn=function(r,t,e){if(_(r)){const n=r.toLowerCase();for(const i of l(this,ne).values())if(n===i.selector)return i;return null}if(r.indexOf("(")===-1){const n=[];for(const[i,a]of l(this,ne))i.split("(")[0]===r&&n.push(a);if(t){const i=t.length>0?t[t.length-1]:null;let a=t.length,o=!0;mt.isTyped(i)&&i.type==="overrides"&&(o=!1,a--);for(let c=n.length-1;c>=0;c--){const u=n[c].inputs.length;u!==a&&(!o||u!==a-1)&&n.splice(c,1)}for(let c=n.length-1;c>=0;c--){const u=n[c].inputs;for(let h=0;h<t.length;h++)if(mt.isTyped(t[h])){if(h>=u.length){if(t[h].type==="overrides")continue;n.splice(c,1);break}if(t[h].type!==u[h].baseType){n.splice(c,1);break}}}}if(n.length===1&&t&&t.length!==n[0].inputs.length){const i=t[t.length-1];(i==null||Array.isArray(i)||typeof i!="object")&&n.splice(0,1)}if(n.length===0)return null;if(n.length>1&&e){const i=n.map(a=>JSON.stringify(a.format())).join(", ");g(!1,`ambiguous function description (i.e. matches ${i})`,"key",r)}return n[0]}return l(this,ne).get(qt.from(r).format())||null},ks=new WeakSet,Vn=function(r,t,e){if(_(r)){const n=r.toLowerCase();for(const i of l(this,se).values())if(n===i.topicHash)return i;return null}if(r.indexOf("(")===-1){const n=[];for(const[i,a]of l(this,se))i.split("(")[0]===r&&n.push(a);if(t){for(let i=n.length-1;i>=0;i--)n[i].inputs.length<t.length&&n.splice(i,1);for(let i=n.length-1;i>=0;i--){const a=n[i].inputs;for(let o=0;o<t.length;o++)if(mt.isTyped(t[o])&&t[o].type!==a[o].baseType){n.splice(i,1);break}}}if(n.length===0)return null;if(n.length>1&&e){const i=n.map(a=>JSON.stringify(a.format())).join(", ");g(!1,`ambiguous event description (i.e. matches ${i})`,"key",r)}return n[0]}return l(this,se).get(Yt.from(r).format())||null};let ep=tp;const Ll=BigInt(0);function zs(r){return r??null}function st(r){return r==null?null:r.toString()}class Yo{constructor(t,e,s){m(this,"gasPrice"),m(this,"maxFeePerGas"),m(this,"maxPriorityFeePerGas"),O(this,{gasPrice:zs(t),maxFeePerGas:zs(e),maxPriorityFeePerGas:zs(s)})}toJSON(){const{gasPrice:t,maxFeePerGas:e,maxPriorityFeePerGas:s}=this;return{_type:"FeeData",gasPrice:st(t),maxFeePerGas:st(e),maxPriorityFeePerGas:st(s)}}}function Pi(r){const t={};r.to&&(t.to=r.to),r.from&&(t.from=r.from),r.data&&(t.data=C(r.data));const e="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const n of e)!(n in r)||r[n]==null||(t[n]=k(r[n],`request.${n}`));const s="type,nonce".split(/,/);for(const n of s)!(n in r)||r[n]==null||(t[n]=R(r[n],`request.${n}`));return r.accessList&&(t.accessList=pr(r.accessList)),"blockTag"in r&&(t.blockTag=r.blockTag),"enableCcipRead"in r&&(t.enableCcipRead=!!r.enableCcipRead),"customData"in r&&(t.customData=r.customData),t}var Ie;class rp{constructor(t,e){m(this,"provider"),m(this,"number"),m(this,"hash"),m(this,"timestamp"),m(this,"parentHash"),m(this,"nonce"),m(this,"difficulty"),m(this,"gasLimit"),m(this,"gasUsed"),m(this,"miner"),m(this,"extraData"),m(this,"baseFeePerGas"),A(this,Ie,void 0),f(this,Ie,t.transactions.map(s=>typeof s!="string"?new Fa(s,e):s)),O(this,{provider:e,hash:zs(t.hash),number:t.number,timestamp:t.timestamp,parentHash:t.parentHash,nonce:t.nonce,difficulty:t.difficulty,gasLimit:t.gasLimit,gasUsed:t.gasUsed,miner:t.miner,extraData:t.extraData,baseFeePerGas:zs(t.baseFeePerGas)})}get transactions(){return l(this,Ie).map(t=>typeof t=="string"?t:t.hash)}get prefetchedTransactions(){const t=l(this,Ie).slice();return t.length===0?[]:(w(typeof t[0]=="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),t)}toJSON(){const{baseFeePerGas:t,difficulty:e,extraData:s,gasLimit:n,gasUsed:i,hash:a,miner:o,nonce:c,number:u,parentHash:h,timestamp:d,transactions:p}=this;return{_type:"Block",baseFeePerGas:st(t),difficulty:st(e),extraData:s,gasLimit:st(n),gasUsed:st(i),hash:a,miner:o,nonce:c,number:u,parentHash:h,timestamp:d,transactions:p}}[Symbol.iterator](){let t=0;const e=this.transactions;return{next:()=>t<this.length?{value:e[t++],done:!1}:{value:void 0,done:!0}}}get length(){return l(this,Ie).length}get date(){return this.timestamp==null?null:new Date(this.timestamp*1e3)}async getTransaction(t){let e;if(typeof t=="number")e=l(this,Ie)[t];else{const s=t.toLowerCase();for(const n of l(this,Ie))if(typeof n=="string"){if(n!==s)continue;e=n;break}else{if(n.hash===s)continue;e=n;break}}if(e==null)throw new Error("no such tx");return typeof e=="string"?await this.provider.getTransaction(e):e}getPrefetchedTransaction(t){const e=this.prefetchedTransactions;if(typeof t=="number")return e[t];t=t.toLowerCase();for(const s of e)if(s.hash===t)return s;g(!1,"no matching transaction","indexOrHash",t)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return np(this)}}Ie=new WeakMap;class gn{constructor(t,e){m(this,"provider"),m(this,"transactionHash"),m(this,"blockHash"),m(this,"blockNumber"),m(this,"removed"),m(this,"address"),m(this,"data"),m(this,"topics"),m(this,"index"),m(this,"transactionIndex"),this.provider=e;const s=Object.freeze(t.topics.slice());O(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:s,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){const{address:t,blockHash:e,blockNumber:s,data:n,index:i,removed:a,topics:o,transactionHash:c,transactionIndex:u}=this;return{_type:"log",address:t,blockHash:e,blockNumber:s,data:n,index:i,removed:a,topics:o,transactionHash:c,transactionIndex:u}}async getBlock(){const t=await this.provider.getBlock(this.blockHash);return w(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){const t=await this.provider.getTransaction(this.transactionHash);return w(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){const t=await this.provider.getTransactionReceipt(this.transactionHash);return w(!!t,"failed to find transaction receipt","UNKNOWN_ERROR",{}),t}removedEvent(){return ip(this)}}var jn;class Ul{constructor(t,e){m(this,"provider"),m(this,"to"),m(this,"from"),m(this,"contractAddress"),m(this,"hash"),m(this,"index"),m(this,"blockHash"),m(this,"blockNumber"),m(this,"logsBloom"),m(this,"gasUsed"),m(this,"cumulativeGasUsed"),m(this,"gasPrice"),m(this,"type"),m(this,"status"),m(this,"root"),A(this,jn,void 0),f(this,jn,Object.freeze(t.logs.map(n=>new gn(n,e))));let s=Ll;t.effectiveGasPrice!=null?s=t.effectiveGasPrice:t.gasPrice!=null&&(s=t.gasPrice),O(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,gasPrice:s,type:t.type,status:t.status,root:t.root})}get logs(){return l(this,jn)}toJSON(){const{to:t,from:e,contractAddress:s,hash:n,index:i,blockHash:a,blockNumber:o,logsBloom:c,logs:u,status:h,root:d}=this;return{_type:"TransactionReceipt",blockHash:a,blockNumber:o,contractAddress:s,cumulativeGasUsed:st(this.cumulativeGasUsed),from:e,gasPrice:st(this.gasPrice),gasUsed:st(this.gasUsed),hash:n,index:i,logs:u,logsBloom:c,root:d,status:h,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t<this.length?{value:this.logs[t++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const t=await this.provider.getBlock(this.blockHash);if(t==null)throw new Error("TODO");return t}async getTransaction(){const t=await this.provider.getTransaction(this.hash);if(t==null)throw new Error("TODO");return t}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return Gl(this)}reorderedEvent(t){return w(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Ml(this,t)}}jn=new WeakMap;var _e;const sp=class Fl{constructor(t,e){m(this,"provider"),m(this,"blockNumber"),m(this,"blockHash"),m(this,"index"),m(this,"hash"),m(this,"type"),m(this,"to"),m(this,"from"),m(this,"nonce"),m(this,"gasLimit"),m(this,"gasPrice"),m(this,"maxPriorityFeePerGas"),m(this,"maxFeePerGas"),m(this,"data"),m(this,"value"),m(this,"chainId"),m(this,"signature"),m(this,"accessList"),A(this,_e,void 0),this.provider=e,this.blockNumber=t.blockNumber!=null?t.blockNumber:null,this.blockHash=t.blockHash!=null?t.blockHash:null,this.hash=t.hash,this.index=t.index,this.type=t.type,this.from=t.from,this.to=t.to||null,this.gasLimit=t.gasLimit,this.nonce=t.nonce,this.data=t.data,this.value=t.value,this.gasPrice=t.gasPrice,this.maxPriorityFeePerGas=t.maxPriorityFeePerGas!=null?t.maxPriorityFeePerGas:null,this.maxFeePerGas=t.maxFeePerGas!=null?t.maxFeePerGas:null,this.chainId=t.chainId,this.signature=t.signature,this.accessList=t.accessList!=null?t.accessList:null,f(this,_e,-1)}toJSON(){const{blockNumber:t,blockHash:e,index:s,hash:n,type:i,to:a,from:o,nonce:c,data:u,signature:h,accessList:d}=this;return{_type:"TransactionReceipt",accessList:d,blockNumber:t,blockHash:e,chainId:st(this.chainId),data:u,from:o,gasLimit:st(this.gasLimit),gasPrice:st(this.gasPrice),hash:n,maxFeePerGas:st(this.maxFeePerGas),maxPriorityFeePerGas:st(this.maxPriorityFeePerGas),nonce:c,signature:h,to:a,index:s,type:i,value:st(this.value)}}async getBlock(){let t=this.blockNumber;if(t==null){const s=await this.getTransaction();s&&(t=s.blockNumber)}if(t==null)return null;const e=this.provider.getBlock(t);if(e==null)throw new Error("TODO");return e}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){const{tx:t,blockNumber:e}=await ot({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return t==null||t.blockNumber==null?0:e-t.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(t,e){const s=t??1,n=e??0;let i=l(this,_e),a=-1,o=i===-1;const c=async()=>{if(o)return null;const{blockNumber:d,nonce:p}=await ot({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(p<this.nonce){i=d;return}if(o)return null;const y=await this.getTransaction();if(!(y&&y.blockNumber!=null))for(a===-1&&(a=i-3,a<l(this,_e)&&(a=l(this,_e)));a<=d;){if(o)return null;const b=await this.provider.getBlock(a,!0);if(b==null)return;for(const N of b)if(N===this.hash)return;for(let N=0;N<b.length;N++){const P=await b.getTransaction(N);if(P.from===this.from&&P.nonce===this.nonce){if(o)return null;const G=await this.provider.getTransactionReceipt(P.hash);if(G==null||d-G.blockNumber+1<s)return;let H="replaced";P.data===this.data&&P.to===this.to&&P.value===this.value?H="repriced":P.data==="0x"&&P.from===P.to&&P.value===Ll&&(H="cancelled"),w(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:H==="replaced"||H==="cancelled",reason:H,replacement:P.replaceableTransaction(i),hash:P.hash,receipt:G})}}a++}},u=d=>{if(d==null||d.status!==0)return d;w(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:d.to,from:d.from,data:""},receipt:d})},h=await this.provider.getTransactionReceipt(this.hash);if(s===0)return u(h);if(h){if(await h.confirmations()>=s)return u(h)}else if(await c(),s===0)return null;return await new Promise((d,p)=>{const y=[],b=()=>{y.forEach(P=>P())};if(y.push(()=>{o=!0}),n>0){const P=setTimeout(()=>{b(),p(q("wait for transaction timeout","TIMEOUT"))},n);y.push(()=>{clearTimeout(P)})}const N=async P=>{if(await P.confirmations()>=s){b();try{d(u(P))}catch(G){p(G)}}};if(y.push(()=>{this.provider.off(this.hash,N)}),this.provider.on(this.hash,N),i>=0){const P=async()=>{try{await c()}catch(G){if(Tt(G,"TRANSACTION_REPLACED")){b(),p(G);return}}o||this.provider.once("block",P)};y.push(()=>{this.provider.off("block",P)}),this.provider.once("block",P)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){return w(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Gl(this)}reorderedEvent(t){return w(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),w(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Ml(this,t)}replaceableTransaction(t){g(Number.isInteger(t)&&t>=0,"invalid startBlock","startBlock",t);const e=new Fl(this,this.provider);return f(e,_e,t),e}};_e=new WeakMap;let Fa=sp;function np(r){return{orphan:"drop-block",hash:r.hash,number:r.number}}function Ml(r,t){return{orphan:"reorder-transaction",tx:r,other:t}}function Gl(r){return{orphan:"drop-transaction",tx:r}}function ip(r){return{orphan:"drop-log",log:{transactionHash:r.transactionHash,blockHash:r.blockHash,blockNumber:r.blockNumber,address:r.address,data:r.data,topics:Object.freeze(r.topics.slice()),index:r.index}}}class Ma extends gn{constructor(t,e,s){super(t,t.provider),m(this,"interface"),m(this,"fragment"),m(this,"args");const n=e.decodeEventLog(s,t.data,t.topics);O(this,{args:n,fragment:s,interface:e})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class Hl extends gn{constructor(t,e){super(t,t.provider),m(this,"error"),O(this,{error:e})}}var Os;class ap extends Ul{constructor(t,e,s){super(s,e),A(this,Os,void 0),f(this,Os,t)}get logs(){return super.logs.map(t=>{const e=t.topics.length?l(this,Os).getEvent(t.topics[0]):null;if(e)try{return new Ma(t,l(this,Os),e)}catch(s){return new Hl(t,s)}return t})}}Os=new WeakMap;var Wn;class Ga extends Fa{constructor(t,e,s){super(s,e),A(this,Wn,void 0),f(this,Wn,t)}async wait(t){const e=await super.wait(t);return e==null?null:new ap(l(this,Wn),this.provider,e)}}Wn=new WeakMap;class Vl extends wc{constructor(t,e,s,n){super(t,e,s),m(this,"log"),O(this,{log:n})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class op extends Vl{constructor(t,e,s,n,i){super(t,e,s,new Ma(i,t.interface,n));const a=t.interface.decodeEventLog(n,this.log.data,this.log.topics);O(this,{args:a,fragment:n})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const qo=BigInt(0);function jl(r){return r&&typeof r.call=="function"}function Wl(r){return r&&typeof r.estimateGas=="function"}function Ha(r){return r&&typeof r.resolveName=="function"}function Ql(r){return r&&typeof r.sendTransaction=="function"}var Qn;class cp{constructor(t,e,s){if(A(this,Qn,void 0),m(this,"fragment"),O(this,{fragment:e}),e.inputs.length<s.length)throw new Error("too many arguments");const n=dr(t.runner,"resolveName"),i=Ha(n)?n:null;f(this,Qn,async function(){const a=await Promise.all(e.inputs.map((o,c)=>s[c]==null?null:o.walkAsync(s[c],(u,h)=>u==="address"?Array.isArray(h)?Promise.all(h.map(d=>gt(d,i))):gt(h,i):h)));return t.interface.encodeFilterTopics(e,a)}())}getTopicFilter(){return l(this,Qn)}}Qn=new WeakMap;function dr(r,t){return r==null?null:typeof r[t]=="function"?r:r.provider&&typeof r.provider[t]=="function"?r.provider:null}function nr(r){return r==null?null:r.provider||null}async function Jl(r,t){const e=mt.dereference(r,"overrides");g(typeof e=="object","invalid overrides parameter","overrides",r);const s=Pi(e);return g(s.to==null||(t||[]).indexOf("to")>=0,"cannot override to","overrides.to",s.to),g(s.data==null||(t||[]).indexOf("data")>=0,"cannot override data","overrides.data",s.data),s.from&&(s.from=await gt(s.from)),s}async function lp(r,t,e){const s=dr(r,"resolveName"),n=Ha(s)?s:null;return await Promise.all(t.map((i,a)=>i.walkAsync(e[a],(o,c)=>(c=mt.dereference(c,o),o==="address"?gt(c,n):c))))}function up(r){const t=async function(a){const o=await Jl(a,["data"]);o.to=await r.getAddress();const c=r.interface,u=k(o.value||qo,"overrides.value")===qo,h=(o.data||"0x")==="0x";c.fallback&&!c.fallback.payable&&c.receive&&!h&&!u&&g(!1,"cannot send data to receive or send value to non-payable fallback","overrides",a),g(c.fallback||h,"cannot send data to receive-only contract","overrides.data",o.data);const d=c.receive||c.fallback&&c.fallback.payable;return g(d||u,"cannot send value to non-payable fallback","overrides.value",o.value),g(c.fallback||h,"cannot send data to receive-only contract","overrides.data",o.data),o},e=async function(a){const o=dr(r.runner,"call");w(jl(o),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const c=await t(a);try{return await o.call(c)}catch(u){throw Ca(u)&&u.data?r.interface.makeError(u.data,c):u}},s=async function(a){const o=r.runner;w(Ql(o),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const c=await o.sendTransaction(await t(a)),u=nr(r.runner);return new Ga(r.interface,u,c)},n=async function(a){const o=dr(r.runner,"estimateGas");return w(Wl(o),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await o.estimateGas(await t(a))},i=async a=>await s(a);return O(i,{_contract:r,estimateGas:n,populateTransaction:t,send:s,staticCall:e}),i}function hp(r,t){const e=function(...u){const h=r.interface.getFunction(t,u);return w(h,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:u}}),h},s=async function(...u){const h=e(...u);let d={};if(h.inputs.length+1===u.length&&(d=await Jl(u.pop())),h.inputs.length!==u.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const p=await lp(r.runner,h.inputs,u);return Object.assign({},d,await ot({to:r.getAddress(),data:r.interface.encodeFunctionData(h,p)}))},n=async function(...u){const h=await o(...u);return h.length===1?h[0]:h},i=async function(...u){const h=r.runner;w(Ql(h),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const d=await h.sendTransaction(await s(...u)),p=nr(r.runner);return new Ga(r.interface,p,d)},a=async function(...u){const h=dr(r.runner,"estimateGas");return w(Wl(h),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await h.estimateGas(await s(...u))},o=async function(...u){const h=dr(r.runner,"call");w(jl(h),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const d=await s(...u);let p="0x";try{p=await h.call(d)}catch(b){throw Ca(b)&&b.data?r.interface.makeError(b.data,d):b}const y=e(...u);return r.interface.decodeFunctionResult(y,p)},c=async(...u)=>e(...u).constant?await n(...u):await i(...u);return O(c,{name:r.interface.getFunctionName(t),_contract:r,_key:t,getFragment:e,estimateGas:a,populateTransaction:s,send:i,staticCall:n,staticCallResult:o}),Object.defineProperty(c,"fragment",{configurable:!1,enumerable:!0,get:()=>{const u=r.interface.getFunction(t);return w(u,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),u}}),c}function fp(r,t){const e=function(...n){const i=r.interface.getEvent(t,n);return w(i,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:n}}),i},s=function(...n){return new cp(r,e(...n),n)};return O(s,{name:r.interface.getEventName(t),_contract:r,_key:t,getFragment:e}),Object.defineProperty(s,"fragment",{configurable:!1,enumerable:!0,get:()=>{const n=r.interface.getEvent(t);return w(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),n}}),s}const Ci=Symbol.for("_ethersInternal_contract"),_l=new WeakMap;function dp(r,t){_l.set(r[Ci],t)}function wt(r){return _l.get(r[Ci])}function pp(r){return r&&typeof r=="object"&&"getTopicFilter"in r&&typeof r.getTopicFilter=="function"&&r.fragment}async function Va(r,t){let e,s=null;if(Array.isArray(t)){const i=function(a){if(_(a,32))return a;const o=r.interface.getEvent(a);return g(o,"unknown fragment","name",a),o.topicHash};e=t.map(a=>a==null?null:Array.isArray(a)?a.map(i):i(a))}else t==="*"?e=[null]:typeof t=="string"?_(t,32)?e=[t]:(s=r.interface.getEvent(t),g(s,"unknown fragment","event",t),e=[s.topicHash]):pp(t)?e=await t.getTopicFilter():"fragment"in t?(s=t.fragment,e=[s.topicHash]):g(!1,"unknown event name","event",t);e=e.map(i=>{if(i==null)return null;if(Array.isArray(i)){const a=Array.from(new Set(i.map(o=>o.toLowerCase())).values());return a.length===1?a[0]:(a.sort(),a)}return i.toLowerCase()});const n=e.map(i=>i==null?"null":Array.isArray(i)?i.join("|"):i).join("&");return{fragment:s,tag:n,topics:e}}async function xs(r,t){const{subs:e}=wt(r);return e.get((await Va(r,t)).tag)||null}async function Zo(r,t,e){const s=nr(r.runner);w(s,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:t});const{fragment:n,tag:i,topics:a}=await Va(r,e),{addr:o,subs:c}=wt(r);let u=c.get(i);if(!u){const h={address:o||r,topics:a},d=y=>{let b=n;if(b==null)try{b=r.interface.getEvent(y.topics[0])}catch{}if(b){const N=b,P=n?r.interface.decodeEventLog(n,y.data,y.topics):[];aa(r,e,P,G=>new op(r,G,e,N,y))}else aa(r,e,[],N=>new Vl(r,N,e,y))};let p=[];u={tag:i,listeners:[],start:()=>{p.length||p.push(s.on(h,d))},stop:async()=>{if(p.length==0)return;let y=p;p=[],await Promise.all(y),s.off(h,d)}},c.set(i,u)}return u}let ia=Promise.resolve();async function gp(r,t,e,s){await ia;const n=await xs(r,t);if(!n)return!1;const i=n.listeners.length;return n.listeners=n.listeners.filter(({listener:a,once:o})=>{const c=Array.from(e);s&&c.push(s(o?null:a));try{a.call(r,...c)}catch{}return!o}),n.listeners.length===0&&(n.stop(),wt(r).subs.delete(n.tag)),i>0}async function aa(r,t,e,s){try{await ia}catch{}const n=gp(r,t,e,s);return ia=n,await n}const Sn=["then"];var zl;const mp=class Jn{constructor(t,e,s,n){m(this,"target"),m(this,"interface"),m(this,"runner"),m(this,"filters"),m(this,zl),m(this,"fallback"),g(typeof t=="string"||Wc(t),"invalid value for Contract target","target",t),s==null&&(s=null);const i=ep.from(e);O(this,{target:t,runner:s,interface:i}),Object.defineProperty(this,Ci,{value:{}});let a,o=null,c=null;if(n){const d=nr(s);c=new Ga(this.interface,d,n)}let u=new Map;if(typeof t=="string")if(_(t))o=t,a=Promise.resolve(t);else{const d=dr(s,"resolveName");if(!Ha(d))throw q("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});a=d.resolveName(t).then(p=>{if(p==null)throw q("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return wt(this).addr=p,p})}else a=t.getAddress().then(d=>{if(d==null)throw new Error("TODO");return wt(this).addr=d,d});dp(this,{addrPromise:a,addr:o,deployTx:c,subs:u});const h=new Proxy({},{get:(d,p,y)=>{if(typeof p=="symbol"||Sn.indexOf(p)>=0)return Reflect.get(d,p,y);try{return this.getEvent(p)}catch(b){if(!Tt(b,"INVALID_ARGUMENT")||b.argument!=="key")throw b}},has:(d,p)=>Sn.indexOf(p)>=0?Reflect.has(d,p):Reflect.has(d,p)||this.interface.hasEvent(String(p))});return O(this,{filters:h}),O(this,{fallback:i.receive||i.fallback?up(this):null}),new Proxy(this,{get:(d,p,y)=>{if(typeof p=="symbol"||p in d||Sn.indexOf(p)>=0)return Reflect.get(d,p,y);try{return d.getFunction(p)}catch(b){if(!Tt(b,"INVALID_ARGUMENT")||b.argument!=="key")throw b}},has:(d,p)=>typeof p=="symbol"||p in d||Sn.indexOf(p)>=0?Reflect.has(d,p):d.interface.hasFunction(p)})}connect(t){return new Jn(this.target,this.interface,t)}attach(t){return new Jn(t,this.interface,this.runner)}async getAddress(){return await wt(this).addrPromise}async getDeployedCode(){const t=nr(this.runner);w(t,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const e=await t.getCode(await this.getAddress());return e==="0x"?null:e}async waitForDeployment(){const t=this.deploymentTransaction();if(t)return await t.wait(),this;if(await this.getDeployedCode()!=null)return this;const e=nr(this.runner);return w(e!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((s,n)=>{const i=async()=>{try{if(await this.getDeployedCode()!=null)return s(this);e.once("block",i)}catch(a){n(a)}};i()})}deploymentTransaction(){return wt(this).deployTx}getFunction(t){return typeof t!="string"&&(t=t.format()),hp(this,t)}getEvent(t){return typeof t!="string"&&(t=t.format()),fp(this,t)}async queryTransaction(t){throw new Error("@TODO")}async queryFilter(t,e,s){e==null&&(e=0),s==null&&(s="latest");const{addr:n,addrPromise:i}=wt(this),a=n||await i,{fragment:o,topics:c}=await Va(this,t),u={address:a,topics:c,fromBlock:e,toBlock:s},h=nr(this.runner);return w(h,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await h.getLogs(u)).map(d=>{let p=o;if(p==null)try{p=this.interface.getEvent(d.topics[0])}catch{}if(p)try{return new Ma(d,this.interface,p)}catch(y){return new Hl(d,y)}return new gn(d,h)})}async on(t,e){const s=await Zo(this,"on",t);return s.listeners.push({listener:e,once:!1}),s.start(),this}async once(t,e){const s=await Zo(this,"once",t);return s.listeners.push({listener:e,once:!0}),s.start(),this}async emit(t,...e){return await aa(this,t,e,null)}async listenerCount(t){if(t){const n=await xs(this,t);return n?n.listeners.length:0}const{subs:e}=wt(this);let s=0;for(const{listeners:n}of e.values())s+=n.length;return s}async listeners(t){if(t){const n=await xs(this,t);return n?n.listeners.map(({listener:i})=>i):[]}const{subs:e}=wt(this);let s=[];for(const{listeners:n}of e.values())s=s.concat(n.map(({listener:i})=>i));return s}async off(t,e){const s=await xs(this,t);if(!s)return this;if(e){const n=s.listeners.map(({listener:i})=>i).indexOf(e);n>=0&&s.listeners.splice(n,1)}return(e==null||s.listeners.length===0)&&(s.stop(),wt(this).subs.delete(s.tag)),this}async removeAllListeners(t){if(t){const e=await xs(this,t);if(!e)return this;e.stop(),wt(this).subs.delete(e.tag)}else{const{subs:e}=wt(this);for(const{tag:s,stop:n}of e.values())n(),e.delete(s)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(t){class e extends Jn{constructor(n,i=null){super(n,t,i)}}return e}static from(t,e,s){return s==null&&(s=null),new this(t,e,s)}};zl=Ci;let Ap=mp;function yp(){return Ap}class un extends yp(){}function Mi(r){return r.match(/^ipfs:\/\/ipfs\//i)?r=r.substring(12):r.match(/^ipfs:\/\//i)?r=r.substring(7):g(!1,"unsupported IPFS format","link",r),`https://gateway.ipfs.io/ipfs/${r}`}class wp{constructor(t){m(this,"name"),O(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 Kl=new RegExp("^(ipfs)://(.*)$","i"),Xo=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Kl,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];var ze,Qr,Ke,Cr,oa,Yl;const ca=class la{constructor(t,e,s){A(this,Ke),m(this,"provider"),m(this,"address"),m(this,"name"),A(this,ze,void 0),A(this,Qr,void 0),O(this,{provider:t,address:e,name:s}),f(this,ze,null),f(this,Qr,new un(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 l(this,ze)==null&&f(this,ze,(async()=>{try{return await l(this,Qr).supportsInterface("0x9061b923")}catch(t){if(Tt(t,"CALL_EXCEPTION"))return!1;throw f(this,ze,null),t}})()),await l(this,ze)}async getAddress(t){if(t==null&&(t=60),t===60)try{const i=await E(this,Ke,Cr).call(this,"addr(bytes32)");return i==null||i===xa?null:i}catch(i){if(Tt(i,"CALL_EXCEPTION"))return null;throw i}if(t>=0&&t<2147483648){let i=t+2147483648;const a=await E(this,Ke,Cr).call(this,"addr(bytes32,uint)",[i]);if(_(a,20))return B(a)}let e=null;for(const i of this.provider.plugins)if(i instanceof wp&&i.supportsCoinType(t)){e=i;break}if(e==null)return null;const s=await E(this,Ke,Cr).call(this,"addr(bytes32,uint)",[t]);if(s==null||s==="0x")return null;const n=await e.decodeAddress(t,s);if(n!=null)return n;w(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${t})`,info:{coinType:t,data:s}})}async getText(t){const e=await E(this,Ke,Cr).call(this,"text(bytes32,string)",[t]);return e==null||e==="0x"?null:e}async getContentHash(){const t=await E(this,Ke,Cr).call(this,"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 n=e[1]==="e3010170"?"ipfs":"ipns",i=parseInt(e[4],16);if(e[5].length===i*2)return`${n}://${nh("0x"+e[2])}`}const s=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(s&&s[1].length===64)return`bzz://${s[1]}`;w(!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 s=0;s<Xo.length;s++){const n=e.match(Xo[s]);if(n==null)continue;const i=n[1].toLowerCase();switch(i){case"https":case"data":return t.push({type:"url",value:e}),{linkage:t,url:e};case"ipfs":{const a=Mi(e);return t.push({type:"ipfs",value:e}),t.push({type:"url",value:a}),{linkage:t,url:a}}case"erc721":case"erc1155":{const a=i==="erc721"?"tokenURI(uint256)":"uri(uint256)";t.push({type:i,value:e});const o=await this.getAddress();if(o==null)return t.push({type:"!owner",value:""}),{url:null,linkage:t};const c=(n[2]||"").split("/");if(c.length!==2)return t.push({type:`!${i}caip`,value:n[2]||""}),{url:null,linkage:t};const u=c[1],h=new un(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 N=await h.ownerOf(u);if(o!==N)return t.push({type:"!owner",value:N}),{url:null,linkage:t};t.push({type:"owner",value:N})}else if(i==="erc1155"){const N=await h.balanceOf(o,u);if(!N)return t.push({type:"!balance",value:"0"}),{url:null,linkage:t};t.push({type:"balance",value:N.toString()})}let d=await h[a](u);if(d==null||d==="0x")return t.push({type:"!metadata-url",value:""}),{url:null,linkage:t};t.push({type:"metadata-url-base",value:d}),i==="erc1155"&&(d=d.replace("{id}",Fe(u,32).substring(2)),t.push({type:"metadata-url-expanded",value:d})),d.match(/^ipfs:/i)&&(d=Mi(d)),t.push({type:"metadata-url",value:d});let p={};const y=await new lr(d).send();y.assertOk();try{p=y.bodyJson}catch{try{t.push({type:"!metadata",value:y.bodyText})}catch{const N=y.body;return N&&t.push({type:"!metadata",value:C(N)}),{url:null,linkage:t}}return{url:null,linkage:t}}if(!p)return t.push({type:"!metadata",value:""}),{url:null,linkage:t};t.push({type:"metadata",value:JSON.stringify(p)});let b=p.image;if(typeof b!="string")return t.push({type:"!imageUrl",value:""}),{url:null,linkage:t};if(!b.match(/^(https:\/\/|data:)/i)){if(b.match(Kl)==null)return t.push({type:"!imageUrl-ipfs",value:b}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:b}),b=Mi(b)}return t.push({type:"url",value:b}),{linkage:t,url:b}}}}}catch{}return{linkage:t,url:null}}static async getEnsAddress(t){const e=await t.getNetwork(),s=e.getPlugin("org.ethers.plugins.network.Ens");return w(s,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:e}}),s.address}static async fromName(t,e){var s;let n=e;for(;;){if(n===""||n==="."||e!=="eth"&&n==="eth")return null;const i=await E(s=la,oa,Yl).call(s,t,n);if(i!=null){const a=new la(t,i,e);return n!==e&&!await a.supportsWildcard()?null:a}n=n.split(".").slice(1).join(".")}}};ze=new WeakMap,Qr=new WeakMap,Ke=new WeakSet,Cr=async function(r,t){t=(t||[]).slice();const e=l(this,Qr).interface;t.unshift($i(this.name));let s=null;await this.supportsWildcard()&&(s=e.getFunction(r),w(s,"missing fragment","UNKNOWN_ERROR",{info:{funcName:r}}),t=[gd(this.name),e.encodeFunctionData(s,t)],r="resolve(bytes,bytes)"),t.push({enableCcipRead:!0});try{const n=await l(this,Qr)[r](...t);return s?e.decodeFunctionResult(s,n)[0]:n}catch(n){if(!Tt(n,"CALL_EXCEPTION"))throw n}return null},oa=new WeakSet,Yl=async function(r,t){const e=await ca.getEnsAddress(r);try{const s=await new un(e,["function resolver(bytes32) view returns (address)"],r).resolver($i(t),{enableCcipRead:!0});return s===xa?null:s}catch(s){throw s}return null},A(ca,oa);let $o=ca;const tc=BigInt(0);function W(r,t){return function(e){return e==null?t:r(e)}}function ja(r){return t=>{if(!Array.isArray(t))throw new Error("not an array");return t.map(e=>r(e))}}function mn(r,t){return e=>{const s={};for(const n in r){let i=n;if(t&&n in t&&!(i in e)){for(const a of t[n])if(a in e){i=a;break}}try{const a=r[n](e[i]);a!==void 0&&(s[n]=a)}catch(a){const o=a instanceof Error?a.message:"not-an-error";w(!1,`invalid value for value.${n} (${o})`,"BAD_DATA",{value:e})}}return s}}function bp(r){switch(r){case!0:case"true":return!0;case!1:case"false":return!1}g(!1,`invalid boolean; ${JSON.stringify(r)}`,"value",r)}function qr(r){return g(_(r,!0),"invalid data","value",r),r}function Rt(r){return g(_(r,32),"invalid hash","value",r),r}const Ep=mn({address:B,blockHash:Rt,blockNumber:R,data:qr,index:R,removed:W(bp,!1),topics:ja(Rt),transactionHash:Rt,transactionIndex:R},{index:["logIndex"]});function vp(r){return Ep(r)}const Ip=mn({hash:W(Rt),parentHash:Rt,number:R,timestamp:R,nonce:W(qr),difficulty:k,gasLimit:k,gasUsed:k,miner:W(B),extraData:qr,baseFeePerGas:W(k)});function Np(r){const t=Ip(r);return t.transactions=r.transactions.map(e=>typeof e=="string"?e:ql(e)),t}const Pp=mn({transactionIndex:R,blockNumber:R,transactionHash:Rt,address:B,topics:ja(Rt),data:qr,index:R,blockHash:Rt},{index:["logIndex"]});function Cp(r){return Pp(r)}const kp=mn({to:W(B,null),from:W(B,null),contractAddress:W(B,null),index:R,root:W(C),gasUsed:k,logsBloom:W(qr),blockHash:Rt,hash:Rt,logs:ja(Cp),blockNumber:R,cumulativeGasUsed:k,effectiveGasPrice:W(k),status:W(R),type:W(R,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function Sp(r){return kp(r)}function ql(r){r.to&&k(r.to)===tc&&(r.to="0x0000000000000000000000000000000000000000");const t=mn({hash:Rt,type:e=>e==="0x"||e==null?0:R(e),accessList:W(pr,null),blockHash:W(Rt,null),blockNumber:W(R,null),transactionIndex:W(R,null),from:B,gasPrice:W(k),maxPriorityFeePerGas:W(k),maxFeePerGas:W(k),gasLimit:k,to:W(B,null),value:k,nonce:R,data:qr,creates:W(B,null),chainId:W(k,null)},{data:["input"],gasLimit:["gas"]})(r);if(t.to==null&&t.creates==null&&(t.creates=cf(t)),(r.type===1||r.type===2)&&r.accessList==null&&(t.accessList=[]),r.signature?t.signature=le.from(r.signature):t.signature=le.from(r),t.chainId==null){const e=t.signature.legacyChainId;e!=null&&(t.chainId=e)}return t.blockHash&&k(t.blockHash)===tc&&(t.blockHash=null),t}const Op="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class An{constructor(t){m(this,"name"),O(this,{name:t})}clone(){return new An(this.name)}}class ki extends An{constructor(t,e){t==null&&(t=0),super(`org.ethers.network.plugins.GasCost#${t||0}`),m(this,"effectiveBlock"),m(this,"txBase"),m(this,"txCreate"),m(this,"txDataZero"),m(this,"txDataNonzero"),m(this,"txAccessListStorageKey"),m(this,"txAccessListAddress");const s={effectiveBlock:t};function n(i,a){let o=(e||{})[i];o==null&&(o=a),g(typeof o=="number",`invalud value for ${i}`,"costs",e),s[i]=o}n("txBase",21e3),n("txCreate",32e3),n("txDataZero",4),n("txDataNonzero",16),n("txAccessListStorageKey",1900),n("txAccessListAddress",2400),O(this,s)}clone(){return new ki(this.effectiveBlock,this)}}class Si extends An{constructor(t,e){super("org.ethers.plugins.network.Ens"),m(this,"address"),m(this,"targetNetwork"),O(this,{address:t||Op,targetNetwork:e??1})}clone(){return new Si(this.address,this.targetNetwork)}}var _n,zn;class Zl extends An{constructor(t,e){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),A(this,_n,void 0),A(this,zn,void 0),f(this,_n,t),f(this,zn,e)}get url(){return l(this,_n)}get processFunc(){return l(this,zn)}clone(){return this}}_n=new WeakMap,zn=new WeakMap;const Gi=new Map;var Rs,Ts,Ye;const xp=class Bs{constructor(t,e){A(this,Rs,void 0),A(this,Ts,void 0),A(this,Ye,void 0),f(this,Rs,t),f(this,Ts,k(e)),f(this,Ye,new Map)}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return l(this,Rs)}set name(t){f(this,Rs,t)}get chainId(){return l(this,Ts)}set chainId(t){f(this,Ts,k(t,"chainId"))}matches(t){if(t==null)return!1;if(typeof t=="string"){try{return this.chainId===k(t)}catch{}return this.name===t}if(typeof t=="number"||typeof t=="bigint"){try{return this.chainId===k(t)}catch{}return!1}if(typeof t=="object"){if(t.chainId!=null){try{return this.chainId===k(t.chainId)}catch{}return!1}return t.name!=null?this.name===t.name:!1}return!1}get plugins(){return Array.from(l(this,Ye).values())}attachPlugin(t){if(l(this,Ye).get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return l(this,Ye).set(t.name,t.clone()),this}getPlugin(t){return l(this,Ye).get(t)||null}getPlugins(t){return this.plugins.filter(e=>e.name.split("#")[0]===t)}clone(){const t=new Bs(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 ki;let s=e.txBase;if(t.to==null&&(s+=e.txCreate),t.data)for(let n=2;n<t.data.length;n+=2)t.data.substring(n,n+2)==="00"?s+=e.txDataZero:s+=e.txDataNonzero;if(t.accessList){const n=pr(t.accessList);for(const i in n)s+=e.txAccessListAddress+e.txAccessListStorageKey*n[i].storageKeys.length}return s}static from(t){if(Tp(),t==null)return Bs.from("mainnet");if(typeof t=="number"&&(t=BigInt(t)),typeof t=="string"||typeof t=="bigint"){const e=Gi.get(t);if(e)return e();if(typeof t=="bigint")return new Bs("unknown",t);g(!1,"unknown network","network",t)}if(typeof t.clone=="function")return t.clone();if(typeof t=="object"){g(typeof t.name=="string"&&typeof t.chainId=="number","invalid network object name or chainId","network",t);const e=new Bs(t.name,t.chainId);return(t.ensAddress||t.ensNetwork!=null)&&e.attachPlugin(new Si(t.ensAddress,t.ensNetwork)),e}g(!1,"invalid network","network",t)}static register(t,e){typeof t=="number"&&(t=BigInt(t));const s=Gi.get(t);s&&g(!1,`conflicting network for ${JSON.stringify(s.name)}`,"nameOrChainId",t),Gi.set(t,e)}};Rs=new WeakMap,Ts=new WeakMap,Ye=new WeakMap;let ir=xp;function ec(r,t){const e=String(r);if(!e.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${r}`);const s=e.split(".");if(s.length===1&&s.push(""),s.length!==2)throw new Error(`invalid gwei value: ${r}`);for(;s[1].length<t;)s[1]+="0";if(s[1].length>9){let n=BigInt(s[1].substring(0,9));s[1].substring(9).match(/^0+$/)||n++,s[1]=n.toString()}return BigInt(s[0]+s[1])}function rc(r){return new Zl(r,async(t,e,s)=>{s.setHeader("User-Agent","ethers");let n;try{const[i,a]=await Promise.all([s.send(),t()]);n=i;const o=n.bodyJson.standard;return{gasPrice:a.gasPrice,maxFeePerGas:ec(o.maxFee,9),maxPriorityFeePerGas:ec(o.maxPriorityFee,9)}}catch(i){w(!1,`error encountered with polygon gas station (${JSON.stringify(s.url)})`,"SERVER_ERROR",{request:s,response:n,error:i})}})}function Rp(r){return new Zl("data:",async(t,e,s)=>{const n=await t();if(n.maxFeePerGas==null||n.maxPriorityFeePerGas==null)return n;const i=n.maxFeePerGas-n.maxPriorityFeePerGas;return{gasPrice:n.gasPrice,maxFeePerGas:i+r,maxPriorityFeePerGas:r}})}let sc=!1;function Tp(){if(sc)return;sc=!0;function r(t,e,s){const n=function(){const i=new ir(t,e);return s.ensNetwork!=null&&i.attachPlugin(new Si(null,s.ensNetwork)),i.attachPlugin(new ki),(s.plugins||[]).forEach(a=>{i.attachPlugin(a)}),i};ir.register(t,n),ir.register(e,n),s.altNames&&s.altNames.forEach(i=>{ir.register(i,n)})}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,{}),r("classic",61,{}),r("classicKotti",6,{}),r("arbitrum",42161,{ensNetwork:1}),r("arbitrum-goerli",421613,{}),r("bnb",56,{ensNetwork:1}),r("bnbt",97,{}),r("linea",59144,{ensNetwork:1}),r("linea-goerli",59140,{}),r("matic",137,{ensNetwork:1,plugins:[rc("https://gasstation.polygon.technology/v2")]}),r("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[rc("https://gasstation-testnet.polygon.technology/v2")]}),r("optimism",10,{ensNetwork:1,plugins:[Rp(BigInt("1000000"))]}),r("optimism-goerli",420,{}),r("xdai",100,{ensNetwork:1})}function Wa(r){return JSON.parse(JSON.stringify(r))}var Le,Ft,er,ee,Ks,di;class Bp{constructor(t){A(this,Ks),A(this,Le,void 0),A(this,Ft,void 0),A(this,er,void 0),A(this,ee,void 0),f(this,Le,t),f(this,Ft,null),f(this,er,4e3),f(this,ee,-2)}get pollingInterval(){return l(this,er)}set pollingInterval(t){f(this,er,t)}start(){l(this,Ft)||(f(this,Ft,l(this,Le)._setTimeout(E(this,Ks,di).bind(this),l(this,er))),E(this,Ks,di).call(this))}stop(){l(this,Ft)&&(l(this,Le)._clearTimeout(l(this,Ft)),f(this,Ft,null))}pause(t){this.stop(),t&&f(this,ee,-2)}resume(){this.start()}}Le=new WeakMap,Ft=new WeakMap,er=new WeakMap,ee=new WeakMap,Ks=new WeakSet,di=async function(){try{const r=await l(this,Le).getBlockNumber();if(l(this,ee)===-2){f(this,ee,r);return}if(r!==l(this,ee)){for(let t=l(this,ee)+1;t<=r;t++){if(l(this,Ft)==null)return;await l(this,Le).emit("block",t)}f(this,ee,r)}}catch{}l(this,Ft)!=null&&f(this,Ft,l(this,Le)._setTimeout(E(this,Ks,di).bind(this),l(this,er)))};var kr,Sr,qe;class Xl{constructor(t){A(this,kr,void 0),A(this,Sr,void 0),A(this,qe,void 0),f(this,kr,t),f(this,qe,!1),f(this,Sr,e=>{this._poll(e,l(this,kr))})}async _poll(t,e){throw new Error("sub-classes must override this")}start(){l(this,qe)||(f(this,qe,!0),l(this,Sr).call(this,-2),l(this,kr).on("block",l(this,Sr)))}stop(){l(this,qe)&&(f(this,qe,!1),l(this,kr).off("block",l(this,Sr)))}pause(t){this.stop()}resume(){this.start()}}kr=new WeakMap,Sr=new WeakMap,qe=new WeakMap;var ua;class Dp extends Xl{constructor(t,e){super(t),A(this,ua,void 0),f(this,ua,Wa(e))}async _poll(t,e){throw new Error("@TODO")}}ua=new WeakMap;var Ds;class Lp extends Xl{constructor(t,e){super(t),A(this,Ds,void 0),f(this,Ds,e)}async _poll(t,e){const s=await e.getTransactionReceipt(l(this,Ds));s&&e.emit(l(this,Ds),s)}}Ds=new WeakMap;var Oe,Ys,Ls,Ze,Gt,ha,$l;class Qa{constructor(t,e){A(this,ha),A(this,Oe,void 0),A(this,Ys,void 0),A(this,Ls,void 0),A(this,Ze,void 0),A(this,Gt,void 0),f(this,Oe,t),f(this,Ys,Wa(e)),f(this,Ls,E(this,ha,$l).bind(this)),f(this,Ze,!1),f(this,Gt,-2)}start(){l(this,Ze)||(f(this,Ze,!0),l(this,Gt)===-2&&l(this,Oe).getBlockNumber().then(t=>{f(this,Gt,t)}),l(this,Oe).on("block",l(this,Ls)))}stop(){l(this,Ze)&&(f(this,Ze,!1),l(this,Oe).off("block",l(this,Ls)))}pause(t){this.stop(),t&&f(this,Gt,-2)}resume(){this.start()}}Oe=new WeakMap,Ys=new WeakMap,Ls=new WeakMap,Ze=new WeakMap,Gt=new WeakMap,ha=new WeakSet,$l=async function(r){if(l(this,Gt)===-2)return;const t=Wa(l(this,Ys));t.fromBlock=l(this,Gt)+1,t.toBlock=r;const e=await l(this,Oe).getLogs(t);if(e.length===0){l(this,Gt)<r-60&&f(this,Gt,r-60);return}for(const s of e)l(this,Oe).emit(l(this,Ys),s),f(this,Gt,s.blockNumber)};const Up=BigInt(2),Fp=10;function On(r){return r&&typeof r.then=="function"}function Kn(r,t){return r+":"+JSON.stringify(t,(e,s)=>{if(s==null)return"null";if(typeof s=="bigint")return`bigint:${s.toString()}`;if(typeof s=="string")return s.toLowerCase();if(typeof s=="object"&&!Array.isArray(s)){const n=Object.keys(s);return n.sort(),n.reduce((i,a)=>(i[a]=s[a],i),{})}return s})}class tu{constructor(t){m(this,"name"),O(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function Mp(r){return JSON.parse(JSON.stringify(r))}function fa(r){return r=Array.from(new Set(r).values()),r.sort(),r}async function Hi(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"pending":case"debug":case"error":case"network":return{type:r,tag:r}}if(_(r,32)){const e=r.toLowerCase();return{type:"transaction",tag:Kn("tx",{hash:e}),hash:e}}if(r.orphan){const e=r;return{type:"orphan",tag:Kn("orphan",e),filter:Mp(e)}}if(r.address||r.topics){const e=r,s={topics:(e.topics||[]).map(n=>n==null?null:Array.isArray(n)?fa(n.map(i=>i.toLowerCase())):n.toLowerCase())};if(e.address){const n=[],i=[],a=o=>{_(o)?n.push(o):i.push((async()=>{n.push(await gt(o,t))})())};Array.isArray(e.address)?e.address.forEach(a):a(e.address),i.length&&await Promise.all(i),s.address=fa(n.map(o=>o.toLowerCase()))}return{filter:s,tag:Kn("event",s),type:"event"}}g(!1,"unknown ProviderEvent","event",r)}function Vi(){return new Date().getTime()}const Gp={cacheTimeout:250,pollingInterval:4e3};var at,Xe,it,Us,kt,Or,rr,Ne,Yn,Ut,Fs,qs,bt,St,pi,da,gi,pa,xr,Ms,qn,ga,Rr,Gs,Hs,Zn;class Hp{constructor(t,e){if(A(this,bt),A(this,pi),A(this,gi),A(this,xr),A(this,qn),A(this,Rr),A(this,Hs),A(this,at,void 0),A(this,Xe,void 0),A(this,it,void 0),A(this,Us,void 0),A(this,kt,void 0),A(this,Or,void 0),A(this,rr,void 0),A(this,Ne,void 0),A(this,Yn,void 0),A(this,Ut,void 0),A(this,Fs,void 0),A(this,qs,void 0),f(this,qs,Object.assign({},Gp,e||{})),t==="any")f(this,Or,!0),f(this,kt,null);else if(t){const s=ir.from(t);f(this,Or,!1),f(this,kt,Promise.resolve(s)),setTimeout(()=>{this.emit("network",s,null)},0)}else f(this,Or,!1),f(this,kt,null);f(this,Ne,-1),f(this,rr,new Map),f(this,at,new Map),f(this,Xe,new Map),f(this,it,null),f(this,Us,!1),f(this,Yn,1),f(this,Ut,new Map),f(this,Fs,!1)}get pollingInterval(){return l(this,qs).pollingInterval}get provider(){return this}get plugins(){return Array.from(l(this,Xe).values())}attachPlugin(t){if(l(this,Xe).get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return l(this,Xe).set(t.name,t.connect(this)),this}getPlugin(t){return l(this,Xe).get(t)||null}get disableCcipRead(){return l(this,Fs)}set disableCcipRead(t){f(this,Fs,!!t)}async ccipReadFetch(t,e,s){if(this.disableCcipRead||s.length===0||t.to==null)return null;const n=t.to.toLowerCase(),i=e.toLowerCase(),a=[];for(let o=0;o<s.length;o++){const c=s[o],u=c.replace("{sender}",n).replace("{data}",i),h=new lr(u);c.indexOf("{data}")===-1&&(h.body={data:i,sender:n}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:h,index:o,urls:s});let d="unknown error";const p=await h.send();try{const y=p.bodyJson;if(y.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:h,result:y}),y.data;y.message&&(d=y.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:y})}catch{}w(p.statusCode<400||p.statusCode>=500,`response not found during CCIP fetch: ${d}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:t,info:{url:c,errorMessage:d}}),a.push(d)}w(!1,`error encountered during CCIP fetch: ${a.map(o=>JSON.stringify(o)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:t,info:{urls:s,errorMessages:a}})}_wrapBlock(t,e){return new rp(Np(t),this)}_wrapLog(t,e){return new gn(vp(t),this)}_wrapTransactionReceipt(t,e){return new Ul(Sp(t),this)}_wrapTransactionResponse(t,e){return new Fa(ql(t),this)}_detectNetwork(){w(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){w(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=R(await E(this,bt,St).call(this,{method:"getBlockNumber"}),"%response");return l(this,Ne)>=0&&f(this,Ne,t),t}_getAddress(t){return gt(t,this)}_getBlockTag(t){if(t==null)return"latest";switch(t){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return t}if(_(t))return _(t,32)?t:Lr(t);if(typeof t=="bigint"&&(t=R(t,"blockTag")),typeof t=="number")return t>=0?Lr(t):l(this,Ne)>=0?Lr(l(this,Ne)+t):this.getBlockNumber().then(e=>Lr(e+t));g(!1,"invalid blockTag","blockTag",t)}_getFilter(t){const e=(t.topics||[]).map(c=>c==null?null:Array.isArray(c)?fa(c.map(u=>u.toLowerCase())):c.toLowerCase()),s="blockHash"in t?t.blockHash:void 0,n=(c,u,h)=>{let d;switch(c.length){case 0:break;case 1:d=c[0];break;default:c.sort(),d=c}if(s&&(u!=null||h!=null))throw new Error("invalid filter");const p={};return d&&(p.address=d),e.length&&(p.topics=e),u&&(p.fromBlock=u),h&&(p.toBlock=h),s&&(p.blockHash=s),p};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 a;"fromBlock"in t&&(a=this._getBlockTag(t.fromBlock));let o;return"toBlock"in t&&(o=this._getBlockTag(t.toBlock)),i.filter(c=>typeof c!="string").length||a!=null&&typeof a!="string"||o!=null&&typeof o!="string"?Promise.all([Promise.all(i),a,o]).then(c=>n(c[0],c[1],c[2])):n(i,a,o)}_getTransactionRequest(t){const e=Pi(t),s=[];if(["to","from"].forEach(n=>{if(e[n]==null)return;const i=gt(e[n]);On(i)?s.push(async function(){e[n]=await i}()):e[n]=i}),e.blockTag!=null){const n=this._getBlockTag(e.blockTag);On(n)?s.push(async function(){e.blockTag=await n}()):e.blockTag=n}return s.length?async function(){return await Promise.all(s),e}():e}async getNetwork(){if(l(this,kt)==null){const n=this._detectNetwork().then(i=>(this.emit("network",i,null),i),i=>{throw l(this,kt)===n&&f(this,kt,null),i});return f(this,kt,n),(await n).clone()}const t=l(this,kt),[e,s]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==s.chainId&&(l(this,Or)?(this.emit("network",s,e),l(this,kt)===t&&f(this,kt,Promise.resolve(s))):w(!1,`network changed: ${e.chainId} => ${s.chainId} `,"NETWORK_ERROR",{event:"changed"})),e.clone()}async getFeeData(){const t=await this.getNetwork(),e=async()=>{const{_block:n,gasPrice:i}=await ot({_block:E(this,qn,ga).call(this,"latest",!1),gasPrice:(async()=>{try{const u=await E(this,bt,St).call(this,{method:"getGasPrice"});return k(u,"%response")}catch{}return null})()});let a=null,o=null;const c=this._wrapBlock(n,t);return c&&c.baseFeePerGas&&(o=BigInt("1000000000"),a=c.baseFeePerGas*Up+o),new Yo(i,a,o)},s=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(s){const n=new lr(s.url),i=await s.processFunc(e,this,n);return new Yo(i.gasPrice,i.maxFeePerGas,i.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return On(e)&&(e=await e),k(await E(this,bt,St).call(this,{method:"estimateGas",transaction:e}),"%response")}async call(t){const{tx:e,blockTag:s}=await ot({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await E(this,gi,pa).call(this,E(this,pi,da).call(this,e,s,t.enableCcipRead?0:-1))}async getBalance(t,e){return k(await E(this,xr,Ms).call(this,{method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return R(await E(this,xr,Ms).call(this,{method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return C(await E(this,xr,Ms).call(this,{method:"getCode"},t,e))}async getStorage(t,e,s){const n=k(e,"position");return C(await E(this,xr,Ms).call(this,{method:"getStorage",position:n},t,s))}async broadcastTransaction(t){const{blockNumber:e,hash:s,network:n}=await ot({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),i=bl.from(t);if(i.hash!==s)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(i,n).replaceableTransaction(e)}async getBlock(t,e){const{network:s,params:n}=await ot({network:this.getNetwork(),params:E(this,qn,ga).call(this,t,!!e)});return n==null?null:this._wrapBlock(n,s)}async getTransaction(t){const{network:e,params:s}=await ot({network:this.getNetwork(),params:E(this,bt,St).call(this,{method:"getTransaction",hash:t})});return s==null?null:this._wrapTransactionResponse(s,e)}async getTransactionReceipt(t){const{network:e,params:s}=await ot({network:this.getNetwork(),params:E(this,bt,St).call(this,{method:"getTransactionReceipt",hash:t})});if(s==null)return null;if(s.gasPrice==null&&s.effectiveGasPrice==null){const n=await E(this,bt,St).call(this,{method:"getTransaction",hash:t});if(n==null)throw new Error("report this; could not find tx or effectiveGasPrice");s.effectiveGasPrice=n.gasPrice}return this._wrapTransactionReceipt(s,e)}async getTransactionResult(t){const{result:e}=await ot({network:this.getNetwork(),result:E(this,bt,St).call(this,{method:"getTransactionResult",hash:t})});return e==null?null:C(e)}async getLogs(t){let e=this._getFilter(t);On(e)&&(e=await e);const{network:s,params:n}=await ot({network:this.getNetwork(),params:E(this,bt,St).call(this,{method:"getLogs",filter:e})});return n.map(i=>this._wrapLog(i,s))}_getProvider(t){w(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await $o.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=B(t);const e=$i(t.substring(2).toLowerCase()+".addr.reverse");try{const s=await $o.getEnsAddress(this),n=await new un(s,["function resolver(bytes32) view returns (address)"],this).resolver(e);if(n==null||n===xa)return null;const i=await new un(n,["function name(bytes32) view returns (string)"],this).name(e);return await this.resolveName(i)!==t?null:i}catch(s){if(Tt(s,"BAD_DATA")&&s.value==="0x"||Tt(s,"CALL_EXCEPTION"))return null;throw s}return null}async waitForTransaction(t,e,s){const n=e??1;return n===0?this.getTransactionReceipt(t):new Promise(async(i,a)=>{let o=null;const c=async u=>{try{const h=await this.getTransactionReceipt(t);if(h!=null&&u-h.blockNumber+1>=n){i(h),o&&(clearTimeout(o),o=null);return}}catch(h){console.log("EEE",h)}this.once("block",c)};s!=null&&(o=setTimeout(()=>{o!=null&&(o=null,this.off("block",c),a(q("timeout","TIMEOUT",{reason:"timeout"})))},s)),c(await this.getBlockNumber())})}async waitForBlock(t){w(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(t){const e=l(this,Ut).get(t);e&&(e.timer&&clearTimeout(e.timer),l(this,Ut).delete(t))}_setTimeout(t,e){e==null&&(e=0);const s=ri(this,Yn)._++,n=()=>{l(this,Ut).delete(s),t()};if(this.paused)l(this,Ut).set(s,{timer:null,func:n,time:e});else{const i=setTimeout(n,e);l(this,Ut).set(s,{timer:i,func:n,time:Vi()})}return s}_forEachSubscriber(t){for(const e of l(this,at).values())t(e.subscriber)}_getSubscriber(t){switch(t.type){case"debug":case"error":case"network":return new tu(t.type);case"block":{const e=new Bp(this);return e.pollingInterval=this.pollingInterval,e}case"event":return new Qa(this,t.filter);case"transaction":return new Lp(this,t.hash);case"orphan":return new Dp(this,t.filter)}throw new Error(`unsupported event: ${t.type}`)}_recoverSubscriber(t,e){for(const s of l(this,at).values())if(s.subscriber===t){s.started&&s.subscriber.stop(),s.subscriber=e,s.started&&e.start(),l(this,it)!=null&&e.pause(l(this,it));break}}async on(t,e){const s=await E(this,Hs,Zn).call(this,t);return s.listeners.push({listener:e,once:!1}),s.started||(s.subscriber.start(),s.started=!0,l(this,it)!=null&&s.subscriber.pause(l(this,it))),this}async once(t,e){const s=await E(this,Hs,Zn).call(this,t);return s.listeners.push({listener:e,once:!0}),s.started||(s.subscriber.start(),s.started=!0,l(this,it)!=null&&s.subscriber.pause(l(this,it))),this}async emit(t,...e){const s=await E(this,Rr,Gs).call(this,t,e);if(!s||s.listeners.length===0)return!1;const n=s.listeners.length;return s.listeners=s.listeners.filter(({listener:i,once:a})=>{const o=new wc(this,a?null:i,t);try{i.call(this,...e,o)}catch{}return!a}),s.listeners.length===0&&(s.started&&s.subscriber.stop(),l(this,at).delete(s.tag)),n>0}async listenerCount(t){if(t){const s=await E(this,Rr,Gs).call(this,t);return s?s.listeners.length:0}let e=0;for(const{listeners:s}of l(this,at).values())e+=s.length;return e}async listeners(t){if(t){const s=await E(this,Rr,Gs).call(this,t);return s?s.listeners.map(({listener:n})=>n):[]}let e=[];for(const{listeners:s}of l(this,at).values())e=e.concat(s.map(({listener:n})=>n));return e}async off(t,e){const s=await E(this,Rr,Gs).call(this,t);if(!s)return this;if(e){const n=s.listeners.map(({listener:i})=>i).indexOf(e);n>=0&&s.listeners.splice(n,1)}return(!e||s.listeners.length===0)&&(s.started&&s.subscriber.stop(),l(this,at).delete(s.tag)),this}async removeAllListeners(t){if(t){const{tag:e,started:s,subscriber:n}=await E(this,Hs,Zn).call(this,t);s&&n.stop(),l(this,at).delete(e)}else for(const[e,{started:s,subscriber:n}]of l(this,at))s&&n.stop(),l(this,at).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 l(this,Us)}destroy(){this.removeAllListeners();for(const t of l(this,Ut).keys())this._clearTimeout(t);f(this,Us,!0)}get paused(){return l(this,it)!=null}set paused(t){!!t!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(t){if(f(this,Ne,-1),l(this,it)!=null){if(l(this,it)==!!t)return;w(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(e=>e.pause(t)),f(this,it,!!t);for(const e of l(this,Ut).values())e.timer&&clearTimeout(e.timer),e.time=Vi()-e.time}resume(){if(l(this,it)!=null){this._forEachSubscriber(t=>t.resume()),f(this,it,null);for(const t of l(this,Ut).values()){let e=t.time;e<0&&(e=0),t.time=Vi(),setTimeout(t.func,e)}}}}at=new WeakMap,Xe=new WeakMap,it=new WeakMap,Us=new WeakMap,kt=new WeakMap,Or=new WeakMap,rr=new WeakMap,Ne=new WeakMap,Yn=new WeakMap,Ut=new WeakMap,Fs=new WeakMap,qs=new WeakMap,bt=new WeakSet,St=async function(r){const t=l(this,qs).cacheTimeout;if(t<0)return await this._perform(r);const e=Kn(r.method,r);let s=l(this,rr).get(e);return s||(s=this._perform(r),l(this,rr).set(e,s),setTimeout(()=>{l(this,rr).get(e)===s&&l(this,rr).delete(e)},t)),await s},pi=new WeakSet,da=async function(r,t,e){w(e<Fp,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},r,{blockTag:t,enableCcipRead:!0})});const s=Pi(r);try{return C(await this._perform({method:"call",transaction:s,blockTag:t}))}catch(n){if(!this.disableCcipRead&&Ca(n)&&n.data&&e>=0&&t==="latest"&&s.to!=null&&z(n.data,0,4)==="0x556f1830"){const i=n.data,a=await gt(s.to,this);let o;try{o=Jp(z(n.data,4))}catch(h){w(!1,h.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:s,info:{data:i}})}w(o.sender.toLowerCase()===a.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:i,reason:"OffchainLookup",transaction:s,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:o.errorArgs}});const c=await this.ccipReadFetch(s,o.calldata,o.urls);w(c!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:s,info:{data:n.data,errorArgs:o.errorArgs}});const u={to:a,data:Y([o.selector,Qp([c,o.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:u});try{const h=await E(this,pi,da).call(this,u,t,e+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},u),result:h}),h}catch(h){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},u),error:h}),h}}throw n}},gi=new WeakSet,pa=async function(r){const{value:t}=await ot({network:this.getNetwork(),value:r});return t},xr=new WeakSet,Ms=async function(r,t,e){let s=this._getAddress(t),n=this._getBlockTag(e);return(typeof s!="string"||typeof n!="string")&&([s,n]=await Promise.all([s,n])),await E(this,gi,pa).call(this,E(this,bt,St).call(this,Object.assign(r,{address:s,blockTag:n})))},qn=new WeakSet,ga=async function(r,t){if(_(r,32))return await E(this,bt,St).call(this,{method:"getBlock",blockHash:r,includeTransactions:t});let e=this._getBlockTag(r);return typeof e!="string"&&(e=await e),await E(this,bt,St).call(this,{method:"getBlock",blockTag:e,includeTransactions:t})},Rr=new WeakSet,Gs=async function(r,t){let e=await Hi(r,this);return e.type==="event"&&t&&t.length>0&&t[0].removed===!0&&(e=await Hi({orphan:"drop-log",log:t[0]},this)),l(this,at).get(e.tag)||null},Hs=new WeakSet,Zn=async function(r){const t=await Hi(r,this),e=t.tag;let s=l(this,at).get(e);return s||(s={subscriber:this._getSubscriber(t),tag:e,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},l(this,at).set(e,s)),s};function Vp(r,t){try{const e=ma(r,t);if(e)return Sa(e)}catch{}return null}function ma(r,t){if(r==="0x")return null;try{const e=R(z(r,t,t+32)),s=R(z(r,e,e+32));return z(r,e+32,e+32+s)}catch{}return null}function nc(r){const t=It(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 jp(r){if(r.length%32===0)return r;const t=new Uint8Array(Math.ceil(r.length/32)*32);return t.set(r),t}const Wp=new Uint8Array([]);function Qp(r){const t=[];let e=0;for(let s=0;s<r.length;s++)t.push(Wp),e+=32;for(let s=0;s<r.length;s++){const n=L(r[s]);t[s]=nc(e),t.push(nc(n.length)),t.push(jp(n)),e+=32+Math.ceil(n.length/32)*32}return Y(t)}const ic="0x0000000000000000000000000000000000000000000000000000000000000000";function Jp(r){const t={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};w(Gr(r)>=5*32,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const e=z(r,0,32);w(z(e,0,12)===z(ic,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),t.sender=z(e,12);try{const s=[],n=R(z(r,32,64)),i=R(z(r,n,n+32)),a=z(r,n+32);for(let o=0;o<i;o++){const c=Vp(a,o*32);if(c==null)throw new Error("abort");s.push(c)}t.urls=s}catch{w(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const s=ma(r,64);if(s==null)throw new Error("abort");t.calldata=s}catch{w(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}w(z(r,100,128)===z(ic,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),t.selector=z(r,96,100);try{const s=ma(r,128);if(s==null)throw new Error("abort");t.extraData=s}catch{w(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return t.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map(s=>t[s]),t}function mr(r,t){if(r.provider)return r.provider;w(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:t})}async function ac(r,t){let e=Pi(t);if(e.to!=null&&(e.to=gt(e.to,r)),e.from!=null){const s=e.from;e.from=Promise.all([r.getAddress(),gt(s,r)]).then(([n,i])=>(g(n.toLowerCase()===i.toLowerCase(),"transaction from mismatch","tx.from",i),n))}else e.from=r.getAddress();return await ot(e)}class _p{constructor(t){m(this,"provider"),O(this,{provider:t||null})}async getNonce(t){return mr(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await ac(this,t)}async populateTransaction(t){const e=mr(this,"populateTransaction"),s=await ac(this,t);s.nonce==null&&(s.nonce=await this.getNonce("pending")),s.gasLimit==null&&(s.gasLimit=await this.estimateGas(s));const n=await this.provider.getNetwork();if(s.chainId!=null){const a=k(s.chainId);g(a===n.chainId,"transaction chainId mismatch","tx.chainId",t.chainId)}else s.chainId=n.chainId;const i=s.maxFeePerGas!=null||s.maxPriorityFeePerGas!=null;if(s.gasPrice!=null&&(s.type===2||i)?g(!1,"eip-1559 transaction do not support gasPrice","tx",t):(s.type===0||s.type===1)&&i&&g(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t),(s.type===2||s.type==null)&&s.maxFeePerGas!=null&&s.maxPriorityFeePerGas!=null)s.type=2;else if(s.type===0||s.type===1){const a=await e.getFeeData();w(a.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),s.gasPrice==null&&(s.gasPrice=a.gasPrice)}else{const a=await e.getFeeData();if(s.type==null)if(a.maxFeePerGas!=null&&a.maxPriorityFeePerGas!=null)if(s.type=2,s.gasPrice!=null){const o=s.gasPrice;delete s.gasPrice,s.maxFeePerGas=o,s.maxPriorityFeePerGas=o}else s.maxFeePerGas==null&&(s.maxFeePerGas=a.maxFeePerGas),s.maxPriorityFeePerGas==null&&(s.maxPriorityFeePerGas=a.maxPriorityFeePerGas);else a.gasPrice!=null?(w(!i,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),s.gasPrice==null&&(s.gasPrice=a.gasPrice),s.type=0):w(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else s.type===2&&(s.maxFeePerGas==null&&(s.maxFeePerGas=a.maxFeePerGas),s.maxPriorityFeePerGas==null&&(s.maxPriorityFeePerGas=a.maxPriorityFeePerGas))}return await ot(s)}async estimateGas(t){return mr(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return mr(this,"call").call(await this.populateCall(t))}async resolveName(t){return await mr(this,"resolveName").resolveName(t)}async sendTransaction(t){const e=mr(this,"sendTransaction"),s=await this.populateTransaction(t);delete s.from;const n=bl.from(s);return await e.broadcastTransaction(await this.signTransaction(n))}}function zp(r){return JSON.parse(JSON.stringify(r))}var Et,$t,Fr,$e,Mr,Zs,Xn,Aa,$n,ya;class eu{constructor(t){A(this,Xn),A(this,$n),A(this,Et,void 0),A(this,$t,void 0),A(this,Fr,void 0),A(this,$e,void 0),A(this,Mr,void 0),A(this,Zs,void 0),f(this,Et,t),f(this,$t,null),f(this,Fr,E(this,Xn,Aa).bind(this)),f(this,$e,!1),f(this,Mr,null),f(this,Zs,!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")}start(){l(this,$e)||(f(this,$e,!0),E(this,Xn,Aa).call(this,-2))}stop(){l(this,$e)&&(f(this,$e,!1),f(this,Zs,!0),E(this,$n,ya).call(this),l(this,Et).off("block",l(this,Fr)))}pause(t){t&&E(this,$n,ya).call(this),l(this,Et).off("block",l(this,Fr))}resume(){this.start()}}Et=new WeakMap,$t=new WeakMap,Fr=new WeakMap,$e=new WeakMap,Mr=new WeakMap,Zs=new WeakMap,Xn=new WeakSet,Aa=async function(r){try{l(this,$t)==null&&f(this,$t,this._subscribe(l(this,Et)));let t=null;try{t=await l(this,$t)}catch(n){if(!Tt(n,"UNSUPPORTED_OPERATION")||n.operation!=="eth_newFilter")throw n}if(t==null){f(this,$t,null),l(this,Et)._recoverSubscriber(this,this._recover(l(this,Et)));return}const e=await l(this,Et).getNetwork();if(l(this,Mr)||f(this,Mr,e),l(this,Mr).chainId!==e.chainId)throw new Error("chaid changed");if(l(this,Zs))return;const s=await l(this,Et).send("eth_getFilterChanges",[t]);await this._emitResults(l(this,Et),s)}catch(t){console.log("@TODO",t)}l(this,Et).once("block",l(this,Fr))},$n=new WeakSet,ya=function(){const r=l(this,$t);r&&(f(this,$t,null),r.then(t=>{l(this,Et).send("eth_uninstallFilter",[t])}))};var Tr;class Kp extends eu{constructor(t,e){super(t),A(this,Tr,void 0),f(this,Tr,zp(e))}_recover(t){return new Qa(t,l(this,Tr))}async _subscribe(t){return await t.send("eth_newFilter",[l(this,Tr)])}async _emitResults(t,e){for(const s of e)t.emit(l(this,Tr),t._wrapLog(s,t._network))}}Tr=new WeakMap;class Yp extends eu{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const s of e)t.emit("pending",s)}}const qp="bigint,boolean,function,number,string,symbol".split(/,/g);function ti(r){if(r==null||qp.indexOf(typeof r)>=0||typeof r.getAddress=="function")return r;if(Array.isArray(r))return r.map(ti);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 Zp(r){return new Promise(t=>{setTimeout(t,r)})}function Ar(r){return r&&r.toLowerCase()}function oc(r){return r&&typeof r.pollingInterval=="number"}const Xp={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class ji extends _p{constructor(t,e){super(t),m(this,"address"),e=B(e),O(this,{address:e})}connect(t){w(!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=ti(t),s=[];if(e.from){const i=e.from;s.push((async()=>{const a=await gt(i,this.provider);g(a!=null&&a.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=a})())}else e.from=this.address;if(e.gasLimit==null&&s.push((async()=>{e.gasLimit=await this.provider.estimateGas({...e,from:this.address})})()),e.to!=null){const i=e.to;s.push((async()=>{e.to=await gt(i,this.provider)})())}s.length&&await Promise.all(s);const n=this.provider.getRpcTransaction(e);return this.provider.send("eth_sendTransaction",[n])}async sendTransaction(t){const e=await this.provider.getBlockNumber(),s=await this.sendUncheckedTransaction(t);return await new Promise((n,i)=>{const a=[1e3,100],o=async()=>{const c=await this.provider.getTransaction(s);if(c!=null){n(c.replaceableTransaction(e));return}this.provider._setTimeout(()=>{o()},a.pop()||4e3)};o()})}async signTransaction(t){const e=ti(t);if(e.from){const n=await gt(e.from,this.provider);g(n!=null&&n.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=n}else e.from=this.address;const s=this.provider.getRpcTransaction(e);return await this.provider.send("eth_signTransaction",[s])}async signMessage(t){const e=typeof t=="string"?oe(t):t;return await this.provider.send("personal_sign",[C(e),this.address.toLowerCase()])}async signTypedData(t,e,s){const n=ti(s),i=await Uo.resolveNames(t,e,n,async a=>{const o=await gt(a);return g(o!=null,"TypedData does not support null address","value",a),o});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(Uo.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"?oe(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),C(e)])}}var Jr,Vs,xe,ie,zt,Pe,ei,wa;class $p extends Hp{constructor(t,e){super(t,e),A(this,ei),A(this,Jr,void 0),A(this,Vs,void 0),A(this,xe,void 0),A(this,ie,void 0),A(this,zt,void 0),A(this,Pe,void 0),f(this,Vs,1),f(this,Jr,Object.assign({},Xp,e||{})),f(this,xe,[]),f(this,ie,null),f(this,Pe,null);{let n=null;const i=new Promise(a=>{n=a});f(this,zt,{promise:i,resolve:n})}const s=this._getOption("staticNetwork");s&&(g(t==null||s.matches(t),"staticNetwork MUST match network object","options",e),f(this,Pe,s))}_getOption(t){return l(this,Jr)[t]}get _network(){return w(l(this,Pe),"network is not available yet","NETWORK_ERROR"),l(this,Pe)}async _perform(t){if(t.method==="call"||t.method==="estimateGas"){let s=t.transaction;if(s&&s.type!=null&&k(s.type)&&s.maxFeePerGas==null&&s.maxPriorityFeePerGas==null){const n=await this.getFeeData();n.maxFeePerGas==null&&n.maxPriorityFeePerGas==null&&(t=Object.assign({},t,{transaction:Object.assign({},s,{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)return t;if(this.ready)return ir.from(k(await this.send("eth_chainId",[])));const e={id:ri(this,Vs)._++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:e});let s;try{s=(await this._send(e))[0]}catch(n){throw this.emit("debug",{action:"receiveRpcError",error:n}),n}if(this.emit("debug",{action:"receiveRpcResult",result:s}),"result"in s)return ir.from(k(s.result));throw this.getRpcError(e,s)}_start(){l(this,zt)==null||l(this,zt).resolve==null||(l(this,zt).resolve(),f(this,zt,null),(async()=>{for(;l(this,Pe)==null&&!this.destroyed;)try{f(this,Pe,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",q("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await Zp(1e3)}E(this,ei,wa).call(this)})())}async _waitUntilReady(){if(l(this,zt)!=null)return await l(this,zt).promise}_getSubscriber(t){return t.type==="pending"?new Yp(this):t.type==="event"?this._getOption("polling")?new Qa(this,t.filter):new Kp(this,t.filter):t.type==="orphan"&&t.filter.orphan==="drop-log"?new tu("orphan"):super._getSubscriber(t)}get ready(){return l(this,zt)==null}getRpcTransaction(t){const e={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(s=>{if(t[s]==null)return;let n=s;s==="gasLimit"&&(n="gas"),e[n]=Lr(k(t[s],`tx.${s}`))}),["from","to","data"].forEach(s=>{t[s]!=null&&(e[s]=C(t[s]))}),t.accessList&&(e.accessList=pr(t.accessList)),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"getBalance":return{method:"eth_getBalance",args:[Ar(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Ar(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Ar(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Ar(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(Ar):t.filter.address=Ar(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,e){const{method:s}=t,{error:n}=e;if(s==="eth_estimateGas"&&n.message){const o=n.message;if(!o.match(/revert/i)&&o.match(/insufficient funds/i))return q("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:n}})}if(s==="eth_call"||s==="eth_estimateGas"){const o=ba(n),c=na.getBuiltinCallException(s==="eth_call"?"call":"estimateGas",t.params[0],o?o.data:null);return c.info={error:n,payload:t},c}const i=JSON.stringify(rg(n));if(typeof n.message=="string"&&n.message.match(/user denied|ethers-user-denied/i))return q("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"}[s]||"unknown",reason:"rejected",info:{payload:t,error:n}});if(s==="eth_sendRawTransaction"||s==="eth_sendTransaction"){const o=t.params[0];if(i.match(/insufficient funds|base fee exceeds gas limit/i))return q("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:o,info:{error:n}});if(i.match(/nonce/i)&&i.match(/too low/i))return q("nonce has already been used","NONCE_EXPIRED",{transaction:o,info:{error:n}});if(i.match(/replacement transaction/i)&&i.match(/underpriced/i))return q("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:o,info:{error:n}});if(i.match(/only replay-protected/i))return q("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:s,info:{transaction:o,info:{error:n}}})}let a=!!i.match(/the method .* does not exist/i);return a||n&&n.details&&n.details.startsWith("Unauthorized method:")&&(a=!0),a?q("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:n,payload:t}}):q("could not coalesce error","UNKNOWN_ERROR",{error:n,payload:t})}send(t,e){if(this.destroyed)return Promise.reject(q("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const s=ri(this,Vs)._++,n=new Promise((i,a)=>{l(this,xe).push({resolve:i,reject:a,payload:{method:t,params:e,id:s,jsonrpc:"2.0"}})});return E(this,ei,wa).call(this),n}async getSigner(t){t==null&&(t=0);const e=this.send("eth_accounts",[]);if(typeof t=="number"){const n=await e;if(t>=n.length)throw new Error("no such account");return new ji(this,n[t])}const{accounts:s}=await ot({network:this.getNetwork(),accounts:e});t=B(t);for(const n of s)if(B(n)===t)return new ji(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(t=>new ji(this,t))}destroy(){l(this,ie)&&(clearTimeout(l(this,ie)),f(this,ie,null));for(const{payload:t,reject:e}of l(this,xe))e(q("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));f(this,xe,[]),super.destroy()}}Jr=new WeakMap,Vs=new WeakMap,xe=new WeakMap,ie=new WeakMap,zt=new WeakMap,Pe=new WeakMap,ei=new WeakSet,wa=function(){if(l(this,ie))return;const r=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");f(this,ie,setTimeout(()=>{f(this,ie,null);const t=l(this,xe);for(f(this,xe,[]);t.length;){const e=[t.shift()];for(;t.length&&e.length!==l(this,Jr).batchMaxCount;)if(e.push(t.shift()),JSON.stringify(e.map(s=>s.payload)).length>l(this,Jr).batchMaxSize){t.unshift(e.pop());break}(async()=>{const s=e.length===1?e[0].payload:e.map(n=>n.payload);this.emit("debug",{action:"sendRpcPayload",payload:s});try{const n=await this._send(s);this.emit("debug",{action:"receiveRpcResult",result:n});for(const{resolve:i,reject:a,payload:o}of e){if(this.destroyed){a(q("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:o.method}));continue}const c=n.filter(u=>u.id===o.id)[0];if(c==null){const u=q("missing response for request","BAD_DATA",{value:n,info:{payload:o}});this.emit("error",u),a(u);continue}if("error"in c){a(this.getRpcError(o,c));continue}i(c.result)}}catch(n){this.emit("debug",{action:"receiveRpcError",error:n});for(const{reject:i}of e)i(n)}})()}},r))};var tr;class tg extends $p{constructor(t,e){super(t,e),A(this,tr,void 0),f(this,tr,4e3)}_getSubscriber(t){const e=super._getSubscriber(t);return oc(e)&&(e.pollingInterval=l(this,tr)),e}get pollingInterval(){return l(this,tr)}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");f(this,tr,t),this._forEachSubscriber(e=>{oc(e)&&(e.pollingInterval=l(this,tr))})}}tr=new WeakMap;var js;class eg extends tg{constructor(t,e,s){t==null&&(t="http://localhost:8545"),super(e,s),A(this,js,void 0),typeof t=="string"?f(this,js,new lr(t)):f(this,js,t.clone())}_getConnection(){return l(this,js).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 s=await e.send();s.assertOk();let n=s.bodyJson;return Array.isArray(n)||(n=[n]),n}}js=new WeakMap;function ba(r){if(r==null)return null;if(typeof r.message=="string"&&r.message.match(/revert/i)&&_(r.data))return{message:r.message,data:r.data};if(typeof r=="object"){for(const t in r){const e=ba(r[t]);if(e)return e}return null}if(typeof r=="string")try{return ba(JSON.parse(r))}catch{}return null}function Ea(r,t){if(r!=null){if(typeof r.message=="string"&&t.push(r.message),typeof r=="object")for(const e in r)Ea(r[e],t);if(typeof r=="string")try{return Ea(JSON.parse(r),t)}catch{}}}function rg(r){const t=[];return Ea(r,t),t}const sg=(r,t)=>new eg(t||ou[r]),ng={[Mt.Arbitrum]:je.ARB,[Mt.Ethereum]:je.ETH,[Mt.Avalanche]:je.AVAX,[Mt.BinanceSmartChain]:je.BSC,[Mt.Polygon]:je.MATIC,[Mt.Optimism]:je.OP},ig=r=>B(r),ag=(r,t)=>{const e=ru(r,t);if(e)return B(e.toLowerCase());throw new Error("invalid gas asset address")},ru=({chain:r,symbol:t,ticker:e},s)=>{try{return r===s&&t===s&&e===s||r===Mt.BinanceSmartChain&&t==="BNB"&&e==="BNB"?ng[s]:B(t.slice(e.length+1).replace(/^0X/,""))}catch{return null}};exports.estimateMaxSendableAmount=cu;exports.getChecksumAddressFromAsset=ag;exports.getProvider=sg;exports.getTokenAddress=ru;exports.toChecksumAddress=ig;
|