@cowprotocol/cow-sdk 6.0.0-RC.73 → 6.0.0-RC.74
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-e5b2a61b.js → index-0091933f.js} +3 -3
- package/dist/{index-e5b2a61b.js.map → index-0091933f.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +1 -1
- package/dist/index.module.js +2 -2
- package/dist/index.module.js.map +1 -1
- package/dist/package.json +2 -2
- package/dist/schemas/trading/LimitOrderAdvancedSettings.ts +18 -0
- package/dist/schemas/trading/QuoteResultsSerialized.ts +18 -0
- package/dist/schemas/trading/SwapAdvancedSettings.ts +18 -0
- package/dist/{utils-f23686f0.js → utils-031a8079.js} +2 -2
- package/dist/{utils-f23686f0.js.map → utils-031a8079.js.map} +1 -1
- package/dist/{utils-0edcefe7.js → utils-2d6b9dba.js} +1 -1
- package/dist/{utils-0edcefe7.js.map → utils-2d6b9dba.js.map} +1 -1
- package/dist/{utils-19aa257e.js → utils-d4dec5a3.js} +1 -1
- package/dist/{utils-19aa257e.js.map → utils-d4dec5a3.js.map} +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as n,Contract as r,ethers as i,constants as s,BigNumber as a}from"ethers";import{Signer as o,VoidSigner as u}from"@ethersproject/abstract-signer";import{MetadataApi as l,stringifyDeterministic as d}from"@cowprotocol/app-data";import{keccak256 as c,toUtf8Bytes as p,solidityKeccak256 as h,Interface as f,defaultAbiCoder as m,getCreate2Address as y,arrayify as g,joinSignature as b,splitSignature as v,formatBytes32String as w}from"ethers/lib/utils";import A from"deepmerge";import{ORDER_TYPE_FIELDS as T,OrderKind as E,SigningScheme as I,hashTypedData as S,isTypedDataSigner as k,OrderBalance as C}from"@cowprotocol/contracts";import{Planner as N,Contract as _}from"@weiroll/weiroll.js";import{gql as x,request as M}from"graphql-request";import{StandardMerkleTree as R}from"@openzeppelin/merkle-tree";var P,O,B,D;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(P||(P={})),function(e){e.NO_INTERMEDIATE_TOKENS="NO_INTERMEDIATE_TOKENS",e.API_ERROR="API_ERROR",e.INVALID_API_JSON_RESPONSE="INVALID_API_JSON_RESPONSE",e.ONLY_SELL_ORDER_SUPPORTED="ONLY_SELL_ORDER_SUPPORTED",e.TX_BUILD_ERROR="TX_BUILD_ERROR",e.QUOTE_ERROR="QUOTE_ERROR",e.NO_ROUTES="NO_ROUTES",e.INVALID_BRIDGE="INVALID_BRIDGE"}(O||(O={}));class F extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeProviderQuoteError"}}class L extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeProviderError"}}class U extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeOrderParsingError"}}function G(e){return"bridge"in e}function q(e){return!G(e)}function H(e){if(!G(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function V(e){if(!q(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function z(e){if(!e)return[];const t=JSON.parse(e);return j(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function j(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}function K(){return K=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},K.apply(this,arguments)}function W(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t.indexOf(n=s[r])>=0||(i[n]=e[n]);return i}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.BASE=8453]="BASE",e[e.POLYGON=137]="POLYGON",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(B||(B={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(D||(D={}));class J extends Error{constructor(e,t){super(e),this.error_code=t}}class Q extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=e,this.body=t}}const Y=[408,425,429,500,502,503,504],X={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof Q)||Y.includes(e.response.status)},Z={tokensPerInterval:5,interval:"second"},$=async e=>{if(204!==e.status)try{const t=e.headers.get("Content-Type");if(t)return t.toLowerCase().startsWith("application/json")?await e.json():await e.text()}catch(e){console.error(e)}};async function ee(e,{path:n,query:r,method:i,body:s},a,o){const u=`${e}${n}${r?"?"+r:""}`,l={method:i,body:(()=>{if(s)return"string"==typeof s?s:JSON.stringify(s)})(),headers:{Accept:"application/json","Content-Type":"application/json"}};return t(async()=>{await a.removeTokens(1);const e=await fetch(u,l),t=await $(e);return e.status>=200&&e.status<300?t:Promise.reject(new Q(e,t))},o)}const te="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ne="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",re={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${ne}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},ie={[B.MAINNET]:K({},re,{chainId:B.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"}),[B.GNOSIS_CHAIN]:{chainId:B.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${ne}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[B.ARBITRUM_ONE]:K({},re,{chainId:B.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"}),[B.BASE]:K({},re,{chainId:B.BASE,address:"0x4200000000000000000000000000000000000006"}),[B.SEPOLIA]:K({},re,{chainId:B.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"}),[B.POLYGON]:{chainId:B.POLYGON,address:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",decimals:18,name:"Wrapped POL",symbol:"WPOL",logoUrl:`${ne}/137/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270/logo.png`},[B.AVALANCHE]:{chainId:B.AVALANCHE,address:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",decimals:18,name:"Wrapped AVAX",symbol:"WAVAX",logoUrl:`${ne}/43114/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7/logo.png`}},se={address:te,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${ne}/1/${te}/logo.png`},ae="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",oe=`${ae}/src/chains`,ue=`${oe}/images/mainnet-logo.svg`,le={id:B.MAINNET,label:"Ethereum",eip155Label:"Ethereum Mainnet",nativeCurrency:K({},se,{chainId:B.MAINNET}),addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:ue,dark:ue},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},de=`${oe}/images/gnosis-logo.svg`,ce={id:B.GNOSIS_CHAIN,label:"Gnosis",eip155Label:"Gnosis",nativeCurrency:K({},se,{chainId:B.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${ne}/100/${te}/logo.png`}),addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:de,dark:de},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},pe=`${oe}/images/arbitrum-logo-light.svg`,he=`${oe}/images/arbitrum-logo-dark.svg`,fe={id:B.ARBITRUM_ONE,label:"Arbitrum",eip155Label:"Arbitrum One",nativeCurrency:K({},se,{chainId:B.ARBITRUM_ONE}),addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:pe,dark:he},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},me=`${oe}/images/base-logo.svg`,ye={id:B.BASE,label:"Base",eip155Label:"Base",nativeCurrency:K({},se,{chainId:B.BASE}),addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:me,dark:me},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"Basescan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},ge=`${oe}/images/sepolia-logo.svg`,be={id:B.SEPOLIA,label:"Sepolia",eip155Label:"Ethereum Sepolia",nativeCurrency:K({},se,{chainId:B.SEPOLIA}),addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:ge,dark:ge},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},ve=`${oe}/images/avax-logo.svg`,we={id:B.AVALANCHE,label:"Avalanche",eip155Label:"Avalanche C-Chain",logo:{light:ve,dark:ve},nativeCurrency:K({},se,{chainId:B.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:ve}),addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"Snowscan",url:"https://snowscan.xyz"}},Ae=`${oe}/images/optimism-logo.svg`,Te={id:10,label:"Optimism",eip155Label:"OP Mainnet",logo:{light:Ae,dark:Ae},nativeCurrency:K({},se,{chainId:10}),addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},Ee=`${oe}/images/polygon-logo.svg`,Ie={id:B.POLYGON,label:"Polygon",eip155Label:"Polygon Mainnet",logo:{light:Ee,dark:Ee},nativeCurrency:K({},se,{chainId:B.POLYGON,name:"POL",symbol:"POL",logoUrl:Ee}),addressPrefix:"matic",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#8247e5",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com"}},Se={[B.MAINNET]:le,[B.GNOSIS_CHAIN]:ce,[B.ARBITRUM_ONE]:fe,[B.BASE]:ye,[B.AVALANCHE]:we,[B.POLYGON]:Ie,[B.SEPOLIA]:be},ke=Object.values(Se),Ce=ke.map(e=>e.id),Ne={[D.OPTIMISM]:Te},_e=ke.concat(Object.values(Ne)),xe=_e.map(e=>e.id);function Me(e){return Ce.reduce((t,n)=>K({},t,{[n]:"function"==typeof e?e(n):e}),{})}function Re(e){return Me(e)}const Pe="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",Oe="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Be="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",De="0x00E989b87700514118Fa55326CD1cCE82faebEF6",Fe="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",Le=Re("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),Ue=Re("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),Ge=Re(Oe),qe=Re(Be),He="0xba3cb449bd2b4adddbc894d8697f5170800eadec",Ve="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",ze=Re(He),je=Re(Ve),Ke=4294967295;function We(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:n}=t;return K({},e,{validTo:n,owner:e.onchainUser||e.owner,sellToken:Pe})}(function(e){const{executedFeeAmount:t,executedFee:n}=e,r=BigInt(t||"0"),i=BigInt(n||"0");return K({},e,{totalFee:String(r+i)})}(e))}let Je=!1;function Qe(e){Je&&console.log(`[COW TRADING SDK] ${e}`)}function Ye(e){Je=e}const Xe=["prod","staging"],Ze={env:"prod",chainId:B.MAINNET},$e="https://gnosis.mypinata.cloud/ipfs",et="https://api.pinata.cloud",tt=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,nt={[B.MAINNET]:"https://api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[B.BASE]:"https://api.cow.fi/base",[B.SEPOLIA]:"https://api.cow.fi/sepolia",[B.POLYGON]:"https://api.cow.fi/polygon",[B.AVALANCHE]:"https://api.cow.fi/avalanche"},rt={[B.MAINNET]:"https://barn.api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[B.BASE]:"https://barn.api.cow.fi/base",[B.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[B.POLYGON]:"https://barn.api.cow.fi/polygon",[B.AVALANCHE]:"https://barn.api.cow.fi/avalanche"};function it(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return void 0!==r&&(t[n]=r),t},{})}class st{constructor(t={}){this.context=K({},Ze,t),this.rateLimiter=new e(t.limiterOpts||Z)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new J("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new J("Must specify either owner or orderId"));const n=new URLSearchParams(it(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:n},t)}getOrders({owner:e,offset:t=0,limit:n=1e3},r={}){const i=new URLSearchParams(it({offset:t.toString(),limit:n.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},r).then(e=>e.map(We))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(We))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>We(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:n}=this.getContextWithOverride(t),r=Xe.filter(e=>e!==n);let i=0;const s=n=>{const a=r[i];return n instanceof Q&&404===n.response.status&&a?(i++,this.getOrder(e,K({},t,{env:a})).catch(s)):Promise.reject(n)};return this.getOrder(e,K({},t,{env:n})).catch(s)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,n={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},n)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:n,env:r}=this.getContextWithOverride(t);return this.getApiBaseUrls(r)[n]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return K({},this.context,e)}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?nt:rt}fetch(t,n={}){const{chainId:r,env:i,backoffOpts:s}=this.getContextWithOverride(n),a=this.getApiBaseUrls(i)[r],o=s||X,u=n.limiterOpts?new e(n.limiterOpts):this.rateLimiter;return Qe(`Fetching OrderBook API: ${a}${t.path}. Params: ${JSON.stringify(t,tt)}`),ee(a,t,u,o)}}var at,ot,ut,lt,dt,ct,pt,ht,ft,mt,yt,gt,bt,vt,wt;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(at||(at={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(ot||(ot={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(ut||(ut={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(lt||(lt={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(dt||(dt={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(ct||(ct={})),function(e){e.BUY="buy",e.SELL="sell"}(pt||(pt={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(ht||(ht={})),function(e){e.BUY="buy"}(ft||(ft={})),function(e){e.SELL="sell"}(mt||(mt={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(yt||(yt={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(gt||(gt={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(bt||(bt={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(vt||(vt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(wt||(wt={}));const At=BigInt(1e4);function Tt(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:s,buyAmountBeforeNetworkCosts:a,isSell:o,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:d}=Et({sellDecimals:t,buyDecimals:n,orderParams:r});return{isSell:o,quotePrice:l,sellAmountAfterNetworkCosts:i.big,buyAmountAfterNetworkCosts:s.big,buyAmountBeforeNetworkCosts:a.big,networkCostAmount:u.big,sellAmountBeforeNetworkCosts:d.big}}function Et(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,i=r.kind===pt.SELL,s=St(r.feeAmount,t),a=St(r.sellAmount,t),o=St(r.buyAmount,n),u=o.num/a.num,l=St(a.big+s.big,t);return{isSell:i,quotePrice:u,networkCostAmount:s,sellAmountBeforeNetworkCosts:a,buyAmountAfterNetworkCosts:o,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:St(u*l.num,n)}}function It(e){var t;const{orderParams:n,sellDecimals:r,buyDecimals:i,slippagePercentBps:s}=e,a=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,{isSell:o,networkCostAmount:u,sellAmountBeforeNetworkCosts:l,buyAmountAfterNetworkCosts:d,sellAmountAfterNetworkCosts:c,buyAmountBeforeNetworkCosts:p,quotePrice:h}=Et({sellDecimals:r,buyDecimals:i,orderParams:n}),{afterPartnerFees:f,partnerFeeAmount:m}=function(e){const{sellAmountAfterNetworkCosts:t,buyAmountAfterNetworkCosts:n,buyAmountBeforeNetworkCosts:r,sellAmountBeforeNetworkCosts:i,isSell:s,partnerFeeBps:a}=e,o=a>0?(s?r.big:i.big)*BigInt(a)/At:BigInt(0);return{partnerFeeAmount:o,afterPartnerFees:s?{sellAmount:t.big,buyAmount:n.big-o}:{sellAmount:t.big+o,buyAmount:n.big}}}({sellAmountAfterNetworkCosts:c,buyAmountAfterNetworkCosts:d,buyAmountBeforeNetworkCosts:p,sellAmountBeforeNetworkCosts:l,isSell:o,partnerFeeBps:a}),{afterSlippage:y}=function(e){const{afterPartnerFees:t,isSell:n,slippagePercentBps:r}=e,i=e=>e*BigInt(r)/At;return{afterSlippage:n?{sellAmount:t.sellAmount,buyAmount:t.buyAmount-i(t.buyAmount)}:{sellAmount:t.sellAmount+i(t.sellAmount),buyAmount:t.buyAmount}}}({afterPartnerFees:f,isSell:o,slippagePercentBps:s});return{isSell:o,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:St(h*u.num,i).big},partnerFee:{amount:m,bps:a}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:p.big},afterNetworkCosts:{sellAmount:c.big,buyAmount:d.big},afterPartnerFees:f,afterSlippage:y}}function St(e,t){if("number"==typeof e){const n=e*10**t,r=n.toFixed();return{big:BigInt(r.includes("e")?n:r),num:e}}const n=BigInt(e);return{big:n,num:Number(n)/10**t}}const kt={[ut.EIP712]:wt.EIP712,[ut.ETHSIGN]:wt.ETHSIGN},Ct=BigInt(15e4),Nt=()=>import("./utils-f23686f0.js");class _t{static async signOrder(e,t,n){const{signOrder:r}=await Nt();return r(e,t,n)}static async signOrderCancellation(e,t,n){const{signOrderCancellation:r}=await Nt();return r(e,t,n)}static async signOrderCancellations(e,t,n){const{signOrderCancellations:r}=await Nt();return r(e,t,n)}static async getDomain(e){const{getDomain:t}=await Nt();return t(e)}static async generateOrderId(e,t,n){const{generateOrderId:r}=await Nt();return r(e,t,n)}static async getDomainSeparator(e){const{getDomain:t}=await Nt(),{_TypedDataEncoder:n}=await import("ethers/lib/utils");return n.hashDomain(t(e))}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function xt(e){if(e){if("volumeBps"in e)return e.volumeBps;if(Array.isArray(e))for(const t of e)if("volumeBps"in t)return t.volumeBps}}function Mt(e){return Rt(e)?Se[e]:Pt(e)?Ne[e]:void 0}function Rt(e){return e in Se}function Pt(e){return e in Ne}function Ot(e){return Rt(e)||Pt(e)}const Bt=10n**6n,Dt=50,Ft={[B.MAINNET]:200,[B.ARBITRUM_ONE]:50,[B.BASE]:50,[B.GNOSIS_CHAIN]:50,[B.SEPOLIA]:50,[B.POLYGON]:50,[B.AVALANCHE]:50};function Lt(e,t){return t?Ft[e]:Dt}const Ut=1800;function Gt({chainId:e,from:t,networkCostsAmount:n="0",isEthFlow:r},i,s){const{sellAmount:a,buyAmount:o,sellToken:u,sellTokenDecimals:l,buyToken:d,buyTokenDecimals:c,kind:p,partiallyFillable:h=!1,slippageBps:f=Lt(e,r),partnerFee:m,validFor:y=Ut}=i,g=i.receiver||t,b=i.validTo||Number(function(e){return BigInt(Math.floor(Date.now()/1e3)+e)}(y)),v={sellToken:u,buyToken:d,sellAmount:a,buyAmount:o,receiver:g,validTo:b,kind:p,feeAmount:n,appData:s,partiallyFillable:h},{afterSlippage:w}=It({orderParams:v,slippagePercentBps:f,partnerFeeBps:xt(m),sellDecimals:l,buyDecimals:c});return{sellToken:u,buyToken:d,sellAmount:w.sellAmount.toString(),buyAmount:w.buyAmount.toString(),validTo:b,kind:p,partiallyFillable:h,appData:s,receiver:g,feeAmount:"0",sellTokenBalance:vt.ERC20,buyTokenBalance:at.ERC20}}async function qt(e,t,n,r){const{orderDigest:i,orderId:s}=await _t.generateOrderId(e,K({},function(e){return K({},e,{sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance})}(t),{validTo:Ke,sellToken:ie[e].address}),{owner:"staging"===r?Ve:He});return n&&await n(s,i)?(console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+s,{sellAmount:t.sellAmount,fee:t.feeAmount}),qt(e,function(e){return K({},e,{buyAmount:(BigInt(e.buyAmount)-BigInt(1)).toString()})}(t),n)):s}const Ht=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class Vt{static createInterface(){return new n.Interface(Ht)}static connect(e,t){return new r(e,Ht,t)}}Vt.abi=Ht;const zt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class jt{static createInterface(){return new n.Interface(zt)}static connect(e,t){return new r(e,zt,t)}}jt.abi=zt;const Kt=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class Wt{static createInterface(){return new n.Interface(Kt)}static connect(e,t){return new r(e,Kt,t)}}Wt.abi=Kt;const Jt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class Qt{static createInterface(){return new n.Interface(Jt)}static connect(e,t){return new r(e,Jt,t)}}Qt.abi=Jt;const Yt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class Xt{static createInterface(){return new n.Interface(Yt)}static connect(e,t){return new r(e,Yt,t)}}function Zt(e,t){return K({},e,{quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount})}function $t(e){return e.sellToken.toLowerCase()===Pe.toLowerCase()}function en(e){return e+e*BigInt(20)/BigInt(100)}function tn(e,t){const{costs:{networkFee:n,partnerFee:r}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return K({},e,{costs:K({},e.costs,{networkFee:K({},n,{amountInSellCurrency:t(n.amountInSellCurrency),amountInBuyCurrency:t(n.amountInBuyCurrency)}),partnerFee:K({},r,{amount:t(r.amount)})}),beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)})}function nn({quoteParameters:e,sellToken:t}){return K({},e,{sellToken:t})}function rn(e,t){return K({},t,{sellToken:ie[e].address})}async function sn(e,t,n,r,i={}){var s;const{networkCostsAmount:a="0",checkEthFlowOrderExists:o}=i,u=await e.getAddress(),l=null!==(s=n.slippageBps)&&void 0!==s?s:Lt(r,!0),d=K({},rn(r,n),{slippageBps:l}),{quoteId:c}=d,p=function(e,t){return Wt.connect("staging"===t?Ve:He,e)}(e,d.env),h=Gt({chainId:r,isEthFlow:!0,from:u,networkCostsAmount:a},d,t),f=await qt(r,h,o,d.env),m={buyToken:h.buyToken,receiver:h.receiver,sellAmount:h.sellAmount,buyAmount:h.buyAmount,feeAmount:h.feeAmount,partiallyFillable:h.partiallyFillable,quoteId:c,appData:t,validTo:h.validTo.toString()},y=await p.estimateGas.createOrder(m,{value:h.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Ct));return{orderId:f,orderToSign:h,transaction:{data:p.interface.encodeFunctionData("createOrder",[m]),gasLimit:"0x"+en(y).toString(16),to:p.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}}async function an(e,t,n,r,i={}){const{appDataKeccak256:s,fullAppData:a}=n,{orderId:o,transaction:u,orderToSign:l}=await sn(t,s,r,e.context.chainId,i);Qe("Uploading app-data"),await e.uploadAppData(s,a),Qe("Sending on-chain order transaction");const d=await t.sendTransaction(u);return Qe(`On-chain order transaction sent, txHash: ${d.hash}, order: ${o}`),{txHash:d.hash,orderId:o,orderToSign:l,signature:"",signingScheme:wt.EIP1271}}async function on(e,t,n,r,i={}){const{networkCostsAmount:s="0",signingScheme:a=wt.EIP712}=i,o=$t(r);if(o){const s=r.quoteId;if("number"==typeof s)return an(e,t,n,K({},r,{quoteId:s}),i);throw new Error("quoteId is required for EthFlow orders")}const{quoteId:u=null,owner:l}=r,{appDataKeccak256:d,fullAppData:c}=n,p=e.context.chainId,h=l||await t.getAddress(),f=Gt({chainId:p,from:h,networkCostsAmount:s,isEthFlow:o},r,n.appDataKeccak256);Qe("Signing order...");const{signature:m,signingScheme:y}=await(async()=>{if(a===wt.PRESIGN)return{signature:h,signingScheme:wt.PRESIGN};{const e=await _t.signOrder(f,p,t);return{signature:e.signature,signingScheme:kt[e.signingScheme]}}})(),g=K({},f,{from:h,signature:m,signingScheme:y,quoteId:u,appData:c,appDataHash:d});Qe("Posting order...");const b=await e.sendOrder(g);return Qe(`Order created, id: ${b}`),{orderId:b,signature:m,signingScheme:y,orderToSign:f}}Xt.abi=Yt;var un="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ln(e){var t={exports:{}};return e(t,t.exports),t.exports}var dn={__proto__:null,default:{}},cn=ln(function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:dn.Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function o(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function u(e,t,r,i){for(var s=0,a=0,o=Math.min(e.length,r),u=t;u<o;u++){var l=e.charCodeAt(u)-48;s*=i,a=l>=49?l-49+10:l>=17?l-17+10:l,n(l>=0&&a<i,"Invalid character"),s+=a}return s}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,a,o=0;if("be"===r)for(i=e.length-1,s=0;i>=0;i-=3)this.words[s]|=(a=e[i]|e[i-1]<<8|e[i-2]<<16)<<o&67108863,this.words[s+1]=a>>>26-o&67108863,(o+=24)>=26&&(o-=26,s++);else if("le"===r)for(i=0,s=0;i<e.length;i+=3)this.words[s]|=(a=e[i]|e[i+1]<<8|e[i+2]<<16)<<o&67108863,this.words[s+1]=a>>>26-o&67108863,(o+=24)>=26&&(o-=26,s++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,s=0,a=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=o(e,t,r)<<s,this.words[a]|=67108863&i,s>=18?(s-=18,this.words[a+=1]|=i>>>26):s+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=o(e,t,r)<<s,this.words[a]|=67108863&i,s>=18?(s-=18,this.words[a+=1]|=i>>>26):s+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var s=e.length-n,a=s%r,o=Math.min(s,s-a)+n,l=0,d=n;d<o;d+=r)l=u(e,d,d+r,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==a){var c=1;for(l=u(e,d,e.length,t),d=0;d<a;d++)c*=t;this.imuln(c),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=d}catch(e){i.prototype.inspect=d}else i.prototype.inspect=d;function d(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],s=0|t.words[0],a=i*s,o=a/67108864|0;n.words[0]=67108863&a;for(var u=1;u<r;u++){for(var l=o>>>26,d=67108863&o,c=Math.min(u,t.length-1),p=Math.max(0,u-e.length+1);p<=c;p++)l+=(a=(i=0|e.words[u-p|0])*(s=0|t.words[p])+d)/67108864|0,d=67108863&a;n.words[u]=0|d,o=0|l}return 0!==o?n.words[u]=0|o:n.length--,n._strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,s=0,a=0;a<this.length;a++){var o=this.words[a],u=(16777215&(o<<i|s)).toString(16);s=o>>>24-i&16777215,(i+=2)>=26&&(i-=26,a--),r=0!==s||a!==this.length-1?c[6-u.length]+u+r:u+r}for(0!==s&&(r=s.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var l=p[e],d=h[e];r="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(d).toString(e);r=(f=f.idivn(d)).isZero()?m+r:c[l-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},s&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),s=r||Math.max(1,i);n(i<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,i),a},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,s=0;i<this.length;i++){var a=this.words[i]<<s|r;e[n++]=255&a,n<e.length&&(e[n++]=a>>8&255),n<e.length&&(e[n++]=a>>16&255),6===s?(n<e.length&&(e[n++]=a>>24&255),r=0,s=0):(r=a>>>24,s+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,s=0;i<this.length;i++){var a=this.words[i]<<s|r;e[n--]=255&a,n>=0&&(e[n--]=a>>8&255),n>=0&&(e[n--]=a>>16&255),6===s?(n>=0&&(e[n--]=a>>24&255),r=0,s=0):(r=a>>>24,s+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,s=0;s<r.length;s++)this.words[s]=67108863&(t=(0|n.words[s])+(0|r.words[s])+i),i=t>>>26;for(;0!==i&&s<n.length;s++)this.words[s]=67108863&(t=(0|n.words[s])+i),i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var s=0,a=0;a<r.length;a++)s=(t=(0|n.words[a])-(0|r.words[a])+s)>>26,this.words[a]=67108863&t;for(;0!==s&&a<n.length;a++)s=(t=(0|n.words[a])+s)>>26,this.words[a]=67108863&t;if(0===s&&a<n.length&&n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this.length=Math.max(this.length,a),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,s,a=e.words,o=t.words,u=n.words,l=0,d=0|a[0],c=8191&d,p=d>>>13,h=0|a[1],f=8191&h,m=h>>>13,y=0|a[2],g=8191&y,b=y>>>13,v=0|a[3],w=8191&v,A=v>>>13,T=0|a[4],E=8191&T,I=T>>>13,S=0|a[5],k=8191&S,C=S>>>13,N=0|a[6],_=8191&N,x=N>>>13,M=0|a[7],R=8191&M,P=M>>>13,O=0|a[8],B=8191&O,D=O>>>13,F=0|a[9],L=8191&F,U=F>>>13,G=0|o[0],q=8191&G,H=G>>>13,V=0|o[1],z=8191&V,j=V>>>13,K=0|o[2],W=8191&K,J=K>>>13,Q=0|o[3],Y=8191&Q,X=Q>>>13,Z=0|o[4],$=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],se=8191&ie,ae=ie>>>13,oe=0|o[7],ue=8191&oe,le=oe>>>13,de=0|o[8],ce=8191&de,pe=de>>>13,he=0|o[9],fe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(l+(r=Math.imul(c,q))|0)+((8191&(i=(i=Math.imul(c,H))+Math.imul(p,q)|0))<<13)|0;l=((s=Math.imul(p,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(f,q),i=(i=Math.imul(f,H))+Math.imul(m,q)|0,s=Math.imul(m,H);var ge=(l+(r=r+Math.imul(c,z)|0)|0)+((8191&(i=(i=i+Math.imul(c,j)|0)+Math.imul(p,z)|0))<<13)|0;l=((s=s+Math.imul(p,j)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,q),i=(i=Math.imul(g,H))+Math.imul(b,q)|0,s=Math.imul(b,H),r=r+Math.imul(f,z)|0,i=(i=i+Math.imul(f,j)|0)+Math.imul(m,z)|0,s=s+Math.imul(m,j)|0;var be=(l+(r=r+Math.imul(c,W)|0)|0)+((8191&(i=(i=i+Math.imul(c,J)|0)+Math.imul(p,W)|0))<<13)|0;l=((s=s+Math.imul(p,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(w,q),i=(i=Math.imul(w,H))+Math.imul(A,q)|0,s=Math.imul(A,H),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,j)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,j)|0,r=r+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,s=s+Math.imul(m,J)|0;var ve=(l+(r=r+Math.imul(c,Y)|0)|0)+((8191&(i=(i=i+Math.imul(c,X)|0)+Math.imul(p,Y)|0))<<13)|0;l=((s=s+Math.imul(p,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,q),i=(i=Math.imul(E,H))+Math.imul(I,q)|0,s=Math.imul(I,H),r=r+Math.imul(w,z)|0,i=(i=i+Math.imul(w,j)|0)+Math.imul(A,z)|0,s=s+Math.imul(A,j)|0,r=r+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,s=s+Math.imul(b,J)|0,r=r+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,X)|0;var we=(l+(r=r+Math.imul(c,$)|0)|0)+((8191&(i=(i=i+Math.imul(c,ee)|0)+Math.imul(p,$)|0))<<13)|0;l=((s=s+Math.imul(p,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,q),i=(i=Math.imul(k,H))+Math.imul(C,q)|0,s=Math.imul(C,H),r=r+Math.imul(E,z)|0,i=(i=i+Math.imul(E,j)|0)+Math.imul(I,z)|0,s=s+Math.imul(I,j)|0,r=r+Math.imul(w,W)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(A,W)|0,s=s+Math.imul(A,J)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,X)|0,r=r+Math.imul(f,$)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,ee)|0;var Ae=(l+(r=r+Math.imul(c,ne)|0)|0)+((8191&(i=(i=i+Math.imul(c,re)|0)+Math.imul(p,ne)|0))<<13)|0;l=((s=s+Math.imul(p,re)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(_,q),i=(i=Math.imul(_,H))+Math.imul(x,q)|0,s=Math.imul(x,H),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,j)|0)+Math.imul(C,z)|0,s=s+Math.imul(C,j)|0,r=r+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(I,W)|0,s=s+Math.imul(I,J)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,X)|0,r=r+Math.imul(g,$)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,ee)|0,r=r+Math.imul(f,ne)|0,i=(i=i+Math.imul(f,re)|0)+Math.imul(m,ne)|0,s=s+Math.imul(m,re)|0;var Te=(l+(r=r+Math.imul(c,se)|0)|0)+((8191&(i=(i=i+Math.imul(c,ae)|0)+Math.imul(p,se)|0))<<13)|0;l=((s=s+Math.imul(p,ae)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(R,q),i=(i=Math.imul(R,H))+Math.imul(P,q)|0,s=Math.imul(P,H),r=r+Math.imul(_,z)|0,i=(i=i+Math.imul(_,j)|0)+Math.imul(x,z)|0,s=s+Math.imul(x,j)|0,r=r+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(C,W)|0,s=s+Math.imul(C,J)|0,r=r+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(I,Y)|0,s=s+Math.imul(I,X)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,s=s+Math.imul(b,re)|0,r=r+Math.imul(f,se)|0,i=(i=i+Math.imul(f,ae)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,ae)|0;var Ee=(l+(r=r+Math.imul(c,ue)|0)|0)+((8191&(i=(i=i+Math.imul(c,le)|0)+Math.imul(p,ue)|0))<<13)|0;l=((s=s+Math.imul(p,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,q),i=(i=Math.imul(B,H))+Math.imul(D,q)|0,s=Math.imul(D,H),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,j)|0)+Math.imul(P,z)|0,s=s+Math.imul(P,j)|0,r=r+Math.imul(_,W)|0,i=(i=i+Math.imul(_,J)|0)+Math.imul(x,W)|0,s=s+Math.imul(x,J)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(C,Y)|0,s=s+Math.imul(C,X)|0,r=r+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(I,$)|0,s=s+Math.imul(I,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(A,ne)|0,s=s+Math.imul(A,re)|0,r=r+Math.imul(g,se)|0,i=(i=i+Math.imul(g,ae)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ae)|0,r=r+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,s=s+Math.imul(m,le)|0;var Ie=(l+(r=r+Math.imul(c,ce)|0)|0)+((8191&(i=(i=i+Math.imul(c,pe)|0)+Math.imul(p,ce)|0))<<13)|0;l=((s=s+Math.imul(p,pe)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,q),i=(i=Math.imul(L,H))+Math.imul(U,q)|0,s=Math.imul(U,H),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,j)|0)+Math.imul(D,z)|0,s=s+Math.imul(D,j)|0,r=r+Math.imul(R,W)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(P,W)|0,s=s+Math.imul(P,J)|0,r=r+Math.imul(_,Y)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(x,Y)|0,s=s+Math.imul(x,X)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(C,$)|0,s=s+Math.imul(C,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(I,ne)|0,s=s+Math.imul(I,re)|0,r=r+Math.imul(w,se)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ae)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,le)|0,r=r+Math.imul(f,ce)|0,i=(i=i+Math.imul(f,pe)|0)+Math.imul(m,ce)|0,s=s+Math.imul(m,pe)|0;var Se=(l+(r=r+Math.imul(c,fe)|0)|0)+((8191&(i=(i=i+Math.imul(c,me)|0)+Math.imul(p,fe)|0))<<13)|0;l=((s=s+Math.imul(p,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,j))+Math.imul(U,z)|0,s=Math.imul(U,j),r=r+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,s=s+Math.imul(D,J)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,X)|0,r=r+Math.imul(_,$)|0,i=(i=i+Math.imul(_,ee)|0)+Math.imul(x,$)|0,s=s+Math.imul(x,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(C,ne)|0,s=s+Math.imul(C,re)|0,r=r+Math.imul(E,se)|0,i=(i=i+Math.imul(E,ae)|0)+Math.imul(I,se)|0,s=s+Math.imul(I,ae)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,le)|0,r=r+Math.imul(g,ce)|0,i=(i=i+Math.imul(g,pe)|0)+Math.imul(b,ce)|0,s=s+Math.imul(b,pe)|0;var ke=(l+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((s=s+Math.imul(m,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,W),i=(i=Math.imul(L,J))+Math.imul(U,W)|0,s=Math.imul(U,J),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,X)|0,r=r+Math.imul(R,$)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,ee)|0,r=r+Math.imul(_,ne)|0,i=(i=i+Math.imul(_,re)|0)+Math.imul(x,ne)|0,s=s+Math.imul(x,re)|0,r=r+Math.imul(k,se)|0,i=(i=i+Math.imul(k,ae)|0)+Math.imul(C,se)|0,s=s+Math.imul(C,ae)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(I,ue)|0,s=s+Math.imul(I,le)|0,r=r+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,pe)|0)+Math.imul(A,ce)|0,s=s+Math.imul(A,pe)|0;var Ce=(l+(r=r+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((s=s+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,X))+Math.imul(U,Y)|0,s=Math.imul(U,X),r=r+Math.imul(B,$)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(P,ne)|0,s=s+Math.imul(P,re)|0,r=r+Math.imul(_,se)|0,i=(i=i+Math.imul(_,ae)|0)+Math.imul(x,se)|0,s=s+Math.imul(x,ae)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(C,ue)|0,s=s+Math.imul(C,le)|0,r=r+Math.imul(E,ce)|0,i=(i=i+Math.imul(E,pe)|0)+Math.imul(I,ce)|0,s=s+Math.imul(I,pe)|0;var Ne=(l+(r=r+Math.imul(w,fe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(A,fe)|0))<<13)|0;l=((s=s+Math.imul(A,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,$),i=(i=Math.imul(L,ee))+Math.imul(U,$)|0,s=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,s=s+Math.imul(D,re)|0,r=r+Math.imul(R,se)|0,i=(i=i+Math.imul(R,ae)|0)+Math.imul(P,se)|0,s=s+Math.imul(P,ae)|0,r=r+Math.imul(_,ue)|0,i=(i=i+Math.imul(_,le)|0)+Math.imul(x,ue)|0,s=s+Math.imul(x,le)|0,r=r+Math.imul(k,ce)|0,i=(i=i+Math.imul(k,pe)|0)+Math.imul(C,ce)|0,s=s+Math.imul(C,pe)|0;var _e=(l+(r=r+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(I,fe)|0))<<13)|0;l=((s=s+Math.imul(I,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,s=Math.imul(U,re),r=r+Math.imul(B,se)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(D,se)|0,s=s+Math.imul(D,ae)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(P,ue)|0,s=s+Math.imul(P,le)|0,r=r+Math.imul(_,ce)|0,i=(i=i+Math.imul(_,pe)|0)+Math.imul(x,ce)|0,s=s+Math.imul(x,pe)|0;var xe=(l+(r=r+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((s=s+Math.imul(C,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,se),i=(i=Math.imul(L,ae))+Math.imul(U,se)|0,s=Math.imul(U,ae),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,s=s+Math.imul(D,le)|0,r=r+Math.imul(R,ce)|0,i=(i=i+Math.imul(R,pe)|0)+Math.imul(P,ce)|0,s=s+Math.imul(P,pe)|0;var Me=(l+(r=r+Math.imul(_,fe)|0)|0)+((8191&(i=(i=i+Math.imul(_,me)|0)+Math.imul(x,fe)|0))<<13)|0;l=((s=s+Math.imul(x,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,le))+Math.imul(U,ue)|0,s=Math.imul(U,le),r=r+Math.imul(B,ce)|0,i=(i=i+Math.imul(B,pe)|0)+Math.imul(D,ce)|0,s=s+Math.imul(D,pe)|0;var Re=(l+(r=r+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((s=s+Math.imul(P,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,ce),i=(i=Math.imul(L,pe))+Math.imul(U,ce)|0,s=Math.imul(U,pe);var Pe=(l+(r=r+Math.imul(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((s=s+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Oe=(l+(r=Math.imul(L,fe))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,fe)|0))<<13)|0;return l=((s=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=we,u[5]=Ae,u[6]=Te,u[7]=Ee,u[8]=Ie,u[9]=Se,u[10]=ke,u[11]=Ce,u[12]=Ne,u[13]=_e,u[14]=xe,u[15]=Me,u[16]=Re,u[17]=Pe,u[18]=Oe,0!==l&&(u[19]=l,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,s=0;s<n.length-1;s++){var a=i;i=0;for(var o=67108863&r,u=Math.min(s,t.length-1),l=Math.max(0,s-e.length+1);l<=u;l++){var d=(0|e.words[s-l])*(0|t.words[l]),c=67108863&d;o=67108863&(c=c+o|0),i+=(a=(a=a+(d/67108864|0)|0)+(c>>>26)|0)>>>26,a&=67108863}n.words[s]=o,r=a,a=i}return 0!==r?n.words[s]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?f(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var s=(0|this.words[i])*e,a=(67108863&s)+(67108863&r);r>>=26,r+=s/67108864|0,r+=a>>>26,this.words[i]=67108863&a}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++)t[n]=e.words[n/26|0]>>>n%26&1;return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var s=n.sqr();r<t.length;r++,s=s.sqr())0!==t[r]&&(n=n.mul(s));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t<this.length;t++){var o=this.words[t]&s;this.words[t]=(0|this.words[t])-o<<r|a,a=o>>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var s=e%26,a=Math.min((e-s)/26,this.length),o=67108863^67108863>>>s<<s,u=r;if(i-=a,i=Math.max(0,i),u){for(var l=0;l<a;l++)u.words[l]=this.words[l];u.length=a}if(0===a);else if(this.length>a)for(this.length-=a,l=0;l<this.length;l++)this.words[l]=this.words[l+a];else this.words[0]=0,this.length=1;var d=0;for(l=this.length-1;l>=0&&(0!==d||l>=i);l--){var c=0|this.words[l];this.words[l]=d<<26-s|c>>>s,d=c&o}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;return!(this.length<=r||!(this.words[r]&1<<t))},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r?this:(0!==t&&r++,this.length=Math.min(r,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,s;this._expand(e.length+r);var a=0;for(i=0;i<e.length;i++){s=(0|this.words[i+r])+a;var o=(0|e.words[i])*t;a=((s-=67108863&o)>>26)-(o/67108864|0),this.words[i+r]=67108863&s}for(;i<this.length-r;i++)a=(s=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&s;if(0===a)return this._strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n,r=this.clone(),s=e,a=0|s.words[s.length-1];0!=(n=26-this._countBits(a))&&(s=s.ushln(n),r.iushln(n),a=0|s.words[s.length-1]);var o,u=r.length-s.length;if("mod"!==t){(o=new i(null)).length=u+1,o.words=new Array(o.length);for(var l=0;l<o.length;l++)o.words[l]=0}var d=r.clone()._ishlnsubmul(s,1,u);0===d.negative&&(r=d,o&&(o.words[u]=1));for(var c=u-1;c>=0;c--){var p=67108864*(0|r.words[s.length+c])+(0|r.words[s.length+c-1]);for(p=Math.min(p/a|0,67108863),r._ishlnsubmul(s,p,c);0!==r.negative;)p--,r.negative=0,r._ishlnsubmul(s,1,c),r.isZero()||(r.negative^=1);o&&(o.words[c]=p)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(s=o.div.neg()),"div"!==t&&(a=o.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:s,mod:a}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(s=o.div.neg()),{div:s,mod:o.mod}):0!=(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(a=o.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:o.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,a,o},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),s=n.cmp(r);return s<0||1===i&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,s=this.length-1;s>=0;s--)i=(r*i+(0|this.words[s]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var s=(0|this.words[i])+67108864*r;this.words[i]=s/e|0,r=s%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new i(1),a=new i(0),o=new i(0),u=new i(1),l=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++l;for(var d=r.clone(),c=t.clone();!t.isZero();){for(var p=0,h=1;0==(t.words[0]&h)&&p<26;++p,h<<=1);if(p>0)for(t.iushrn(p);p-- >0;)(s.isOdd()||a.isOdd())&&(s.iadd(d),a.isub(c)),s.iushrn(1),a.iushrn(1);for(var f=0,m=1;0==(r.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(r.iushrn(f);f-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(d),u.isub(c)),o.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),s.isub(o),a.isub(u)):(r.isub(t),o.isub(s),u.isub(a))}return{a:o,b:u,gcd:r.iushln(l)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,a=new i(1),o=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var l=0,d=1;0==(t.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(t.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var c=0,p=1;0==(r.words[0]&p)&&c<26;++c,p<<=1);if(c>0)for(r.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(o)):(r.isub(t),o.isub(a))}return(s=0===t.cmpn(1)?a:o).cmpn(0)<0&&s.iadd(e),s},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var s=t;t=n,n=s}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var s=i,a=r;0!==s&&a<this.length;a++){var o=0|this.words[a];s=(o+=s)>>>26,this.words[a]=o&=67108863}return 0!==s&&(this.words[a]=s,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new I(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function A(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(w,v),w.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&n,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(a&n)<<4|s>>>22,s=a}e.words[i-10]=s>>>=22,e.length-=0===s&&e.length>10?10:9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];e.words[n]=67108863&(t+=977*r),t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(A,v),r(T,v),r(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new A;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},I.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},I.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var s=this.m.subn(1),a=0;!s.isZero()&&0===s.andln(1);)a++,s.iushrn(1);n(!s.isZero());var o=new i(1).toRed(this),u=o.redNeg(),l=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,l).cmp(u);)d.redIAdd(u);for(var c=this.pow(d,s),p=this.pow(e,s.addn(1).iushrn(1)),h=this.pow(e,s),f=a;0!==h.cmp(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();n(y<f);var g=this.pow(c,new i(1).iushln(f-y-1));p=p.redMul(g),c=g.redSqr(),h=h.redMul(c),f=y}return p},I.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},I.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var s=n[0],a=0,o=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var l=t.words[r],d=u-1;d>=0;d--){var c=l>>d&1;s!==n[0]&&(s=this.sqr(s)),0!==c||0!==a?(a<<=1,a|=c,(4==++o||0===r&&0===d)&&(s=this.mul(s,n[a]),o=0,a=0)):o=0}u=26}return s},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new S(e)},r(S,I),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=n.isub(r).iushrn(this.shift),a=s;return s.cmp(this.m)>=0?a=s.isub(this.m):s.cmpn(0)<0&&(a=s.iadd(this.m)),a._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,un)});let pn=!1,hn=!1;const fn={debug:1,default:2,info:2,warning:3,error:4,off:5};let mn=fn.default,yn=null;const gn=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var bn,vn;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(bn||(bn={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(vn||(vn={}));const wn="0123456789abcdef";class An{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==fn[n]&&this.throwArgumentError("invalid log level name","logLevel",e),mn>fn[n]||console.log.apply(console,t)}debug(...e){this._log(An.levels.DEBUG,e)}info(...e){this._log(An.levels.INFO,e)}warn(...e){this._log(An.levels.WARNING,e)}makeError(e,t,n){if(hn)return this.makeError("censored error",t,{});t||(t=An.errors.UNKNOWN_ERROR),n||(n={});const r=[];Object.keys(n).forEach(e=>{const t=n[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=wn[t[e]>>4],n+=wn[15&t[e]];r.push(e+"=Uint8Array(0x"+n+")")}else r.push(e+"="+JSON.stringify(t))}catch(t){r.push(e+"="+JSON.stringify(n[e].toString()))}}),r.push(`code=${t}`),r.push(`version=${this.version}`);const i=e;let s="";switch(t){case vn.NUMERIC_FAULT:{s="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":s+="-"+t;break;case"negative-power":case"negative-width":s+="-unsupported";break;case"unbound-bitwise-result":s+="-unbound-result"}break}case vn.CALL_EXCEPTION:case vn.INSUFFICIENT_FUNDS:case vn.MISSING_NEW:case vn.NONCE_EXPIRED:case vn.REPLACEMENT_UNDERPRICED:case vn.TRANSACTION_REPLACED:case vn.UNPREDICTABLE_GAS_LIMIT:s=t}s&&(e+=" [ See: https://links.ethers.org/v5-errors-"+s+" ]"),r.length&&(e+=" ("+r.join(", ")+")");const a=new Error(e);return a.reason=i,a.code=t,Object.keys(n).forEach(function(e){a[e]=n[e]}),a}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(e,t,n){return this.throwError(e,An.errors.INVALID_ARGUMENT,{argument:t,value:n})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(e){gn&&this.throwError("platform missing String.prototype.normalize",An.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:gn})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,An.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,An.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,n){n=n?": "+n:"",e<t&&this.throwError("missing argument"+n,An.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+n,An.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",An.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",An.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",An.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return yn||(yn=new An("logger/5.8.0")),yn}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",An.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),pn){if(!e)return;this.globalLogger().throwError("error censorship permanent",An.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}hn=!!e,pn=!!t}static setLogLevel(e){const t=fn[e.toLowerCase()];null!=t?mn=t:An.globalLogger().warn("invalid log level - "+e)}static from(e){return new An(e)}}An.errors=vn,An.levels=bn;const Tn=new An("bytes/5.8.0");function En(e){return!!e.toHexString}function In(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return In(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Sn(e){return Mn(e)&&!(e.length%2)||Cn(e)}function kn(e){return"number"==typeof e&&e==e&&e%1==0}function Cn(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!kn(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!kn(n)||n<0||n>=256)return!1}return!0}function Nn(e,t){if(t||(t={}),"number"==typeof e){Tn.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),In(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),En(e)&&(e=e.toHexString()),Mn(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":Tn.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return In(new Uint8Array(r))}return Cn(e)?In(new Uint8Array(e)):Tn.throwArgumentError("invalid arrayify value","value",e)}function _n(e){const t=e.map(e=>Nn(e)),n=t.reduce((e,t)=>e+t.length,0),r=new Uint8Array(n);return t.reduce((e,t)=>(r.set(t,e),e+t.length),0),In(r)}function xn(e){let t=Nn(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}function Mn(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Rn="0123456789abcdef";function Pn(e,t){if(t||(t={}),"number"==typeof e){Tn.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Rn[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),En(e))return e.toHexString();if(Mn(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Tn.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Cn(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=Rn[(240&r)>>4]+Rn[15&r]}return t}return Tn.throwArgumentError("invalid hexlify value","value",e)}function On(e){if("string"!=typeof e)e=Pn(e);else if(!Mn(e)||e.length%2)return null;return(e.length-2)/2}function Bn(e,t,n){return"string"!=typeof e?e=Pn(e):(!Mn(e)||e.length%2)&&Tn.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function Dn(e){let t="0x";return e.forEach(e=>{t+=Pn(e).substring(2)}),t}function Fn(e){const t=function(e){"string"!=typeof e&&(e=Pn(e)),Mn(e)||Tn.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Pn(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Ln(e,t){for("string"!=typeof e?e=Pn(e):Mn(e)||Tn.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Tn.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function Un(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Sn(e)){let n=Nn(e);64===n.length?(t.v=27+(n[32]>>7),n[32]&=127,t.r=Pn(n.slice(0,32)),t.s=Pn(n.slice(32,64))):65===n.length?(t.r=Pn(n.slice(0,32)),t.s=Pn(n.slice(32,64)),t.v=n[64]):Tn.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Tn.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(n[32]|=128),t._vs=Pn(n.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const n=function(e,t){(e=Nn(e)).length>t&&Tn.throwArgumentError("value out of range","value",arguments[0]);const n=new Uint8Array(t);return n.set(e,t-e.length),In(n)}(Nn(t._vs),32);t._vs=Pn(n);const r=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=r:t.recoveryParam!==r&&Tn.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;const i=Pn(n);null==t.s?t.s=i:t.s!==i&&Tn.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Tn.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Tn.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Mn(t.r)?t.r=Ln(t.r,32):Tn.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Mn(t.s)?t.s=Ln(t.s,32):Tn.throwArgumentError("signature missing or invalid s","signature",e);const n=Nn(t.s);n[0]>=128&&Tn.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(n[0]|=128);const r=Pn(n);t._vs&&(Mn(t._vs)||Tn.throwArgumentError("signature invalid _vs","signature",e),t._vs=Ln(t._vs,32)),null==t._vs?t._vs=r:t._vs!==r&&Tn.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Gn(e){return Pn(_n([(e=Un(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const qn="bignumber/5.8.0";var Hn=cn.BN;const Vn=new An(qn),zn={},jn=9007199254740991;let Kn=!1;class Wn{constructor(e,t){e!==zn&&Vn.throwError("cannot call constructor directly; use BigNumber.from",An.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Qn(Yn(this).fromTwos(e))}toTwos(e){return Qn(Yn(this).toTwos(e))}abs(){return"-"===this._hex[0]?Wn.from(this._hex.substring(1)):this}add(e){return Qn(Yn(this).add(Yn(e)))}sub(e){return Qn(Yn(this).sub(Yn(e)))}div(e){return Wn.from(e).isZero()&&Xn("division-by-zero","div"),Qn(Yn(this).div(Yn(e)))}mul(e){return Qn(Yn(this).mul(Yn(e)))}mod(e){const t=Yn(e);return t.isNeg()&&Xn("division-by-zero","mod"),Qn(Yn(this).umod(t))}pow(e){const t=Yn(e);return t.isNeg()&&Xn("negative-power","pow"),Qn(Yn(this).pow(t))}and(e){const t=Yn(e);return(this.isNegative()||t.isNeg())&&Xn("unbound-bitwise-result","and"),Qn(Yn(this).and(t))}or(e){const t=Yn(e);return(this.isNegative()||t.isNeg())&&Xn("unbound-bitwise-result","or"),Qn(Yn(this).or(t))}xor(e){const t=Yn(e);return(this.isNegative()||t.isNeg())&&Xn("unbound-bitwise-result","xor"),Qn(Yn(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&Xn("negative-width","mask"),Qn(Yn(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&Xn("negative-width","shl"),Qn(Yn(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&Xn("negative-width","shr"),Qn(Yn(this).shrn(e))}eq(e){return Yn(this).eq(Yn(e))}lt(e){return Yn(this).lt(Yn(e))}lte(e){return Yn(this).lte(Yn(e))}gt(e){return Yn(this).gt(Yn(e))}gte(e){return Yn(this).gte(Yn(e))}isNegative(){return"-"===this._hex[0]}isZero(){return Yn(this).isZero()}toNumber(){try{return Yn(this).toNumber()}catch(e){Xn("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Vn.throwError("this platform does not support BigInt",An.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Kn||(Kn=!0,Vn.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Vn.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",An.errors.UNEXPECTED_ARGUMENT,{})),Yn(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof Wn)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new Wn(zn,Jn(e)):e.match(/^-?[0-9]+$/)?new Wn(zn,Jn(new Hn(e))):Vn.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&Xn("underflow","BigNumber.from",e),(e>=jn||e<=-jn)&&Xn("overflow","BigNumber.from",e),Wn.from(String(e));const t=e;if("bigint"==typeof t)return Wn.from(t.toString());if(Cn(t))return Wn.from(Pn(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return Wn.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Mn(e)||"-"===e[0]&&Mn(e.substring(1))))return Wn.from(e)}return Vn.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Jn(e){if("string"!=typeof e)return Jn(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Vn.throwArgumentError("invalid hex","value",e),"0x00"===(e=Jn(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function Qn(e){return Wn.from(Jn(e))}function Yn(e){const t=Wn.from(e).toHexString();return new Hn("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function Xn(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),Vn.throwError(e,An.errors.NUMERIC_FAULT,r)}const Zn=new An(qn),$n={},er=Wn.from(0),tr=Wn.from(-1);function nr(e,t,n,r){const i={fault:t,operation:n};return void 0!==r&&(i.value=r),Zn.throwError(e,An.errors.NUMERIC_FAULT,i)}let rr="0";for(;rr.length<256;)rr+=rr;function ir(e){if("number"!=typeof e)try{e=Wn.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+rr.substring(0,e):Zn.throwArgumentError("invalid decimal size","decimals",e)}function sr(e,t){null==t&&(t=0);const n=ir(t),r=(e=Wn.from(e)).lt(er);r&&(e=e.mul(tr));let i=e.mod(n).toString();for(;i.length<n.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const s=e.div(n).toString();return e=1===n.length?s:s+"."+i,r&&(e="-"+e),e}function ar(e,t){null==t&&(t=0);const n=ir(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||Zn.throwArgumentError("invalid decimal value","value",e);const r="-"===e.substring(0,1);r&&(e=e.substring(1)),"."===e&&Zn.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&Zn.throwArgumentError("too many decimal points","value",e);let s=i[0],a=i[1];for(s||(s="0"),a||(a="0");"0"===a[a.length-1];)a=a.substring(0,a.length-1);for(a.length>n.length-1&&nr("fractional component exceeds decimals","underflow","parseFixed"),""===a&&(a="0");a.length<n.length-1;)a+="0";const o=Wn.from(s),u=Wn.from(a);let l=o.mul(n).add(u);return r&&(l=l.mul(tr)),l}class or{constructor(e,t,n,r){e!==$n&&Zn.throwError("cannot use FixedFormat constructor; use FixedFormat.from",An.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=n,this.decimals=r,this.name=(t?"":"u")+"fixed"+String(n)+"x"+String(r),this._multiplier=ir(r),Object.freeze(this)}static from(e){if(e instanceof or)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,n=128,r=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||Zn.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],n=parseInt(i[2]),r=parseInt(i[3])}else if(e){const i=(t,n,r)=>null==e[t]?r:(typeof e[t]!==n&&Zn.throwArgumentError("invalid fixed format ("+t+" not "+n+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),n=i("width","number",n),r=i("decimals","number",r)}return n%8&&Zn.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",n),r>80&&Zn.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",r),new or($n,t,n,r)}}class ur{constructor(e,t,n,r){e!==$n&&Zn.throwError("cannot use FixedNumber constructor; use FixedNumber.from",An.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=r,this._hex=t,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&Zn.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.add(n),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.sub(n),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=ur.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return this.isNegative()&&n&&(t=t.subUnsafe(lr.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=ur.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return!this.isNegative()&&n&&(t=t.addUnsafe(lr.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&Zn.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const n=ur.from("1"+rr.substring(0,e),this.format),r=dr.toFormat(this.format);return this.mulUnsafe(n).addUnsafe(r).floor().divUnsafe(n)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&Zn.throwArgumentError("invalid byte width","width",e),Ln(Wn.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return ur.fromString(this._value,e)}static fromValue(e,t,n){return null!=n||null==t||function(e){return null!=e&&(Wn.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Mn(e)||"bigint"==typeof e||Cn(e))}(t)||(n=t,t=null),null==t&&(t=0),null==n&&(n="fixed"),ur.fromString(sr(e,t),or.from(n))}static fromString(e,t){null==t&&(t="fixed");const n=or.from(t),r=ar(e,n.decimals);!n.signed&&r.lt(er)&&nr("unsigned value cannot be negative","overflow","value",e);let i=null;n.signed?i=r.toTwos(n.width).toHexString():(i=r.toHexString(),i=Ln(i,n.width/8));const s=sr(r,n.decimals);return new ur($n,i,s,n)}static fromBytes(e,t){null==t&&(t="fixed");const n=or.from(t);if(Nn(e).length>n.width/8)throw new Error("overflow");let r=Wn.from(e);n.signed&&(r=r.fromTwos(n.width));const i=r.toTwos((n.signed?0:1)+n.width).toHexString(),s=sr(r,n.decimals);return new ur($n,i,s,n)}static from(e,t){if("string"==typeof e)return ur.fromString(e,t);if(Cn(e))return ur.fromBytes(e,t);try{return ur.fromValue(e,0,t)}catch(e){if(e.code!==An.errors.INVALID_ARGUMENT)throw e}return Zn.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const lr=ur.from(1),dr=ur.from("0.5");var cr=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const pr=new An("properties/5.8.0");function hr(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function fr(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function mr(e){return cr(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function yr(e,t){e&&"object"==typeof e||pr.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(n=>{t[n]||pr.throwArgumentError("invalid object key - "+n,"transaction:"+n,e)})}function gr(e){const t={};for(const n in e)t[n]=e[n];return t}const br={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function vr(e){if(null==e||br[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!vr(r))return!1}return!0}return pr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function wr(e){if(vr(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Ar(e)));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&hr(t,n,Ar(r))}return t}return pr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Ar(e){return wr(e)}class Tr{constructor(e){for(const t in e)this[t]=Ar(e[t])}}const Er=new An("abstract-provider/5.8.0");class Ir extends Tr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Sr{constructor(){Er.checkAbstract(new.target,Sr),hr(this,"_isProvider",!0)}getFeeData(){return e=this,n=function*(){const{block:e,gasPrice:t}=yield mr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=Wn.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(r,i){function s(e){try{o(n.next(e))}catch(e){i(e)}}function a(e){try{o(n.throw(e))}catch(e){i(e)}}function o(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,a)}o((n=n.apply(e,[])).next())});var e,t,n}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const kr=new An("networks/5.8.0");function Cr(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const s=new t.PocketProvider(e,n.pocket);s.network&&-1===i.indexOf(s.network.name)&&r.push(s)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],s=new t.AnkrProvider(e,n.ankr);s.network&&-1===i.indexOf(s.network.name)&&r.push(s)}catch(e){}if(t.QuickNodeProvider&&"-"!==n.quicknode)try{r.push(new t.QuickNodeProvider(e,n.quicknode))}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return Cr(e)},t}function Nr(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return Nr(e,t)},n}const _r={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Cr("homestead")},xr={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Cr("ropsten")},Mr={chainId:63,name:"classicMordor",_defaultProvider:Nr("https://www.ethercluster.com/mordor","classicMordor")},Rr={unspecified:{chainId:0,name:"unspecified"},homestead:_r,mainnet:_r,morden:{chainId:2,name:"morden"},ropsten:xr,testnet:xr,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Cr("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Cr("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Cr("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Cr("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Cr("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:Nr("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Mr,classicTestnet:Mr,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Nr("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Cr("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Cr("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Cr("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Pr(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return Nn(t)}function Or(e){e=Nn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}class Br{constructor(e){hr(this,"alphabet",e),hr(this,"base",e.length),hr(this,"_alphabetMap",{}),hr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Nn(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return Nn(new Uint8Array(t.reverse()))}}new Br("abcdefghijklmnopqrstuvwxyz234567");const Dr=new Br("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Fr=/*#__PURE__*/Wn.from(-1),Lr=/*#__PURE__*/Wn.from(0),Ur=/*#__PURE__*/Wn.from(1),Gr=/*#__PURE__*/Wn.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var qr=ln(function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?r=un:i&&(r=self);var s=!r.JS_SHA3_NO_COMMON_JS&&e.exports,a=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,o="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],d=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],c=[224,256,384,512],p=[128,256],h=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!a||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new x(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new x(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,s){return T["cshake"+e].update(t,r,i,s)[n]()}},b=function(e,t,n){return function(t,r,i,s){return T["kmac"+e].update(t,r,i,s)[n]()}},v=function(e,t,n,r){for(var i=0;i<h.length;++i){var s=h[i];e[s]=t(n,r,s)}return e},w=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new x(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},A=[{name:"keccak",padding:[1,256,65536,16777216],bits:c,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:c,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:p,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new x(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:p,createMethod:function(e,t){var n=f[e],r=g(e,0,"hex");return r.create=function(r,i,s){return i||s?new x(e,t,r).bytepad([i,s],n):T["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:p,createMethod:function(e,t){var n=f[e],r=b(e,0,"hex");return r.create=function(r,i,s){return new M(e,t,i).bytepad(["KMAC",s],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],T={},E=[],I=0;I<A.length;++I)for(var S=A[I],k=S.bits,C=0;C<k.length;++C){var N=S.name+"_"+k[C];if(E.push(N),T[N]=S.createMethod(k[C],S.padding),"sha3"!==S.name){var _=S.name+k[C];E.push(_),T[_]=T[N]}}function x(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function M(e,t,n){x.call(this,e,t,n)}x.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,s,o=this.blocks,u=this.byteCount,d=e.length,c=this.blockCount,p=0,h=this.s;p<d;){if(this.reset)for(this.reset=!1,o[0]=this.block,i=1;i<c+1;++i)o[i]=0;if(n)for(i=this.start;p<d&&i<u;++p)o[i>>2]|=e[p]<<l[3&i++];else for(i=this.start;p<d&&i<u;++p)(s=e.charCodeAt(p))<128?o[i>>2]|=s<<l[3&i++]:s<2048?(o[i>>2]|=(192|s>>6)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]):s<55296||s>=57344?(o[i>>2]|=(224|s>>12)<<l[3&i++],o[i>>2]|=(128|s>>6&63)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]):(s=65536+((1023&s)<<10|1023&e.charCodeAt(++p)),o[i>>2]|=(240|s>>18)<<l[3&i++],o[i>>2]|=(128|s>>12&63)<<l[3&i++],o[i>>2]|=(128|s>>6&63)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=o[c],i=0;i<c;++i)h[i]^=o[i];R(h),this.reset=!0}else this.start=i}return this},x.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},x.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0;if(n)i=e.length;else for(var s=0;s<e.length;++s){var o=e.charCodeAt(s);o<128?i+=1:o<2048?i+=2:o<55296||o>=57344?i+=3:(o=65536+((1023&o)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},x.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=[];return i.length=t-n%t,this.update(i),this},x.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];R(r)}},x.prototype.toString=x.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,s=0,a=0,u="";a<r;){for(s=0;s<t&&a<r;++s,++a)u+=o[(e=n[s])>>4&15]+o[15&e]+o[e>>12&15]+o[e>>8&15]+o[e>>20&15]+o[e>>16&15]+o[e>>28&15]+o[e>>24&15];a%t==0&&(R(n),s=0)}return i&&(u+=o[(e=n[s])>>4&15]+o[15&e],i>1&&(u+=o[e>>12&15]+o[e>>8&15]),i>2&&(u+=o[e>>20&15]+o[e>>16&15])),u},x.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,s=0,a=0,o=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(o);for(var u=new Uint32Array(e);a<r;){for(s=0;s<t&&a<r;++s,++a)u[a]=n[s];a%t==0&&R(n)}return i&&(u[s]=n[s],e=e.slice(0,o)),e},x.prototype.buffer=x.prototype.arrayBuffer,x.prototype.digest=x.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,s=this.extraBytes,a=0,o=0,u=[];o<i;){for(a=0;a<n&&o<i;++a,++o)u[e=o<<2]=255&(t=r[a]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;o%n==0&&R(r)}return s&&(u[e=o<<2]=255&(t=r[a]),s>1&&(u[e+1]=t>>8&255),s>2&&(u[e+2]=t>>16&255)),u},(M.prototype=new x).finalize=function(){return this.encode(this.outputBits,!0),x.prototype.finalize.call(this)};var R=function(e){var t,n,r,i,s,a,o,u,l,c,p,h,f,m,y,g,b,v,w,A,T,E,I,S,k,C,N,_,x,M,R,P,O,B,D,F,L,U,G,q,H,V,z,j,K,W,J,Q,Y,X,Z,$,ee,te,ne,re,ie,se,ae,oe,ue,le,de;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],s=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],c=e[6]^e[16]^e[26]^e[36]^e[46],p=e[7]^e[17]^e[27]^e[37]^e[47],n=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((o=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(a=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|o>>>31),e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,n=s^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,n=o^(p<<1|c>>>31),e[4]^=t=a^(c<<1|p>>>31),e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,n=l^(f<<1|h>>>31),e[6]^=t=u^(h<<1|f>>>31),e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,n=p^(s<<1|i>>>31),e[8]^=t=c^(i<<1|s>>>31),e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,y=e[1],W=e[11]<<4|e[10]>>>28,J=e[10]<<4|e[11]>>>28,_=e[20]<<3|e[21]>>>29,x=e[21]<<3|e[20]>>>29,oe=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,V=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,M=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,de=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,w=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,S=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,A=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,j=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,N=e[19]<<20|e[18]>>>12,se=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,q=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,I=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&w,e[10]=S^~C&_,e[11]=k^~N&x,e[20]=B^~F&U,e[21]=D^~L&G,e[30]=j^~W&Q,e[31]=K^~J&Y,e[40]=te^~re&se,e[41]=ne^~ie&ae,e[2]=g^~v&A,e[3]=b^~w&T,e[12]=C^~_&M,e[13]=N^~x&R,e[22]=F^~U&q,e[23]=L^~G&H,e[32]=W^~Q&X,e[33]=J^~Y&Z,e[42]=re^~se&oe,e[43]=ie^~ae&ue,e[4]=v^~A&E,e[5]=w^~T&I,e[14]=_^~M&P,e[15]=x^~R&O,e[24]=U^~q&V,e[25]=G^~H&z,e[34]=Q^~X&$,e[35]=Y^~Z&ee,e[44]=se^~oe&le,e[45]=ae^~ue&de,e[6]=A^~E&m,e[7]=T^~I&y,e[16]=M^~P&S,e[17]=R^~O&k,e[26]=q^~V&B,e[27]=H^~z&D,e[36]=X^~$&j,e[37]=Z^~ee&K,e[46]=oe^~le&te,e[47]=ue^~de&ne,e[8]=E^~m&g,e[9]=I^~y&b,e[18]=P^~S&C,e[19]=O^~k&N,e[28]=V^~B&F,e[29]=z^~D&L,e[38]=$^~j&W,e[39]=ee^~K&J,e[48]=le^~te&re,e[49]=de^~ne&ie,e[0]^=d[r],e[1]^=d[r+1]};if(s)e.exports=T;else for(I=0;I<E.length;++I)r[E[I]]=T[E[I]]}()}),Hr=qr;function Vr(e){return"0x"+Hr.keccak_256(Nn(e))}const zr=new An("strings/5.8.0");var jr,Kr;function Wr(e,t,n,r,i){if(e===Kr.BAD_PREFIX||e===Kr.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===Kr.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(jr||(jr={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Kr||(Kr={}));const Jr=Object.freeze({error:function(e,t,n,r,i){return zr.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:Wr,replace:function(e,t,n,r,i){return e===Kr.OVERLONG?(r.push(i),0):(r.push(65533),Wr(e,t,n))}});function Qr(e,t){null==t&&(t=Jr.error),e=Nn(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let s=null,a=null;if(192==(224&i))s=1,a=127;else if(224==(240&i))s=2,a=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?Kr.UNEXPECTED_CONTINUE:Kr.BAD_PREFIX,r-1,e,n);continue}s=3,a=65535}if(r-1+s>=e.length){r+=t(Kr.OVERRUN,r-1,e,n);continue}let o=i&(1<<8-s-1)-1;for(let i=0;i<s;i++){let i=e[r];if(128!=(192&i)){r+=t(Kr.MISSING_CONTINUE,r,e,n),o=null;break}o=o<<6|63&i,r++}null!==o&&(o>1114111?r+=t(Kr.OUT_OF_RANGE,r-1-s,e,n,o):o>=55296&&o<=57343?r+=t(Kr.UTF16_SURROGATE,r-1-s,e,n,o):o<=a?r+=t(Kr.OVERLONG,r-1-s,e,n,o):n.push(o))}return n}function Yr(e,t=jr.current){t!=jr.current&&(zr.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const s=65536+((1023&r)<<10)+(1023&i);n.push(s>>18|240),n.push(s>>12&63|128),n.push(s>>6&63|128),n.push(63&s|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return Nn(n)}function Xr(e,t){return Qr(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function Zr(e){return Vr(Yr(e))}const $r="hash/5.8.0";function ei(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)})};return i(e,t),n}function ti(e){return 1&e?~e>>1:e>>1}function ni(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function ri(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=ti(t());return n}function ii(e,t){let n=ni(e(),e),r=e(),i=ni(r,e),s=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<s[e];t++)n.push(i[e]+t);return t?n.map(e=>t[e]):n}function si(e,t,n){let r=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)ri(e,n).forEach((e,t)=>r[t].push(e));return r}function ai(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return ei(si(i.length,1+e,t).map((e,t)=>{const s=e[0],a=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*r;return[s+t*n,a.map(e=>e+i)]})}))}function oi(e,t){return si(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const ui=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,s=[0,1];for(let e=1;e<r;e++)s.push(i+=n());let a=n(),o=t;t+=a;let u=0,l=0;function d(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const c=Math.pow(2,31),p=c>>>1,h=p>>1,f=c-1;let m=0;for(let e=0;e<31;e++)m=m<<1|d();let y=[],g=0,b=c;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<s[r]?n=r:t=r}if(0==t)break;y.push(t);let a=g+Math.floor(b*s[t]/i),o=g+Math.floor(b*s[t+1]/i)-1;for(;0==((a^o)&p);)m=m<<1&f|d(),a=a<<1&f,o=o<<1&f|1;for(;a&~o&h;)m=m&p|m<<1&f>>>1|d(),a=a<<1^p,o=(o^p)<<1|p|1;g=a,b=1+o-a}let v=r-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[o++]<<16|e[o++]<<8|e[o++]);case 2:return v+256+(e[o++]<<8|e[o++]);case 1:return v+e[o++];default:return t-1}})}(Pr("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=="))),li=new Set(ii(ui)),di=new Set(ii(ui)),ci=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(ai(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(oi(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(ei(t))}(ui),pi=function(e){let t=ii(e).sort((e,t)=>e-t);return function n(){let r=[];for(;;){let i=ii(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort((e,t)=>t.set.size-e.set.size);let i=e(),s=i%3;i=i/3|0;let a=!!(1&i);return i>>=1,{branches:r,valid:s,fe0f:a,save:1==i,check:2==i}}()}(ui),hi=45,fi=95;function mi(e){return function(e,t=jr.current){return Qr(Yr(e,t))}(e)}function yi(e){return e.filter(e=>65039!=e)}function gi(e){for(let t of e.split(".")){let e=mi(t);try{for(let t=e.lastIndexOf(fi)-1;t>=0;t--)if(e[t]!==fi)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===hi&&e[3]===hi)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function bi(e,t){var n;let r,i,s=pi,a=[],o=e.length;for(t&&(t.length=0);o;){let u=e[--o];if(s=null===(n=s.branches.find(e=>e.set.has(u)))||void 0===n?void 0:n.node,!s)break;if(s.save)i=u;else if(s.check&&u===i)break;a.push(u),s.fe0f&&(a.push(65039),o>0&&65039==e[o-1]&&o--),s.valid&&(r=a.slice(),2==s.valid&&r.splice(1,1),t&&t.push(...e.slice(o).reverse()),e.length=o)}return r}const vi=new An($r),wi=new Uint8Array(32);function Ai(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Ti(e){const t=Yr(function(e){return gi(function(e,t){let n=mi(e).reverse(),r=[];for(;n.length;){let e=bi(n);if(e){r.push(...t(e));continue}let i=n.pop();if(li.has(i)){r.push(i);continue}if(di.has(i))continue;let s=ci[i];if(!s)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...s)}return gi(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,yi))}(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++)46===t[e]&&(n.push(Ai(t.slice(r,e))),r=e+1);if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(Ai(t.slice(r))),n}function Ei(e){"string"!=typeof e&&vi.throwArgumentError("invalid ENS name; not a string","name",e);let t=wi;const n=Ti(e);for(;n.length;)t=Vr(_n([t,Vr(n.pop())]));return Pn(t)}wi.fill(0);const Ii=new An("rlp/5.8.0");function Si(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function ki(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function Ci(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Ci(e))}),t.length<=55)return t.unshift(192+t.length),t;const n=Si(t.length);return n.unshift(247+n.length),n.concat(t)}Sn(e)||Ii.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Nn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=Si(t.length);return n.unshift(183+n.length),n.concat(t)}function Ni(e){return Pn(Ci(e))}function _i(e,t,n,r){const i=[];for(;n<t+1+r;){const s=xi(e,n);i.push(s.result),(n+=s.consumed)>t+1+r&&Ii.throwError("child data too short",An.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function xi(e,t){if(0===e.length&&Ii.throwError("data too short",An.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&Ii.throwError("data short segment too short",An.errors.BUFFER_OVERRUN,{});const r=ki(e,t+1,n);return t+1+n+r>e.length&&Ii.throwError("data long segment too short",An.errors.BUFFER_OVERRUN,{}),_i(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&Ii.throwError("data array too short",An.errors.BUFFER_OVERRUN,{}),_i(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&Ii.throwError("data array too short",An.errors.BUFFER_OVERRUN,{});const r=ki(e,t+1,n);return t+1+n+r>e.length&&Ii.throwError("data array too short",An.errors.BUFFER_OVERRUN,{}),{consumed:1+n+r,result:Pn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;return t+1+n>e.length&&Ii.throwError("data too short",An.errors.BUFFER_OVERRUN,{}),{consumed:1+n,result:Pn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Pn(e[t])}}function Mi(e){const t=Nn(e),n=xi(t,0);return n.consumed!==t.length&&Ii.throwArgumentError("invalid rlp data","data",e),n.result}const Ri=new An("address/5.8.0");function Pi(e){Mn(e,20)||Ri.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=Nn(Vr(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Oi={};for(let e=0;e<10;e++)Oi[String(e)]=String(e);for(let e=0;e<26;e++)Oi[String.fromCharCode(65+e)]=String(10+e);const Bi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Di(e){let t=null;if("string"!=typeof e&&Ri.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Pi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ri.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>Oi[e]).join("");for(;t.length>=Bi;){let e=t.substring(0,Bi);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}(e)&&Ri.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new Hn(n,36).toString(16);t.length<40;)t="0"+t;t=Pi("0x"+t)}else Ri.throwArgumentError("invalid address","address",e);var n;return t}function Fi(e){let t=null;try{t=Di(e.from)}catch(t){Ri.throwArgumentError("missing from address","transaction",e)}return Di(Bn(Vr(Ni([t,xn(Nn(Wn.from(e.nonce).toHexString()))])),12))}const Li=new An($r),Ui=new Uint8Array(32);Ui.fill(0);const Gi=Wn.from(-1),qi=Wn.from(0),Hi=Wn.from(1),Vi=Wn.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),zi=Ln(Hi.toHexString(),32),ji=Ln(qi.toHexString(),32),Ki={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Wi=["name","version","chainId","verifyingContract","salt"];function Ji(e){return function(t){return"string"!=typeof t&&Li.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Qi={name:Ji("name"),version:Ji("version"),chainId:function(e){try{return Wn.from(e).toString()}catch(e){}return Li.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Di(e).toLowerCase()}catch(e){}return Li.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Nn(e);if(32!==t.length)throw new Error("bad length");return Pn(t)}catch(e){}return Li.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Yi(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&Li.throwArgumentError("invalid numeric width","type",e);const i=Vi.mask(n?r-1:r),s=n?i.add(Hi).mul(Gi):qi;return function(t){const n=Wn.from(t);return(n.lt(s)||n.gt(i))&&Li.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Ln(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&Li.throwArgumentError("invalid bytes width","type",e),function(t){return Nn(t).length!==n&&Li.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Nn(e),n=t.length%32;return n?Dn([t,Ui.slice(n)]):Pn(t)}(t)}}}switch(e){case"address":return function(e){return Ln(Di(e),32)};case"bool":return function(e){return e?zi:ji};case"bytes":return function(e){return Vr(e)};case"string":return function(e){return Zr(e)}}return null}function Xi(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class Zi{constructor(e){hr(this,"types",Object.freeze(Ar(e))),hr(this,"_encoderCache",{}),hr(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach(e=>{t[e]={},n[e]=[],r[e]={}});for(const r in e){const i={};e[r].forEach(s=>{i[s.name]&&Li.throwArgumentError(`duplicate variable name ${JSON.stringify(s.name)} in ${JSON.stringify(r)}`,"types",e),i[s.name]=!0;const a=s.type.match(/^([^\x5b]*)(\x5b|$)/)[1];a===r&&Li.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),Yi(a)||(n[a]||Li.throwArgumentError(`unknown type ${JSON.stringify(a)}`,"types",e),n[a].push(r),t[r][a]=!0)})}const i=Object.keys(n).filter(e=>0===n[e].length);0===i.length?Li.throwArgumentError("missing primary type","types",e):i.length>1&&Li.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),hr(this,"primaryType",i[0]),function i(s,a){a[s]&&Li.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),a[s]=!0,Object.keys(t[s]).forEach(e=>{n[e]&&(i(e,a),Object.keys(a).forEach(t=>{r[t][e]=!0}))}),delete a[s]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=Xi(t,e[t])+n.map(t=>Xi(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=Yi(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&Li.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(Vr)),Vr(Dn(i))}}const n=this.types[e];if(n){const t=Zr(this._types[e]);return e=>{const r=n.map(({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?Vr(r):r});return r.unshift(t),Dn(r)}}return Li.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Li.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Vr(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(Yi(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&Li.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,n))}const i=this.types[e];return i?i.reduce((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e),{}):Li.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Zi(e)}static getPrimaryType(e){return Zi.from(e).primaryType}static hashStruct(e,t,n){return Zi.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=Ki[n];r||Li.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort((e,t)=>Wi.indexOf(e.name)-Wi.indexOf(t.name)),Zi.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Dn(["0x1901",Zi.hashDomain(e),Zi.from(t).hash(n)])}static hash(e,t,n){return Vr(Zi.encode(e,t,n))}static resolveNames(e,t,n,r){return i=this,a=function*(){e=gr(e);const i={};e.verifyingContract&&!Mn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const s=Zi.from(t);s.visit(n,(e,t)=>("address"!==e||Mn(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=s.visit(n,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:n}},new((s=void 0)||(s=Promise))(function(e,t){function n(e){try{o(a.next(e))}catch(e){t(e)}}function r(e){try{o(a.throw(e))}catch(e){t(e)}}function o(t){var i;t.done?e(t.value):(i=t.value,i instanceof s?i:new s(function(e){e(i)})).then(n,r)}o((a=a.apply(i,[])).next())});var i,s,a}static getPayload(e,t,n){Zi.hashDomain(e);const r={},i=[];Wi.forEach(t=>{const n=e[t];null!=n&&(r[t]=Qi[t](n),i.push({name:t,type:Ki[t]}))});const s=Zi.from(t),a=gr(t);return a.EIP712Domain?Li.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):a.EIP712Domain=i,s.encode(n),{types:a,domain:r,primaryType:s.primaryType,message:s.visit(n,(e,t)=>{if(e.match(/^bytes(\d*)/))return Pn(Nn(t));if(e.match(/^u?int/))return Wn.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Li.throwArgumentError("invalid string","value",t),t}return Li.throwArgumentError("unsupported type","type",e)})}}}var $i=es;function es(e,t){if(!e)throw new Error(t||"Assertion failed")}function ts(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function ns(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function rs(e){return 1===e.length?"0"+e:e}function is(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}es.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var ss={inherits:ln(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var s=e.charCodeAt(i);s<128?n[r++]=s:s<2048?(n[r++]=s>>6|192,n[r++]=63&s|128):ts(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},toHex:function(e){for(var t="",n=0;n<e.length;n++)t+=rs(e[n].toString(16));return t},htonl:ns,toHex32:function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=ns(i)),n+=is(i.toString(16))}return n},zero2:rs,zero8:is,join32:function(e,t,n,r){var i=n-t;$i(i%4==0);for(var s=new Array(i/4),a=0,o=t;a<s.length;a++,o+=4)s[a]=("big"===r?e[o]<<24|e[o+1]<<16|e[o+2]<<8|e[o+3]:e[o+3]<<24|e[o+2]<<16|e[o+1]<<8|e[o])>>>0;return s},split32:function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var s=e[r];"big"===t?(n[i]=s>>>24,n[i+1]=s>>>16&255,n[i+2]=s>>>8&255,n[i+3]=255&s):(n[i+3]=s>>>24,n[i+2]=s>>>16&255,n[i+1]=s>>>8&255,n[i]=255&s)}return n},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,n){return e+t+n>>>0},sum32_4:function(e,t,n,r){return e+t+n+r>>>0},sum32_5:function(e,t,n,r,i){return e+t+n+r+i>>>0},sum64:function(e,t,n,r){var i=r+e[t+1]>>>0;e[t]=(i<r?1:0)+n+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},sum64_lo:function(e,t,n,r){return t+r>>>0},sum64_4_hi:function(e,t,n,r,i,s,a,o){var u=0,l=t;return u+=(l=l+r>>>0)<t?1:0,u+=(l=l+s>>>0)<s?1:0,e+n+i+a+(u+=(l=l+o>>>0)<o?1:0)>>>0},sum64_4_lo:function(e,t,n,r,i,s,a,o){return t+r+s+o>>>0},sum64_5_hi:function(e,t,n,r,i,s,a,o,u,l){var d=0,c=t;return d+=(c=c+r>>>0)<t?1:0,d+=(c=c+s>>>0)<s?1:0,d+=(c=c+o>>>0)<o?1:0,e+n+i+a+u+(d+=(c=c+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,n,r,i,s,a,o,u,l){return t+r+s+o+l>>>0},rotr64_hi:function(e,t,n){return(t<<32-n|e>>>n)>>>0},rotr64_lo:function(e,t,n){return(e<<32-n|t>>>n)>>>0},shr64_hi:function(e,t,n){return e>>>n},shr64_lo:function(e,t,n){return(e<<32-n|t>>>n)>>>0}};function as(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var os=as;as.prototype.update=function(e,t){if(e=ss.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=ss.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},as.prototype.digest=function(e){return this.update(this._pad()),$i(null===this.pending),this._digest(e)},as.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var s=8;s<this.padLength;s++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,s=8;s<this.padLength;s++)r[i++]=0;return r};var us={BlockHash:os},ls=ss.rotr32;function ds(e,t,n){return e&t^~e&n}function cs(e,t,n){return e&t^e&n^t&n}var ps=ds,hs=cs,fs=ss.rotl32,ms=ss.sum32,ys=ss.sum32_5,gs=function(e,t,n,r){return 0===e?ds(t,n,r):1===e||3===e?function(e,t,n){return e^t^n}(t,n,r):2===e?cs(t,n,r):void 0},bs=us.BlockHash,vs=[1518500249,1859775393,2400959708,3395469782];function ws(){if(!(this instanceof ws))return new ws;bs.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}ss.inherits(ws,bs);var As=ws;ws.blockSize=512,ws.outSize=160,ws.hmacStrength=80,ws.padLength=64,ws.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=fs(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],s=this.h[1],a=this.h[2],o=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var l=~~(r/20),d=ys(fs(i,5),gs(l,s,a,o),u,n[r],vs[l]);u=o,o=a,a=fs(s,30),s=i,i=d}this.h[0]=ms(this.h[0],i),this.h[1]=ms(this.h[1],s),this.h[2]=ms(this.h[2],a),this.h[3]=ms(this.h[3],o),this.h[4]=ms(this.h[4],u)},ws.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"big"):ss.split32(this.h,"big")};var Ts=ss.sum32,Es=ss.sum32_4,Is=ss.sum32_5,Ss=ps,ks=hs,Cs=function(e){return ls(e,2)^ls(e,13)^ls(e,22)},Ns=function(e){return ls(e,6)^ls(e,11)^ls(e,25)},_s=function(e){return ls(e,7)^ls(e,18)^e>>>3},xs=function(e){return ls(e,17)^ls(e,19)^e>>>10},Ms=us.BlockHash,Rs=[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];function Ps(){if(!(this instanceof Ps))return new Ps;Ms.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Rs,this.W=new Array(64)}ss.inherits(Ps,Ms);var Os=Ps;function Bs(){if(!(this instanceof Bs))return new Bs;Os.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Ps.blockSize=512,Ps.outSize=256,Ps.hmacStrength=192,Ps.padLength=64,Ps.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=Es(xs(n[r-2]),n[r-7],_s(n[r-15]),n[r-16]);var i=this.h[0],s=this.h[1],a=this.h[2],o=this.h[3],u=this.h[4],l=this.h[5],d=this.h[6],c=this.h[7];for($i(this.k.length===n.length),r=0;r<n.length;r++){var p=Is(c,Ns(u),Ss(u,l,d),this.k[r],n[r]),h=Ts(Cs(i),ks(i,s,a));c=d,d=l,l=u,u=Ts(o,p),o=a,a=s,s=i,i=Ts(p,h)}this.h[0]=Ts(this.h[0],i),this.h[1]=Ts(this.h[1],s),this.h[2]=Ts(this.h[2],a),this.h[3]=Ts(this.h[3],o),this.h[4]=Ts(this.h[4],u),this.h[5]=Ts(this.h[5],l),this.h[6]=Ts(this.h[6],d),this.h[7]=Ts(this.h[7],c)},Ps.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"big"):ss.split32(this.h,"big")},ss.inherits(Bs,Os);var Ds=Bs;Bs.blockSize=512,Bs.outSize=224,Bs.hmacStrength=192,Bs.padLength=64,Bs.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h.slice(0,7),"big"):ss.split32(this.h.slice(0,7),"big")};var Fs=ss.rotr64_hi,Ls=ss.rotr64_lo,Us=ss.shr64_hi,Gs=ss.shr64_lo,qs=ss.sum64,Hs=ss.sum64_hi,Vs=ss.sum64_lo,zs=ss.sum64_4_hi,js=ss.sum64_4_lo,Ks=ss.sum64_5_hi,Ws=ss.sum64_5_lo,Js=us.BlockHash,Qs=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Ys(){if(!(this instanceof Ys))return new Ys;Js.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Qs,this.W=new Array(160)}ss.inherits(Ys,Js);var Xs=Ys;function Zs(e,t,n,r,i){var s=e&n^~e&i;return s<0&&(s+=4294967296),s}function $s(e,t,n,r,i,s){var a=t&r^~t&s;return a<0&&(a+=4294967296),a}function ea(e,t,n,r,i){var s=e&n^e&i^n&i;return s<0&&(s+=4294967296),s}function ta(e,t,n,r,i,s){var a=t&r^t&s^r&s;return a<0&&(a+=4294967296),a}function na(e,t){var n=Fs(e,t,28)^Fs(t,e,2)^Fs(t,e,7);return n<0&&(n+=4294967296),n}function ra(e,t){var n=Ls(e,t,28)^Ls(t,e,2)^Ls(t,e,7);return n<0&&(n+=4294967296),n}function ia(e,t){var n=Fs(e,t,14)^Fs(e,t,18)^Fs(t,e,9);return n<0&&(n+=4294967296),n}function sa(e,t){var n=Ls(e,t,14)^Ls(e,t,18)^Ls(t,e,9);return n<0&&(n+=4294967296),n}function aa(e,t){var n=Fs(e,t,1)^Fs(e,t,8)^Us(e,t,7);return n<0&&(n+=4294967296),n}function oa(e,t){var n=Ls(e,t,1)^Ls(e,t,8)^Gs(e,t,7);return n<0&&(n+=4294967296),n}function ua(e,t){var n=Fs(e,t,19)^Fs(t,e,29)^Us(e,t,6);return n<0&&(n+=4294967296),n}function la(e,t){var n=Ls(e,t,19)^Ls(t,e,29)^Gs(e,t,6);return n<0&&(n+=4294967296),n}function da(){if(!(this instanceof da))return new da;Xs.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Ys.blockSize=1024,Ys.outSize=512,Ys.hmacStrength=192,Ys.padLength=128,Ys.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=ua(n[r-4],n[r-3]),s=la(n[r-4],n[r-3]),a=n[r-14],o=n[r-13],u=aa(n[r-30],n[r-29]),l=oa(n[r-30],n[r-29]),d=n[r-32],c=n[r-31];n[r]=zs(i,s,a,o,u,l,d,c),n[r+1]=js(i,s,a,o,u,l,d,c)}},Ys.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],s=this.h[2],a=this.h[3],o=this.h[4],u=this.h[5],l=this.h[6],d=this.h[7],c=this.h[8],p=this.h[9],h=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];$i(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var w=g,A=b,T=ia(c,p),E=sa(c,p),I=Zs(c,0,h,0,m),S=$s(0,p,0,f,0,y),k=this.k[v],C=this.k[v+1],N=n[v],_=n[v+1],x=Ks(w,A,T,E,I,S,k,C,N,_),M=Ws(w,A,T,E,I,S,k,C,N,_);w=na(r,i),A=ra(r,i),T=ea(r,0,s,0,o),E=ta(0,i,0,a,0,u);var R=Hs(w,A,T,E),P=Vs(w,A,T,E);g=m,b=y,m=h,y=f,h=c,f=p,c=Hs(l,d,x,M),p=Vs(d,d,x,M),l=o,d=u,o=s,u=a,s=r,a=i,r=Hs(x,M,R,P),i=Vs(x,M,R,P)}qs(this.h,0,r,i),qs(this.h,2,s,a),qs(this.h,4,o,u),qs(this.h,6,l,d),qs(this.h,8,c,p),qs(this.h,10,h,f),qs(this.h,12,m,y),qs(this.h,14,g,b)},Ys.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"big"):ss.split32(this.h,"big")},ss.inherits(da,Xs);var ca=da;da.blockSize=1024,da.outSize=384,da.hmacStrength=192,da.padLength=128,da.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h.slice(0,12),"big"):ss.split32(this.h.slice(0,12),"big")};var pa={sha1:As,sha224:Ds,sha256:Os,sha384:ca,sha512:Xs},ha=ss.rotl32,fa=ss.sum32,ma=ss.sum32_3,ya=ss.sum32_4,ga=us.BlockHash;function ba(){if(!(this instanceof ba))return new ba;ga.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}ss.inherits(ba,ga);var va=ba;function wa(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function Aa(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Ta(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ba.blockSize=512,ba.outSize=160,ba.hmacStrength=192,ba.padLength=64,ba.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],s=this.h[3],a=this.h[4],o=n,u=r,l=i,d=s,c=a,p=0;p<80;p++){var h=fa(ha(ya(n,wa(p,r,i,s),e[Ea[p]+t],Aa(p)),Sa[p]),a);n=a,a=s,s=ha(i,10),i=r,r=h,h=fa(ha(ya(o,wa(79-p,u,l,d),e[Ia[p]+t],Ta(p)),ka[p]),c),o=c,c=d,d=ha(l,10),l=u,u=h}h=ma(this.h[1],i,d),this.h[1]=ma(this.h[2],s,c),this.h[2]=ma(this.h[3],a,o),this.h[3]=ma(this.h[4],n,u),this.h[4]=ma(this.h[0],r,l),this.h[0]=h},ba.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"little"):ss.split32(this.h,"little")};var Ea=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Ia=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Sa=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],ka=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Ca={ripemd160:va};function Na(e,t,n){if(!(this instanceof Na))return new Na(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(ss.toArray(t,n))}var _a=Na;Na.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),$i(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Na.prototype.update=function(e,t){return this.inner.update(e,t),this},Na.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var xa,Ma=ln(function(e,t){var n=t;n.utils=ss,n.common=us,n.sha=pa,n.ripemd=Ca,n.hmac=_a,n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160}),Ra=Ma;!function(e){e.sha256="sha256",e.sha512="sha512"}(xa||(xa={}));const Pa=new An("sha2/5.8.0");function Oa(e){return"0x"+Ra.sha256().update(Nn(e)).digest("hex")}function Ba(e,t,n){return xa[e]||Pa.throwError("unsupported algorithm "+e,An.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Ra.hmac(Ra[e],Nn(t)).update(Nn(n)).digest("hex")}var Da=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};function Fa(e,t){return Da(this,void 0,void 0,function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),s={};return r.headers.forEach?r.headers.forEach((e,t)=>{s[t.toLowerCase()]=e}):r.headers.keys().forEach(e=>{s[e.toLowerCase()]=r.headers.get(e)}),{headers:s,statusCode:r.status,statusMessage:r.statusText,body:Nn(new Uint8Array(i))}})}var La=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Ua=new An("web/5.8.0");function Ga(e){return new Promise(t=>{setTimeout(t,e)})}function qa(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Sn(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Xr(e)}catch(e){}return Pn(e)}return e}function Ha(e,t,n){let r=null;if(null!=t){r=Yr(t);const n="string"==typeof e?{url:e}:gr(e);n.headers?0!==Object.keys(n.headers).filter(e=>"content-type"===e.toLowerCase()).length||(n.headers=gr(n.headers),n.headers["content-type"]="application/json"):n.headers={"content-type":"application/json"},e=n}return function(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Ua.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,s="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Ua.assertArgument(s>0&&s%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",s);const a="object"==typeof e&&!!e.errorPassThrough,o={};let u=null;const l={method:"GET"};let d=!1,c=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Ua.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(c=e.timeout),e.headers)for(const t in e.headers)o[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(d=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Ua.throwError("basic authentication requires a secure https url",An.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),o.authorization={key:"Authorization",value:"Basic "+Or(Yr(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=gr(e.fetchOptions))}const p=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),h=u?u.match(p):null;if(h)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":h[1]||"text/plain"},body:h[2]?Pr(h[3]):(f=h[3],Yr(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){Ua.throwError("processing response error",An.errors.SERVER_ERROR,{body:qa(h[1],h[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==o["content-type"]&&(o["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==o["content-length"]&&(o["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(o).forEach(e=>{const t=o[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,n){c&&(e=setTimeout(()=>{null!=e&&(e=null,n(Ua.makeError("timeout",An.errors.TIMEOUT,{requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,timeout:c,url:u})))},c))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return La(this,void 0,void 0,function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield Fa(u,l),e<r)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):s*parseInt(String(Math.random()*Math.pow(2,e))),yield Ga(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Ua.throwError("missing response",An.errors.SERVER_ERROR,{requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let o=t.body;if(d&&304===t.statusCode?o=null:!a&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Ua.throwError("bad response",An.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:qa(o,t.headers?t.headers["content-type"]:null),requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,url:u})),n)try{const e=yield n(o,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=s*parseInt(String(Math.random()*Math.pow(2,e)));yield Ga(t);continue}}y.cancel(),Ua.throwError("processing response error",An.errors.SERVER_ERROR,{body:qa(o,t.headers?t.headers["content-type"]:null),error:n,requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),o}return Ua.throwError("failed response",An.errors.SERVER_ERROR,{requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,r,(e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(Xr(e))}catch(t){Ua.throwError("invalid JSON",An.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r})}function Va(e,t){return t||(t={}),null==(t=gr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(n,r){let i=null,s=!1;const a=()=>!s&&(s=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{a()&&r(new Error("timeout"))},t.timeout));const o=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)a()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!s){if(u++,u>o)return void(a()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){a()&&r(e)})}()})}for(var za="qpzry9x8gf2tvdw0s3jn54khce6mua7l",ja={},Ka=0;Ka<za.length;Ka++){var Wa=za.charAt(Ka);if(void 0!==ja[Wa])throw new TypeError(Wa+" is ambiguous");ja[Wa]=Ka}function Ja(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const Qa="providers/5.8.0";function Ya(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},n.exports),n.exports}var Xa=Za;function Za(e,t){if(!e)throw new Error(t||"Assertion failed")}Za.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var $a=Ya(function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16));else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),s=i>>8,a=255&i;s?n.push(s,a):n.push(a)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}}),eo=Ya(function(e,t){var n=t;n.assert=Xa,n.toArray=$a.toArray,n.zero2=$a.zero2,n.toHex=$a.toHex,n.encode=$a.encode,n.getNAF=function(e,t,n){var r,i=new Array(Math.max(e.bitLength(),n)+1);for(r=0;r<i.length;r+=1)i[r]=0;var s=1<<t+1,a=e.clone();for(r=0;r<i.length;r++){var o,u=a.andln(s-1);a.isOdd()?a.isubn(o=u>(s>>1)-1?(s>>1)-u:u):o=0,i[r]=o,a.iushrn(1)}return i},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,s=0;e.cmpn(-i)>0||t.cmpn(-s)>0;){var a,o,u=e.andln(3)+i&3,l=t.andln(3)+s&3;3===u&&(u=-1),3===l&&(l=-1),a=0==(1&u)?0:3!=(r=e.andln(7)+i&7)&&5!==r||2!==l?u:-u,n[0].push(a),o=0==(1&l)?0:3!=(r=t.andln(7)+s&7)&&5!==r||2!==u?l:-l,n[1].push(o),2*i===a+1&&(i=1-i),2*s===o+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new cn(e,"hex","le")}}),to=eo.getNAF,no=eo.getJSF,ro=eo.assert;function io(e,t){this.type=e,this.p=new cn(t.p,16),this.red=t.prime?cn.red(t.prime):cn.mont(this.p),this.zero=new cn(0).toRed(this.red),this.one=new cn(1).toRed(this.red),this.two=new cn(2).toRed(this.red),this.n=t.n&&new cn(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var so=io;function ao(e,t){this.curve=e,this.type=t,this.precomputed=null}io.prototype.point=function(){throw new Error("Not implemented")},io.prototype.validate=function(){throw new Error("Not implemented")},io.prototype._fixedNafMul=function(e,t){ro(e.precomputed);var n=e._getDoubles(),r=to(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var s,a,o=[];for(s=0;s<r.length;s+=n.step){a=0;for(var u=s+n.step-1;u>=s;u--)a=(a<<1)+r[u];o.push(a)}for(var l=this.jpoint(null,null,null),d=this.jpoint(null,null,null),c=i;c>0;c--){for(s=0;s<o.length;s++)(a=o[s])===c?d=d.mixedAdd(n.points[s]):a===-c&&(d=d.mixedAdd(n.points[s].neg()));l=l.add(d)}return l.toP()},io.prototype._wnafMul=function(e,t){for(var n=4,r=e._getNAFPoints(n),i=r.points,s=to(t,n=r.wnd,this._bitLength),a=this.jpoint(null,null,null),o=s.length-1;o>=0;o--){for(var u=0;o>=0&&0===s[o];o--)u++;if(o>=0&&u++,a=a.dblp(u),o<0)break;var l=s[o];ro(0!==l),a="affine"===e.type?a.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):a.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?a.toP():a},io.prototype._wnafMulAdd=function(e,t,n,r,i){var s,a,o,u=this._wnafT1,l=this._wnafT2,d=this._wnafT3,c=0;for(s=0;s<r;s++){var p=(o=t[s])._getNAFPoints(e);u[s]=p.wnd,l[s]=p.points}for(s=r-1;s>=1;s-=2){var h=s-1,f=s;if(1===u[h]&&1===u[f]){var m=[t[h],null,null,t[f]];0===t[h].y.cmp(t[f].y)?(m[1]=t[h].add(t[f]),m[2]=t[h].toJ().mixedAdd(t[f].neg())):0===t[h].y.cmp(t[f].y.redNeg())?(m[1]=t[h].toJ().mixedAdd(t[f]),m[2]=t[h].add(t[f].neg())):(m[1]=t[h].toJ().mixedAdd(t[f]),m[2]=t[h].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=no(n[h],n[f]);for(c=Math.max(g[0].length,c),d[h]=new Array(c),d[f]=new Array(c),a=0;a<c;a++)d[h][a]=y[3*(1+(0|g[0][a]))+(1+(0|g[1][a]))],d[f][a]=0,l[h]=m}else d[h]=to(n[h],u[h],this._bitLength),d[f]=to(n[f],u[f],this._bitLength),c=Math.max(d[h].length,c),c=Math.max(d[f].length,c)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(s=c;s>=0;s--){for(var w=0;s>=0;){var A=!0;for(a=0;a<r;a++)v[a]=0|d[a][s],0!==v[a]&&(A=!1);if(!A)break;w++,s--}if(s>=0&&w++,b=b.dblp(w),s<0)break;for(a=0;a<r;a++){var T=v[a];0!==T&&(T>0?o=l[a][T-1>>1]:T<0&&(o=l[a][-T-1>>1].neg()),b="affine"===o.type?b.mixedAdd(o):b.add(o))}}for(s=0;s<r;s++)l[s]=null;return i?b:b.toP()},io.BasePoint=ao,ao.prototype.eq=function(){throw new Error("Not implemented")},ao.prototype.validate=function(){return this.curve.validate(this)},io.prototype.decodePoint=function(e,t){e=eo.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?ro(e[e.length-1]%2==0):7===e[0]&&ro(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},ao.prototype.encodeCompressed=function(e){return this.encode(e,!0)},ao.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},ao.prototype.encode=function(e,t){return eo.encode(this._encode(t),e)},ao.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},ao.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},ao.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var s=0;s<e;s++)r=r.dbl();n.push(r)}return{step:e,points:n}},ao.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},ao.prototype._getBeta=function(){return null},ao.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var oo=Ya(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}}),uo=eo.assert;function lo(e){so.call(this,"short",e),this.a=new cn(e.a,16).toRed(this.red),this.b=new cn(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}oo(lo,so);var co=lo;function po(e,t,n,r){so.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new cn(t,16),this.y=new cn(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function ho(e,t,n,r){so.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new cn(0)):(this.x=new cn(t,16),this.y=new cn(n,16),this.z=new cn(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}lo.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new cn(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new cn(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:uo(0===this.g.mul(n=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:n,basis:e.basis?e.basis.map(function(e){return{a:new cn(e.a,16),b:new cn(e.b,16)}}):this._getEndoBasis(n)}}},lo.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:cn.mont(e),n=new cn(2).toRed(t).redInvm(),r=n.redNeg(),i=new cn(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},lo.prototype._getEndoBasis=function(e){for(var t,n,r,i,s,a,o,u,l,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=e,p=this.n.clone(),h=new cn(1),f=new cn(0),m=new cn(0),y=new cn(1),g=0;0!==c.cmpn(0);){var b=p.div(c);u=p.sub(b.mul(c)),l=m.sub(b.mul(h));var v=y.sub(b.mul(f));if(!r&&u.cmp(d)<0)t=o.neg(),n=h,r=u.neg(),i=l;else if(r&&2==++g)break;o=u,p=c,c=u,m=h,h=l,y=f,f=v}s=u.neg(),a=l;var w=r.sqr().add(i.sqr());return s.sqr().add(a.sqr()).cmp(w)>=0&&(s=t,a=n),r.negative&&(r=r.neg(),i=i.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:i},{a:s,b:a}]},lo.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),s=n.b.neg().mul(e).divRound(this.n),a=i.mul(n.a),o=s.mul(r.a),u=i.mul(n.b),l=s.mul(r.b);return{k1:e.sub(a).sub(o),k2:u.add(l).neg()}},lo.prototype.pointFromX=function(e,t){(e=new cn(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},lo.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},lo.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,s=0;s<e.length;s++){var a=this._endoSplit(t[s]),o=e[s],u=o._getBeta();a.k1.negative&&(a.k1.ineg(),o=o.neg(!0)),a.k2.negative&&(a.k2.ineg(),u=u.neg(!0)),r[2*s]=o,r[2*s+1]=u,i[2*s]=a.k1,i[2*s+1]=a.k2}for(var l=this._wnafMulAdd(1,r,i,2*s,n),d=0;d<2*s;d++)r[d]=null,i[d]=null;return l},oo(po,so.BasePoint),lo.prototype.point=function(e,t,n){return new po(this,e,t,n)},lo.prototype.pointFromJSON=function(e,t){return po.fromJSON(this,e,t)},po.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},po.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},po.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var s=t[2];return r.precomputed={beta:null,doubles:s.doubles&&{step:s.doubles.step,points:[r].concat(s.doubles.points.map(i))},naf:s.naf&&{wnd:s.naf.wnd,points:[r].concat(s.naf.points.map(i))}},r},po.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},po.prototype.isInfinity=function(){return this.inf},po.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},po.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),s=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,a)},po.prototype.getX=function(){return this.x.fromRed()},po.prototype.getY=function(){return this.y.fromRed()},po.prototype.mul=function(e){return e=new cn(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},po.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},po.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},po.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},po.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},po.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},oo(ho,so.BasePoint),lo.prototype.jpoint=function(e,t,n){return new ho(this,e,t,n)},ho.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},ho.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},ho.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),s=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(n.redMul(this.z)),o=r.redSub(i),u=s.redSub(a);if(0===o.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=o.redSqr(),d=l.redMul(o),c=r.redMul(l),p=u.redSqr().redIAdd(d).redISub(c).redISub(c),h=u.redMul(c.redISub(p)).redISub(s.redMul(d)),f=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(p,h,f)},ho.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,s=e.y.redMul(t).redMul(this.z),a=n.redSub(r),o=i.redSub(s);if(0===a.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),l=u.redMul(a),d=n.redMul(u),c=o.redSqr().redIAdd(l).redISub(d).redISub(d),p=o.redMul(d.redISub(c)).redISub(i.redMul(l)),h=this.z.redMul(a);return this.curve.jpoint(c,p,h)},ho.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,s=this.x,a=this.y,o=this.z,u=o.redSqr().redSqr(),l=a.redAdd(a);for(t=0;t<e;t++){var d=s.redSqr(),c=l.redSqr(),p=c.redSqr(),h=d.redAdd(d).redIAdd(d).redIAdd(r.redMul(u)),f=s.redMul(c),m=h.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=h.redMul(y);g=g.redIAdd(g).redISub(p);var b=l.redMul(o);t+1<e&&(u=u.redMul(p)),s=m,o=b,l=g}return this.curve.jpoint(s,l.redMul(i),o)},ho.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},ho.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(r).redISub(s);a=a.redIAdd(a);var o=r.redAdd(r).redIAdd(r),u=o.redSqr().redISub(a).redISub(a),l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=o.redMul(a.redISub(u)).redISub(l),n=this.y.redAdd(this.y)}else{var d=this.x.redSqr(),c=this.y.redSqr(),p=c.redSqr(),h=this.x.redAdd(c).redSqr().redISub(d).redISub(p);h=h.redIAdd(h);var f=d.redAdd(d).redIAdd(d),m=f.redSqr(),y=p.redIAdd(p);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(h).redISub(h),t=f.redMul(h.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},ho.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(r).redISub(s);a=a.redIAdd(a);var o=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=o.redSqr().redISub(a).redISub(a);e=u;var l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),t=o.redMul(a.redISub(u)).redISub(l),n=this.y.redAdd(this.y)}else{var d=this.z.redSqr(),c=this.y.redSqr(),p=this.x.redMul(c),h=this.x.redSub(d).redMul(this.x.redAdd(d));h=h.redAdd(h).redIAdd(h);var f=p.redIAdd(p),m=(f=f.redIAdd(f)).redAdd(f);e=h.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(c).redISub(d);var y=c.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=h.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},ho.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),s=t.redSqr(),a=n.redSqr(),o=s.redAdd(s).redIAdd(s).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(a),d=o.redSqr().redISub(l.redAdd(l)),c=l.redISub(d),p=a.redSqr();p=(p=(p=p.redIAdd(p)).redIAdd(p)).redIAdd(p);var h=o.redMul(c).redISub(p),f=n.redAdd(n).redMul(r);return this.curve.jpoint(d,h,f)},ho.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),s=i.redSqr(),a=this.x.redAdd(t).redSqr().redISub(e).redISub(r),o=(a=(a=(a=a.redIAdd(a)).redAdd(a).redIAdd(a)).redISub(s)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(a).redSqr().redISub(s).redISub(o).redISub(u),d=t.redMul(l);d=(d=d.redIAdd(d)).redIAdd(d);var c=this.x.redMul(o).redISub(d);c=(c=c.redIAdd(c)).redIAdd(c);var p=this.y.redMul(l.redMul(u.redISub(l)).redISub(a.redMul(o)));p=(p=(p=p.redIAdd(p)).redIAdd(p)).redIAdd(p);var h=this.z.redAdd(a).redSqr().redISub(n).redISub(o);return this.curve.jpoint(c,p,h)},ho.prototype.mul=function(e,t){return e=new cn(e,t),this.curve._wnafMul(this,e)},ho.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},ho.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},ho.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},ho.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var fo=Ya(function(e,t){var n=t;n.base=so,n.short=co,n.mont=null,n.edwards=null}),mo=Ya(function(e,t){var n,r=t,i=eo.assert;function s(e){this.curve="short"===e.type?new fo.short(e):"edwards"===e.type?new fo.edwards(e):new fo.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function a(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new s(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=s,a("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Ra.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),a("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Ra.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),a("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Ra.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),a("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Ra.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),a("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Ra.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),a("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ra.sha256,gRed:!1,g:["9"]}),a("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ra.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}a("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Ra.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})});function yo(e){if(!(this instanceof yo))return new yo(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=$a.toArray(e.entropy,e.entropyEnc||"hex"),n=$a.toArray(e.nonce,e.nonceEnc||"hex"),r=$a.toArray(e.pers,e.persEnc||"hex");Xa(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var go=yo;yo.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},yo.prototype._hmac=function(){return new Ra.hmac(this.hash,this.K)},yo.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},yo.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=$a.toArray(e,t),n=$a.toArray(n,r),Xa(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},yo.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=$a.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var s=i.slice(0,e);return this._update(n),this._reseed++,$a.encode(s,t)};var bo=eo.assert;function vo(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var wo=vo;vo.fromPublic=function(e,t,n){return t instanceof vo?t:new vo(e,{pub:t,pubEnc:n})},vo.fromPrivate=function(e,t,n){return t instanceof vo?t:new vo(e,{priv:t,privEnc:n})},vo.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},vo.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},vo.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},vo.prototype._importPrivate=function(e,t){this.priv=new cn(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},vo.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?bo(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||bo(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},vo.prototype.derive=function(e){return e.validate()||bo(e.validate(),"public point not validated"),e.mul(this.priv).getX()},vo.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},vo.prototype.verify=function(e,t,n){return this.ec.verify(e,t,this,void 0,n)},vo.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ao=eo.assert;function To(e,t){if(e instanceof To)return e;this._importDER(e,t)||(Ao(e.r&&e.s,"Signature without r or s"),this.r=new cn(e.r,16),this.s=new cn(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var Eo=To;function Io(){this.place=0}function So(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;if(0===e[t.place])return!1;for(var i=0,s=0,a=t.place;s<r;s++,a++)i<<=8,i|=e[a],i>>>=0;return!(i<=127)&&(t.place=a,i)}function ko(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function Co(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}To.prototype._importDER=function(e,t){e=eo.toArray(e,t);var n=new Io;if(48!==e[n.place++])return!1;var r=So(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=So(e,n);if(!1===i)return!1;if(0!=(128&e[n.place]))return!1;var s=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var a=So(e,n);if(!1===a)return!1;if(e.length!==a+n.place)return!1;if(0!=(128&e[n.place]))return!1;var o=e.slice(n.place,a+n.place);if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}return this.r=new cn(s),this.s=new cn(o),this.recoveryParam=null,!0},To.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=ko(t),n=ko(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Co(r,t.length),(r=r.concat(t)).push(2),Co(r,n.length);var i=r.concat(n),s=[48];return Co(s,i.length),s=s.concat(i),eo.encode(s,e)};var No=function(){throw new Error("unsupported")},_o=eo.assert;function xo(e){if(!(this instanceof xo))return new xo(e);"string"==typeof e&&(_o(Object.prototype.hasOwnProperty.call(mo,e),"Unknown curve "+e),e=mo[e]),e instanceof mo.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Mo=xo;xo.prototype.keyPair=function(e){return new wo(this,e)},xo.prototype.keyFromPrivate=function(e,t){return wo.fromPrivate(this,e,t)},xo.prototype.keyFromPublic=function(e,t){return wo.fromPublic(this,e,t)},xo.prototype.genKeyPair=function(e){e||(e={});for(var t=new go({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||No(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new cn(2));;){var i=new cn(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},xo.prototype._truncateToN=function(e,t,n){var r;if(cn.isBN(e)||"number"==typeof e)r=(e=new cn(e,16)).byteLength();else if("object"==typeof e)r=e.length,e=new cn(e,16);else{var i=e.toString();r=i.length+1>>>1,e=new cn(i,16)}"number"!=typeof n&&(n=8*r);var s=n-this.n.bitLength();return s>0&&(e=e.ushrn(s)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},xo.prototype.sign=function(e,t,n,r){if("object"==typeof n&&(r=n,n=null),r||(r={}),"string"!=typeof e&&"number"!=typeof e&&!cn.isBN(e)){_o("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),_o(e.length>>>0===e.length);for(var i=0;i<e.length;i++)_o((255&e[i])===e[i])}t=this.keyFromPrivate(t,n),e=this._truncateToN(e,!1,r.msgBitLength),_o(!e.isNeg(),"Can not sign a negative message");var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),o=e.toArray("be",s);_o(new cn(o).eq(e),"Can not sign message");for(var u=new go({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),l=this.n.sub(new cn(1)),d=0;;d++){var c=r.k?r.k(d):new cn(u.generate(this.n.byteLength()));if(!((c=this._truncateToN(c,!0)).cmpn(1)<=0||c.cmp(l)>=0)){var p=this.g.mul(c);if(!p.isInfinity()){var h=p.getX(),f=h.umod(this.n);if(0!==f.cmpn(0)){var m=c.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==h.cmp(f)?2:0);return r.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new Eo({r:f,s:m,recoveryParam:y})}}}}}},xo.prototype.verify=function(e,t,n,r,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),n=this.keyFromPublic(n,r);var s=(t=new Eo(t,"hex")).r,a=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,u=a.invm(this.n),l=u.mul(e).umod(this.n),d=u.mul(s).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(l,n.getPublic(),d)).isInfinity()&&o.eqXToP(s):!(o=this.g.mulAdd(l,n.getPublic(),d)).isInfinity()&&0===o.getX().umod(this.n).cmp(s)},xo.prototype.recoverPubKey=function(e,t,n,r){_o((3&n)===n,"The recovery param is more than two bits"),t=new Eo(t,r);var i=this.n,s=new cn(e),a=t.r,o=t.s,u=1&n,l=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");a=this.curve.pointFromX(l?a.add(this.curve.n):a,u);var d=t.r.invm(i),c=i.sub(s).mul(d).umod(i),p=o.mul(d).umod(i);return this.g.mulAdd(c,a,p)},xo.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new Eo(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var s;try{s=this.recoverPubKey(e,t,i)}catch(e){continue}if(s.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var Ro=Ya(function(e,t){var n=t;n.version="6.6.1",n.utils=eo,n.rand=function(){throw new Error("unsupported")},n.curve=fo,n.curves=mo,n.ec=Mo,n.eddsa=null}).ec;const Po=new An("signing-key/5.8.0");let Oo=null;function Bo(){return Oo||(Oo=new Ro("secp256k1")),Oo}class Do{constructor(e){hr(this,"curve","secp256k1"),hr(this,"privateKey",Pn(e)),32!==On(this.privateKey)&&Po.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Bo().keyFromPrivate(Nn(this.privateKey));hr(this,"publicKey","0x"+t.getPublic(!1,"hex")),hr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),hr(this,"_isSigningKey",!0)}_addPoint(e){const t=Bo().keyFromPublic(Nn(this.publicKey)),n=Bo().keyFromPublic(Nn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Bo().keyFromPrivate(Nn(this.privateKey)),n=Nn(e);32!==n.length&&Po.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Un({recoveryParam:r.recoveryParam,r:Ln("0x"+r.r.toString(16),32),s:Ln("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Bo().keyFromPrivate(Nn(this.privateKey)),n=Bo().keyFromPublic(Nn(Fo(e)));return Ln("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Fo(e,t){const n=Nn(e);if(32===n.length){const e=new Do(n);return t?"0x"+Bo().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Pn(n):"0x"+Bo().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Bo().keyFromPublic(n).getPublic(!0,"hex"):Pn(n):Po.throwArgumentError("invalid public or private key","key","[REDACTED]")}const Lo=new An("transactions/5.8.0");var Uo;function Go(e){return"0x"===e?null:Di(e)}function qo(e){return"0x"===e?Lr:Wn.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Uo||(Uo={}));const Ho=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Vo={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function zo(e){return Di(Bn(Vr(Bn(Fo(e),1)),12))}function jo(e,t){return zo(function(e,t){const n=Un(t),r={r:Nn(n.r),s:Nn(n.s)};return"0x"+Bo().recoverPubKey(Nn(e),r,n.recoveryParam).encode("hex",!1)}(Nn(e),t))}function Ko(e,t){const n=xn(Wn.from(e).toHexString());return n.length>32&&Lo.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function Wo(e,t){return{address:Di(e),storageKeys:(t||[]).map((t,n)=>(32!==On(t)&&Lo.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase()))}}function Jo(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&Lo.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Wo(e[0],e[1])):Wo(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const n=e[t].reduce((e,t)=>(e[t]=!0,e),{});return Wo(t,Object.keys(n).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function Qo(e){return Jo(e).map(e=>[e.address,e.storageKeys])}function Yo(e,t){if(null!=e.gasPrice){const t=Wn.from(e.gasPrice),n=Wn.from(e.maxFeePerGas||0);t.eq(n)||Lo.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[Ko(e.chainId||0,"chainId"),Ko(e.nonce||0,"nonce"),Ko(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Ko(e.maxFeePerGas||0,"maxFeePerGas"),Ko(e.gasLimit||0,"gasLimit"),null!=e.to?Di(e.to):"0x",Ko(e.value||0,"value"),e.data||"0x",Qo(e.accessList||[])];if(t){const e=Un(t);n.push(Ko(e.recoveryParam,"recoveryParam")),n.push(xn(e.r)),n.push(xn(e.s))}return Dn(["0x02",Ni(n)])}function Xo(e,t){const n=[Ko(e.chainId||0,"chainId"),Ko(e.nonce||0,"nonce"),Ko(e.gasPrice||0,"gasPrice"),Ko(e.gasLimit||0,"gasLimit"),null!=e.to?Di(e.to):"0x",Ko(e.value||0,"value"),e.data||"0x",Qo(e.accessList||[])];if(t){const e=Un(t);n.push(Ko(e.recoveryParam,"recoveryParam")),n.push(xn(e.r)),n.push(xn(e.s))}return Dn(["0x01",Ni(n)])}function Zo(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Lo.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){yr(e,Vo);const n=[];Ho.forEach(function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=Nn(Pn(r,i)),t.length&&r.length!==t.length&&r.length>0&&Lo.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=xn(r),r.length>t.maxLength&&Lo.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Pn(r))});let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&Lo.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Sn(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Pn(r)),n.push("0x"),n.push("0x")),!t)return Ni(n);const i=Un(t);let s=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),s+=2*r+8,i.v>28&&i.v!==s&&Lo.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==s&&Lo.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Pn(s)),n.push(xn(Nn(i.r))),n.push(xn(Nn(i.s))),Ni(n)}(e,t);switch(e.type){case 1:return Xo(e,t);case 2:return Yo(e,t)}return Lo.throwError(`unsupported transaction type: ${e.type}`,An.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function $o(e,t,n){try{const n=qo(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){Lo.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Ln(t[1],32),e.s=Ln(t[2],32);try{const t=Vr(n(e));e.from=jo(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const eu=new An(Qa);class tu{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),s=this.hash.bind(this),a=this.hex.bind(this),o=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:s,type:u,accessList:tu.allowNull(this.accessList.bind(this),null),blockHash:tu.allowNull(s,null),blockNumber:tu.allowNull(o,null),transactionIndex:tu.allowNull(o,null),confirmations:tu.allowNull(o,null),from:t,gasPrice:tu.allowNull(n),maxPriorityFeePerGas:tu.allowNull(n),maxFeePerGas:tu.allowNull(n),gasLimit:n,to:tu.allowNull(t,null),value:n,nonce:o,data:i,r:tu.allowNull(this.uint256),s:tu.allowNull(this.uint256),v:tu.allowNull(o),creates:tu.allowNull(t,null),raw:tu.allowNull(i)},e.transactionRequest={from:tu.allowNull(t),nonce:tu.allowNull(o),gasLimit:tu.allowNull(n),gasPrice:tu.allowNull(n),maxPriorityFeePerGas:tu.allowNull(n),maxFeePerGas:tu.allowNull(n),to:tu.allowNull(t),value:tu.allowNull(n),data:tu.allowNull(e=>this.data(e,!0)),type:tu.allowNull(o),accessList:tu.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:o,blockNumber:o,transactionHash:s,address:t,topics:tu.arrayOf(s),data:i,logIndex:o,blockHash:s},e.receipt={to:tu.allowNull(this.address,null),from:tu.allowNull(this.address,null),contractAddress:tu.allowNull(t,null),transactionIndex:o,root:tu.allowNull(a),gasUsed:n,logsBloom:tu.allowNull(i),blockHash:s,transactionHash:s,logs:tu.arrayOf(this.receiptLog.bind(this)),blockNumber:o,confirmations:tu.allowNull(o,null),cumulativeGasUsed:n,effectiveGasPrice:tu.allowNull(n),status:tu.allowNull(o),type:u},e.block={hash:tu.allowNull(s),parentHash:s,number:o,timestamp:o,nonce:tu.allowNull(a),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:tu.allowNull(t),extraData:i,transactions:tu.allowNull(tu.arrayOf(s)),baseFeePerGas:tu.allowNull(n)},e.blockWithTransactions=gr(e.block),e.blockWithTransactions.transactions=tu.allowNull(tu.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:tu.allowNull(r,void 0),toBlock:tu.allowNull(r,void 0),blockHash:tu.allowNull(s,void 0),address:tu.allowNull(t,void 0),topics:tu.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:tu.allowNull(o),blockHash:tu.allowNull(s),transactionIndex:o,removed:tu.allowNull(this.boolean.bind(this)),address:t,data:tu.allowFalsish(i,"0x"),topics:tu.arrayOf(s),transactionHash:s,logIndex:o},e}accessList(e){return Jo(e||[])}number(e){return"0x"===e?0:Wn.from(e).toNumber()}type(e){return"0x"===e||null==e?0:Wn.from(e).toNumber()}bigNumber(e){return Wn.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Mn(e))?e.toLowerCase():eu.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return Di(e)}callAddress(e){if(!Mn(e,32))return null;const t=Di(Bn(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Fi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Mn(e))return Fn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==On(n)?eu.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=Wn.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Mn(e))throw new Error("invalid uint256");return Ln(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=tu.check(t,e);return r._difficulty=null==n?null:Wn.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return tu.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&Wn.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=tu.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;Mn(n)&&(n=Wn.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),Mn(n)&&(n=Wn.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Nn(e);if(t[0]>127)return function(e){const t=Mi(e);9!==t.length&&6!==t.length&&Lo.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:qo(t[0]).toNumber(),gasPrice:qo(t[1]),gasLimit:qo(t[2]),to:Go(t[3]),value:qo(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=Wn.from(t[6]).toNumber()}catch(e){return n}if(n.r=Ln(t[7],32),n.s=Ln(t[8],32),Wn.from(n.r).isZero()&&Wn.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(Pn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const s=Vr(Ni(i));try{n.from=jo(s,{r:Pn(n.r),s:Pn(n.s),recoveryParam:r})}catch(e){}n.hash=Vr(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Mi(e.slice(1));8!==t.length&&11!==t.length&&Lo.throwArgumentError("invalid component count for transaction type: 1","payload",Pn(e));const n={type:1,chainId:qo(t[0]).toNumber(),nonce:qo(t[1]).toNumber(),gasPrice:qo(t[2]),gasLimit:qo(t[3]),to:Go(t[4]),value:qo(t[5]),data:t[6],accessList:Jo(t[7])};return 8===t.length||(n.hash=Vr(e),$o(n,t.slice(8),Xo)),n}(t);case 2:return function(e){const t=Mi(e.slice(1));9!==t.length&&12!==t.length&&Lo.throwArgumentError("invalid component count for transaction type: 2","payload",Pn(e));const n=qo(t[2]),r=qo(t[3]),i={type:2,chainId:qo(t[0]).toNumber(),nonce:qo(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:qo(t[4]),to:Go(t[5]),value:qo(t[6]),data:t[7],accessList:Jo(t[8])};return 9===t.length||(i.hash=Vr(e),$o(i,t.slice(9),Yo)),i}(t)}return Lo.throwError(`unsupported transaction type: ${t[0]}`,An.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return tu.check(this.formats.receiptLog,e)}receipt(e){const t=tu.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=Wn.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&eu.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):eu.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&eu.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return tu.check(this.formats.filter,e)}filterLog(e){return tu.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach(function(t){n.push(e(t))}),n}}}var nu=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const ru=new An(Qa);function iu(e){return null==e?"null":(32!==On(e)&&ru.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function su(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[iu(e)]=!0});const n=Object.keys(t);return n.sort(),n.join("|")}return iu(e)}).join("&")}function au(e){if("string"==typeof e){if(32===On(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+su(e);if(Ir.isForkEvent(e))throw ru.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+su(e.topics||[])}throw new Error("invalid event - "+e)}function ou(){return(new Date).getTime()}function uu(e){return new Promise(t=>{setTimeout(t,e)})}const lu=["block","network","pending","poll"];class du{constructor(e,t,n){hr(this,"tag",e),hr(this,"listener",t),hr(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||lu.indexOf(this.tag)>=0}}const cu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function pu(e){return Ln(Wn.from(e).toHexString(),32)}function hu(e){return Dr.encode(_n([e,Bn(Oa(Oa(e)),0,4)]))}const fu=new RegExp("^(ipfs)://(.*)$","i"),mu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),fu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function yu(e,t){try{return Xr(gu(e,t))}catch(e){}return null}function gu(e,t){if("0x"===e)return null;const n=Wn.from(Bn(e,t,t+32)).toNumber(),r=Wn.from(Bn(e,n,n+32)).toNumber();return Bn(e,n+32,n+32+r)}function bu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):ru.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function vu(e){const t=Nn(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function wu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Au(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=Nn(e[r]);t[r]=vu(n),t.push(vu(i.length)),t.push(wu(i)),n+=32+32*Math.ceil(i.length/32)}return Dn(t)}class Tu{constructor(e,t,n,r){hr(this,"provider",e),hr(this,"name",n),hr(this,"address",e.formatter.address(t)),hr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>Wn.from(e).eq(1)).catch(e=>{if(e.code===An.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return nu(this,void 0,void 0,function*(){const n={to:this.address,ccipReadEnabled:!0,data:Dn([e,Ei(this.name),t||"0x"])};let r=!1;var i;(yield this.supportsWildcard())&&(r=!0,n.data=Dn(["0x9061b923",Au([(i=this.name,Pn(_n(Ti(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),n.data])]));try{let e=yield this.provider.call(n);return Nn(e).length%32==4&&ru.throwError("resolver threw error",An.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=gu(e,0)),e}catch(e){if(e.code===An.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return nu(this,void 0,void 0,function*(){const n=yield this._fetch(e,t);return null!=n?gu(n,0):null})}_getAddress(e,t){const n=cu[String(e)];if(null==n&&ru.throwError(`unsupported coin type: ${e}`,An.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=Nn(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return hu(_n([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return hu(_n([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,n,r){for(var i=0,s=0,a=[],o=0;o<e.length;++o)for(i=i<<8|e[o],s+=8;s>=5;)a.push(i>>(s-=5)&31);return s>0&&a.push(i<<5-s&31),a}(e);if(Array.isArray(t))return t;throw new Error(t)}(r.slice(2));return e.unshift(t),function(e,t,n){if(e.length+7+t.length>(n=n||90))throw new TypeError("Exceeds length limit");var r=function(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=Ja(t)^r>>5}for(t=Ja(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=Ja(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",s=0;s<t.length;++s){var a=t[s];if(a>>5!=0)throw new Error("Non 5-bit word");r=Ja(r)^a,i+=za.charAt(a)}for(s=0;s<6;++s)r=Ja(r);for(r^=1,s=0;s<6;++s)i+=za.charAt(r>>5*(5-s)&31);return i}(n.prefix,e)}}return null}getAddress(e){return nu(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===An.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",pu(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&ru.throwError("invalid or unsupported coin data",An.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n})}getAvatar(){return nu(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<mu.length;n++){const r=t.match(mu[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:bu(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const s=this._resolvedAddress||(yield this.getAddress()),a=(r[2]||"").split("/");if(2!==a.length)return null;const o=yield this.provider.formatter.address(a[0]),u=Ln(Wn.from(a[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:o,data:Dn(["0x6352211e",u])}));if(s!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=Wn.from(yield this.provider.call({to:o,data:Dn(["0x00fdd58e",Ln(s,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(a[0]),data:Dn([n,u])};let d=yu(yield this.provider.call(l),0);if(null==d)return null;e.push({type:"metadata-url-base",content:d}),"erc1155"===i&&(d=d.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:d})),d.match(/^ipfs:/i)&&(d=bu(d)),e.push({type:"metadata-url",content:d});const c=yield Ha(d);if(!c)return null;e.push({type:"metadata",content:JSON.stringify(c)});let p=c.image;if("string"!=typeof p)return null;if(p.match(/^(https:\/\/|data:)/i));else{if(null==p.match(fu))return null;e.push({type:"url-ipfs",content:p}),p=bu(p)}return e.push({type:"url",content:p}),{linkage:e,url:p}}}}}catch(e){}return null})}getContentHash(){return nu(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Dr.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+Dr.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Or("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return ru.throwError("invalid or unsupported content hash data",An.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return nu(this,void 0,void 0,function*(){let t=Yr(e);t=_n([pu(64),pu(t.length),t]),t.length%32!=0&&(t=_n([t,Ln("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Pn(t));return null==n||"0x"===n?null:Xr(n)})}}let Eu=null,Iu=1;class Su extends Sr{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),hr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=fr(new.target,"getNetwork")(e);t?(hr(this,"_network",t),this.emit("network",t,null)):ru.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return nu(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||ru.throwError("no network detected",An.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:hr(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Va(()=>this._ready().then(e=>e,e=>{if(e.code!==An.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==Eu&&(Eu=new tu),Eu}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Rr){const n=Rr[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Rr[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Rr[e.name];if(!t)return"number"!=typeof e.chainId&&kr.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&kr.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}(null==e?"homestead":e)}ccipReadFetch(e,t,n){return nu(this,void 0,void 0,function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),s=[];for(let e=0;e<n.length;e++){const t=n[e],a=t.replace("{sender}",r).replace("{data}",i),o=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield Ha({url:a,errorPassThrough:!0},o,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return ru.throwError(`response not found during CCIP fetch: ${l}`,An.errors.SERVER_ERROR,{url:t,errorMessage:l});s.push(l)}return ru.throwError(`error encountered during CCIP fetch: ${s.map(e=>JSON.stringify(e)).join(", ")}`,An.errors.SERVER_ERROR,{urls:n,errorMessages:s})})}_getInternalBlockNumber(e){return nu(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(ou()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=ou(),n=mr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=ou();return(e=Wn.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=n,n.catch(e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)}),(yield n).blockNumber})}poll(){return nu(this,void 0,void 0,function*(){const e=Iu++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)ru.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",ru.makeError("network block skew detected",An.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach(e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null).catch(e=>{this.emit("error",e)});t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const s=this.getLogs(r).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(s)}}}),this._lastBlockNumber=n,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return nu(this,void 0,void 0,function*(){return ru.throwError("provider does not support network detection",An.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return nu(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield uu(0),this._network;const n=ru.makeError("underlying network changed",An.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=ou();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=ou(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return nu(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)})}_waitForTransaction(e,t,n,r){return nu(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,s)=>{const a=[];let o=!1;const u=function(){return!!o||(o=!0,a.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),a.push(()=>{this.removeListener(e,l)}),r){let n=r.startBlock,i=null;const l=a=>nu(this,void 0,void 0,function*(){o||(yield uu(1e3),this.getTransactionCount(r.from).then(d=>nu(this,void 0,void 0,function*(){if(!o){if(d<=r.nonce)n=a;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=a;){if(o)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const a=n.transactions[i];if(a.hash===e)return;if(a.from===r.from&&a.nonce===r.nonce){if(o)return;const n=yield this.waitForTransaction(a.hash,t);if(u())return;let i="replaced";return a.data===r.data&&a.to===r.to&&a.value.eq(r.value)?i="repriced":"0x"===a.data&&a.from===a.to&&a.value.isZero()&&(i="cancelled"),void s(ru.makeError("transaction was replaced",An.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(a),hash:e,receipt:n}))}}i++}}o||this.once("block",l)}}),e=>{o||this.once("block",l)}))});if(o)return;this.once("block",l),a.push(()=>{this.removeListener("block",l)})}if("number"==typeof n&&n>0){const e=setTimeout(()=>{u()||s(ru.makeError("timeout exceeded",An.errors.TIMEOUT,{timeout:n}))},n);e.unref&&e.unref(),a.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return nu(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return Wn.from(e)}catch(t){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return Wn.from(r)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}})}getTransactionCount(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return Wn.from(r).toNumber()}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}})}getCode(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Pn(r)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}})}getStorageAt(e,t,n){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then(e=>Fn(e))}),i=yield this.perform("getStorageAt",r);try{return Pn(i)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}})}_wrapTransaction(e,t,n){if(null!=t&&32!==On(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&ru.throwError("Transaction hash mismatch from Provider.sendTransaction.",An.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>nu(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const s=yield this._waitForTransaction(e.hash,t,r,i);return null==s&&0===t?null:(this._emitted["t:"+e.hash]=s.blockNumber,0===s.status&&ru.throwError("transaction failed",An.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:s}),s)}),r}sendTransaction(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Pn(e)),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}})}_getTransactionRequest(e){return nu(this,void 0,void 0,function*(){const t=yield e,n={};return["from","to"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?Wn.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?Pn(e):null))}),this.formatter.transactionRequest(yield mr(n))})}_getFilter(e){return nu(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(n=>{null!=e[n]&&(t[n]=e[n])}),["fromBlock","toBlock"].forEach(n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))}),this.formatter.filter(yield mr(t))})}_call(e,t,n){return nu(this,void 0,void 0,function*(){n>=10&&ru.throwError("CCIP read exceeded maximum redirections",An.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&On(i)%32==4)try{const s=Bn(i,4),a=Bn(s,0,32);Wn.from(a).eq(r)||ru.throwError("CCIP Read sender did not match",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const o=[],u=Wn.from(Bn(s,32,64)).toNumber(),l=Wn.from(Bn(s,u,u+32)).toNumber(),d=Bn(s,u+32);for(let t=0;t<l;t++){const n=yu(d,32*t);null==n&&ru.throwError("CCIP Read contained corrupt URL string",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),o.push(n)}const c=gu(s,64);Wn.from(Bn(s,100,128)).isZero()||ru.throwError("CCIP Read callback selector included junk",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const p=Bn(s,96,100),h=gu(s,128),f=yield this.ccipReadFetch(e,c,o);null==f&&ru.throwError("CCIP Read disabled or provided no URLs",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Dn([p,Au([f,h])])};return this._call(m,t,n+1)}catch(e){if(e.code===An.errors.SERVER_ERROR)throw e}try{return Pn(i)}catch(n){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}})}call(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)})}estimateGas(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield mr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return Wn.from(n)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}})}_getAddress(e){return nu(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&ru.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&ru.throwError("ENS name not configured",An.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(Mn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),Mn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){ru.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Va(()=>nu(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map(e=>this._wrapTransaction(e)),n}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Va(()=>nu(this,void 0,void 0,function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}),{oncePoll:this})})}getTransactionReceipt(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Va(()=>nu(this,void 0,void 0,function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}),{oncePoll:this})})}getLogs(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield mr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach(e=>{null==e.removed&&(e.removed=!1)}),tu.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)})}getEtherPrice(){return nu(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return nu(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&ru.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return nu(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new Tu(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return nu(this,void 0,void 0,function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||ru.throwError("network does not support ENS",An.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+Ei(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return nu(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Mn(e))throw t}"string"!=typeof e&&ru.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return nu(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=yu(yield this.call({to:n,data:"0x691f3431"+Ei(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r})}getAvatar(e){return nu(this,void 0,void 0,function*(){let t=null;if(Mn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new Tu(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==An.errors.CALL_EXCEPTION)throw e}try{const e=yu(yield this.call({to:r,data:"0x691f3431"+Ei(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==An.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url})}perform(e,t){return ru.throwError(e+" not implemented",An.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,n){const r=new du(au(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=au(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),n=!0,!e.once||(r.push(e),!1))),r.forEach(e=>{this._stopEvent(e)}),n}listenerCount(e){if(!e)return this._events.length;let t=au(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=au(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=au(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!r||(r=!0,n.push(e),!1)),n.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=au(e);this._events=this._events.filter(e=>e.tag!==n||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var ku=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Cu=new An(Qa),Nu=["call","estimateGas"];function _u(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=Mn(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=_u(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return _u(JSON.parse(e),t)}catch(e){}return null}function xu(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=_u(t,!0);if(e)return e.data;Cu.throwError("missing revert data in call exception; Transaction reverted without a reason string",An.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=_u(t.body,!1);null==n&&(n=_u(t,!1)),n&&Cu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",An.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===An.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Cu.throwError("insufficient funds for intrinsic transaction cost",An.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&Cu.throwError("nonce has already been used",An.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Cu.throwError("replacement fee too low",An.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&Cu.throwError("legacy pre-eip-155 transactions not supported",An.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),Nu.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Cu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",An.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function Mu(e){return new Promise(function(t){setTimeout(t,e)})}function Ru(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Pu(e){return e?e.toLowerCase():e}const Ou={};class Bu extends o{constructor(e,t,n){if(super(),e!==Ou)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");hr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(hr(this,"_address",this.provider.formatter.address(n)),hr(this,"_index",null)):"number"==typeof n?(hr(this,"_index",n),hr(this,"_address",null)):Cu.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return Cu.throwError("cannot alter JSON-RPC Signer connection",An.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Du(Ou,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Cu.throwError("unknown account #"+this._index,An.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=gr(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const n=gr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>ku(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Cu.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),mr({tx:mr(e),sender:t}).then(({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&Cu.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Cu.throwError("user rejected transaction",An.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),xu("sendTransaction",e,r)))})}signTransaction(e){return Cu.throwError("signing transactions is unsupported",An.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return ku(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield Va(()=>ku(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}})}signMessage(e){return ku(this,void 0,void 0,function*(){const t="string"==typeof e?Yr(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Pn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Cu.throwError("user rejected signing",An.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}})}_legacySignMessage(e){return ku(this,void 0,void 0,function*(){const t="string"==typeof e?Yr(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Pn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Cu.throwError("user rejected signing",An.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}})}_signTypedData(e,t,n){return ku(this,void 0,void 0,function*(){const r=yield Zi.resolveNames(e,t,n,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Zi.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Cu.throwError("user rejected signing",An.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}})}unlock(e){return ku(this,void 0,void 0,function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])})}}class Du extends Bu{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const Fu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class Lu extends Su{constructor(e,t){let n=t;null==n&&(n=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(n),e||(e=fr(this.constructor,"defaultUrl")()),hr(this,"connection",Object.freeze("string"==typeof e?{url:e}:gr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return ku(this,void 0,void 0,function*(){yield Mu(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=fr(this.constructor,"getNetwork");try{return t(Wn.from(e).toNumber())}catch(t){return Cu.throwError("could not detect network",An.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Cu.throwError("could not detect network",An.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new Bu(Ou,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Ar(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=Ha(this.connection,JSON.stringify(n),Ru).then(e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e});return r&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Pu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Pu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Pu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Pu(t.address),Ln(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[fr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[fr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Pu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return ku(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&Wn.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=gr(t)).transaction=gr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&Cu.throwError(e+" not implemented",An.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return xu(e,n,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(n){return function r(){e.send("eth_getFilterChanges",[n]).then(function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),r.then(function(){return Mu(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){r()},0),null;e.send("eth_uninstallFilter",[n])}).catch(e=>{})}(),n}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=gr(Fu);if(t)for(const e in t)t[e]&&(n[e]=!0);yr(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const n=Fn(Wn.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n}),["from","to","data"].forEach(function(t){null!=e[t]&&(r[t]=Pn(e[t]))}),e.accessList&&(r.accessList=Jo(e.accessList)),r}}const Uu=new An("random/5.8.0"),Gu=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let qu=Gu.crypto||Gu.msCrypto;function Hu(e){(e<=0||e>1024||e%1||e!=e)&&Uu.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return qu.getRandomValues(t),Nn(t)}qu&&qu.getRandomValues||(Uu.warn("WARNING: Missing strong random number source"),qu={getRandomValues:function(e){return Uu.throwError("no secure random source avaialble",An.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Vu=new An(Qa);let zu=1;function ju(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:zu++,jsonrpc:"2.0"};return new Promise((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:Ar(i),provider:this}),t(i,(t,s)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:s,provider:this}),s.error){const e=new Error(s.error.message);return e.code=s.error.code,e.data=s.error.data,r(e)}e(s.result)})})}}class Ku extends Lu{constructor(e,t){null==e&&Vu.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Ar(r),provider:this}),e.request(r).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e})}}(e)):e.sendAsync?r=ju(0,e.sendAsync.bind(e)):e.send?r=ju(0,e.send.bind(e)):Vu.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),hr(this,"jsonRpcFetchFunc",r),hr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function Wu(e,t,n,r,i){let s;e=Nn(e),t=Nn(t);let a=1;const o=new Uint8Array(r),u=new Uint8Array(t.length+4);let l,d;u.set(t);for(let c=1;c<=a;c++){u[t.length]=c>>24&255,u[t.length+1]=c>>16&255,u[t.length+2]=c>>8&255,u[t.length+3]=255&c;let p=Nn(Ba(i,e,u));s||(s=p.length,d=new Uint8Array(s),a=Math.ceil(r/s),l=r-(a-1)*s),d.set(p);for(let t=1;t<n;t++){p=Nn(Ba(i,e,p));for(let e=0;e<s;e++)d[e]^=p[e]}const h=(c-1)*s,f=c===a?l:s;o.set(Nn(d).slice(0,f),h)}return Pn(o)}new An(Qa);const Ju=new An("wordlists/5.8.0");class Qu{constructor(e){Ju.checkAbstract(new.target,Qu),hr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return Zr(t.join("\n")+"\n")}static register(e,t){}}const Yu="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let Xu=null;function Zu(e){if(null==Xu&&(Xu=Yu.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Qu.check(e)))throw Xu=null,new Error("BIP39 Wordlist for en (English) FAILED")}const $u=new class extends Qu{constructor(){super("en")}getWord(e){return Zu(this),Xu[e]}getWordIndex(e){return Zu(this),Xu.indexOf(e)}};Qu.register($u);const el={en:$u},tl=new An("hdnode/5.8.0"),nl=Wn.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),rl=Yr("Bitcoin seed"),il=2147483648;function sl(e){return(1<<e)-1<<8-e}function al(e){return Ln(Pn(e),32)}function ol(e){return Dr.encode(_n([e,Bn(Oa(Oa(e)),0,4)]))}function ul(e){if(null==e)return el.en;if("string"==typeof e){const t=el[e];return null==t&&tl.throwArgumentError("unknown locale","wordlist",e),t}return e}const ll={},dl="m/44'/60'/0'/0/0";class cl{constructor(e,t,n,r,i,s,a,o){if(e!==ll)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Do(t);hr(this,"privateKey",e.privateKey),hr(this,"publicKey",e.compressedPublicKey)}else hr(this,"privateKey",null),hr(this,"publicKey",Pn(n));var u;hr(this,"parentFingerprint",r),hr(this,"fingerprint",Bn((u=Oa(this.publicKey),"0x"+Ra.ripemd160().update(Nn(u)).digest("hex")),0,4)),hr(this,"address",zo(this.publicKey)),hr(this,"chainCode",i),hr(this,"index",s),hr(this,"depth",a),null==o?(hr(this,"mnemonic",null),hr(this,"path",null)):"string"==typeof o?(hr(this,"mnemonic",null),hr(this,"path",o)):(hr(this,"mnemonic",o),hr(this,"path",o.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return ol(_n([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Pn(this.depth),this.parentFingerprint,Ln(Pn(this.index),4),this.chainCode,null!=this.privateKey?_n(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new cl(ll,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&il){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(Nn(this.privateKey),1),t&&(t+="'")}else n.set(Nn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=Nn(Ba(xa.sha512,this.chainCode,n)),i=r.slice(0,32),s=r.slice(32);let a=null,o=null;this.privateKey?a=al(Wn.from(i).add(this.privateKey).mod(nl)):o=new Do(Pn(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new cl(ll,a,o,this.fingerprint,al(s),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=il)throw new Error("invalid path index - "+r);n=n._derive(il+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=il)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=Nn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=Nn(Ba(xa.sha512,rl,n));return new cl(ll,al(r.slice(0,32)),null,"0x00000000",al(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=hl(pl(e,n=ul(n)),n),cl._fromSeed(function(e,t){t||(t="");const n=Yr("mnemonic"+t,jr.NFKD);return Wu(Yr(e,jr.NFKD),n,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return cl._fromSeed(e,null)}static fromExtendedKey(e){const t=Dr.decode(e);82===t.length&&ol(t.slice(0,78))===e||tl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Pn(t.slice(5,9)),i=parseInt(Pn(t.slice(9,13)).substring(2),16),s=Pn(t.slice(13,45)),a=t.slice(45,78);switch(Pn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new cl(ll,null,Pn(a),r,s,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==a[0])break;return new cl(ll,Pn(a.slice(1)),null,r,s,i,n,null)}return tl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function pl(e,t){t=ul(t),tl.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=Nn(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let s=t.getWordIndex(n[e].normalize("NFKD"));if(-1===s)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)s&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const s=32*n.length/3,a=sl(n.length/3);if((Nn(Oa(r.slice(0,s/8)))[0]&a)!=(r[r.length-1]&a))throw new Error("invalid checksum");return Pn(r.slice(0,s/8))}function hl(e,t){if(t=ul(t),(e=Nn(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,s=Nn(Oa(e))[0]&sl(i);return n[n.length-1]<<=i,n[n.length-1]|=s>>8-i,t.join(n.map(e=>t.getWord(e)))}var fl=ln(function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function s(e){return new Uint8Array(e)}function a(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var o,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},l=(o="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(o[(240&r)>>4]+o[15&r])}return t.join("")}}),d={16:10,24:12,32:14},c=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],p=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],h=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],w=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],A=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],I=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],S=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function k(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=d[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,s=k(this.key);for(t=0;t<i;t++)this._Ke[n=t>>2][t%4]=s[t],this._Kd[e-n][t%4]=s[t];for(var a,o=0,u=i;u<r;){if(s[0]^=p[(a=s[i-1])>>16&255]<<24^p[a>>8&255]<<16^p[255&a]<<8^p[a>>24&255]^c[o]<<24,o+=1,8!=i)for(t=1;t<i;t++)s[t]^=s[t-1];else{for(t=1;t<i/2;t++)s[t]^=s[t-1];for(s[i/2]^=p[255&(a=s[i/2-1])]^p[a>>8&255]<<8^p[a>>16&255]<<16^p[a>>24&255]<<24,t=i/2+1;t<i;t++)s[t]^=s[t-1]}for(t=0;t<i&&u<r;)this._Ke[l=u>>2][h=u%4]=s[t],this._Kd[e-l][h]=s[t++],u++}for(var l=1;l<e;l++)for(var h=0;h<4;h++)this._Kd[l][h]=T[(a=this._Kd[l][h])>>24&255]^E[a>>16&255]^I[a>>8&255]^S[255&a]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=k(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var a=1;a<t;a++){for(i=0;i<4;i++)n[i]=f[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[a][i];r=n.slice()}var o,u=s(16);for(i=0;i<4;i++)u[4*i]=255&(p[r[i]>>24&255]^(o=this._Ke[t][i])>>24),u[4*i+1]=255&(p[r[(i+1)%4]>>16&255]^o>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^o>>8),u[4*i+3]=255&(p[255&r[(i+3)%4]]^o);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=k(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var a=1;a<t;a++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^w[r[(i+2)%4]>>8&255]^A[255&r[(i+1)%4]]^this._Kd[a][i];r=n.slice()}var o,u=s(16);for(i=0;i<4;i++)u[4*i]=255&(h[r[i]>>24&255]^(o=this._Kd[t][i])>>24),u[4*i+1]=255&(h[r[(i+3)%4]>>16&255]^o>>16),u[4*i+2]=255&(h[r[(i+2)%4]>>8&255]^o>>8),u[4*i+3]=255&(h[255&r[(i+1)%4]]^o);return u};var N=function(e){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};N.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16)a(e,n,0,r,r+16),a(n=this._aes.encrypt(n),t,r);return t},N.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16)a(e,n,0,r,r+16),a(n=this._aes.decrypt(n),t,r);return t};var _=function(e,t){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=s(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};_.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16){a(e,n,0,r,r+16);for(var o=0;o<16;o++)n[o]^=this._lastCipherblock[o];this._lastCipherblock=this._aes.encrypt(n),a(this._lastCipherblock,t,r)}return t},_.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16){a(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var o=0;o<16;o++)t[r+o]=n[o]^this._lastCipherblock[o];a(e,this._lastCipherblock,0,r,r+16)}return t};var x=function(e,t,n){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=s(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};x.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[r+s]^=t[s];a(this._shiftRegister,this._shiftRegister,0,this.segmentSize),a(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},x.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[r+s]^=t[s];a(this._shiftRegister,this._shiftRegister,0,this.segmentSize),a(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var M=function(e,t){if(!(this instanceof M))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=s(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};M.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},M.prototype.decrypt=M.prototype.encrypt;var R=function(e){if(!(this instanceof R))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=s(16),this.setValue(e)):this.setBytes(e)};R.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},R.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},R.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof R||(t=new R(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt,e.exports={AES:C,Counter:R,ModeOfOperation:{ecb:N,cbc:_,cfb:x,ofb:M,ctr:P},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=s(e.length+t);a(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var o=s(n);return a(e,o,0,0,n),o}}},_arrayTest:{coerceArray:i,createArray:s,copyArray:a}}}()});const ml="json-wallets/5.8.0";function yl(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Nn(e)}function gl(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function bl(e){return"string"==typeof e?Yr(e,jr.NFKC):Nn(e)}function vl(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function wl(e){const t=Nn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Pn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const Al=new An(ml);class Tl extends Tr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function El(e,t){const n=JSON.parse(e);t=bl(t);const r=Di(vl(n,"ethaddr")),i=yl(vl(n,"encseed"));i&&i.length%16==0||Al.throwArgumentError("invalid encseed","json",e);const s=Nn(Wu(t,t,2e3,32,"sha256")).slice(0,16),a=i.slice(0,16),o=i.slice(16),u=new fl.ModeOfOperation.cbc(s,a),l=fl.padding.pkcs7.strip(Nn(u.decrypt(o)));let d="";for(let e=0;e<l.length;e++)d+=String.fromCharCode(l[e]);const c=Vr(Yr(d));return new Tl({_isCrowdsaleAccount:!0,address:r,privateKey:c})}function Il(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Sl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var kl=ln(function(e,t){!function(t){const n=2147483647;function r(e){const t=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]);let n=1779033703,r=3144134277,i=1013904242,s=2773480762,a=1359893119,o=2600822924,u=528734635,l=1541459225;const d=new Uint32Array(64);function c(e){let c=0,p=e.length;for(;p>=64;){let h,f,m,y,g,b=n,v=r,w=i,A=s,T=a,E=o,I=u,S=l;for(f=0;f<16;f++)m=c+4*f,d[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)h=d[f-2],y=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,h=d[f-15],g=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,d[f]=(y+d[f-7]|0)+(g+d[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&I)|0)+(S+(t[f]+d[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&w^v&w)|0,S=I,I=E,E=T,T=A+y|0,A=w,w=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+w|0,s=s+A|0,a=a+T|0,o=o+E|0,u=u+I|0,l=l+S|0,c+=64,p-=64}}c(e);let p,h=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=h<56?56:120,g=e.slice(e.length-h,e.length);for(g.push(128),p=h+1;p<y;p++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),c(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,s=new Array(i),a=new Array(64);let o,u=[];for(o=0;o<64;o++)s[o]=54;for(o=0;o<e.length;o++)s[o]^=e[o];for(o=0;o<t.length;o++)s[64+o]=t[o];for(o=i-4;o<i;o++)s[o]=0;for(o=0;o<64;o++)a[o]=92;for(o=0;o<e.length;o++)a[o]^=e[o];function l(){for(let e=i-1;e>=i-4;e--){if(s[e]++,s[e]<=255)return;s[e]=0}}for(;n>=32;)l(),u=u.concat(r(a.concat(r(s)))),n-=32;return n>0&&(l(),u=u.concat(r(a.concat(r(s))).slice(0,n))),u}function s(e,t,n,r,i){let s;for(l(e,16*(2*n-1),i,0,16),s=0;s<2*n;s++)u(e,16*s,i,16),o(i,r),l(i,0,e,t+16*s,16);for(s=0;s<n;s++)l(e,t+2*s*16,e,16*s,16);for(s=0;s<n;s++)l(e,t+16*(2*s+1),e,16*(s+n),16)}function a(e,t){return e<<t|e>>>32-t}function o(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=a(t[0]+t[12],7),t[8]^=a(t[4]+t[0],9),t[12]^=a(t[8]+t[4],13),t[0]^=a(t[12]+t[8],18),t[9]^=a(t[5]+t[1],7),t[13]^=a(t[9]+t[5],9),t[1]^=a(t[13]+t[9],13),t[5]^=a(t[1]+t[13],18),t[14]^=a(t[10]+t[6],7),t[2]^=a(t[14]+t[10],9),t[6]^=a(t[2]+t[14],13),t[10]^=a(t[6]+t[2],18),t[3]^=a(t[15]+t[11],7),t[7]^=a(t[3]+t[15],9),t[11]^=a(t[7]+t[3],13),t[15]^=a(t[11]+t[7],18),t[1]^=a(t[0]+t[3],7),t[2]^=a(t[1]+t[0],9),t[3]^=a(t[2]+t[1],13),t[0]^=a(t[3]+t[2],18),t[6]^=a(t[5]+t[4],7),t[7]^=a(t[6]+t[5],9),t[4]^=a(t[7]+t[6],13),t[5]^=a(t[4]+t[7],18),t[11]^=a(t[10]+t[9],7),t[8]^=a(t[11]+t[10],9),t[9]^=a(t[8]+t[11],13),t[10]^=a(t[9]+t[8],18),t[12]^=a(t[15]+t[14],7),t[13]^=a(t[12]+t[15],9),t[14]^=a(t[13]+t[12],13),t[15]^=a(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function l(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function d(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function c(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function p(e,t,r,a,o,p,h){if(r=c(r,"N"),a=c(a,"r"),o=c(o,"p"),p=c(p,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/a)throw new Error("N too large");if(a>n/128/o)throw new Error("r too large");if(!d(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!d(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*o*a);const m=new Uint32Array(32*o*a);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*a),g=new Uint32Array(32*a*r),b=32*a,v=new Uint32Array(16),w=new Uint32Array(16),A=o*r*2;let T,E,I=0,S=null,k=!1,C=0,N=0;const _=h?parseInt(1e3/a):4294967295,x="undefined"!=typeof setImmediate?setImmediate:setTimeout,M=function(){if(k)return h(new Error("cancelled"),I/A);let t;switch(C){case 0:E=32*N*a,l(m,E,y,0,b),C=1,T=0;case 1:t=r-T,t>_&&(t=_);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),s(y,b,a,v,w);if(T+=t,I+=t,h){const e=parseInt(1e3*I/A);if(e!==S){if(k=h(null,I/A),k)break;S=e}}if(T<r)break;T=0,C=2;case 2:t=r-T,t>_&&(t=_);for(let e=0;e<t;e++)u(g,(y[16*(2*a-1)]&r-1)*b,y,b),s(y,b,a,v,w);if(T+=t,I+=t,h){const e=parseInt(1e3*I/A);if(e!==S){if(k=h(null,I/A),k)break;S=e}}if(T<r)break;if(l(y,0,m,E,b),N++,N<o){C=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const n=i(e,f,p);return h&&h(null,1,n),n}h&&x(M)};if(!h)for(;;){const e=M();if(null!=e)return e}M()}const h={scrypt:function(e,t,n,r,i,s,a){return new Promise(function(o,u){let l=0;a&&a(0),p(e,t,n,r,i,s,function(e,t,n){if(e)u(e);else if(n)a&&1!==l&&a(1),o(new Uint8Array(n));else if(a&&t!==l)return l=t,a(t)})})},syncScrypt:function(e,t,n,r,i,s){return new Uint8Array(p(e,t,n,r,i,s))}};e.exports=h}()}),Cl=kl;const Nl=new An(ml);function _l(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class xl extends Tr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Ml(e,t){const n=yl(vl(e,"crypto/ciphertext"));if(Pn(Vr(_n([t.slice(16,32),n]))).substring(2)!==vl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===vl(e,"crypto/cipher")){const r=yl(vl(e,"crypto/cipherparams/iv")),i=new fl.Counter(r);return Nn(new fl.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Nl.throwError("unsupported cipher",An.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),s=zo(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Di(t)!==s)throw new Error("address mismatch")}const a={_isKeystoreAccount:!0,address:s,privateKey:Pn(r)};if("0.1"===vl(e,"x-ethers/version")){const t=yl(vl(e,"x-ethers/mnemonicCiphertext")),n=yl(vl(e,"x-ethers/mnemonicCounter")),r=new fl.Counter(n),s=new fl.ModeOfOperation.ctr(i,r),o=vl(e,"x-ethers/path")||dl,u=vl(e,"x-ethers/locale")||"en",l=Nn(s.decrypt(t));try{const e=hl(l,u),t=cl.fromMnemonic(e,null,u).derivePath(o);if(t.privateKey!=a.privateKey)throw new Error("mnemonic mismatch");a.mnemonic=t.mnemonic}catch(e){if(e.code!==An.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new xl(a)}function Rl(e,t,n,r,i){return Nn(Wu(e,t,n,r,i))}function Pl(e,t,n,r,i){return Promise.resolve(Rl(e,t,n,r,i))}function Ol(e,t,n,r,i){const s=bl(t),a=vl(e,"crypto/kdf");if(a&&"string"==typeof a){const t=function(e,t){return Nl.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===a.toLowerCase()){const n=yl(vl(e,"crypto/kdfparams/salt")),o=parseInt(vl(e,"crypto/kdfparams/n")),u=parseInt(vl(e,"crypto/kdfparams/r")),l=parseInt(vl(e,"crypto/kdfparams/p"));o&&u&&l||t("kdf",a),0!=(o&o-1)&&t("N",o);const d=parseInt(vl(e,"crypto/kdfparams/dklen"));return 32!==d&&t("dklen",d),r(s,n,o,u,l,64,i)}if("pbkdf2"===a.toLowerCase()){const r=yl(vl(e,"crypto/kdfparams/salt"));let i=null;const a=vl(e,"crypto/kdfparams/prf");"hmac-sha256"===a?i="sha256":"hmac-sha512"===a?i="sha512":t("prf",a);const o=parseInt(vl(e,"crypto/kdfparams/c")),u=parseInt(vl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(s,r,o,u,i)}}return Nl.throwArgumentError("unsupported key-derivation function","kdf",a)}var Bl=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Dl=new An("wallet/5.8.0");class Fl extends o{constructor(e,t){if(super(),null!=(n=e)&&Mn(n.privateKey,32)&&null!=n.address){const t=new Do(e.privateKey);if(hr(this,"_signingKey",()=>t),hr(this,"address",zo(this.publicKey)),this.address!==Di(e.address)&&Dl.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;hr(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||dl,locale:t.locale||"en"}));const n=this.mnemonic;zo(cl.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Dl.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else hr(this,"_mnemonic",()=>null)}else{if(Do.isSigningKey(e))"secp256k1"!==e.curve&&Dl.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),hr(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Do(e);hr(this,"_signingKey",()=>t)}hr(this,"_mnemonic",()=>null),hr(this,"address",zo(this.publicKey))}var n;t&&!Sr.isProvider(t)&&Dl.throwArgumentError("invalid provider","provider",t),hr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Fl(this,e)}signTransaction(e){return mr(e).then(t=>{null!=t.from&&(Di(t.from)!==this.address&&Dl.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(Vr(Zo(t)));return Zo(t,n)})}signMessage(e){return Bl(this,void 0,void 0,function*(){return Gn(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=Yr(e)),Vr(_n([Yr("Ethereum Signed Message:\n"),Yr(String(e.length)),e]))}(e)))})}_signTypedData(e,t,n){return Bl(this,void 0,void 0,function*(){const r=yield Zi.resolveNames(e,t,n,e=>(null==this.provider&&Dl.throwError("cannot resolve ENS names without a provider",An.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Gn(this._signingKey().signDigest(Zi.hash(r.domain,t,r.value)))})}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),function(e,t,n,r){try{if(Di(e.address)!==zo(e.privateKey))throw new Error("address/privateKey mismatch");if(_l(e)){const t=e.mnemonic;if(cl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||dl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=Nn(e.privateKey),s=bl(t);let a=null,o=null,u=null;if(_l(e)){const t=e.mnemonic;a=Nn(pl(t.phrase,t.locale||"en")),o=t.path||dl,u=t.locale||"en"}let l=n.client;l||(l="ethers.js");let d=null;d=n.salt?Nn(n.salt):Hu(32);let c=null;if(n.iv){if(c=Nn(n.iv),16!==c.length)throw new Error("invalid iv")}else c=Hu(16);let p=null;if(n.uuid){if(p=Nn(n.uuid),16!==p.length)throw new Error("invalid uuid")}else p=Hu(16);let h=1<<17,f=8,m=1;return n.scrypt&&(n.scrypt.N&&(h=n.scrypt.N),n.scrypt.r&&(f=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Cl.scrypt(s,d,h,f,m,64,r).then(t=>{const n=(t=Nn(t)).slice(0,16),r=t.slice(16,32),s=t.slice(32,64),y=new fl.Counter(c),g=Nn(new fl.ModeOfOperation.ctr(n,y).encrypt(i)),b=Vr(_n([r,g])),v={address:e.address.substring(2).toLowerCase(),id:wl(p),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Pn(c).substring(2)},ciphertext:Pn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Pn(d).substring(2),n:h,dklen:32,p:m,r:f},mac:b.substring(2)}};if(a){const e=Hu(16),t=new fl.Counter(e),n=Nn(new fl.ModeOfOperation.ctr(s,t).encrypt(a)),r=new Date,i=r.getUTCFullYear()+"-"+gl(r.getUTCMonth()+1,2)+"-"+gl(r.getUTCDate(),2)+"T"+gl(r.getUTCHours(),2)+"-"+gl(r.getUTCMinutes(),2)+"-"+gl(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Pn(e).substring(2),mnemonicCiphertext:Pn(n).substring(2),path:o,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,n)}static createRandom(e){let t=Hu(16);e||(e={}),e.extraEntropy&&(t=Nn(Bn(Vr(_n([t,e.extraEntropy])),0,16)));const n=hl(t,e.locale);return Fl.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return function(e,t,n){if(Il(e)){n&&n(0);const r=El(e,t);return n&&n(1),Promise.resolve(r)}return Sl(e)?function(e,t,n){return r=this,s=function*(){const r=JSON.parse(e);return Ml(r,yield Ol(r,t,Pl,Cl.scrypt,n))},new((i=void 0)||(i=Promise))(function(e,t){function n(e){try{o(s.next(e))}catch(e){t(e)}}function a(e){try{o(s.throw(e))}catch(e){t(e)}}function o(t){var r;t.done?e(t.value):(r=t.value,r instanceof i?r:new i(function(e){e(r)})).then(n,a)}o((s=s.apply(r,[])).next())});var r,i,s}(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}(e,t,n).then(e=>new Fl(e))}static fromEncryptedJsonSync(e,t){return new Fl(function(e,t){if(Il(e))return El(e,t);if(Sl(e))return function(e,t){const n=JSON.parse(e);return Ml(n,Ol(n,t,Rl,Cl.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,n){return t||(t=dl),new Fl(cl.fromMnemonic(e,null,n).derivePath(t))}}function Ll(e){return"string"==typeof e?new Fl(e):"request"in e||"send"in e?new Ku(e).getSigner():e}const Ul=new l;async function Gl({slippageBps:e,appCode:t,orderClass:n,partnerFee:r},i){const s={slippageBips:e},a={orderClass:n},o=await Ul.generateAppDataDoc(A({appCode:t,metadata:{quote:s,orderClass:a,partnerFee:r}},i||{})),{fullAppData:u,appDataKeccak256:l}=await ql(o);return{doc:o,fullAppData:u,appDataKeccak256:l}}async function ql(e){const t=await d(e);return{fullAppData:t,appDataKeccak256:c(p(t))}}async function Hl(e,t){var n;const r=null!=(n=t.metadata)&&n.hooks?K({},e,{metadata:K({},e.metadata,{hooks:{}})}):e,i=t?A(r,t):r,{fullAppData:s,appDataKeccak256:a}=await ql(i);return{fullAppData:s,appDataKeccak256:a,doc:i}}const Vl="Order",zl=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],jl=1e6,Kl=BigInt(jl),Wl=10000n;function Jl(e,t){const n=e*BigInt(Math.floor(t*jl))/Kl;return n/100n+(n%100n>=50n?1n:0n)}const Ql=1e4,Yl=50,Xl=.5;function Zl(e){const{quote:t,tradeParameters:n,trader:r,isEthFlow:i}=e,{sellTokenDecimals:s,buyTokenDecimals:a}=n,{isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=Tt({sellDecimals:s,buyDecimals:a,orderParams:t.quote}),{feeAmount:d}=t.quote,c=function(e){const{feeAmount:t,multiplyingFactorPercent:n}=e;if(t<0n)throw new Error("Fee amount must be non-negative: "+t);if(n<0)throw new Error("multiplyingFactorPercent must be non-negative: "+n);return Jl(t,n)}({feeAmount:BigInt(d),multiplyingFactorPercent:Yl}),p=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:n,isSell:r,slippagePercent:i}=e,s=r?n:t;if(s<=0n)throw new Error("sellAmount must be greater than 0: "+s);if(i<0)throw new Error("slippagePercent must be non-negative: "+i);return Jl(s,i)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:Xl}),h=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:n,slippage:r,isSell:i}=e,s=i?n:t;if(s<=0n)throw new Error("sellAmount must be greater than 0: "+s);if(r<0n)throw new Error("slippage must be non-negative: "+r);return i?Number(Bt-Bt*(s-r)/s)/Number(Bt):Number(Bt*(s+r)/s-Bt)/Number(Bt)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:c+p}),f=function(e){const t="bigint"==typeof e?Number(e*Wl):e*Number(Wl);return Math.round(t)}(h);return Math.max(Math.min(f,Ql),Lt(r.chainId,i))}const $l={signingScheme:wt.EIP1271,onchainOrder:!0,verificationGasLimit:0};async function ed(e,t,n,r){const{quote:i,orderBookApi:s,tradeParameters:a,slippageBps:o,suggestedSlippageBps:u,appDataInfo:l,isEthFlow:d}=await async function(e,t,n,r){const{appCode:i,chainId:s,account:a}=t,o=$t(e),u=o?rn(s,e):e,{sellToken:l,buyToken:d,amount:c,kind:p,partnerFee:h,validFor:f=Ut,slippageBps:m,env:y="prod"}=u;Qe(`getQuote for: Swap ${c} ${l} for ${d} on chain ${s} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=r||new st({chainId:s,env:y}),b=u.receiver||a,v="sell"===p;Qe("Building app data...");const w=Lt(s,o),A=null!=m?m:w,T={slippageBps:A,orderClass:"market",appCode:i,partnerFee:h},E=await Gl(T,null==n?void 0:n.appData),{appDataKeccak256:I,fullAppData:S}=E;Qe(`App data: appDataKeccak256=${I} fullAppData=${S}`);const k=K({from:a,sellToken:l,buyToken:d,receiver:b,validFor:f,appData:S,appDataHash:I,priceQuality:bt.OPTIMAL,signingScheme:wt.EIP712},o?$l:{},v?{kind:mt.SELL,sellAmountBeforeFee:c}:{kind:ft.BUY,buyAmountAfterFee:c},null==n?void 0:n.quoteRequest);Qe("Getting quote...");const C=await g.getQuote(k),N=Zl({isEthFlow:o,quote:C,tradeParameters:u,trader:t,advancedSettings:n}),_={isEthFlow:o,quote:C,orderBookApi:g,suggestedSlippageBps:N};if(void 0===m){if(N>w){Qe(`Suggested slippage is greater than ${w} BPS (default), using the suggested slippage (${N} BPS)`);const t=await Gl(K({},T,{slippageBps:N}),null==n?void 0:n.appData);return Qe(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`),K({},_,{appDataInfo:t,tradeParameters:K({},e,{slippageBps:N}),slippageBps:N})}Qe(`Suggested slippage is only ${N} BPS. Using the default slippage (${w} BPS)`)}return K({},_,{appDataInfo:E,tradeParameters:e,slippageBps:A})}(e,t,n,r),{partnerFee:c,sellTokenDecimals:p,buyTokenDecimals:h}=a,{chainId:f,account:m}=t,y=It({orderParams:i.quote,slippagePercentBps:o,partnerFeeBps:xt(c),sellDecimals:p,buyDecimals:h}),g=Gt({chainId:f,from:m,networkCostsAmount:i.quote.feeAmount,isEthFlow:d},Zt(a,i),l.appDataKeccak256),b=await async function(e,t){return{domain:await _t.getDomain(e),primaryType:Vl,types:{[Vl]:T,EIP712Domain:zl},message:t}}(f,g);return{result:{tradeParameters:a,suggestedSlippageBps:u,amountsAndCosts:y,orderToSign:g,quoteResponse:i,appDataInfo:l,orderTypedData:b},orderBookApi:s}}async function td(e,t,n){const r=Ll(e.signer),i=await async function(e,t){const n=t.owner||await e.getAddress();return{chainId:t.chainId,appCode:t.appCode,account:n}}(r,e),s=await ed(e,i,t,n);return{result:K({},s.result,{signer:r}),orderBookApi:s.orderBookApi}}async function nd(e,t,n){return rd(await td(e,t,n),t)}async function rd({orderBookApi:e,result:{signer:t,appDataInfo:n,quoteResponse:r,tradeParameters:i}},s){var a,o,u;const l=Zt(i,r),d=null==s?void 0:s.appData,c=d?await Hl(n.doc,d):n,p=null==d||null==(a=d.metadata)||null==(a=a.quote)?void 0:a.slippageBips,h=null==d||null==(o=d.metadata)?void 0:o.partnerFee;if(void 0!==p&&(l.slippageBps=p),h&&(l.partnerFee=h),null!=s&&s.quoteRequest){const{receiver:e,validTo:t,sellToken:n,buyToken:r}=s.quoteRequest;e&&(l.receiver=e),t&&(l.validTo=t),n&&(l.sellToken=n),r&&(l.buyToken=r)}return on(e,t,c,l,K({signingScheme:null==s||null==(u=s.quoteRequest)?void 0:u.signingScheme,networkCostsAmount:r.quote.feeAmount},null==s?void 0:s.additionalParams))}async function id(e,t,n){var r,i;const s=null==t||null==(r=t.appData)||null==(r=r.metadata)||null==(r=r.quote)?void 0:r.slippageBips,a=null==t||null==(i=t.appData)||null==(i=i.metadata)?void 0:i.partnerFee;void 0!==s&&(e.slippageBps=s),a&&(e.partnerFee=a),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:u,sellToken:l,buyToken:d,sellAmount:c,buyAmount:p,partnerFee:h}=e;Qe(`Limit order ${c} ${l} for ${p} ${d} on chain ${u}`);const f=Ll(e.signer),m=n||new st({chainId:u,env:e.env});return Qe("Building app data..."),on(m,f,await Gl({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:h},null==t?void 0:t.appData),e,null==t?void 0:t.additionalParams)}async function sd(e,t,n,r){const i=Xt.connect(n,e),s=Le[t];return{data:i.interface.encodeFunctionData("setPreSignature",[r,!0]),gasLimit:"0x"+en(await i.estimateGas.setPreSignature(r,!0).then(e=>BigInt(e.toHexString())).catch(()=>Ct)).toString(16),to:s,value:"0"}}class ad{constructor(e={},t={}){this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Ye(t.enableLogging)}setTraderParams(e){return this.traderParams=K({},this.traderParams,e),this}async getQuote(e,t){const n=await td(this.mergeParams(e),t,this.options.orderBookApi);return{quoteResults:n.result,postSwapOrderFromQuote:(t,r)=>(null==r||null==r.beforeOrderSign||r.beforeOrderSign(),rd(K({},n,{result:K({},n.result,{tradeParameters:nn({quoteParameters:n.result.tradeParameters,sellToken:e.sellToken})})}),t).catch(e=>{throw null==r||null==r.onOrderSignError||r.onOrderSignError(),e}).then(e=>(null==r||null==r.afterOrderSign||r.afterOrderSign(),e)))}}async getQuoteResults(e,t){return td(this.mergeParams(e),t,this.options.orderBookApi)}async postSwapOrder(e,t){return nd(this.mergeParams(e),t,this.options.orderBookApi)}async postLimitOrder(e,t){return id(this.mergeParams(e),t,this.options.orderBookApi)}async postSellNativeCurrencyOrder(e,t){const n=await td(this.mergeParams(e),t,this.options.orderBookApi),{tradeParameters:r,quoteResponse:i}=n.result;return an(n.orderBookApi,n.result.signer,n.result.appDataInfo,Zt(nn({quoteParameters:r,sellToken:e.sellToken}),i),null==t?void 0:t.additionalParams)}async getPreSignTransaction(e){const t=this.mergeParams(e);return sd(Ll(t.signer),t.chainId,e.account,e.orderId)}mergeParams(e){const{chainId:t,signer:n,appCode:r,env:i}=e,s={chainId:t||this.traderParams.chainId,signer:n||this.traderParams.signer,appCode:r||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===od(e).length}(e))throw new Error("Missing trader parameters: "+od(e).join(", "))}(s),K({},e,s)}}function od(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const ud=["sellTokenAddress","buyTokenAddress","amount"],ld=["signer"];function dd(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000",dappId:gd}}function cd(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const pd=new An("units/5.8.0"),hd=["wei","kwei","mwei","gwei","szabo","finney","ether"],fd=`${ae}/src/bridging/providers`,md=24e4,yd=36e4,gd="cow-sdk://bridging/providers",bd=["kind","sellTokenChainId","sellTokenAddress","buyTokenChainId","buyTokenAddress","amount","signer"],vd=["signer"];function wd(e,t){const n=z(e).find(e=>{var t;return null==(t=e.dappId)?void 0:t.startsWith(gd)});if(!n)return;const r=n.dappId;return t.find(e=>e.info.dappId===r)}async function Ad(e){const{chainId:t,orderId:n,orderBookApi:r,providers:i,env:s}=e,a={chainId:t,env:s},o=await r.getOrder(n,a),u=o.fullAppData&&wd(o.fullAppData,i);if(!u)throw new U(`Unknown Bridge provider in order ${o.uid}. Add provider to the SDK config to be able to decode the order`);const l=await r.getTrades({orderUid:o.uid},a);if(l.length>0){const e=l[0],r=e.txHash;if(!r)throw new U(`No tx hash found for order ${n} . First trade, with log index ${e.logIndex}`);const i=await u.getBridgingParams(t,n,r);if(!i)throw new U(`Bridging params cannot be derived from transaction: ${r}`);const s={provider:u,chainId:t,order:o,statusResult:{status:P.UNKNOWN},bridgingParams:i,tradeTxHash:r};try{return K({},s,{statusResult:await u.getStatus(i.bridgingId,t),explorerUrl:u.getExplorerUrl(i.bridgingId)})}catch(e){return console.error("Cannot get bridging status",e),s}}return null}const Td=["providers"];class Ed{constructor(e){var t,n;this.options=e;const{providers:r}=e,i=W(e,Td);if(!r||1!==r.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Ye(e.enableLogging);const s=null!==(t=e.tradingSdk)&&void 0!==t?t:new ad,a=null!==(n=null==s?void 0:s.options.orderBookApi)&&void 0!==n?n:new st;this.config=K({},i,{providers:r,tradingSdk:s,orderBookApi:a})}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}async getSourceNetworks(){return ke}async getTargetNetworks(){return this.provider.getNetworks()}async getBuyTokens(e){return this.provider.getBuyTokens(e)}async getQuote(e,t){const{sellTokenChainId:n,buyTokenChainId:r}=e,i=this.config.tradingSdk;return n!==r?async function(e){var t;const{provider:n,swapAndBridgeRequest:r,advancedSettings:i,tradingSdk:s,bridgeHookSigner:a}=e,{kind:o,sellTokenChainId:u,sellTokenAddress:l,buyTokenChainId:d,buyTokenAddress:c,amount:p,signer:f}=r,m=W(r,bd),y=Ll(f);if(o!==pt.SELL)throw new Error("Bridging only support SELL orders");Qe(`Cross-chain ${o} ${p} ${l} (source chain ${u}) for ${c} (target chain ${d})`);const g=await async function(e){const{provider:t,swapAndBridgeRequest:n}=e,r=await t.getIntermediateTokens(n);if(0===r.length)throw new F(O.NO_INTERMEDIATE_TOKENS);const i=r[0];return Qe(`Using ${i} as intermediate tokens`),K({},n,{sellTokenAddress:i.address,sellTokenDecimals:i.decimals})}({swapAndBridgeRequest:r,provider:n}),b=await n.getGasLimitEstimationForHook(g),v=dd(b);Qe(`Using mocked hook for swap gas estimation: ${JSON.stringify(v)}`);const{sellTokenAddress:w,sellTokenDecimals:A}=g,T=K({},m,{kind:o,chainId:u,sellToken:l,buyToken:w,buyTokenDecimals:A,amount:p.toString(),signer:y}),E=W(T,vd);Qe(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(E,tt)}`);const I=null==i||null==(t=i.appData)||null==(t=t.metadata)?void 0:t.hooks,{result:S,orderBookApi:k}=await s.getQuoteResults(T,K({},i,{appData:K({},null==i?void 0:i.appData,{metadata:{hooks:{pre:null==I?void 0:I.pre,post:[...(null==I?void 0:I.post)||[],v]}}})})),C=S.amountsAndCosts.afterSlippage.buyAmount;async function N(e,t,i){var s,a;const o=null==i?void 0:i.appData,u=null==i||null==(s=i.quoteRequest)?void 0:s.receiver,l=null==i||null==(a=i.quoteRequest)?void 0:a.validTo,{bridgeHook:d,appDataInfo:{doc:c,fullAppData:p,appDataKeccak256:f},bridgeResult:m}=await async function(e){const{swapResult:t,bridgeRequestWithoutAmount:n,provider:r,intermediateTokenAmount:i,appDataOverride:s}=e,a=K({},n,{amount:i}),{hook:o,unsignedBridgeCall:u,bridgingQuote:l}=await async function(e,{provider:t,signer:n,hookGasLimit:r,swapResult:i,validToOverride:s}){const a=await t.getQuote(e),o=await t.getUnsignedBridgeCall(e,a),u=BigInt(s||i.orderToSign.validTo),l=h(["bytes","uint256"],[o.data,u]);return{hook:await t.getSignedHook(e.sellTokenChainId,o,n,l,u,r),unsignedBridgeCall:o,bridgingQuote:a}}(a,e),d=await Hl(t.appDataInfo.doc,s||{}),c=d.doc.metadata.hooks,p=((null==c?void 0:c.post)||[]).filter(e=>{var t;return!(null!=(t=e.dappId)&&t.startsWith(gd))}),f=await Hl(d.doc,{metadata:{hooks:{pre:null==c?void 0:c.pre,post:[...p,o.postHook]}}});return{bridgeResult:{providerInfo:r.info,tradeParameters:a,bridgeCallDetails:{unsignedBridgeCall:u,preAuthorizedBridgingHook:o},isSell:l.isSell,expectedFillTimeSeconds:l.expectedFillTimeSeconds,fees:l.fees,limits:l.limits,quoteTimestamp:l.quoteTimestamp,amountsAndCosts:l.amountsAndCosts},bridgeHook:o,appDataInfo:f}}({swapAndBridgeRequest:K({},r,{kind:pt.SELL}),swapResult:S,bridgeRequestWithoutAmount:K({},g,{receiver:u||g.receiver}),provider:n,intermediateTokenAmount:C,signer:e,appDataOverride:o,validToOverride:l,hookGasLimit:t});return Qe(`Bridge hook for swap: ${JSON.stringify(d)}`),S.tradeParameters.receiver=d.recipient,Qe(`App data for swap: appDataKeccak256=${f}, fullAppData="${p}"`),S.appDataInfo={fullAppData:p,appDataKeccak256:f,doc:c},{bridgeResult:m,swapResult:K({},S,{tradeParameters:K({},S.tradeParameters,{receiver:d.recipient})})}}Qe(`Expected to receive ${C} of the intermediate token (${function(e,t){if("string"!=typeof e&&pd.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=hd.indexOf(t);-1!==e&&(t=3*e)}return ar(e,null!=t?t:18)}(C.toString(),A).toString()})`),Qe(`Using gas limit: ${b}`);const _=await N(a?Ll(a):y,b);return{swap:_.swapResult,bridge:_.bridgeResult,async postSwapOrderFromQuote(e,t){null==t||null==t.beforeBridgingSign||t.beforeBridgingSign();const{swapResult:n}=await N(y,b,e).catch(e=>{throw null==t||null==t.onBridgingSignError||t.onBridgingSignError(),e});null==t||null==t.afterBridgingSign||t.afterBridgingSign();const r={result:K({},n,{tradeParameters:nn({quoteParameters:n.tradeParameters,sellToken:l}),signer:y}),orderBookApi:k};return null==t||null==t.beforeOrderSign||t.beforeOrderSign(),rd(r,K({},e,{appData:n.appDataInfo.doc,quoteRequest:K({},null==e?void 0:e.quoteRequest,{receiver:n.tradeParameters.receiver})})).catch(e=>{throw null==t||null==t.onOrderSignError||t.onOrderSignError(),e}).then(e=>(null==t||null==t.afterOrderSign||t.afterOrderSign(),e))}}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:i,provider:this.provider,bridgeHookSigner:null==t?void 0:t.quoteSigner}):function(e){const{quoteBridgeRequest:t,advancedSettings:n,tradingSdk:r}=e,{sellTokenAddress:i,buyTokenAddress:s,amount:a}=t,o=K({},W(t,ud),{chainId:t.sellTokenChainId,sellToken:i,buyToken:s,amount:a.toString()}),u=W(o,ld);return Qe(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(u,tt)}`),r.getQuote(o,n)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:i})}async getOrder(e){const{orderBookApi:t}=this.config,{chainId:n,orderId:r,env:i=t.context.env}=e;return Ad({chainId:n,orderId:r,orderBookApi:t,env:i,providers:this.config.providers})}async getOrderBridgingStatus(e,t){return this.provider.getStatus(e,t)}getProviderFromAppData(e){return wd(e,this.getProviders())}}class Id{constructor(e={}){this.options=e}async getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:n,destinationToken:r}){const i={};return e&&(i.originChainId=e),t&&(i.originToken=t),n&&(i.destinationChainId=n),r&&(i.destinationToken=r),this.fetchApi("/available-routes",i,Cd)}async getSuggestedFees(e){const t={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(t.recipient=e.recipient),this.fetchApi("/suggested-fees",t,Sd)}async getSupportedTokens(){return this.fetchApi("/token-list",{}).then(e=>e.map(e=>K({},e,{logoUrl:e.logoURI})))}async getDepositStatus(e){return this.fetchApi("/deposit/status",{originChainId:e.originChainId,depositId:e.depositId})}async fetchApi(e,t,n){const r=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;Qe(`Fetching Across API: GET ${r}. Params: ${JSON.stringify(t)}`);const i=await fetch(r,{method:"GET"});if(!i.ok){const e=await i.json();throw new F(O.API_ERROR,e)}const s=await i.json();if(n){if(n(s))return s;throw new F(O.INVALID_API_JSON_RESPONSE,{path:e,json:s})}return s}}function Sd(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&kd(e.totalRelayFee)&&"relayerCapitalFee"in e&&kd(e.relayerCapitalFee)&&"relayerGasFee"in e&&kd(e.relayerGasFee)&&"lpFee"in e&&kd(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function kd(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Cd(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Nd=new f(["event FundsDeposited(bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 indexed destinationChainId, uint256 indexed depositId, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityDeadline, bytes32 indexed depositor, bytes32 recipient, bytes32 exclusiveRelayer, bytes message)"]),_d=new f(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:B.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:B.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:B.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:B.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:D.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const xd=Nd.getEventTopic("FundsDeposited"),Md=_d.getEventTopic("Trade"),Rd={[B.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[B.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[B.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[B.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[B.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[B.GNOSIS_CHAIN]:void 0,[B.AVALANCHE]:void 0,[D.OPTIMISM]:void 0},Pd={[B.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[B.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[B.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[B.GNOSIS_CHAIN]:void 0,[B.SEPOLIA]:void 0,[B.POLYGON]:void 0,[D.OPTIMISM]:void 0,[B.AVALANCHE]:void 0},Od=10n**18n;function Bd(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=St(r,i),o=a.big,u=St(a.num,s).big,l=BigInt(n.totalRelayFee.pct),d=Ld(u,l),c=o-Ld(o,l),p=u-d,h=function(e,t){return e*BigInt(1e4-t)/10000n}(d,t);return{beforeFee:{sellAmount:o,buyAmount:u},afterFee:{sellAmount:o,buyAmount:d},afterSlippage:{sellAmount:o,buyAmount:h},costs:{bridgingFee:{feeBps:(f=l,Fd(f),Number(10000n*f/Od)),amountInSellCurrency:c,amountInBuyCurrency:p}},slippageBps:t};var f}function Dd(e){return m.decode(["address"],e).toString()}function Fd(e){if(e>Od||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Ld(e,t){return Fd(t),e*(Od-t)/Od}const Ud={filled:P.EXECUTED,slowFillRequested:P.EXECUTED,pending:P.IN_PROGRESS,expired:P.EXPIRED,refunded:P.REFUND};let Gd;const qd="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",Hd={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Vd{constructor(e,t){this.chainId=e,this.customOptions=t}proxyOf(e){const t=m.encode(["address"],[e]),n=h(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,n)}encodeExecuteHooksForFactory(e,t,n,r,i){return(Gd||(Gd=Vt.createInterface()),Gd).encodeFunctionData("executeHooks",[e,t,n,r,i])}async signCalls(e,t,n,r,i){const s=await r.getAddress(),a=this.proxyOf(s),{domain:o,types:u,message:l}=this.infoToSign(e,t,n,a);return await async function(e,t,n,r,i){let s=null;switch(e){case I.EIP712:if(!k(t))throw new Error("signer does not support signing typed data");s=await t._signTypedData(n,r,i);break;case I.ETHSIGN:s=await t.signMessage(g(S(n,r,i)));break;default:throw new Error("invalid signing scheme")}return b(v(s))}(i,r,o,u,l)}infoToSign(e,t,n,r){const i={calls:e,nonce:t,deadline:n};return{domain:this.getDomain(r),types:Hd,message:i}}getDomain(e){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.proxyCreationCode)&&void 0!==e?e:qd}getFactoryAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.factoryAddress)&&void 0!==e?e:De}getImplementationAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.implementationAddress)&&void 0!==e?e:Fe}}const zd=Gr.toBigInt();class jd{constructor(e={}){this.hooksCache=new Map,this.options=e}getCowShedAccount(e,t){var n;return this.getCowShedHooks(e,null==(n=this.options)?void 0:n.factoryOptions).proxyOf(t)}async signCalls({calls:e,signer:t,chainId:n,nonce:r=jd.getNonce(),deadline:i=zd,gasLimit:s,defaultGasLimit:a,signingScheme:o=I.EIP712}){var u;const l=this.getCowShedHooks(n),d=t||(null==(u=this.options)?void 0:u.signer);if(!d)throw new Error("Signer is required");const c=Ll(d),p=await c.getAddress(),h=l.proxyOf(p),f=await l.signCalls(e,r,i,c,o),m=l.encodeExecuteHooksForFactory(e,r,i,p,f),y={to:l.getFactoryAddress(),data:m,value:BigInt(0)},g=s||await c.estimateGas(y).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(y,tt,2)}. Review the factory call`;if(a)return Qe(`${t}, using the default gas limit.`),a;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})});return{cowShedAccount:h,signedMulticall:y,gasLimit:BigInt(g.toString())}}getCowShedHooks(e,t){let n=this.hooksCache.get(e);return n||(n=new Vd(e,t),this.hooksCache.set(e,n),n)}static getNonce(){return w(Date.now().toString())}}const Kd="abi/5.8.0",Wd=new An(Kd),Jd={};let Qd={calldata:!0,memory:!0,storage:!0},Yd={calldata:!0,memory:!0};function Xd(e,t){if("bytes"===e||"string"===e){if(Qd[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Yd[t])return!0;return(Qd[t]||"payable"===t)&&Wd.throwArgumentError("invalid modifier","name",t),!1}function Zd(e,t){for(let n in t)hr(e,n,t[n])}const $d=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),ec=new RegExp(/^(.*)\[([0-9]*)\]$/);class tc{constructor(e,t){e!==Jd&&Wd.throwError("use fromString",An.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Zd(this,t);let n=this.type.match(ec);Zd(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:tc.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==$d.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===$d.full?", ":",")+")"):t+=this.type,e!==$d.sighash&&(!0===this.indexed&&(t+=" indexed"),e===$d.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?tc.fromString(e,t):tc.fromObject(e)}static fromObject(e){return tc.isParamType(e)?e:new tc(Jd,{name:e.name||null,type:pc(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(tc.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Wd.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let s={type:"",name:"",state:{allowType:!0}},a=s;for(let n=0;n<e.length;n++){let s=e[n];switch(s){case"(":a.state.allowType&&""===a.type?a.type="tuple":a.state.allowParams||r(n),a.state.allowType=!1,a.type=pc(a.type),a.components=[i(a)],a=a.components[0];break;case")":delete a.state,"indexed"===a.name&&(t||r(n),a.indexed=!0,a.name=""),Xd(a.type,a.name)&&(a.name=""),a.type=pc(a.type);let e=a;a=a.parent,a||r(n),delete e.parent,a.state.allowParams=!1,a.state.allowName=!0,a.state.allowArray=!0;break;case",":delete a.state,"indexed"===a.name&&(t||r(n),a.indexed=!0,a.name=""),Xd(a.type,a.name)&&(a.name=""),a.type=pc(a.type);let o=i(a.parent);a.parent.components.push(o),delete a.parent,a=o;break;case" ":a.state.allowType&&""!==a.type&&(a.type=pc(a.type),delete a.state.allowType,a.state.allowName=!0,a.state.allowParams=!0),a.state.allowName&&""!==a.name&&("indexed"===a.name?(t||r(n),a.indexed&&r(n),a.indexed=!0,a.name=""):Xd(a.type,a.name)?a.name="":a.state.allowName=!1);break;case"[":a.state.allowArray||r(n),a.type+=s,a.state.allowArray=!1,a.state.allowName=!1,a.state.readArray=!0;break;case"]":a.state.readArray||r(n),a.type+=s,a.state.readArray=!1,a.state.allowArray=!0,a.state.allowName=!0;break;default:a.state.allowType?(a.type+=s,a.state.allowParams=!0,a.state.allowArray=!0):a.state.allowName?(a.name+=s,delete a.state.allowArray):a.state.readArray?a.type+=s:r(n)}}return a.parent&&Wd.throwArgumentError("unexpected eof","param",e),delete s.state,"indexed"===a.name?(t||r(n.length-7),a.indexed&&r(n.length-7),a.indexed=!0,a.name=""):Xd(a.type,a.name)&&(a.name=""),s.type=pc(s.type),s}(e,!!t),tc.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function nc(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let s=e[i];","===s&&0===r?(t.push(n),n=""):(n+=s,"("===s?r++:")"===s&&(r--,-1===r&&Wd.throwArgumentError("unbalanced parenthesis","value",e)))}return n&&t.push(n),t}(e).map(e=>tc.fromString(e,t))}class rc{constructor(e,t){e!==Jd&&Wd.throwError("use a static from method",An.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Zd(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return rc.isFragment(e)?e:"string"==typeof e?rc.fromString(e):rc.fromObject(e)}static fromObject(e){if(rc.isFragment(e))return e;switch(e.type){case"function":return lc.fromObject(e);case"event":return ic.fromObject(e);case"constructor":return uc.fromObject(e);case"error":return cc.fromObject(e);case"fallback":case"receive":return null}return Wd.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?ic.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?lc.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?uc.fromString(e.trim()):"error"===e.split(" ")[0]?cc.fromString(e.substring(5).trim()):Wd.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class ic extends rc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==$d.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ",e!==$d.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?ic.fromString(e):ic.fromObject(e)}static fromObject(e){if(ic.isEventFragment(e))return e;"event"!==e.type&&Wd.throwArgumentError("invalid event object","value",e);const t={name:fc(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(tc.fromObject):[],type:"event"};return new ic(Jd,t)}static fromString(e){let t=e.match(mc);t||Wd.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Wd.warn("unknown modifier: "+e)}}),ic.fromObject({name:t[1].trim(),anonymous:n,inputs:nc(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function sc(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Wd.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Wd.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Wn.from(n[1]),n[0]):e}function ac(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function oc(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Wd.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Wd.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Wd.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Wd.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Wd.throwArgumentError("unable to determine stateMutability","value",e),t}class uc extends rc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===$d.sighash&&Wd.throwError("cannot format a constructor for sighash",An.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?uc.fromString(e):uc.fromObject(e)}static fromObject(e){if(uc.isConstructorFragment(e))return e;"constructor"!==e.type&&Wd.throwArgumentError("invalid constructor object","value",e);let t=oc(e);t.constant&&Wd.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(tc.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Wn.from(e.gas):null};return new uc(Jd,n)}static fromString(e){let t={type:"constructor"},n=(e=sc(e,t)).match(mc);return n&&"constructor"===n[1].trim()||Wd.throwArgumentError("invalid constructor string","value",e),t.inputs=nc(n[2].trim(),!1),ac(n[3].trim(),t),uc.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class lc extends uc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==$d.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ",e!==$d.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?lc.fromString(e):lc.fromObject(e)}static fromObject(e){if(lc.isFunctionFragment(e))return e;"function"!==e.type&&Wd.throwArgumentError("invalid function object","value",e);let t=oc(e);const n={type:e.type,name:fc(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(tc.fromObject):[],outputs:e.outputs?e.outputs.map(tc.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Wn.from(e.gas):null};return new lc(Jd,n)}static fromString(e){let t={type:"function"},n=(e=sc(e,t)).split(" returns ");n.length>2&&Wd.throwArgumentError("invalid function string","value",e);let r=n[0].match(mc);if(r||Wd.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&fc(t.name),t.inputs=nc(r[2],!1),ac(r[3].trim(),t),n.length>1){let r=n[1].match(mc);""==r[1].trim()&&""==r[3].trim()||Wd.throwArgumentError("unexpected tokens","value",e),t.outputs=nc(r[2],!1)}else t.outputs=[];return lc.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function dc(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Wd.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class cc extends rc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==$d.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?cc.fromString(e):cc.fromObject(e)}static fromObject(e){if(cc.isErrorFragment(e))return e;"error"!==e.type&&Wd.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:fc(e.name),inputs:e.inputs?e.inputs.map(tc.fromObject):[]};return dc(new cc(Jd,t))}static fromString(e){let t={type:"error"},n=e.match(mc);return n||Wd.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&fc(t.name),t.inputs=nc(n[2],!1),dc(cc.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function pc(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const hc=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function fc(e){return e&&e.match(hc)||Wd.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const mc=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),yc=new An(Kd);class gc{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){yc.throwArgumentError(e,this.localName,t)}}class bc{constructor(e){hr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Dn(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(_n(e._data))}writeBytes(e){let t=Nn(e);const n=t.length%this.wordSize;return n&&(t=_n([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=Nn(Wn.from(e));return t.length>this.wordSize&&yc.throwError("value out-of-bounds",An.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=_n([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class vc{constructor(e,t,n,r){hr(this,"_data",Nn(e)),hr(this,"wordSize",t||32),hr(this,"_coerceFunc",n),hr(this,"allowLoose",r),this._offset=0}get data(){return Pn(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):vc.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:yc.throwError("data out-of-bounds",An.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new vc(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return Wn.from(this.readBytes(this.wordSize))}}class wc extends gc{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Di(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Di(Ln(e.readValue().toHexString(),20))}}class Ac extends gc{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Tc=new An(Kd);function Ec(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map(t=>{const r=t.localName;return r||Tc.throwError("cannot encode object for signature with missing names",An.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&Tc.throwError("cannot encode object for signature with duplicate names",An.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]})}else Tc.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&Tc.throwArgumentError("types/value length mismatch","tuple",n);let i=new bc(e.wordSize),s=new bc(e.wordSize),a=[];t.forEach((e,t)=>{let n=r[t];if(e.dynamic){let t=s.length;e.encode(s,n);let r=i.writeUpdatableValue();a.push(e=>{r(e+t)})}else e.encode(i,n)}),a.forEach(e=>{e(i.length)});let o=e.appendWriter(i);return o+=e.appendWriter(s),o}function Ic(e,t){let n=[],r=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let n=e.readValue(),s=r.subReader(n.toNumber());try{i=t.decode(s)}catch(e){if(e.code===An.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===An.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)});const i=t.reduce((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});t.forEach((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const s=n[t];s instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw s}}):n[r]=s});for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}class Sc extends gc{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),Tc.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return Ec(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Tc.throwError("insufficient data length",An.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Ac(this.coder));return e.coerce(this.name,Ic(e,n))}}class kc extends gc{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Cc extends gc{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Nn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Nc extends Cc{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Pn(super.decode(e)))}}class _c extends gc{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=Nn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Pn(e.readBytes(this.size)))}}class xc extends gc{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Mc extends gc{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=Wn.from(t),r=Gr.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(Ur).mul(Fr)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Lr)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Rc extends Cc{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Yr(t))}decode(e){return Xr(super.decode(e))}}class Pc extends gc{constructor(e,t){let n=!1;const r=[];e.forEach(e=>{e.dynamic&&(n=!0),r.push(e.type)}),super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});return this.coders.forEach((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))}),Object.freeze(e)}encode(e,t){return Ec(e,this.coders,t)}decode(e){return e.coerce(this.name,Ic(e,this.coders))}}const Oc=new An(Kd),Bc=new RegExp(/^bytes([0-9]*)$/),Dc=new RegExp(/^(u?int)([0-9]*)$/),Fc=new class{constructor(e){hr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new wc(e.name);case"bool":return new kc(e.name);case"string":return new Rc(e.name);case"bytes":return new Nc(e.name);case"array":return new Sc(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Pc((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new xc(e.name)}let t=e.type.match(Dc);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Oc.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Mc(n/8,"int"===t[1],e.name)}if(t=e.type.match(Bc),t){let n=parseInt(t[1]);return(0===n||n>32)&&Oc.throwArgumentError("invalid bytes length","param",e),new _c(n,e.name)}return Oc.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new vc(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new bc(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(tc.from(e)));return new Pc(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Oc.throwError("types/values length mismatch",An.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map(e=>this._getCoder(tc.from(e))),r=new Pc(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map(e=>this._getCoder(tc.from(e)));return new Pc(r,"_").decode(this._getReader(Nn(t),n))}},Lc=new An(Kd);class Uc extends Tr{}class Gc extends Tr{}class qc extends Tr{}class Hc extends Tr{static isIndexed(e){return!(!e||!e._isIndexed)}}const Vc={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function zc(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class jc{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,hr(this,"fragments",t.map(e=>rc.from(e)).filter(e=>null!=e)),hr(this,"_abiCoder",fr(new.target,"getAbiCoder")()),hr(this,"functions",{}),hr(this,"errors",{}),hr(this,"events",{}),hr(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Lc.warn("duplicate definition - constructor"):void hr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?Lc.warn("duplicate definition - "+n):t[n]=e}),this.deploy||hr(this,"deploy",uc.from({payable:!1,type:"constructor"})),hr(this,"_isInterface",!0)}format(e){e||(e=$d.full),e===$d.sighash&&Lc.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===$d.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return Fc}static getAddress(e){return Di(e)}static getSighash(e){return Bn(Zr(e.format()),0,4)}static getEventTopic(e){return Zr(e.format())}getFunction(e){if(Mn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Lc.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===n.length?Lc.throwArgumentError("no matching function","name",t):n.length>1&&Lc.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[lc.fromString(e).format()];return t||Lc.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Mn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Lc.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===n.length?Lc.throwArgumentError("no matching event","name",t):n.length>1&&Lc.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[ic.fromString(e).format()];return t||Lc.throwArgumentError("no matching event","signature",e),t}getError(e){if(Mn(e)){const t=fr(this.constructor,"getSighash");for(const n in this.errors)if(e===t(this.errors[n]))return this.errors[n];Lc.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===n.length?Lc.throwArgumentError("no matching error","name",t):n.length>1&&Lc.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[lc.fromString(e).format()];return t||Lc.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return fr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),fr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=Nn(t);return Pn(n.slice(0,4))!==this.getSighash(e)&&Lc.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Pn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Pn(_n([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=Nn(t);return Pn(n.slice(0,4))!==this.getSighash(e)&&Lc.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Pn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Pn(_n([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=Nn(t),r=null,i="",s=null,a=null,o=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=Pn(n.slice(0,4)),t=Vc[e];if(t)s=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,o=t.signature,t.reason&&(r=s[0]),"Error"===a?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(s[0])}`:"Panic"===a&&(i=`; VM Exception while processing transaction: reverted with panic code ${s[0]}`);else try{const t=this.getError(e);s=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,o=t.format()}catch(e){}break}}return Lc.throwError("call revert exception"+i,An.errors.CALL_EXCEPTION,{method:e.format(),data:Pn(t),errorArgs:s,errorName:a,errorSignature:o,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Pn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Lc.throwError("too many arguments for "+e.format(),An.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Zr(t):"bytes"===e.type?Vr(Pn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=Wn.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Ln(Pn(t),32));for(t.forEach((t,i)=>{let s=e.inputs[i];s.indexed?null==t?n.push(null):"array"===s.baseType||"tuple"===s.baseType?Lc.throwArgumentError("filtering with tuples or arrays not supported","contract."+s.name,t):Array.isArray(t)?n.push(t.map(e=>r(s,e))):n.push(r(s,t)):null!=t&&Lc.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+s.name,t)});n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Lc.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,s)=>{const a=t[s];if(e.indexed)if("string"===e.type)n.push(Zr(a));else if("bytes"===e.type)n.push(Vr(a));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[a]))}else r.push(e),i.push(a)}),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);Mn(n[0],32)&&n[0].toLowerCase()===t||Lc.throwError("fragment/topic mismatch",An.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],s=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(tc.fromObject({type:"bytes32",name:e.name})),s.push(!0)):(r.push(e),s.push(!1)):(i.push(e),s.push(!1))});let a=null!=n?this._abiCoder.decode(r,_n(n)):null,o=this._abiCoder.decode(i,t,!0),u=[],l=0,d=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==a)u[t]=new Hc({_isIndexed:!0,hash:null});else if(s[t])u[t]=new Hc({_isIndexed:!0,hash:a[d++]});else try{u[t]=a[d++]}catch(e){u[t]=e}else try{u[t]=o[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw zc(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw zc(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Gc({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:Wn.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Uc({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Pn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new qc({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var Kc=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Wc=new An("contracts/5.8.0");function Jc(e,t){return Kc(this,void 0,void 0,function*(){const n=yield t;"string"!=typeof n&&Wc.throwArgumentError("invalid address or ENS name","name",n);try{return Di(n)}catch(e){}e||Wc.throwError("a provider or signer is needed to resolve ENS names",An.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&Wc.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r})}function Qc(e,t,n){return Kc(this,void 0,void 0,function*(){return Array.isArray(n)?yield Promise.all(n.map((n,r)=>Qc(e,Array.isArray(t)?t[r]:t[n.name],n))):"address"===n.type?yield Jc(e,t):"tuple"===n.type?yield Qc(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>Qc(e,t,n.arrayChildren))):Promise.reject(Wc.makeError("invalid value for array",An.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function Yc(e,t,n){return Kc(this,void 0,void 0,function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=gr(n.pop())),Wc.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from=r.from?mr({override:Jc(e.signer,r.from),signer:e.signer.getAddress()}).then(e=>Kc(this,void 0,void 0,function*(){return Di(e.signer)!==e.override&&Wc.throwError("Contract with a Signer cannot override from",An.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():r.from&&(r.from=Jc(e.provider,r.from));const i=yield mr({args:Qc(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:mr(r)||{}}),s=e.interface.encodeFunctionData(t,i.args),a={data:s,to:i.address},o=i.overrides;if(null!=o.nonce&&(a.nonce=Wn.from(o.nonce).toNumber()),null!=o.gasLimit&&(a.gasLimit=Wn.from(o.gasLimit)),null!=o.gasPrice&&(a.gasPrice=Wn.from(o.gasPrice)),null!=o.maxFeePerGas&&(a.maxFeePerGas=Wn.from(o.maxFeePerGas)),null!=o.maxPriorityFeePerGas&&(a.maxPriorityFeePerGas=Wn.from(o.maxPriorityFeePerGas)),null!=o.from&&(a.from=o.from),null!=o.type&&(a.type=o.type),null!=o.accessList&&(a.accessList=Jo(o.accessList)),null==a.gasLimit&&null!=t.gas){let e=21e3;const n=Nn(s);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);a.gasLimit=Wn.from(t.gas).add(e)}if(o.value){const e=Wn.from(o.value);e.isZero()||t.payable||Wc.throwError("non-payable method cannot override value",An.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),a.value=e}o.customData&&(a.customData=gr(o.customData)),o.ccipReadEnabled&&(a.ccipReadEnabled=!!o.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter(e=>null!=r[e]);return u.length&&Wc.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,An.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),a})}function Xc(e,t,n){const r=e.signer||e.provider;return function(...i){return Kc(this,void 0,void 0,function*(){let s;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=gr(i.pop());null!=e.blockTag&&(s=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(s));const a=yield Yc(e,t,i),o=yield r.call(a,s);try{let r=e.interface.decodeFunctionResult(t,o);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===An.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=a),t}})}}function Zc(e,t,n){return t.constant?Xc(e,t,n):function(e,t){return function(...n){return Kc(this,void 0,void 0,function*(){e.signer||Wc.throwError("sending a transaction requires a signer",An.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield Yc(e,t,n),i=yield e.signer.sendTransaction(r);return function(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then(t=>(t.events=t.logs.map(n=>{let r=Ar(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r}),t))}(e,i),i})}}(e,t)}function $c(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class ep{constructor(e,t){hr(this,"tag",e),hr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(n=>!(!t&&n.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const n=e.slice();return setTimeout(()=>{t.listener.apply(this,n)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class tp extends ep{constructor(){super("error",null)}}class np extends ep{constructor(e,t,n,r){const i={address:e};let s=t.getEventTopic(n);r?(s!==r[0]&&Wc.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[s],super($c(i),i),hr(this,"address",e),hr(this,"interface",t),hr(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const s=e.slice();s.push(i);try{n(s,r[i])}catch(e){t.push({path:s,error:e})}}};return n([],e),t}(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}}class rp extends ep{constructor(e,t){super("*",{address:e}),hr(this,"address",e),hr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}}class ip{constructor(e,t,n){hr(this,"interface",fr(new.target,"getInterface")(t)),null==n?(hr(this,"provider",null),hr(this,"signer",null)):o.isSigner(n)?(hr(this,"provider",n.provider||null),hr(this,"signer",n)):Sr.isProvider(n)?(hr(this,"provider",n),hr(this,"signer",null)):Wc.throwArgumentError("invalid signer or provider","signerOrProvider",n),hr(this,"callStatic",{}),hr(this,"estimateGas",{}),hr(this,"functions",{}),hr(this,"populateTransaction",{}),hr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const n=this.interface.events[t];hr(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)})),e[n.name]||(e[n.name]=[]),e[n.name].push(t)}),Object.keys(e).forEach(t=>{const n=e[t];1===n.length?hr(this.filters,t,this.filters[n[0]]):Wc.warn(`Duplicate definition of ${t} (${n.join(", ")})`)})}if(hr(this,"_runningEvents",{}),hr(this,"_wrappedEmits",{}),null==e&&Wc.throwArgumentError("invalid contract address or ENS name","addressOrName",e),hr(this,"address",e),this.provider)hr(this,"resolvedAddress",Jc(this.provider,e));else try{hr(this,"resolvedAddress",Promise.resolve(Di(e)))}catch(e){Wc.throwError("provider is required to use ENS name as contract address",An.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const r={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])Wc.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&hr(this,e,Zc(this,t,!0)),null==this.functions[e]&&hr(this.functions,e,Zc(this,t,!1)),null==this.callStatic[e]&&hr(this.callStatic,e,Xc(this,t,!0)),null==this.populateTransaction[e]&&hr(this.populateTransaction,e,function(e,t){return function(...n){return Yc(e,t,n)}}(this,t)),null==this.estimateGas[e]&&hr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return Kc(this,void 0,void 0,function*(){n||Wc.throwError("estimate require a provider or signer",An.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Yc(e,t,r);return yield n.estimateGas(i)})}}(this,t))}}),Object.keys(r).forEach(e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&hr(this,e,this[n])}catch(e){}null==this.functions[e]&&hr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&hr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&hr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&hr(this.estimateGas,e,this.estimateGas[n])})}static getContractAddress(e){return Fi(e)}static getInterface(e){return jc.isInterface(e)?e:new jc(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&Wc.throwError("contract not deployed",An.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Wc.throwError("sending a transactions require a signer",An.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=gr(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Wc.throwError("cannot override "+e,An.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new u(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&hr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Hc.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new tp);if("event"===e)return this._normalizeRunningEvent(new ep("event",null));if("*"===e)return this._normalizeRunningEvent(new rp(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new np(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new np(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new ep($c(t),t))}return this._normalizeRunningEvent(new rp(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=Ar(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||Wc.throwError("events require a provider or a signer with a provider",An.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=gr(r.filter);return"string"==typeof t&&Mn(t,32)?(null!=n&&Wc.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(r,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}}class sp extends ip{}var ap;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(ap||(ap={}));const op="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",up=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function lp(e){const t=e.plan(),{commands:n,state:r}=t;return new jc(up).encodeFunctionData("execute",[n,r])}function dp(e){const t=new N;return e(t),{to:op,value:BigInt(0),data:lp(t)}}function cp(e,t){return _.createContract(e,t)}function pp(e){return _.createLibrary(e)}const hp=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],fp=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],mp=["function balanceOf(address account) external view returns (uint256)"],yp=["function approve(address spender, uint256 amount) external returns (bool)"];async function gp(e,t,n){const r=e.getCowShedAccount(t.sellTokenChainId,t.owner||t.account),i=await n.getCode(r);return i&&"0x"!==i?md:md+yd}const bp=`${gd}/across`,vp=[le,Ie,fe,ye,Te];class wp{constructor(e){this.supportedTokens=null,this.info={name:"Across",logoUrl:`${fd}/across/across-logo.png`,dappId:bp,website:"https://across.to"},this.api=new Id(e.apiOptions),this.cowShedSdk=new jd(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}async getNetworks(){return vp}async getBuyTokens(e){return Object.values((await this.getSupportedTokensState())[e.buyChainId]||{})}async getIntermediateTokens(e){var t;if(e.kind!==E.SELL)throw new F(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});const{sellTokenChainId:n,buyTokenChainId:r,buyTokenAddress:i}=e,s=await this.getSupportedTokensState(),a=i.toLowerCase(),o=s[n],u=s[r],l=u&&(null==(t=u[a])||null==(t=t.symbol)?void 0:t.toLowerCase());return l?Object.values(o||{}).filter(e=>{var t;return(null==(t=e.symbol)?void 0:t.toLowerCase())===l}):[]}async getQuote(e){const{sellTokenAddress:t,sellTokenChainId:n,buyTokenChainId:r,amount:i,receiver:s}=e;return function(e,t,n){const{kind:r}=e;return{isSell:r===E.SELL,amountsAndCosts:Bd(e,0,n),quoteTimestamp:Number(n.timestamp),expectedFillTimeSeconds:Number(n.estimatedFillTimeSec),fees:{bridgeFee:BigInt(n.relayerCapitalFee.total),destinationGasFee:BigInt(n.relayerGasFee.total)},limits:{minDeposit:BigInt(n.limits.minDeposit),maxDeposit:BigInt(n.limits.maxDeposit)},suggestedFees:n}}(e,0,await this.api.getSuggestedFees({token:t,originChainId:n,destinationChainId:r,amount:i,recipient:null!=s?s:void 0}))}async getUnsignedBridgeCall(e,t){return function(e){const{request:t,quote:n,cowShedSdk:r}=e,{sellTokenChainId:i,sellTokenAddress:s,buyTokenChainId:a,buyTokenAddress:o,account:u,receiver:l}=t,d=function(e){const t=Rd[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return cp(new sp(t,fp),ap.CALL)}(i),c=function(e){const t=Pd[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return cp(new sp(t,hp),ap.CALL)}(i),p=function(e){return cp(new sp(e,mp),ap.STATICCALL)}(s),h=function(e){return cp(new sp(e,yp),ap.CALL)}(s),f=r.getCowShedAccount(i,u),{suggestedFees:m}=n;return dp(e=>{const t=e.add(p.balanceOf(f)),n=BigInt(m.totalRelayFee.pct),r=e.add(c.multiplyAndSubtract(t,n));e.add(h.approve(d.address,t));const i=BigInt(m.timestamp);e.add(d.depositV3(f,l||u,s,o,t,r,a,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk})}async getGasLimitEstimationForHook(e){return gp(this.cowShedSdk,e,this.getRpcProvider(e.sellTokenChainId))}async getSignedHook(e,t,n,r,i,s){const{signedMulticall:a,cowShedAccount:o,gasLimit:u}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,gasLimit:BigInt(s),deadline:i,nonce:r}),{to:l,data:d}=a;return{postHook:{target:l,callData:d,gasLimit:u.toString(),dappId:bp},recipient:o}}async decodeBridgeHook(e){throw new Error("Not implemented")}async getBridgingParams(e,t,n){return async function(e,t,n){const r=function(e,t){var n;const r=null==(n=Rd[e])?void 0:n.toLowerCase();if(!r)return[];const i=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===xd);return i.map(e=>{const{inputToken:t,outputToken:n,inputAmount:r,outputAmount:i,destinationChainId:s,depositId:a,quoteTimestamp:o,fillDeadline:u,exclusivityDeadline:l,depositor:d,recipient:c,exclusiveRelayer:p,message:h}=Nd.parseLog(e).args;return{inputToken:Dd(t),outputToken:Dd(n),inputAmount:r,outputAmount:i,destinationChainId:s,depositId:a,quoteTimestamp:o,fillDeadline:u,exclusivityDeadline:l,depositor:Dd(d),recipient:Dd(c),exclusiveRelayer:p,message:h}})}(e,n.logs);if(0===r.length)return null;const i=function(e,t){const n=t.filter(t=>t.address.toLowerCase()===Le[e].toLowerCase()&&t.topics[0]===Md);return n.map(e=>{const t=_d.parseLog(e).args,{owner:n,sellToken:r,buyToken:i,sellAmount:s,buyAmount:a,feeAmount:o}=t;return{owner:n,sellToken:r,buyToken:i,sellAmount:s,buyAmount:a,feeAmount:o,orderUid:"0x"+e.data.slice(450,562)}})}(e,n.logs),s=i.findIndex(e=>e.orderUid===t);if(s<0)return null;const a=r[s];return a?{inputTokenAddress:a.inputToken,outputTokenAddress:a.outputToken,inputAmount:BigInt(a.inputAmount.toString()),outputAmount:BigInt(a.outputAmount.toString()),owner:a.depositor,quoteTimestamp:parseInt(a.quoteTimestamp.toString()),fillDeadline:parseInt(a.fillDeadline.toString()),recipient:a.recipient,sourceChainId:e,destinationChainId:parseInt(a.destinationChainId.toString()),bridgingId:a.depositId.toString()}:(Qe(`Trade event found at index ${s} but only ${r.length} deposit events available`),null)}(e,t,await this.getRpcProvider(e).getTransactionReceipt(n))}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}async getStatus(e,t){const n=await this.api.getDepositStatus({originChainId:t.toString(),depositId:e});return{status:(r=n.status,Ud[r]),depositTxHash:n.depositTxHash,fillTxHash:n.fillTx};var r}async getCancelBridgingTx(e){throw new Error("Not implemented")}async getRefundBridgingTx(e){throw new Error("Not implemented")}async getSupportedTokensState(){return this.supportedTokens||(this.supportedTokens=(await this.api.getSupportedTokens()).reduce((e,t)=>(e[t.chainId]=e[t.chainId]||{},e[t.chainId][t.address.toLowerCase()]=t,e),{})),this.supportedTokens}}const Ap=["function approve(address spender, uint256 amount) returns (bool)","function balanceOf(address account) view returns (uint256)","function decimals() view returns (uint8)","function symbol() view returns (string)","function allowance(address owner, address spender) view returns (uint256)"],Tp=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_socketGateway",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominateOwner",inputs:[{name:"nominee_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominee",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseCallData",inputs:[{name:"callData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"tuple",internalType:"struct SocketVerifier.UserRequest",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"bytes",internalType:"bytes"}]}],stateMutability:"nonpayable"},{type:"function",name:"routeIdsToVerifiers",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"socketGateway",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"validateRotueId",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRouteId",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateSocketRequest",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRequest",type:"tuple",internalType:"struct SocketVerifier.UserRequestValidation",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"tuple",internalType:"struct SocketVerifier.SocketRequest",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"toChainId",type:"uint256",internalType:"uint256"},{name:"token",type:"address",internalType:"address"},{name:"signature",type:"bytes4",internalType:"bytes4"}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnerClaimed",inputs:[{name:"claimer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerNominated",inputs:[{name:"nominee",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AmountNotMatched",inputs:[]},{type:"error",name:"FailedToVerify",inputs:[]},{type:"error",name:"OnlyNominee",inputs:[]},{type:"error",name:"OnlyOwner",inputs:[]},{type:"error",name:"RecipientNotMatched",inputs:[]},{type:"error",name:"RouteIdNotFound",inputs:[]},{type:"error",name:"RouteIdNotMatched",inputs:[]},{type:"error",name:"SignatureNotMatched",inputs:[]},{type:"error",name:"ToChainIdNotMatched",inputs:[]},{type:"error",name:"TokenNotMatched",inputs:[]}],Ep=[{inputs:[],name:"InvalidInput",type:"error"},{inputs:[],name:"PositionOutOfBounds",type:"error"},{inputs:[{internalType:"uint256",name:"_base",type:"uint256"},{internalType:"uint256",name:"_compare",type:"uint256"},{internalType:"uint256",name:"_target",type:"uint256"}],name:"addPctDiff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"_base",type:"uint256"},{internalType:"uint256",name:"_compare",type:"uint256"},{internalType:"uint256",name:"_target",type:"uint256"}],name:"applyPctDiff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_original",type:"bytes"},{internalType:"uint256",name:"_start",type:"uint256"},{internalType:"uint256",name:"_length",type:"uint256"},{internalType:"bytes",name:"_replacement",type:"bytes"}],name:"replaceBytes",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_original",type:"bytes"},{internalType:"uint256",name:"_start",type:"uint256"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"replaceUint256",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"_base",type:"uint256"},{internalType:"uint256",name:"_compare",type:"uint256"},{internalType:"uint256",name:"_target",type:"uint256"}],name:"subPctDiff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"}],Ip=[{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_disabledRoute",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ArrayLengthMismatch",type:"error"},{inputs:[],name:"IncorrectBridgeRatios",type:"error"},{inputs:[],name:"OnlyNominee",type:"error"},{inputs:[],name:"OnlyOwner",type:"error"},{inputs:[],name:"ZeroAddressNotAllowed",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"controllerId",type:"uint32"},{indexed:!0,internalType:"address",name:"controllerAddress",type:"address"}],name:"ControllerAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"controllerId",type:"uint32"}],name:"ControllerDisabled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"routeId",type:"uint32"},{indexed:!0,internalType:"address",name:"route",type:"address"}],name:"NewRouteAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"claimer",type:"address"}],name:"OwnerClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nominee",type:"address"}],name:"OwnerNominated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!0,internalType:"address",name:"_to",type:"address"}],name:"OwnershipTransferRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"routeId",type:"uint32"}],name:"RouteDisabled",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"BRIDGE_AFTER_SWAP_SELECTOR",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[],name:"CENT_PERCENT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"controllerAddress",type:"address"}],name:"addController",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"routeAddress",type:"address"}],name:"addRoute",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"}],name:"addressAt",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"claimOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"controllerCount",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"controllers",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"controllerId",type:"uint32"}],name:"disableController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"}],name:"disableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"disabledRouteAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint32",name:"controllerId",type:"uint32"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ISocketGateway.SocketControllerRequest",name:"socketControllerRequest",type:"tuple"}],name:"executeController",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint32",name:"controllerId",type:"uint32"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ISocketGateway.SocketControllerRequest[]",name:"controllerRequests",type:"tuple[]"}],name:"executeControllers",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"},{internalType:"bytes",name:"routeData",type:"bytes"}],name:"executeRoute",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32[]",name:"routeIds",type:"uint32[]"},{internalType:"bytes[]",name:"dataItems",type:"bytes[]"}],name:"executeRoutes",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"controllerId",type:"uint32"}],name:"getController",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"}],name:"getRoute",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nominee_",type:"address"}],name:"nominateOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"nominee",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address payable",name:"userAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueEther",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"userAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"routes",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"routesCount",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"routeAddresses",type:"address[]"},{internalType:"address[]",name:"tokenAddresses",type:"address[]"},{internalType:"bool",name:"isMax",type:"bool"}],name:"setApprovalForRouters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint32",name:"swapRouteId",type:"uint32"},{internalType:"bytes",name:"swapImplData",type:"bytes"},{internalType:"uint32[]",name:"bridgeRouteIds",type:"uint32[]"},{internalType:"bytes[]",name:"bridgeImplDataItems",type:"bytes[]"},{internalType:"uint256[]",name:"bridgeRatios",type:"uint256[]"},{internalType:"bytes[]",name:"eventDataItems",type:"bytes[]"}],internalType:"struct ISocketRequest.SwapMultiBridgeRequest",name:"swapMultiBridgeRequest",type:"tuple"}],name:"swapAndMultiBridge",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],Sp={across:{inputAmount:{bytes_startIndex:4,bytes_length:32,bytesString_startIndex:10,bytesString_length:64},outputAmount:{bytes_startIndex:484,bytes_length:32,bytesString_startIndex:970,bytesString_length:64}},cctp:{inputAmount:{bytes_startIndex:4,bytes_length:32,bytesString_startIndex:10,bytesString_length:64}}};var kp;!function(e){e.Across="across",e.CircleCCTP="cctp"}(kp||(kp={}));const Cp={Across:kp.Across,"Circle CCTP":kp.CircleCCTP};var Np,_p;function xp(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=St(r,i).big,o=St(n.route.output.amount,s).big,u=o,l=n.route.routeDetails.routeFee.amount,d=function(e,t){return e*BigInt(1e4-t)/10000n}(u,t);return{beforeFee:{sellAmount:a,buyAmount:o},afterFee:{sellAmount:a,buyAmount:u},afterSlippage:{sellAmount:a,buyAmount:d},costs:{bridgingFee:{feeBps:function(e,t){if(0n===t)throw new Error("Denominator is 0");if(e>t)throw new Error("Fee amount is greater than amount");return Number((10000n*e+t/2n)/t)}(BigInt(n.route.routeDetails.routeFee.amount),BigInt(r)),amountInSellCurrency:BigInt(l),amountInBuyCurrency:BigInt(0)}},slippageBps:t}}function Mp(e){if(!e||e.length<10)throw new Error("Invalid txData: too short");if(!e.startsWith("0x"))throw new Error("Invalid txData: must start with 0x");const t=e.slice(2);if(t.length<8)throw new Error("Invalid txData: insufficient data for routeId");const n=`0x${t.slice(0,8)}`,r=`0x${t.slice(8)}`;if(r.length<10)throw new Error("Invalid txData: insufficient data for function selector");const i=`${r.slice(0,10)}`;return{routeId:n,encodedFunctionData:r,functionSelector:i}}function Rp(e){const t=new URLSearchParams;return Object.entries(e).forEach(([e,n])=>{Array.isArray(n)?t.append(e,n.join(",")):t.append(e,String(n))}),t}!function(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(Np||(Np={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(_p||(_p={}));const Pp="0x75b6ba5fcab20848ca00f132d253638fea82e598",Op={[B.MAINNET]:Pp,[B.GNOSIS_CHAIN]:Pp,[B.ARBITRUM_ONE]:Pp,[B.BASE]:Pp,[B.AVALANCHE]:Pp,[B.POLYGON]:Pp,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Pp},Bp="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Dp={[B.MAINNET]:Bp,[B.GNOSIS_CHAIN]:Bp,[B.ARBITRUM_ONE]:Bp,[B.BASE]:Bp,[B.AVALANCHE]:Bp,[B.POLYGON]:Bp,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Bp},Fp="https://public-backend.bungee.exchange/api/v1/bungee",Lp="https://microservices.socket.tech/loki",Up="https://app.across.to/api",Gp=["across","cctp"],qp={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error","bungee-manual":"Bungee Manual Api Error"};class Hp{constructor(e={apiBaseUrl:Fp,eventsApiBaseUrl:Lp,acrossApiBaseUrl:Up,includeBridges:Gp}){this.options=e,this.validateBridges(this.getSupportedBridges())}validateBridges(e){if(null!=e&&e.some(e=>!Gp.includes(e)))throw new L(`Unsupported bridge: ${e.filter(e=>!Gp.includes(e)).join(", ")}`,{includeBridges:e})}async getBuyTokens(e,t){const{sellChainId:n,sellTokenAddress:r,buyChainId:i}=e,s=this.getSupportedBridges(null==t?void 0:t.includeBridges);this.validateBridges(s);const a={toChainId:i.toString(),includeBridges:s.join(",")};n&&(a.fromChainId=n.toString()),r&&(a.fromTokenAddress=r);const o=Rp(a),u=await this.makeApiCall("bungee-manual","/dest-tokens",o);if(!u.success)throw new L("Bungee Api Error: Buy tokens failed",u);return u.result.map(e=>K({},e,{logoUrl:e.logoURI}))}async getIntermediateTokens(e){const{fromChainId:t,toChainId:n,toTokenAddress:r}=e,i=this.getSupportedBridges(e.includeBridges);this.validateBridges(i);const s=Rp({fromChainId:t.toString(),toChainId:n.toString(),toTokenAddress:r,includeBridges:i.join(",")}),a=await this.makeApiCall("bungee-manual","/intermediate-tokens",s);if(!a.success)throw new F(O.NO_INTERMEDIATE_TOKENS,a);return a.result.map(e=>K({},e,{logoUrl:e.logoURI}))}async getBungeeQuoteWithBuildTx(e){const t=await this.getBungeeQuote(e);return{bungeeQuote:t,buildTx:await this.getBungeeBuildTx(t)}}async getBungeeQuote(e){try{var t;e.includeBridges=this.getSupportedBridges(e.includeBridges),this.validateBridges(e.includeBridges);const n=Rp(e),r=await this.makeApiCall("bungee","/quote",n,Vp);if(!r.success)throw new F(O.QUOTE_ERROR,r);const i=Math.floor(Date.now()/1e3),{manualRoutes:s}=r.result;if(0===s.length)throw new F(O.NO_ROUTES,r.result);const a=s[0];if(null==a||null==(t=a.routeDetails)||!t.name)throw new F(O.NO_ROUTES,{manualRoutes:s});const o=Cp[a.routeDetails.name];if(!o)throw new F(O.INVALID_BRIDGE,{firstRoute:a});const u=s.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:r.result.originChainId,destinationChainId:r.result.destinationChainId,userAddress:r.result.userAddress,receiverAddress:r.result.receiverAddress,input:r.result.input,route:u[0],routeBridge:o,quoteTimestamp:i}}catch(e){throw console.error("🔴 Error getting bungee quote:",e),e}}async getBungeeBuildTx(e){const t=await this.makeApiCall("bungee","/build-tx",{quoteId:e.route.quoteId});if(!t.success)throw new F(O.TX_BUILD_ERROR,t);return t.result}async verifyBungeeBuildTx(e,t,n){const{routeId:r,functionSelector:i}=Mp(t.txData.data),s={amount:e.input.amount,recipient:e.receiverAddress,toChainId:e.destinationChainId.toString(),token:e.input.token.address,signature:i};return this.verifyBungeeBuildTxData(e.originChainId,t.txData.data,r,s,n)}async verifyBungeeBuildTxData(e,t,n,r,s){const a=Ll(s),o=Dp[e];if(!o)throw new F(O.TX_BUILD_ERROR,{originChainId:e,error:"Socket verifier not found"});const u=new i.Contract(o,Tp,a);try{await u.callStatic.validateRotueId(t,n)}catch(e){return console.error("🔴 Error validating routeId:",e),!1}const l={routeId:n,socketRequest:r};try{await u.callStatic.validateSocketRequest(t,l)}catch(e){return console.error("🔴 Error validating socket request:",e),!1}return!0}async getEvents(e){const t=await this.makeApiCall("events","/order",{orderId:e.orderId},zp);if(!t.success)throw new L("Bungee Events Api Error",t);return t.result}async getAcrossStatus(e){return(await this.makeApiCall("across","/deposit/status",{depositTxHash:e},jp)).status}getSupportedBridges(e){var t;return null!==(t=null!=e?e:this.options.includeBridges)&&void 0!==t?t:Gp}async makeApiCall(e,t,n,r){const i=`${{bungee:this.options.apiBaseUrl||Fp,events:this.options.eventsApiBaseUrl||Lp,across:this.options.acrossApiBaseUrl||Up,"bungee-manual":this.options.manualApiBaseUrl||"https://public-backend.bungee.exchange/api/v1/bungee-manual"}[e]}${t}?${new URLSearchParams(n).toString()}`;Qe(`Fetching ${e} API: GET ${i}. Params: ${JSON.stringify(n)}`);const s=await fetch(i,{method:"GET"});if(!s.ok){const t=await s.json();throw new F(O.API_ERROR,{errorBody:t,type:qp[e]})}const a=await s.json();if(r&&!r(a))throw new F(O.INVALID_API_JSON_RESPONSE,{json:a,apiType:e,params:n});return a}}function Vp(e){if("object"!=typeof e||null===e)return!1;if(!("success"in e)||!("statusCode"in e)||!("result"in e)||"boolean"!=typeof e.success||"number"!=typeof e.statusCode)return!1;const t=e.result;if("object"!=typeof t||null===t)return!1;const n=t;return!!("originChainId"in n&&"destinationChainId"in n&&"userAddress"in n&&"receiverAddress"in n&&"manualRoutes"in n&&Array.isArray(n.manualRoutes))&&n.manualRoutes.every(e=>{if("object"!=typeof e||null===e)return!1;if(!("routeDetails"in e)||"object"!=typeof e.routeDetails||null===e.routeDetails)return!1;if(!("routeFee"in e.routeDetails))return!1;const t=e.routeDetails.routeFee;return"object"==typeof t&&null!==t&&"amount"in t&&"quoteId"in e&&"quoteExpiry"in e&&"output"in e&&"gasFee"in e&&"slippage"in e&&"estimatedTime"in e&&"routeDetails"in e})}function zp(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!("success"in t&&"result"in t&&"boolean"==typeof t.success&&Array.isArray(t.result))&&t.result.every(e=>"object"==typeof e&&null!==e&&"identifier"in e&&"bridgeName"in e&&"fromChainId"in e&&"isCowswapTrade"in e&&"orderId"in e&&"recipient"in e&&"sender"in e&&"srcTxStatus"in e&&"destTxStatus"in e)}function jp(e){return"object"==typeof e&&null!==e&&"status"in e}const Kp="cow-sdk://bridging/providers/bungee",Wp=[le,Ie,fe,ye,Te];class Jp{constructor(e){this.info={name:"Bungee",logoUrl:`${fd}/bungee/bungee-logo.png`,dappId:Kp,website:"https://www.bungee.exchange"},this.options=e,this.api=new Hp(e.apiOptions),this.cowShedSdk=new jd(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}async getNetworks(){return Wp}async getBuyTokens(e){return this.api.getBuyTokens(e)}async getIntermediateTokens(e){if(e.kind!==E.SELL)throw new F(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});return this.api.getIntermediateTokens({fromChainId:e.sellTokenChainId,toChainId:e.buyTokenChainId,toTokenAddress:e.buyTokenAddress})}async getQuote(e){var t;const{sellTokenAddress:n,sellTokenChainId:r,buyTokenChainId:i,buyTokenAddress:s,amount:a,receiver:o,account:u,owner:l}=e,d={userAddress:this.cowShedSdk.getCowShedAccount(r,null!=l?l:u),originChainId:r.toString(),destinationChainId:i.toString(),inputToken:n,inputAmount:a.toString(),receiverAddress:null!=o?o:u,outputToken:s,includeBridges:null==(t=this.options.apiOptions)?void 0:t.includeBridges,enableManual:!0,disableSwapping:!0,disableAuto:!0},c=await this.api.getBungeeQuoteWithBuildTx(d);if(!await this.api.verifyBungeeBuildTx(c.bungeeQuote,c.buildTx,Ll(e.signer)))throw new F(O.TX_BUILD_ERROR,c);return function(e,t,n){const{kind:r}=e,{bungeeQuote:i,buildTx:s}=n;return{isSell:r===E.SELL,amountsAndCosts:xp(e,0,i),quoteTimestamp:Number(i.quoteTimestamp),expectedFillTimeSeconds:Number(i.route.estimatedTime),fees:{bridgeFee:BigInt(i.route.routeDetails.routeFee.amount),destinationGasFee:BigInt(0)},limits:{minDeposit:BigInt(0),maxDeposit:BigInt(0)},bungeeQuote:i,buildTx:s}}(e,0,c)}async getUnsignedBridgeCall(e,t){return async function(e){var t;const{request:n,quote:r,cowShedSdk:s}=e,{bungeeQuote:a,buildTx:o}=r,{routeId:u,encodedFunctionData:l}=Mp(o.txData.data),d=null!==(t=n.owner)&&void 0!==t?t:n.account,c=s.getCowShedAccount(n.sellTokenChainId,d),p=cp(new sp(n.sellTokenAddress,Ap),ap.CALL),h=function(e){const t=Op[e];if(!t)throw new Error("BungeeCowswapLib contract not found");return cp(new sp(t,Ep),ap.CALL)}(n.sellTokenChainId),f=cp(new sp(o.txData.to,Ip),ap.CALL);let m=!1;return n.sellTokenAddress.toLowerCase()!==Pe.toLowerCase()&&(m=!0),dp(e=>{const t=e.add(p.balanceOf(c));m&&e.add(p.approve(o.approvalData.spenderAddress,t));let r=e.add(h.replaceUint256(l,Sp[a.routeBridge].inputAmount.bytes_startIndex,t));if(a.routeBridge===kp.Across){const{inputAmountBigNumber:n,outputAmountBigNumber:s}=((e,t)=>{if(!e||!e.startsWith("0x"))throw new Error("Invalid txData format");if(!Sp[t])throw new Error(`Unsupported bridge type: ${t}`);const n=`0x${e.slice(Sp[t].inputAmount.bytesString_startIndex,Sp[t].inputAmount.bytesString_startIndex+Sp[t].inputAmount.bytesString_length)}`,r=i.BigNumber.from(n);if(t===kp.Across){const s=Sp[t];if(!s)throw new Error(`Unsupported bridge type: ${t}`);const a=`0x${e.slice(s.outputAmount.bytesString_startIndex,s.outputAmount.bytesString_startIndex+s.outputAmount.bytesString_length)}`;return{inputAmountBytes:n,inputAmountBigNumber:r,outputAmountBytes:a,outputAmountBigNumber:i.BigNumber.from(a)}}return{inputAmountBytes:n,inputAmountBigNumber:r}})(l,a.routeBridge),o=e.add(h.applyPctDiff(n,t,s));r=e.add(h.replaceUint256(r,Sp[a.routeBridge].outputAmount.bytes_startIndex,o))}n.sellTokenAddress.toLowerCase()===Pe.toLowerCase()?e.add(f.executeRoute(u,r).withValue(t)):e.add(f.executeRoute(u,r))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk})}async getGasLimitEstimationForHook(e){return gp(this.cowShedSdk,e,this.getRpcProvider(e.sellTokenChainId))}async getSignedHook(e,t,n,r,i,s){const{signedMulticall:a,cowShedAccount:o,gasLimit:u}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,gasLimit:BigInt(s),deadline:i,nonce:r}),{to:l,data:d}=a;return{postHook:{target:l,callData:d,gasLimit:u.toString(),dappId:Kp},recipient:o}}async getBridgingParams(e,t,n){const r=(await this.api.getEvents({orderId:t}))[0];return r?{inputTokenAddress:r.srcTokenAddress,outputTokenAddress:r.destTokenAddress,inputAmount:BigInt(r.srcAmount),outputAmount:r.destAmount?BigInt(r.destAmount):null,owner:r.sender,quoteTimestamp:null,fillDeadline:null,recipient:r.recipient,sourceChainId:r.fromChainId,destinationChainId:r.toChainId,bridgingId:t}:null}async decodeBridgeHook(e){throw new Error("Not implemented")}async getBridgingId(e,t,n){return e}getExplorerUrl(e){return`https://socketscan.io/tx/${e}`}async getStatus(e){const t=await this.api.getEvents({orderId:e});if(null==t||!t.length)return{status:P.UNKNOWN};const n=t[0];if(n.srcTxStatus===Np.PENDING)return{status:P.IN_PROGRESS};if(n.srcTxStatus===Np.COMPLETED&&n.destTxStatus===Np.PENDING){if(n.bridgeName===_p.ACROSS)try{const e=await this.api.getAcrossStatus(n.orderId);if("expired"===e)return{status:P.EXPIRED,depositTxHash:n.srcTransactionHash};if("refunded"===e)return{status:P.REFUND,depositTxHash:n.srcTransactionHash}}catch(e){console.error("BungeeBridgeProvider get across status error",e)}return{status:P.IN_PROGRESS,depositTxHash:n.srcTransactionHash}}if(n.srcTxStatus===Np.COMPLETED&&n.destTxStatus===Np.COMPLETED)return{status:P.EXECUTED,depositTxHash:n.srcTransactionHash,fillTxHash:n.destTransactionHash};throw new Error("Unknown status")}async getCancelBridgingTx(e){throw new Error("Not implemented")}async getRefundBridgingTx(e){throw new Error("Not implemented")}}let Qp,Yp,Xp,Zp=e=>e;const $p=x(Qp||(Qp=Zp`
|
|
1
|
+
import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as n,Contract as r,ethers as i,constants as s,BigNumber as a}from"ethers";import{Signer as o,VoidSigner as u}from"@ethersproject/abstract-signer";import{MetadataApi as l,stringifyDeterministic as d}from"@cowprotocol/app-data";import{keccak256 as c,toUtf8Bytes as p,solidityKeccak256 as h,Interface as f,defaultAbiCoder as m,getCreate2Address as y,arrayify as g,joinSignature as b,splitSignature as v,formatBytes32String as w}from"ethers/lib/utils";import A from"deepmerge";import{ORDER_TYPE_FIELDS as T,OrderKind as E,SigningScheme as I,hashTypedData as S,isTypedDataSigner as k,OrderBalance as C}from"@cowprotocol/contracts";import{Planner as N,Contract as _}from"@weiroll/weiroll.js";import{gql as x,request as M}from"graphql-request";import{StandardMerkleTree as R}from"@openzeppelin/merkle-tree";var P,O,B,D;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(P||(P={})),function(e){e.NO_INTERMEDIATE_TOKENS="NO_INTERMEDIATE_TOKENS",e.API_ERROR="API_ERROR",e.INVALID_API_JSON_RESPONSE="INVALID_API_JSON_RESPONSE",e.ONLY_SELL_ORDER_SUPPORTED="ONLY_SELL_ORDER_SUPPORTED",e.TX_BUILD_ERROR="TX_BUILD_ERROR",e.QUOTE_ERROR="QUOTE_ERROR",e.NO_ROUTES="NO_ROUTES",e.INVALID_BRIDGE="INVALID_BRIDGE"}(O||(O={}));class F extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeProviderQuoteError"}}class L extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeProviderError"}}class U extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeOrderParsingError"}}function G(e){return"bridge"in e}function q(e){return!G(e)}function H(e){if(!G(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function V(e){if(!q(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function z(e){if(!e)return[];const t=JSON.parse(e);return j(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function j(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}function K(){return K=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},K.apply(this,arguments)}function W(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t.indexOf(n=s[r])>=0||(i[n]=e[n]);return i}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.BASE=8453]="BASE",e[e.POLYGON=137]="POLYGON",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(B||(B={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(D||(D={}));class J extends Error{constructor(e,t){super(e),this.error_code=t}}class Q extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=e,this.body=t}}const Y=[408,425,429,500,502,503,504],X={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof Q)||Y.includes(e.response.status)},Z={tokensPerInterval:5,interval:"second"},$=async e=>{if(204!==e.status)try{const t=e.headers.get("Content-Type");if(t)return t.toLowerCase().startsWith("application/json")?await e.json():await e.text()}catch(e){console.error(e)}};async function ee(e,{path:n,query:r,method:i,body:s},a,o){const u=`${e}${n}${r?"?"+r:""}`,l={method:i,body:(()=>{if(s)return"string"==typeof s?s:JSON.stringify(s)})(),headers:{Accept:"application/json","Content-Type":"application/json"}};return t(async()=>{await a.removeTokens(1);const e=await fetch(u,l),t=await $(e);return e.status>=200&&e.status<300?t:Promise.reject(new Q(e,t))},o)}const te="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ne="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",re={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${ne}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},ie={[B.MAINNET]:K({},re,{chainId:B.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"}),[B.GNOSIS_CHAIN]:{chainId:B.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${ne}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[B.ARBITRUM_ONE]:K({},re,{chainId:B.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"}),[B.BASE]:K({},re,{chainId:B.BASE,address:"0x4200000000000000000000000000000000000006"}),[B.SEPOLIA]:K({},re,{chainId:B.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"}),[B.POLYGON]:{chainId:B.POLYGON,address:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",decimals:18,name:"Wrapped POL",symbol:"WPOL",logoUrl:`${ne}/137/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270/logo.png`},[B.AVALANCHE]:{chainId:B.AVALANCHE,address:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",decimals:18,name:"Wrapped AVAX",symbol:"WAVAX",logoUrl:`${ne}/43114/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7/logo.png`}},se={address:te,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${ne}/1/${te}/logo.png`},ae="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",oe=`${ae}/src/chains`,ue=`${oe}/images/mainnet-logo.svg`,le={id:B.MAINNET,label:"Ethereum",eip155Label:"Ethereum Mainnet",nativeCurrency:K({},se,{chainId:B.MAINNET}),addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:ue,dark:ue},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},de=`${oe}/images/gnosis-logo.svg`,ce={id:B.GNOSIS_CHAIN,label:"Gnosis",eip155Label:"Gnosis",nativeCurrency:K({},se,{chainId:B.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${ne}/100/${te}/logo.png`}),addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:de,dark:de},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},pe=`${oe}/images/arbitrum-logo-light.svg`,he=`${oe}/images/arbitrum-logo-dark.svg`,fe={id:B.ARBITRUM_ONE,label:"Arbitrum",eip155Label:"Arbitrum One",nativeCurrency:K({},se,{chainId:B.ARBITRUM_ONE}),addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:pe,dark:he},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},me=`${oe}/images/base-logo.svg`,ye={id:B.BASE,label:"Base",eip155Label:"Base",nativeCurrency:K({},se,{chainId:B.BASE}),addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:me,dark:me},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"Basescan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},ge=`${oe}/images/sepolia-logo.svg`,be={id:B.SEPOLIA,label:"Sepolia",eip155Label:"Ethereum Sepolia",nativeCurrency:K({},se,{chainId:B.SEPOLIA}),addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:ge,dark:ge},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},ve=`${oe}/images/avax-logo.svg`,we={id:B.AVALANCHE,label:"Avalanche",eip155Label:"Avalanche C-Chain",logo:{light:ve,dark:ve},nativeCurrency:K({},se,{chainId:B.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:ve}),addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"Snowscan",url:"https://snowscan.xyz"}},Ae=`${oe}/images/optimism-logo.svg`,Te={id:10,label:"Optimism",eip155Label:"OP Mainnet",logo:{light:Ae,dark:Ae},nativeCurrency:K({},se,{chainId:10}),addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},Ee=`${oe}/images/polygon-logo.svg`,Ie={id:B.POLYGON,label:"Polygon",eip155Label:"Polygon Mainnet",logo:{light:Ee,dark:Ee},nativeCurrency:K({},se,{chainId:B.POLYGON,name:"POL",symbol:"POL",logoUrl:Ee}),addressPrefix:"matic",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#8247e5",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com"}},Se={[B.MAINNET]:le,[B.GNOSIS_CHAIN]:ce,[B.ARBITRUM_ONE]:fe,[B.BASE]:ye,[B.AVALANCHE]:we,[B.POLYGON]:Ie,[B.SEPOLIA]:be},ke=Object.values(Se),Ce=ke.map(e=>e.id),Ne={[D.OPTIMISM]:Te},_e=ke.concat(Object.values(Ne)),xe=_e.map(e=>e.id);function Me(e){return Ce.reduce((t,n)=>K({},t,{[n]:"function"==typeof e?e(n):e}),{})}function Re(e){return Me(e)}const Pe="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",Oe="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Be="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",De="0x00E989b87700514118Fa55326CD1cCE82faebEF6",Fe="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",Le=Re("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),Ue=Re("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),Ge=Re(Oe),qe=Re(Be),He="0xba3cb449bd2b4adddbc894d8697f5170800eadec",Ve="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",ze=Re(He),je=Re(Ve),Ke=4294967295;function We(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:n}=t;return K({},e,{validTo:n,owner:e.onchainUser||e.owner,sellToken:Pe})}(function(e){const{executedFeeAmount:t,executedFee:n}=e,r=BigInt(t||"0"),i=BigInt(n||"0");return K({},e,{totalFee:String(r+i)})}(e))}let Je=!1;function Qe(e){Je&&console.log(`[COW TRADING SDK] ${e}`)}function Ye(e){Je=e}const Xe=["prod","staging"],Ze={env:"prod",chainId:B.MAINNET},$e="https://gnosis.mypinata.cloud/ipfs",et="https://api.pinata.cloud",tt=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,nt={[B.MAINNET]:"https://api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[B.BASE]:"https://api.cow.fi/base",[B.SEPOLIA]:"https://api.cow.fi/sepolia",[B.POLYGON]:"https://api.cow.fi/polygon",[B.AVALANCHE]:"https://api.cow.fi/avalanche"},rt={[B.MAINNET]:"https://barn.api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[B.BASE]:"https://barn.api.cow.fi/base",[B.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[B.POLYGON]:"https://barn.api.cow.fi/polygon",[B.AVALANCHE]:"https://barn.api.cow.fi/avalanche"};function it(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return void 0!==r&&(t[n]=r),t},{})}class st{constructor(t={}){this.context=K({},Ze,t),this.rateLimiter=new e(t.limiterOpts||Z)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new J("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new J("Must specify either owner or orderId"));const n=new URLSearchParams(it(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:n},t)}getOrders({owner:e,offset:t=0,limit:n=1e3},r={}){const i=new URLSearchParams(it({offset:t.toString(),limit:n.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},r).then(e=>e.map(We))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(We))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>We(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:n}=this.getContextWithOverride(t),r=Xe.filter(e=>e!==n);let i=0;const s=n=>{const a=r[i];return n instanceof Q&&404===n.response.status&&a?(i++,this.getOrder(e,K({},t,{env:a})).catch(s)):Promise.reject(n)};return this.getOrder(e,K({},t,{env:n})).catch(s)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,n={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},n)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:n,env:r}=this.getContextWithOverride(t);return this.getApiBaseUrls(r)[n]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return K({},this.context,e)}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?nt:rt}fetch(t,n={}){const{chainId:r,env:i,backoffOpts:s}=this.getContextWithOverride(n),a=this.getApiBaseUrls(i)[r],o=s||X,u=n.limiterOpts?new e(n.limiterOpts):this.rateLimiter;return Qe(`Fetching OrderBook API: ${a}${t.path}. Params: ${JSON.stringify(t,tt)}`),ee(a,t,u,o)}}var at,ot,ut,lt,dt,ct,pt,ht,ft,mt,yt,gt,bt,vt,wt;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(at||(at={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(ot||(ot={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(ut||(ut={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(lt||(lt={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(dt||(dt={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(ct||(ct={})),function(e){e.BUY="buy",e.SELL="sell"}(pt||(pt={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(ht||(ht={})),function(e){e.BUY="buy"}(ft||(ft={})),function(e){e.SELL="sell"}(mt||(mt={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(yt||(yt={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(gt||(gt={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(bt||(bt={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(vt||(vt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(wt||(wt={}));const At=BigInt(1e4);function Tt(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:s,buyAmountBeforeNetworkCosts:a,isSell:o,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:d}=Et({sellDecimals:t,buyDecimals:n,orderParams:r});return{isSell:o,quotePrice:l,sellAmountAfterNetworkCosts:i.big,buyAmountAfterNetworkCosts:s.big,buyAmountBeforeNetworkCosts:a.big,networkCostAmount:u.big,sellAmountBeforeNetworkCosts:d.big}}function Et(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,i=r.kind===pt.SELL,s=St(r.feeAmount,t),a=St(r.sellAmount,t),o=St(r.buyAmount,n),u=o.num/a.num,l=St(a.big+s.big,t);return{isSell:i,quotePrice:u,networkCostAmount:s,sellAmountBeforeNetworkCosts:a,buyAmountAfterNetworkCosts:o,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:St(u*l.num,n)}}function It(e){var t;const{orderParams:n,sellDecimals:r,buyDecimals:i,slippagePercentBps:s}=e,a=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,{isSell:o,networkCostAmount:u,sellAmountBeforeNetworkCosts:l,buyAmountAfterNetworkCosts:d,sellAmountAfterNetworkCosts:c,buyAmountBeforeNetworkCosts:p,quotePrice:h}=Et({sellDecimals:r,buyDecimals:i,orderParams:n}),{afterPartnerFees:f,partnerFeeAmount:m}=function(e){const{sellAmountAfterNetworkCosts:t,buyAmountAfterNetworkCosts:n,buyAmountBeforeNetworkCosts:r,sellAmountBeforeNetworkCosts:i,isSell:s,partnerFeeBps:a}=e,o=a>0?(s?r.big:i.big)*BigInt(a)/At:BigInt(0);return{partnerFeeAmount:o,afterPartnerFees:s?{sellAmount:t.big,buyAmount:n.big-o}:{sellAmount:t.big+o,buyAmount:n.big}}}({sellAmountAfterNetworkCosts:c,buyAmountAfterNetworkCosts:d,buyAmountBeforeNetworkCosts:p,sellAmountBeforeNetworkCosts:l,isSell:o,partnerFeeBps:a}),{afterSlippage:y}=function(e){const{afterPartnerFees:t,isSell:n,slippagePercentBps:r}=e,i=e=>e*BigInt(r)/At;return{afterSlippage:n?{sellAmount:t.sellAmount,buyAmount:t.buyAmount-i(t.buyAmount)}:{sellAmount:t.sellAmount+i(t.sellAmount),buyAmount:t.buyAmount}}}({afterPartnerFees:f,isSell:o,slippagePercentBps:s});return{isSell:o,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:St(h*u.num,i).big},partnerFee:{amount:m,bps:a}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:p.big},afterNetworkCosts:{sellAmount:c.big,buyAmount:d.big},afterPartnerFees:f,afterSlippage:y}}function St(e,t){if("number"==typeof e){const n=e*10**t,r=n.toFixed();return{big:BigInt(r.includes("e")?n:r),num:e}}const n=BigInt(e);return{big:n,num:Number(n)/10**t}}const kt={[ut.EIP712]:wt.EIP712,[ut.ETHSIGN]:wt.ETHSIGN},Ct=BigInt(15e4),Nt=()=>import("./utils-031a8079.js");class _t{static async signOrder(e,t,n){const{signOrder:r}=await Nt();return r(e,t,n)}static async signOrderCancellation(e,t,n){const{signOrderCancellation:r}=await Nt();return r(e,t,n)}static async signOrderCancellations(e,t,n){const{signOrderCancellations:r}=await Nt();return r(e,t,n)}static async getDomain(e){const{getDomain:t}=await Nt();return t(e)}static async generateOrderId(e,t,n){const{generateOrderId:r}=await Nt();return r(e,t,n)}static async getDomainSeparator(e){const{getDomain:t}=await Nt(),{_TypedDataEncoder:n}=await import("ethers/lib/utils");return n.hashDomain(t(e))}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function xt(e){if(e){if("volumeBps"in e)return e.volumeBps;if(Array.isArray(e))for(const t of e)if("volumeBps"in t)return t.volumeBps}}function Mt(e){return Rt(e)?Se[e]:Pt(e)?Ne[e]:void 0}function Rt(e){return e in Se}function Pt(e){return e in Ne}function Ot(e){return Rt(e)||Pt(e)}const Bt=10n**6n,Dt=50,Ft={[B.MAINNET]:200,[B.ARBITRUM_ONE]:50,[B.BASE]:50,[B.GNOSIS_CHAIN]:50,[B.SEPOLIA]:50,[B.POLYGON]:50,[B.AVALANCHE]:50};function Lt(e,t){return t?Ft[e]:Dt}const Ut=1800;function Gt({chainId:e,from:t,networkCostsAmount:n="0",isEthFlow:r},i,s){const{sellAmount:a,buyAmount:o,sellToken:u,sellTokenDecimals:l,buyToken:d,buyTokenDecimals:c,kind:p,partiallyFillable:h=!1,slippageBps:f=Lt(e,r),partnerFee:m,validFor:y=Ut}=i,g=i.receiver||t,b=i.validTo||Number(function(e){return BigInt(Math.floor(Date.now()/1e3)+e)}(y)),v={sellToken:u,buyToken:d,sellAmount:a,buyAmount:o,receiver:g,validTo:b,kind:p,feeAmount:n,appData:s,partiallyFillable:h},{afterSlippage:w}=It({orderParams:v,slippagePercentBps:f,partnerFeeBps:xt(m),sellDecimals:l,buyDecimals:c});return{sellToken:u,buyToken:d,sellAmount:w.sellAmount.toString(),buyAmount:w.buyAmount.toString(),validTo:b,kind:p,partiallyFillable:h,appData:s,receiver:g,feeAmount:"0",sellTokenBalance:vt.ERC20,buyTokenBalance:at.ERC20}}async function qt(e,t,n,r){const{orderDigest:i,orderId:s}=await _t.generateOrderId(e,K({},function(e){return K({},e,{sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance})}(t),{validTo:Ke,sellToken:ie[e].address}),{owner:"staging"===r?Ve:He});return n&&await n(s,i)?(console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+s,{sellAmount:t.sellAmount,fee:t.feeAmount}),qt(e,function(e){return K({},e,{buyAmount:(BigInt(e.buyAmount)-BigInt(1)).toString()})}(t),n)):s}const Ht=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class Vt{static createInterface(){return new n.Interface(Ht)}static connect(e,t){return new r(e,Ht,t)}}Vt.abi=Ht;const zt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class jt{static createInterface(){return new n.Interface(zt)}static connect(e,t){return new r(e,zt,t)}}jt.abi=zt;const Kt=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class Wt{static createInterface(){return new n.Interface(Kt)}static connect(e,t){return new r(e,Kt,t)}}Wt.abi=Kt;const Jt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class Qt{static createInterface(){return new n.Interface(Jt)}static connect(e,t){return new r(e,Jt,t)}}Qt.abi=Jt;const Yt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class Xt{static createInterface(){return new n.Interface(Yt)}static connect(e,t){return new r(e,Yt,t)}}function Zt(e,t){return K({},e,{quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount})}function $t(e){return e.sellToken.toLowerCase()===Pe.toLowerCase()}function en(e){return e+e*BigInt(20)/BigInt(100)}function tn(e,t){const{costs:{networkFee:n,partnerFee:r}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return K({},e,{costs:K({},e.costs,{networkFee:K({},n,{amountInSellCurrency:t(n.amountInSellCurrency),amountInBuyCurrency:t(n.amountInBuyCurrency)}),partnerFee:K({},r,{amount:t(r.amount)})}),beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)})}function nn({quoteParameters:e,sellToken:t}){return K({},e,{sellToken:t})}function rn(e,t){return K({},t,{sellToken:ie[e].address})}async function sn(e,t,n,r,i={}){var s;const{networkCostsAmount:a="0",checkEthFlowOrderExists:o}=i,u=await e.getAddress(),l=null!==(s=n.slippageBps)&&void 0!==s?s:Lt(r,!0),d=K({},rn(r,n),{slippageBps:l}),{quoteId:c}=d,p=function(e,t){return Wt.connect("staging"===t?Ve:He,e)}(e,d.env),h=Gt({chainId:r,isEthFlow:!0,from:u,networkCostsAmount:a},d,t),f=await qt(r,h,o,d.env),m={buyToken:h.buyToken,receiver:h.receiver,sellAmount:h.sellAmount,buyAmount:h.buyAmount,feeAmount:h.feeAmount,partiallyFillable:h.partiallyFillable,quoteId:c,appData:t,validTo:h.validTo.toString()},y=await p.estimateGas.createOrder(m,{value:h.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Ct));return{orderId:f,orderToSign:h,transaction:{data:p.interface.encodeFunctionData("createOrder",[m]),gasLimit:"0x"+en(y).toString(16),to:p.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}}async function an(e,t,n,r,i={}){const{appDataKeccak256:s,fullAppData:a}=n,{orderId:o,transaction:u,orderToSign:l}=await sn(t,s,r,e.context.chainId,i);Qe("Uploading app-data"),await e.uploadAppData(s,a),Qe("Sending on-chain order transaction");const d=await t.sendTransaction(u);return Qe(`On-chain order transaction sent, txHash: ${d.hash}, order: ${o}`),{txHash:d.hash,orderId:o,orderToSign:l,signature:"",signingScheme:wt.EIP1271}}async function on(e,t,n,r,i={}){const{networkCostsAmount:s="0",signingScheme:a=wt.EIP712}=i,o=$t(r);if(o){const s=r.quoteId;if("number"==typeof s)return an(e,t,n,K({},r,{quoteId:s}),i);throw new Error("quoteId is required for EthFlow orders")}const{quoteId:u=null,owner:l}=r,{appDataKeccak256:d,fullAppData:c}=n,p=e.context.chainId,h=l||await t.getAddress(),f=Gt({chainId:p,from:h,networkCostsAmount:s,isEthFlow:o},r,n.appDataKeccak256);Qe("Signing order...");const{signature:m,signingScheme:y}=await(async()=>{if(a===wt.PRESIGN)return{signature:h,signingScheme:wt.PRESIGN};{const e=await _t.signOrder(f,p,t);return{signature:e.signature,signingScheme:kt[e.signingScheme]}}})(),g=K({},f,{from:h,signature:m,signingScheme:y,quoteId:u,appData:c,appDataHash:d});Qe("Posting order...");const b=await e.sendOrder(g);return Qe(`Order created, id: ${b}`),{orderId:b,signature:m,signingScheme:y,orderToSign:f}}Xt.abi=Yt;var un="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ln(e){var t={exports:{}};return e(t,t.exports),t.exports}var dn={__proto__:null,default:{}},cn=ln(function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:dn.Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function o(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function u(e,t,r,i){for(var s=0,a=0,o=Math.min(e.length,r),u=t;u<o;u++){var l=e.charCodeAt(u)-48;s*=i,a=l>=49?l-49+10:l>=17?l-17+10:l,n(l>=0&&a<i,"Invalid character"),s+=a}return s}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,a,o=0;if("be"===r)for(i=e.length-1,s=0;i>=0;i-=3)this.words[s]|=(a=e[i]|e[i-1]<<8|e[i-2]<<16)<<o&67108863,this.words[s+1]=a>>>26-o&67108863,(o+=24)>=26&&(o-=26,s++);else if("le"===r)for(i=0,s=0;i<e.length;i+=3)this.words[s]|=(a=e[i]|e[i+1]<<8|e[i+2]<<16)<<o&67108863,this.words[s+1]=a>>>26-o&67108863,(o+=24)>=26&&(o-=26,s++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,s=0,a=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=o(e,t,r)<<s,this.words[a]|=67108863&i,s>=18?(s-=18,this.words[a+=1]|=i>>>26):s+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=o(e,t,r)<<s,this.words[a]|=67108863&i,s>=18?(s-=18,this.words[a+=1]|=i>>>26):s+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var s=e.length-n,a=s%r,o=Math.min(s,s-a)+n,l=0,d=n;d<o;d+=r)l=u(e,d,d+r,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==a){var c=1;for(l=u(e,d,e.length,t),d=0;d<a;d++)c*=t;this.imuln(c),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=d}catch(e){i.prototype.inspect=d}else i.prototype.inspect=d;function d(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],s=0|t.words[0],a=i*s,o=a/67108864|0;n.words[0]=67108863&a;for(var u=1;u<r;u++){for(var l=o>>>26,d=67108863&o,c=Math.min(u,t.length-1),p=Math.max(0,u-e.length+1);p<=c;p++)l+=(a=(i=0|e.words[u-p|0])*(s=0|t.words[p])+d)/67108864|0,d=67108863&a;n.words[u]=0|d,o=0|l}return 0!==o?n.words[u]=0|o:n.length--,n._strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,s=0,a=0;a<this.length;a++){var o=this.words[a],u=(16777215&(o<<i|s)).toString(16);s=o>>>24-i&16777215,(i+=2)>=26&&(i-=26,a--),r=0!==s||a!==this.length-1?c[6-u.length]+u+r:u+r}for(0!==s&&(r=s.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var l=p[e],d=h[e];r="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(d).toString(e);r=(f=f.idivn(d)).isZero()?m+r:c[l-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},s&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),s=r||Math.max(1,i);n(i<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,i),a},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,s=0;i<this.length;i++){var a=this.words[i]<<s|r;e[n++]=255&a,n<e.length&&(e[n++]=a>>8&255),n<e.length&&(e[n++]=a>>16&255),6===s?(n<e.length&&(e[n++]=a>>24&255),r=0,s=0):(r=a>>>24,s+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,s=0;i<this.length;i++){var a=this.words[i]<<s|r;e[n--]=255&a,n>=0&&(e[n--]=a>>8&255),n>=0&&(e[n--]=a>>16&255),6===s?(n>=0&&(e[n--]=a>>24&255),r=0,s=0):(r=a>>>24,s+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,s=0;s<r.length;s++)this.words[s]=67108863&(t=(0|n.words[s])+(0|r.words[s])+i),i=t>>>26;for(;0!==i&&s<n.length;s++)this.words[s]=67108863&(t=(0|n.words[s])+i),i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var s=0,a=0;a<r.length;a++)s=(t=(0|n.words[a])-(0|r.words[a])+s)>>26,this.words[a]=67108863&t;for(;0!==s&&a<n.length;a++)s=(t=(0|n.words[a])+s)>>26,this.words[a]=67108863&t;if(0===s&&a<n.length&&n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this.length=Math.max(this.length,a),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,s,a=e.words,o=t.words,u=n.words,l=0,d=0|a[0],c=8191&d,p=d>>>13,h=0|a[1],f=8191&h,m=h>>>13,y=0|a[2],g=8191&y,b=y>>>13,v=0|a[3],w=8191&v,A=v>>>13,T=0|a[4],E=8191&T,I=T>>>13,S=0|a[5],k=8191&S,C=S>>>13,N=0|a[6],_=8191&N,x=N>>>13,M=0|a[7],R=8191&M,P=M>>>13,O=0|a[8],B=8191&O,D=O>>>13,F=0|a[9],L=8191&F,U=F>>>13,G=0|o[0],q=8191&G,H=G>>>13,V=0|o[1],z=8191&V,j=V>>>13,K=0|o[2],W=8191&K,J=K>>>13,Q=0|o[3],Y=8191&Q,X=Q>>>13,Z=0|o[4],$=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],se=8191&ie,ae=ie>>>13,oe=0|o[7],ue=8191&oe,le=oe>>>13,de=0|o[8],ce=8191&de,pe=de>>>13,he=0|o[9],fe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(l+(r=Math.imul(c,q))|0)+((8191&(i=(i=Math.imul(c,H))+Math.imul(p,q)|0))<<13)|0;l=((s=Math.imul(p,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(f,q),i=(i=Math.imul(f,H))+Math.imul(m,q)|0,s=Math.imul(m,H);var ge=(l+(r=r+Math.imul(c,z)|0)|0)+((8191&(i=(i=i+Math.imul(c,j)|0)+Math.imul(p,z)|0))<<13)|0;l=((s=s+Math.imul(p,j)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,q),i=(i=Math.imul(g,H))+Math.imul(b,q)|0,s=Math.imul(b,H),r=r+Math.imul(f,z)|0,i=(i=i+Math.imul(f,j)|0)+Math.imul(m,z)|0,s=s+Math.imul(m,j)|0;var be=(l+(r=r+Math.imul(c,W)|0)|0)+((8191&(i=(i=i+Math.imul(c,J)|0)+Math.imul(p,W)|0))<<13)|0;l=((s=s+Math.imul(p,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(w,q),i=(i=Math.imul(w,H))+Math.imul(A,q)|0,s=Math.imul(A,H),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,j)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,j)|0,r=r+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,s=s+Math.imul(m,J)|0;var ve=(l+(r=r+Math.imul(c,Y)|0)|0)+((8191&(i=(i=i+Math.imul(c,X)|0)+Math.imul(p,Y)|0))<<13)|0;l=((s=s+Math.imul(p,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,q),i=(i=Math.imul(E,H))+Math.imul(I,q)|0,s=Math.imul(I,H),r=r+Math.imul(w,z)|0,i=(i=i+Math.imul(w,j)|0)+Math.imul(A,z)|0,s=s+Math.imul(A,j)|0,r=r+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,s=s+Math.imul(b,J)|0,r=r+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,X)|0;var we=(l+(r=r+Math.imul(c,$)|0)|0)+((8191&(i=(i=i+Math.imul(c,ee)|0)+Math.imul(p,$)|0))<<13)|0;l=((s=s+Math.imul(p,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,q),i=(i=Math.imul(k,H))+Math.imul(C,q)|0,s=Math.imul(C,H),r=r+Math.imul(E,z)|0,i=(i=i+Math.imul(E,j)|0)+Math.imul(I,z)|0,s=s+Math.imul(I,j)|0,r=r+Math.imul(w,W)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(A,W)|0,s=s+Math.imul(A,J)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,X)|0,r=r+Math.imul(f,$)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,ee)|0;var Ae=(l+(r=r+Math.imul(c,ne)|0)|0)+((8191&(i=(i=i+Math.imul(c,re)|0)+Math.imul(p,ne)|0))<<13)|0;l=((s=s+Math.imul(p,re)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(_,q),i=(i=Math.imul(_,H))+Math.imul(x,q)|0,s=Math.imul(x,H),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,j)|0)+Math.imul(C,z)|0,s=s+Math.imul(C,j)|0,r=r+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(I,W)|0,s=s+Math.imul(I,J)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,X)|0,r=r+Math.imul(g,$)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,ee)|0,r=r+Math.imul(f,ne)|0,i=(i=i+Math.imul(f,re)|0)+Math.imul(m,ne)|0,s=s+Math.imul(m,re)|0;var Te=(l+(r=r+Math.imul(c,se)|0)|0)+((8191&(i=(i=i+Math.imul(c,ae)|0)+Math.imul(p,se)|0))<<13)|0;l=((s=s+Math.imul(p,ae)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(R,q),i=(i=Math.imul(R,H))+Math.imul(P,q)|0,s=Math.imul(P,H),r=r+Math.imul(_,z)|0,i=(i=i+Math.imul(_,j)|0)+Math.imul(x,z)|0,s=s+Math.imul(x,j)|0,r=r+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(C,W)|0,s=s+Math.imul(C,J)|0,r=r+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(I,Y)|0,s=s+Math.imul(I,X)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,s=s+Math.imul(b,re)|0,r=r+Math.imul(f,se)|0,i=(i=i+Math.imul(f,ae)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,ae)|0;var Ee=(l+(r=r+Math.imul(c,ue)|0)|0)+((8191&(i=(i=i+Math.imul(c,le)|0)+Math.imul(p,ue)|0))<<13)|0;l=((s=s+Math.imul(p,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,q),i=(i=Math.imul(B,H))+Math.imul(D,q)|0,s=Math.imul(D,H),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,j)|0)+Math.imul(P,z)|0,s=s+Math.imul(P,j)|0,r=r+Math.imul(_,W)|0,i=(i=i+Math.imul(_,J)|0)+Math.imul(x,W)|0,s=s+Math.imul(x,J)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(C,Y)|0,s=s+Math.imul(C,X)|0,r=r+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(I,$)|0,s=s+Math.imul(I,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(A,ne)|0,s=s+Math.imul(A,re)|0,r=r+Math.imul(g,se)|0,i=(i=i+Math.imul(g,ae)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ae)|0,r=r+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,s=s+Math.imul(m,le)|0;var Ie=(l+(r=r+Math.imul(c,ce)|0)|0)+((8191&(i=(i=i+Math.imul(c,pe)|0)+Math.imul(p,ce)|0))<<13)|0;l=((s=s+Math.imul(p,pe)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,q),i=(i=Math.imul(L,H))+Math.imul(U,q)|0,s=Math.imul(U,H),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,j)|0)+Math.imul(D,z)|0,s=s+Math.imul(D,j)|0,r=r+Math.imul(R,W)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(P,W)|0,s=s+Math.imul(P,J)|0,r=r+Math.imul(_,Y)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(x,Y)|0,s=s+Math.imul(x,X)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(C,$)|0,s=s+Math.imul(C,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(I,ne)|0,s=s+Math.imul(I,re)|0,r=r+Math.imul(w,se)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ae)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,le)|0,r=r+Math.imul(f,ce)|0,i=(i=i+Math.imul(f,pe)|0)+Math.imul(m,ce)|0,s=s+Math.imul(m,pe)|0;var Se=(l+(r=r+Math.imul(c,fe)|0)|0)+((8191&(i=(i=i+Math.imul(c,me)|0)+Math.imul(p,fe)|0))<<13)|0;l=((s=s+Math.imul(p,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,j))+Math.imul(U,z)|0,s=Math.imul(U,j),r=r+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,s=s+Math.imul(D,J)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,X)|0,r=r+Math.imul(_,$)|0,i=(i=i+Math.imul(_,ee)|0)+Math.imul(x,$)|0,s=s+Math.imul(x,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(C,ne)|0,s=s+Math.imul(C,re)|0,r=r+Math.imul(E,se)|0,i=(i=i+Math.imul(E,ae)|0)+Math.imul(I,se)|0,s=s+Math.imul(I,ae)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,le)|0,r=r+Math.imul(g,ce)|0,i=(i=i+Math.imul(g,pe)|0)+Math.imul(b,ce)|0,s=s+Math.imul(b,pe)|0;var ke=(l+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((s=s+Math.imul(m,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,W),i=(i=Math.imul(L,J))+Math.imul(U,W)|0,s=Math.imul(U,J),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,X)|0,r=r+Math.imul(R,$)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,ee)|0,r=r+Math.imul(_,ne)|0,i=(i=i+Math.imul(_,re)|0)+Math.imul(x,ne)|0,s=s+Math.imul(x,re)|0,r=r+Math.imul(k,se)|0,i=(i=i+Math.imul(k,ae)|0)+Math.imul(C,se)|0,s=s+Math.imul(C,ae)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(I,ue)|0,s=s+Math.imul(I,le)|0,r=r+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,pe)|0)+Math.imul(A,ce)|0,s=s+Math.imul(A,pe)|0;var Ce=(l+(r=r+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((s=s+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,X))+Math.imul(U,Y)|0,s=Math.imul(U,X),r=r+Math.imul(B,$)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(P,ne)|0,s=s+Math.imul(P,re)|0,r=r+Math.imul(_,se)|0,i=(i=i+Math.imul(_,ae)|0)+Math.imul(x,se)|0,s=s+Math.imul(x,ae)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(C,ue)|0,s=s+Math.imul(C,le)|0,r=r+Math.imul(E,ce)|0,i=(i=i+Math.imul(E,pe)|0)+Math.imul(I,ce)|0,s=s+Math.imul(I,pe)|0;var Ne=(l+(r=r+Math.imul(w,fe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(A,fe)|0))<<13)|0;l=((s=s+Math.imul(A,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,$),i=(i=Math.imul(L,ee))+Math.imul(U,$)|0,s=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,s=s+Math.imul(D,re)|0,r=r+Math.imul(R,se)|0,i=(i=i+Math.imul(R,ae)|0)+Math.imul(P,se)|0,s=s+Math.imul(P,ae)|0,r=r+Math.imul(_,ue)|0,i=(i=i+Math.imul(_,le)|0)+Math.imul(x,ue)|0,s=s+Math.imul(x,le)|0,r=r+Math.imul(k,ce)|0,i=(i=i+Math.imul(k,pe)|0)+Math.imul(C,ce)|0,s=s+Math.imul(C,pe)|0;var _e=(l+(r=r+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(I,fe)|0))<<13)|0;l=((s=s+Math.imul(I,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,s=Math.imul(U,re),r=r+Math.imul(B,se)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(D,se)|0,s=s+Math.imul(D,ae)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(P,ue)|0,s=s+Math.imul(P,le)|0,r=r+Math.imul(_,ce)|0,i=(i=i+Math.imul(_,pe)|0)+Math.imul(x,ce)|0,s=s+Math.imul(x,pe)|0;var xe=(l+(r=r+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((s=s+Math.imul(C,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,se),i=(i=Math.imul(L,ae))+Math.imul(U,se)|0,s=Math.imul(U,ae),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,s=s+Math.imul(D,le)|0,r=r+Math.imul(R,ce)|0,i=(i=i+Math.imul(R,pe)|0)+Math.imul(P,ce)|0,s=s+Math.imul(P,pe)|0;var Me=(l+(r=r+Math.imul(_,fe)|0)|0)+((8191&(i=(i=i+Math.imul(_,me)|0)+Math.imul(x,fe)|0))<<13)|0;l=((s=s+Math.imul(x,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,le))+Math.imul(U,ue)|0,s=Math.imul(U,le),r=r+Math.imul(B,ce)|0,i=(i=i+Math.imul(B,pe)|0)+Math.imul(D,ce)|0,s=s+Math.imul(D,pe)|0;var Re=(l+(r=r+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((s=s+Math.imul(P,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,ce),i=(i=Math.imul(L,pe))+Math.imul(U,ce)|0,s=Math.imul(U,pe);var Pe=(l+(r=r+Math.imul(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((s=s+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Oe=(l+(r=Math.imul(L,fe))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,fe)|0))<<13)|0;return l=((s=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=we,u[5]=Ae,u[6]=Te,u[7]=Ee,u[8]=Ie,u[9]=Se,u[10]=ke,u[11]=Ce,u[12]=Ne,u[13]=_e,u[14]=xe,u[15]=Me,u[16]=Re,u[17]=Pe,u[18]=Oe,0!==l&&(u[19]=l,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,s=0;s<n.length-1;s++){var a=i;i=0;for(var o=67108863&r,u=Math.min(s,t.length-1),l=Math.max(0,s-e.length+1);l<=u;l++){var d=(0|e.words[s-l])*(0|t.words[l]),c=67108863&d;o=67108863&(c=c+o|0),i+=(a=(a=a+(d/67108864|0)|0)+(c>>>26)|0)>>>26,a&=67108863}n.words[s]=o,r=a,a=i}return 0!==r?n.words[s]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?f(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var s=(0|this.words[i])*e,a=(67108863&s)+(67108863&r);r>>=26,r+=s/67108864|0,r+=a>>>26,this.words[i]=67108863&a}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++)t[n]=e.words[n/26|0]>>>n%26&1;return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var s=n.sqr();r<t.length;r++,s=s.sqr())0!==t[r]&&(n=n.mul(s));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t<this.length;t++){var o=this.words[t]&s;this.words[t]=(0|this.words[t])-o<<r|a,a=o>>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var s=e%26,a=Math.min((e-s)/26,this.length),o=67108863^67108863>>>s<<s,u=r;if(i-=a,i=Math.max(0,i),u){for(var l=0;l<a;l++)u.words[l]=this.words[l];u.length=a}if(0===a);else if(this.length>a)for(this.length-=a,l=0;l<this.length;l++)this.words[l]=this.words[l+a];else this.words[0]=0,this.length=1;var d=0;for(l=this.length-1;l>=0&&(0!==d||l>=i);l--){var c=0|this.words[l];this.words[l]=d<<26-s|c>>>s,d=c&o}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;return!(this.length<=r||!(this.words[r]&1<<t))},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r?this:(0!==t&&r++,this.length=Math.min(r,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,s;this._expand(e.length+r);var a=0;for(i=0;i<e.length;i++){s=(0|this.words[i+r])+a;var o=(0|e.words[i])*t;a=((s-=67108863&o)>>26)-(o/67108864|0),this.words[i+r]=67108863&s}for(;i<this.length-r;i++)a=(s=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&s;if(0===a)return this._strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n,r=this.clone(),s=e,a=0|s.words[s.length-1];0!=(n=26-this._countBits(a))&&(s=s.ushln(n),r.iushln(n),a=0|s.words[s.length-1]);var o,u=r.length-s.length;if("mod"!==t){(o=new i(null)).length=u+1,o.words=new Array(o.length);for(var l=0;l<o.length;l++)o.words[l]=0}var d=r.clone()._ishlnsubmul(s,1,u);0===d.negative&&(r=d,o&&(o.words[u]=1));for(var c=u-1;c>=0;c--){var p=67108864*(0|r.words[s.length+c])+(0|r.words[s.length+c-1]);for(p=Math.min(p/a|0,67108863),r._ishlnsubmul(s,p,c);0!==r.negative;)p--,r.negative=0,r._ishlnsubmul(s,1,c),r.isZero()||(r.negative^=1);o&&(o.words[c]=p)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(s=o.div.neg()),"div"!==t&&(a=o.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:s,mod:a}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(s=o.div.neg()),{div:s,mod:o.mod}):0!=(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(a=o.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:o.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,a,o},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),s=n.cmp(r);return s<0||1===i&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,s=this.length-1;s>=0;s--)i=(r*i+(0|this.words[s]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var s=(0|this.words[i])+67108864*r;this.words[i]=s/e|0,r=s%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new i(1),a=new i(0),o=new i(0),u=new i(1),l=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++l;for(var d=r.clone(),c=t.clone();!t.isZero();){for(var p=0,h=1;0==(t.words[0]&h)&&p<26;++p,h<<=1);if(p>0)for(t.iushrn(p);p-- >0;)(s.isOdd()||a.isOdd())&&(s.iadd(d),a.isub(c)),s.iushrn(1),a.iushrn(1);for(var f=0,m=1;0==(r.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(r.iushrn(f);f-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(d),u.isub(c)),o.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),s.isub(o),a.isub(u)):(r.isub(t),o.isub(s),u.isub(a))}return{a:o,b:u,gcd:r.iushln(l)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,a=new i(1),o=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var l=0,d=1;0==(t.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(t.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var c=0,p=1;0==(r.words[0]&p)&&c<26;++c,p<<=1);if(c>0)for(r.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(o)):(r.isub(t),o.isub(a))}return(s=0===t.cmpn(1)?a:o).cmpn(0)<0&&s.iadd(e),s},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var s=t;t=n,n=s}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var s=i,a=r;0!==s&&a<this.length;a++){var o=0|this.words[a];s=(o+=s)>>>26,this.words[a]=o&=67108863}return 0!==s&&(this.words[a]=s,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new I(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function A(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(w,v),w.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&n,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(a&n)<<4|s>>>22,s=a}e.words[i-10]=s>>>=22,e.length-=0===s&&e.length>10?10:9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];e.words[n]=67108863&(t+=977*r),t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(A,v),r(T,v),r(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new A;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},I.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},I.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var s=this.m.subn(1),a=0;!s.isZero()&&0===s.andln(1);)a++,s.iushrn(1);n(!s.isZero());var o=new i(1).toRed(this),u=o.redNeg(),l=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,l).cmp(u);)d.redIAdd(u);for(var c=this.pow(d,s),p=this.pow(e,s.addn(1).iushrn(1)),h=this.pow(e,s),f=a;0!==h.cmp(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();n(y<f);var g=this.pow(c,new i(1).iushln(f-y-1));p=p.redMul(g),c=g.redSqr(),h=h.redMul(c),f=y}return p},I.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},I.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var s=n[0],a=0,o=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var l=t.words[r],d=u-1;d>=0;d--){var c=l>>d&1;s!==n[0]&&(s=this.sqr(s)),0!==c||0!==a?(a<<=1,a|=c,(4==++o||0===r&&0===d)&&(s=this.mul(s,n[a]),o=0,a=0)):o=0}u=26}return s},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new S(e)},r(S,I),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=n.isub(r).iushrn(this.shift),a=s;return s.cmp(this.m)>=0?a=s.isub(this.m):s.cmpn(0)<0&&(a=s.iadd(this.m)),a._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,un)});let pn=!1,hn=!1;const fn={debug:1,default:2,info:2,warning:3,error:4,off:5};let mn=fn.default,yn=null;const gn=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var bn,vn;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(bn||(bn={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(vn||(vn={}));const wn="0123456789abcdef";class An{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==fn[n]&&this.throwArgumentError("invalid log level name","logLevel",e),mn>fn[n]||console.log.apply(console,t)}debug(...e){this._log(An.levels.DEBUG,e)}info(...e){this._log(An.levels.INFO,e)}warn(...e){this._log(An.levels.WARNING,e)}makeError(e,t,n){if(hn)return this.makeError("censored error",t,{});t||(t=An.errors.UNKNOWN_ERROR),n||(n={});const r=[];Object.keys(n).forEach(e=>{const t=n[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=wn[t[e]>>4],n+=wn[15&t[e]];r.push(e+"=Uint8Array(0x"+n+")")}else r.push(e+"="+JSON.stringify(t))}catch(t){r.push(e+"="+JSON.stringify(n[e].toString()))}}),r.push(`code=${t}`),r.push(`version=${this.version}`);const i=e;let s="";switch(t){case vn.NUMERIC_FAULT:{s="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":s+="-"+t;break;case"negative-power":case"negative-width":s+="-unsupported";break;case"unbound-bitwise-result":s+="-unbound-result"}break}case vn.CALL_EXCEPTION:case vn.INSUFFICIENT_FUNDS:case vn.MISSING_NEW:case vn.NONCE_EXPIRED:case vn.REPLACEMENT_UNDERPRICED:case vn.TRANSACTION_REPLACED:case vn.UNPREDICTABLE_GAS_LIMIT:s=t}s&&(e+=" [ See: https://links.ethers.org/v5-errors-"+s+" ]"),r.length&&(e+=" ("+r.join(", ")+")");const a=new Error(e);return a.reason=i,a.code=t,Object.keys(n).forEach(function(e){a[e]=n[e]}),a}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(e,t,n){return this.throwError(e,An.errors.INVALID_ARGUMENT,{argument:t,value:n})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(e){gn&&this.throwError("platform missing String.prototype.normalize",An.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:gn})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,An.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,An.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,n){n=n?": "+n:"",e<t&&this.throwError("missing argument"+n,An.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+n,An.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",An.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",An.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",An.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return yn||(yn=new An("logger/5.8.0")),yn}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",An.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),pn){if(!e)return;this.globalLogger().throwError("error censorship permanent",An.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}hn=!!e,pn=!!t}static setLogLevel(e){const t=fn[e.toLowerCase()];null!=t?mn=t:An.globalLogger().warn("invalid log level - "+e)}static from(e){return new An(e)}}An.errors=vn,An.levels=bn;const Tn=new An("bytes/5.8.0");function En(e){return!!e.toHexString}function In(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return In(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Sn(e){return Mn(e)&&!(e.length%2)||Cn(e)}function kn(e){return"number"==typeof e&&e==e&&e%1==0}function Cn(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!kn(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!kn(n)||n<0||n>=256)return!1}return!0}function Nn(e,t){if(t||(t={}),"number"==typeof e){Tn.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),In(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),En(e)&&(e=e.toHexString()),Mn(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":Tn.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return In(new Uint8Array(r))}return Cn(e)?In(new Uint8Array(e)):Tn.throwArgumentError("invalid arrayify value","value",e)}function _n(e){const t=e.map(e=>Nn(e)),n=t.reduce((e,t)=>e+t.length,0),r=new Uint8Array(n);return t.reduce((e,t)=>(r.set(t,e),e+t.length),0),In(r)}function xn(e){let t=Nn(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}function Mn(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Rn="0123456789abcdef";function Pn(e,t){if(t||(t={}),"number"==typeof e){Tn.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Rn[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),En(e))return e.toHexString();if(Mn(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Tn.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Cn(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=Rn[(240&r)>>4]+Rn[15&r]}return t}return Tn.throwArgumentError("invalid hexlify value","value",e)}function On(e){if("string"!=typeof e)e=Pn(e);else if(!Mn(e)||e.length%2)return null;return(e.length-2)/2}function Bn(e,t,n){return"string"!=typeof e?e=Pn(e):(!Mn(e)||e.length%2)&&Tn.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function Dn(e){let t="0x";return e.forEach(e=>{t+=Pn(e).substring(2)}),t}function Fn(e){const t=function(e){"string"!=typeof e&&(e=Pn(e)),Mn(e)||Tn.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Pn(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Ln(e,t){for("string"!=typeof e?e=Pn(e):Mn(e)||Tn.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Tn.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function Un(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Sn(e)){let n=Nn(e);64===n.length?(t.v=27+(n[32]>>7),n[32]&=127,t.r=Pn(n.slice(0,32)),t.s=Pn(n.slice(32,64))):65===n.length?(t.r=Pn(n.slice(0,32)),t.s=Pn(n.slice(32,64)),t.v=n[64]):Tn.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Tn.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(n[32]|=128),t._vs=Pn(n.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const n=function(e,t){(e=Nn(e)).length>t&&Tn.throwArgumentError("value out of range","value",arguments[0]);const n=new Uint8Array(t);return n.set(e,t-e.length),In(n)}(Nn(t._vs),32);t._vs=Pn(n);const r=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=r:t.recoveryParam!==r&&Tn.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;const i=Pn(n);null==t.s?t.s=i:t.s!==i&&Tn.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Tn.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Tn.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Mn(t.r)?t.r=Ln(t.r,32):Tn.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Mn(t.s)?t.s=Ln(t.s,32):Tn.throwArgumentError("signature missing or invalid s","signature",e);const n=Nn(t.s);n[0]>=128&&Tn.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(n[0]|=128);const r=Pn(n);t._vs&&(Mn(t._vs)||Tn.throwArgumentError("signature invalid _vs","signature",e),t._vs=Ln(t._vs,32)),null==t._vs?t._vs=r:t._vs!==r&&Tn.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Gn(e){return Pn(_n([(e=Un(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const qn="bignumber/5.8.0";var Hn=cn.BN;const Vn=new An(qn),zn={},jn=9007199254740991;let Kn=!1;class Wn{constructor(e,t){e!==zn&&Vn.throwError("cannot call constructor directly; use BigNumber.from",An.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Qn(Yn(this).fromTwos(e))}toTwos(e){return Qn(Yn(this).toTwos(e))}abs(){return"-"===this._hex[0]?Wn.from(this._hex.substring(1)):this}add(e){return Qn(Yn(this).add(Yn(e)))}sub(e){return Qn(Yn(this).sub(Yn(e)))}div(e){return Wn.from(e).isZero()&&Xn("division-by-zero","div"),Qn(Yn(this).div(Yn(e)))}mul(e){return Qn(Yn(this).mul(Yn(e)))}mod(e){const t=Yn(e);return t.isNeg()&&Xn("division-by-zero","mod"),Qn(Yn(this).umod(t))}pow(e){const t=Yn(e);return t.isNeg()&&Xn("negative-power","pow"),Qn(Yn(this).pow(t))}and(e){const t=Yn(e);return(this.isNegative()||t.isNeg())&&Xn("unbound-bitwise-result","and"),Qn(Yn(this).and(t))}or(e){const t=Yn(e);return(this.isNegative()||t.isNeg())&&Xn("unbound-bitwise-result","or"),Qn(Yn(this).or(t))}xor(e){const t=Yn(e);return(this.isNegative()||t.isNeg())&&Xn("unbound-bitwise-result","xor"),Qn(Yn(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&Xn("negative-width","mask"),Qn(Yn(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&Xn("negative-width","shl"),Qn(Yn(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&Xn("negative-width","shr"),Qn(Yn(this).shrn(e))}eq(e){return Yn(this).eq(Yn(e))}lt(e){return Yn(this).lt(Yn(e))}lte(e){return Yn(this).lte(Yn(e))}gt(e){return Yn(this).gt(Yn(e))}gte(e){return Yn(this).gte(Yn(e))}isNegative(){return"-"===this._hex[0]}isZero(){return Yn(this).isZero()}toNumber(){try{return Yn(this).toNumber()}catch(e){Xn("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Vn.throwError("this platform does not support BigInt",An.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Kn||(Kn=!0,Vn.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Vn.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",An.errors.UNEXPECTED_ARGUMENT,{})),Yn(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof Wn)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new Wn(zn,Jn(e)):e.match(/^-?[0-9]+$/)?new Wn(zn,Jn(new Hn(e))):Vn.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&Xn("underflow","BigNumber.from",e),(e>=jn||e<=-jn)&&Xn("overflow","BigNumber.from",e),Wn.from(String(e));const t=e;if("bigint"==typeof t)return Wn.from(t.toString());if(Cn(t))return Wn.from(Pn(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return Wn.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Mn(e)||"-"===e[0]&&Mn(e.substring(1))))return Wn.from(e)}return Vn.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Jn(e){if("string"!=typeof e)return Jn(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Vn.throwArgumentError("invalid hex","value",e),"0x00"===(e=Jn(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function Qn(e){return Wn.from(Jn(e))}function Yn(e){const t=Wn.from(e).toHexString();return new Hn("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function Xn(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),Vn.throwError(e,An.errors.NUMERIC_FAULT,r)}const Zn=new An(qn),$n={},er=Wn.from(0),tr=Wn.from(-1);function nr(e,t,n,r){const i={fault:t,operation:n};return void 0!==r&&(i.value=r),Zn.throwError(e,An.errors.NUMERIC_FAULT,i)}let rr="0";for(;rr.length<256;)rr+=rr;function ir(e){if("number"!=typeof e)try{e=Wn.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+rr.substring(0,e):Zn.throwArgumentError("invalid decimal size","decimals",e)}function sr(e,t){null==t&&(t=0);const n=ir(t),r=(e=Wn.from(e)).lt(er);r&&(e=e.mul(tr));let i=e.mod(n).toString();for(;i.length<n.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const s=e.div(n).toString();return e=1===n.length?s:s+"."+i,r&&(e="-"+e),e}function ar(e,t){null==t&&(t=0);const n=ir(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||Zn.throwArgumentError("invalid decimal value","value",e);const r="-"===e.substring(0,1);r&&(e=e.substring(1)),"."===e&&Zn.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&Zn.throwArgumentError("too many decimal points","value",e);let s=i[0],a=i[1];for(s||(s="0"),a||(a="0");"0"===a[a.length-1];)a=a.substring(0,a.length-1);for(a.length>n.length-1&&nr("fractional component exceeds decimals","underflow","parseFixed"),""===a&&(a="0");a.length<n.length-1;)a+="0";const o=Wn.from(s),u=Wn.from(a);let l=o.mul(n).add(u);return r&&(l=l.mul(tr)),l}class or{constructor(e,t,n,r){e!==$n&&Zn.throwError("cannot use FixedFormat constructor; use FixedFormat.from",An.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=n,this.decimals=r,this.name=(t?"":"u")+"fixed"+String(n)+"x"+String(r),this._multiplier=ir(r),Object.freeze(this)}static from(e){if(e instanceof or)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,n=128,r=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||Zn.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],n=parseInt(i[2]),r=parseInt(i[3])}else if(e){const i=(t,n,r)=>null==e[t]?r:(typeof e[t]!==n&&Zn.throwArgumentError("invalid fixed format ("+t+" not "+n+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),n=i("width","number",n),r=i("decimals","number",r)}return n%8&&Zn.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",n),r>80&&Zn.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",r),new or($n,t,n,r)}}class ur{constructor(e,t,n,r){e!==$n&&Zn.throwError("cannot use FixedNumber constructor; use FixedNumber.from",An.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=r,this._hex=t,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&Zn.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.add(n),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.sub(n),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=ar(this._value,this.format.decimals),n=ar(e._value,e.format.decimals);return ur.fromValue(t.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=ur.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return this.isNegative()&&n&&(t=t.subUnsafe(lr.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=ur.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return!this.isNegative()&&n&&(t=t.addUnsafe(lr.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&Zn.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const n=ur.from("1"+rr.substring(0,e),this.format),r=dr.toFormat(this.format);return this.mulUnsafe(n).addUnsafe(r).floor().divUnsafe(n)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&Zn.throwArgumentError("invalid byte width","width",e),Ln(Wn.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return ur.fromString(this._value,e)}static fromValue(e,t,n){return null!=n||null==t||function(e){return null!=e&&(Wn.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Mn(e)||"bigint"==typeof e||Cn(e))}(t)||(n=t,t=null),null==t&&(t=0),null==n&&(n="fixed"),ur.fromString(sr(e,t),or.from(n))}static fromString(e,t){null==t&&(t="fixed");const n=or.from(t),r=ar(e,n.decimals);!n.signed&&r.lt(er)&&nr("unsigned value cannot be negative","overflow","value",e);let i=null;n.signed?i=r.toTwos(n.width).toHexString():(i=r.toHexString(),i=Ln(i,n.width/8));const s=sr(r,n.decimals);return new ur($n,i,s,n)}static fromBytes(e,t){null==t&&(t="fixed");const n=or.from(t);if(Nn(e).length>n.width/8)throw new Error("overflow");let r=Wn.from(e);n.signed&&(r=r.fromTwos(n.width));const i=r.toTwos((n.signed?0:1)+n.width).toHexString(),s=sr(r,n.decimals);return new ur($n,i,s,n)}static from(e,t){if("string"==typeof e)return ur.fromString(e,t);if(Cn(e))return ur.fromBytes(e,t);try{return ur.fromValue(e,0,t)}catch(e){if(e.code!==An.errors.INVALID_ARGUMENT)throw e}return Zn.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const lr=ur.from(1),dr=ur.from("0.5");var cr=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const pr=new An("properties/5.8.0");function hr(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function fr(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function mr(e){return cr(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function yr(e,t){e&&"object"==typeof e||pr.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(n=>{t[n]||pr.throwArgumentError("invalid object key - "+n,"transaction:"+n,e)})}function gr(e){const t={};for(const n in e)t[n]=e[n];return t}const br={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function vr(e){if(null==e||br[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!vr(r))return!1}return!0}return pr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function wr(e){if(vr(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Ar(e)));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&hr(t,n,Ar(r))}return t}return pr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Ar(e){return wr(e)}class Tr{constructor(e){for(const t in e)this[t]=Ar(e[t])}}const Er=new An("abstract-provider/5.8.0");class Ir extends Tr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Sr{constructor(){Er.checkAbstract(new.target,Sr),hr(this,"_isProvider",!0)}getFeeData(){return e=this,n=function*(){const{block:e,gasPrice:t}=yield mr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=Wn.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(r,i){function s(e){try{o(n.next(e))}catch(e){i(e)}}function a(e){try{o(n.throw(e))}catch(e){i(e)}}function o(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,a)}o((n=n.apply(e,[])).next())});var e,t,n}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const kr=new An("networks/5.8.0");function Cr(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const s=new t.PocketProvider(e,n.pocket);s.network&&-1===i.indexOf(s.network.name)&&r.push(s)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],s=new t.AnkrProvider(e,n.ankr);s.network&&-1===i.indexOf(s.network.name)&&r.push(s)}catch(e){}if(t.QuickNodeProvider&&"-"!==n.quicknode)try{r.push(new t.QuickNodeProvider(e,n.quicknode))}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return Cr(e)},t}function Nr(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return Nr(e,t)},n}const _r={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Cr("homestead")},xr={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Cr("ropsten")},Mr={chainId:63,name:"classicMordor",_defaultProvider:Nr("https://www.ethercluster.com/mordor","classicMordor")},Rr={unspecified:{chainId:0,name:"unspecified"},homestead:_r,mainnet:_r,morden:{chainId:2,name:"morden"},ropsten:xr,testnet:xr,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Cr("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Cr("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Cr("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Cr("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Cr("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:Nr("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Mr,classicTestnet:Mr,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Nr("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Cr("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Cr("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Cr("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Pr(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return Nn(t)}function Or(e){e=Nn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}class Br{constructor(e){hr(this,"alphabet",e),hr(this,"base",e.length),hr(this,"_alphabetMap",{}),hr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Nn(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return Nn(new Uint8Array(t.reverse()))}}new Br("abcdefghijklmnopqrstuvwxyz234567");const Dr=new Br("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Fr=/*#__PURE__*/Wn.from(-1),Lr=/*#__PURE__*/Wn.from(0),Ur=/*#__PURE__*/Wn.from(1),Gr=/*#__PURE__*/Wn.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var qr=ln(function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?r=un:i&&(r=self);var s=!r.JS_SHA3_NO_COMMON_JS&&e.exports,a=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,o="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],d=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],c=[224,256,384,512],p=[128,256],h=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!a||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new x(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new x(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,s){return T["cshake"+e].update(t,r,i,s)[n]()}},b=function(e,t,n){return function(t,r,i,s){return T["kmac"+e].update(t,r,i,s)[n]()}},v=function(e,t,n,r){for(var i=0;i<h.length;++i){var s=h[i];e[s]=t(n,r,s)}return e},w=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new x(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},A=[{name:"keccak",padding:[1,256,65536,16777216],bits:c,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:c,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:p,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new x(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:p,createMethod:function(e,t){var n=f[e],r=g(e,0,"hex");return r.create=function(r,i,s){return i||s?new x(e,t,r).bytepad([i,s],n):T["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:p,createMethod:function(e,t){var n=f[e],r=b(e,0,"hex");return r.create=function(r,i,s){return new M(e,t,i).bytepad(["KMAC",s],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],T={},E=[],I=0;I<A.length;++I)for(var S=A[I],k=S.bits,C=0;C<k.length;++C){var N=S.name+"_"+k[C];if(E.push(N),T[N]=S.createMethod(k[C],S.padding),"sha3"!==S.name){var _=S.name+k[C];E.push(_),T[_]=T[N]}}function x(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function M(e,t,n){x.call(this,e,t,n)}x.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,s,o=this.blocks,u=this.byteCount,d=e.length,c=this.blockCount,p=0,h=this.s;p<d;){if(this.reset)for(this.reset=!1,o[0]=this.block,i=1;i<c+1;++i)o[i]=0;if(n)for(i=this.start;p<d&&i<u;++p)o[i>>2]|=e[p]<<l[3&i++];else for(i=this.start;p<d&&i<u;++p)(s=e.charCodeAt(p))<128?o[i>>2]|=s<<l[3&i++]:s<2048?(o[i>>2]|=(192|s>>6)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]):s<55296||s>=57344?(o[i>>2]|=(224|s>>12)<<l[3&i++],o[i>>2]|=(128|s>>6&63)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]):(s=65536+((1023&s)<<10|1023&e.charCodeAt(++p)),o[i>>2]|=(240|s>>18)<<l[3&i++],o[i>>2]|=(128|s>>12&63)<<l[3&i++],o[i>>2]|=(128|s>>6&63)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=o[c],i=0;i<c;++i)h[i]^=o[i];R(h),this.reset=!0}else this.start=i}return this},x.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},x.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0;if(n)i=e.length;else for(var s=0;s<e.length;++s){var o=e.charCodeAt(s);o<128?i+=1:o<2048?i+=2:o<55296||o>=57344?i+=3:(o=65536+((1023&o)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},x.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=[];return i.length=t-n%t,this.update(i),this},x.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];R(r)}},x.prototype.toString=x.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,s=0,a=0,u="";a<r;){for(s=0;s<t&&a<r;++s,++a)u+=o[(e=n[s])>>4&15]+o[15&e]+o[e>>12&15]+o[e>>8&15]+o[e>>20&15]+o[e>>16&15]+o[e>>28&15]+o[e>>24&15];a%t==0&&(R(n),s=0)}return i&&(u+=o[(e=n[s])>>4&15]+o[15&e],i>1&&(u+=o[e>>12&15]+o[e>>8&15]),i>2&&(u+=o[e>>20&15]+o[e>>16&15])),u},x.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,s=0,a=0,o=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(o);for(var u=new Uint32Array(e);a<r;){for(s=0;s<t&&a<r;++s,++a)u[a]=n[s];a%t==0&&R(n)}return i&&(u[s]=n[s],e=e.slice(0,o)),e},x.prototype.buffer=x.prototype.arrayBuffer,x.prototype.digest=x.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,s=this.extraBytes,a=0,o=0,u=[];o<i;){for(a=0;a<n&&o<i;++a,++o)u[e=o<<2]=255&(t=r[a]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;o%n==0&&R(r)}return s&&(u[e=o<<2]=255&(t=r[a]),s>1&&(u[e+1]=t>>8&255),s>2&&(u[e+2]=t>>16&255)),u},(M.prototype=new x).finalize=function(){return this.encode(this.outputBits,!0),x.prototype.finalize.call(this)};var R=function(e){var t,n,r,i,s,a,o,u,l,c,p,h,f,m,y,g,b,v,w,A,T,E,I,S,k,C,N,_,x,M,R,P,O,B,D,F,L,U,G,q,H,V,z,j,K,W,J,Q,Y,X,Z,$,ee,te,ne,re,ie,se,ae,oe,ue,le,de;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],s=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],c=e[6]^e[16]^e[26]^e[36]^e[46],p=e[7]^e[17]^e[27]^e[37]^e[47],n=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((o=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(a=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|o>>>31),e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,n=s^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,n=o^(p<<1|c>>>31),e[4]^=t=a^(c<<1|p>>>31),e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,n=l^(f<<1|h>>>31),e[6]^=t=u^(h<<1|f>>>31),e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,n=p^(s<<1|i>>>31),e[8]^=t=c^(i<<1|s>>>31),e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,y=e[1],W=e[11]<<4|e[10]>>>28,J=e[10]<<4|e[11]>>>28,_=e[20]<<3|e[21]>>>29,x=e[21]<<3|e[20]>>>29,oe=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,V=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,M=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,de=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,w=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,S=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,A=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,j=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,N=e[19]<<20|e[18]>>>12,se=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,q=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,I=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&w,e[10]=S^~C&_,e[11]=k^~N&x,e[20]=B^~F&U,e[21]=D^~L&G,e[30]=j^~W&Q,e[31]=K^~J&Y,e[40]=te^~re&se,e[41]=ne^~ie&ae,e[2]=g^~v&A,e[3]=b^~w&T,e[12]=C^~_&M,e[13]=N^~x&R,e[22]=F^~U&q,e[23]=L^~G&H,e[32]=W^~Q&X,e[33]=J^~Y&Z,e[42]=re^~se&oe,e[43]=ie^~ae&ue,e[4]=v^~A&E,e[5]=w^~T&I,e[14]=_^~M&P,e[15]=x^~R&O,e[24]=U^~q&V,e[25]=G^~H&z,e[34]=Q^~X&$,e[35]=Y^~Z&ee,e[44]=se^~oe&le,e[45]=ae^~ue&de,e[6]=A^~E&m,e[7]=T^~I&y,e[16]=M^~P&S,e[17]=R^~O&k,e[26]=q^~V&B,e[27]=H^~z&D,e[36]=X^~$&j,e[37]=Z^~ee&K,e[46]=oe^~le&te,e[47]=ue^~de&ne,e[8]=E^~m&g,e[9]=I^~y&b,e[18]=P^~S&C,e[19]=O^~k&N,e[28]=V^~B&F,e[29]=z^~D&L,e[38]=$^~j&W,e[39]=ee^~K&J,e[48]=le^~te&re,e[49]=de^~ne&ie,e[0]^=d[r],e[1]^=d[r+1]};if(s)e.exports=T;else for(I=0;I<E.length;++I)r[E[I]]=T[E[I]]}()}),Hr=qr;function Vr(e){return"0x"+Hr.keccak_256(Nn(e))}const zr=new An("strings/5.8.0");var jr,Kr;function Wr(e,t,n,r,i){if(e===Kr.BAD_PREFIX||e===Kr.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===Kr.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(jr||(jr={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Kr||(Kr={}));const Jr=Object.freeze({error:function(e,t,n,r,i){return zr.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:Wr,replace:function(e,t,n,r,i){return e===Kr.OVERLONG?(r.push(i),0):(r.push(65533),Wr(e,t,n))}});function Qr(e,t){null==t&&(t=Jr.error),e=Nn(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let s=null,a=null;if(192==(224&i))s=1,a=127;else if(224==(240&i))s=2,a=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?Kr.UNEXPECTED_CONTINUE:Kr.BAD_PREFIX,r-1,e,n);continue}s=3,a=65535}if(r-1+s>=e.length){r+=t(Kr.OVERRUN,r-1,e,n);continue}let o=i&(1<<8-s-1)-1;for(let i=0;i<s;i++){let i=e[r];if(128!=(192&i)){r+=t(Kr.MISSING_CONTINUE,r,e,n),o=null;break}o=o<<6|63&i,r++}null!==o&&(o>1114111?r+=t(Kr.OUT_OF_RANGE,r-1-s,e,n,o):o>=55296&&o<=57343?r+=t(Kr.UTF16_SURROGATE,r-1-s,e,n,o):o<=a?r+=t(Kr.OVERLONG,r-1-s,e,n,o):n.push(o))}return n}function Yr(e,t=jr.current){t!=jr.current&&(zr.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const s=65536+((1023&r)<<10)+(1023&i);n.push(s>>18|240),n.push(s>>12&63|128),n.push(s>>6&63|128),n.push(63&s|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return Nn(n)}function Xr(e,t){return Qr(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function Zr(e){return Vr(Yr(e))}const $r="hash/5.8.0";function ei(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)})};return i(e,t),n}function ti(e){return 1&e?~e>>1:e>>1}function ni(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function ri(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=ti(t());return n}function ii(e,t){let n=ni(e(),e),r=e(),i=ni(r,e),s=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<s[e];t++)n.push(i[e]+t);return t?n.map(e=>t[e]):n}function si(e,t,n){let r=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)ri(e,n).forEach((e,t)=>r[t].push(e));return r}function ai(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return ei(si(i.length,1+e,t).map((e,t)=>{const s=e[0],a=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*r;return[s+t*n,a.map(e=>e+i)]})}))}function oi(e,t){return si(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const ui=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,s=[0,1];for(let e=1;e<r;e++)s.push(i+=n());let a=n(),o=t;t+=a;let u=0,l=0;function d(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const c=Math.pow(2,31),p=c>>>1,h=p>>1,f=c-1;let m=0;for(let e=0;e<31;e++)m=m<<1|d();let y=[],g=0,b=c;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<s[r]?n=r:t=r}if(0==t)break;y.push(t);let a=g+Math.floor(b*s[t]/i),o=g+Math.floor(b*s[t+1]/i)-1;for(;0==((a^o)&p);)m=m<<1&f|d(),a=a<<1&f,o=o<<1&f|1;for(;a&~o&h;)m=m&p|m<<1&f>>>1|d(),a=a<<1^p,o=(o^p)<<1|p|1;g=a,b=1+o-a}let v=r-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[o++]<<16|e[o++]<<8|e[o++]);case 2:return v+256+(e[o++]<<8|e[o++]);case 1:return v+e[o++];default:return t-1}})}(Pr("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=="))),li=new Set(ii(ui)),di=new Set(ii(ui)),ci=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(ai(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(oi(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(ei(t))}(ui),pi=function(e){let t=ii(e).sort((e,t)=>e-t);return function n(){let r=[];for(;;){let i=ii(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort((e,t)=>t.set.size-e.set.size);let i=e(),s=i%3;i=i/3|0;let a=!!(1&i);return i>>=1,{branches:r,valid:s,fe0f:a,save:1==i,check:2==i}}()}(ui),hi=45,fi=95;function mi(e){return function(e,t=jr.current){return Qr(Yr(e,t))}(e)}function yi(e){return e.filter(e=>65039!=e)}function gi(e){for(let t of e.split(".")){let e=mi(t);try{for(let t=e.lastIndexOf(fi)-1;t>=0;t--)if(e[t]!==fi)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===hi&&e[3]===hi)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function bi(e,t){var n;let r,i,s=pi,a=[],o=e.length;for(t&&(t.length=0);o;){let u=e[--o];if(s=null===(n=s.branches.find(e=>e.set.has(u)))||void 0===n?void 0:n.node,!s)break;if(s.save)i=u;else if(s.check&&u===i)break;a.push(u),s.fe0f&&(a.push(65039),o>0&&65039==e[o-1]&&o--),s.valid&&(r=a.slice(),2==s.valid&&r.splice(1,1),t&&t.push(...e.slice(o).reverse()),e.length=o)}return r}const vi=new An($r),wi=new Uint8Array(32);function Ai(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Ti(e){const t=Yr(function(e){return gi(function(e,t){let n=mi(e).reverse(),r=[];for(;n.length;){let e=bi(n);if(e){r.push(...t(e));continue}let i=n.pop();if(li.has(i)){r.push(i);continue}if(di.has(i))continue;let s=ci[i];if(!s)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...s)}return gi(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,yi))}(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++)46===t[e]&&(n.push(Ai(t.slice(r,e))),r=e+1);if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(Ai(t.slice(r))),n}function Ei(e){"string"!=typeof e&&vi.throwArgumentError("invalid ENS name; not a string","name",e);let t=wi;const n=Ti(e);for(;n.length;)t=Vr(_n([t,Vr(n.pop())]));return Pn(t)}wi.fill(0);const Ii=new An("rlp/5.8.0");function Si(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function ki(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function Ci(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Ci(e))}),t.length<=55)return t.unshift(192+t.length),t;const n=Si(t.length);return n.unshift(247+n.length),n.concat(t)}Sn(e)||Ii.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Nn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=Si(t.length);return n.unshift(183+n.length),n.concat(t)}function Ni(e){return Pn(Ci(e))}function _i(e,t,n,r){const i=[];for(;n<t+1+r;){const s=xi(e,n);i.push(s.result),(n+=s.consumed)>t+1+r&&Ii.throwError("child data too short",An.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function xi(e,t){if(0===e.length&&Ii.throwError("data too short",An.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&Ii.throwError("data short segment too short",An.errors.BUFFER_OVERRUN,{});const r=ki(e,t+1,n);return t+1+n+r>e.length&&Ii.throwError("data long segment too short",An.errors.BUFFER_OVERRUN,{}),_i(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&Ii.throwError("data array too short",An.errors.BUFFER_OVERRUN,{}),_i(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&Ii.throwError("data array too short",An.errors.BUFFER_OVERRUN,{});const r=ki(e,t+1,n);return t+1+n+r>e.length&&Ii.throwError("data array too short",An.errors.BUFFER_OVERRUN,{}),{consumed:1+n+r,result:Pn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;return t+1+n>e.length&&Ii.throwError("data too short",An.errors.BUFFER_OVERRUN,{}),{consumed:1+n,result:Pn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Pn(e[t])}}function Mi(e){const t=Nn(e),n=xi(t,0);return n.consumed!==t.length&&Ii.throwArgumentError("invalid rlp data","data",e),n.result}const Ri=new An("address/5.8.0");function Pi(e){Mn(e,20)||Ri.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=Nn(Vr(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Oi={};for(let e=0;e<10;e++)Oi[String(e)]=String(e);for(let e=0;e<26;e++)Oi[String.fromCharCode(65+e)]=String(10+e);const Bi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Di(e){let t=null;if("string"!=typeof e&&Ri.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Pi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ri.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>Oi[e]).join("");for(;t.length>=Bi;){let e=t.substring(0,Bi);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}(e)&&Ri.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new Hn(n,36).toString(16);t.length<40;)t="0"+t;t=Pi("0x"+t)}else Ri.throwArgumentError("invalid address","address",e);var n;return t}function Fi(e){let t=null;try{t=Di(e.from)}catch(t){Ri.throwArgumentError("missing from address","transaction",e)}return Di(Bn(Vr(Ni([t,xn(Nn(Wn.from(e.nonce).toHexString()))])),12))}const Li=new An($r),Ui=new Uint8Array(32);Ui.fill(0);const Gi=Wn.from(-1),qi=Wn.from(0),Hi=Wn.from(1),Vi=Wn.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),zi=Ln(Hi.toHexString(),32),ji=Ln(qi.toHexString(),32),Ki={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Wi=["name","version","chainId","verifyingContract","salt"];function Ji(e){return function(t){return"string"!=typeof t&&Li.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Qi={name:Ji("name"),version:Ji("version"),chainId:function(e){try{return Wn.from(e).toString()}catch(e){}return Li.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Di(e).toLowerCase()}catch(e){}return Li.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Nn(e);if(32!==t.length)throw new Error("bad length");return Pn(t)}catch(e){}return Li.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Yi(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&Li.throwArgumentError("invalid numeric width","type",e);const i=Vi.mask(n?r-1:r),s=n?i.add(Hi).mul(Gi):qi;return function(t){const n=Wn.from(t);return(n.lt(s)||n.gt(i))&&Li.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Ln(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&Li.throwArgumentError("invalid bytes width","type",e),function(t){return Nn(t).length!==n&&Li.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Nn(e),n=t.length%32;return n?Dn([t,Ui.slice(n)]):Pn(t)}(t)}}}switch(e){case"address":return function(e){return Ln(Di(e),32)};case"bool":return function(e){return e?zi:ji};case"bytes":return function(e){return Vr(e)};case"string":return function(e){return Zr(e)}}return null}function Xi(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class Zi{constructor(e){hr(this,"types",Object.freeze(Ar(e))),hr(this,"_encoderCache",{}),hr(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach(e=>{t[e]={},n[e]=[],r[e]={}});for(const r in e){const i={};e[r].forEach(s=>{i[s.name]&&Li.throwArgumentError(`duplicate variable name ${JSON.stringify(s.name)} in ${JSON.stringify(r)}`,"types",e),i[s.name]=!0;const a=s.type.match(/^([^\x5b]*)(\x5b|$)/)[1];a===r&&Li.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),Yi(a)||(n[a]||Li.throwArgumentError(`unknown type ${JSON.stringify(a)}`,"types",e),n[a].push(r),t[r][a]=!0)})}const i=Object.keys(n).filter(e=>0===n[e].length);0===i.length?Li.throwArgumentError("missing primary type","types",e):i.length>1&&Li.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),hr(this,"primaryType",i[0]),function i(s,a){a[s]&&Li.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),a[s]=!0,Object.keys(t[s]).forEach(e=>{n[e]&&(i(e,a),Object.keys(a).forEach(t=>{r[t][e]=!0}))}),delete a[s]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=Xi(t,e[t])+n.map(t=>Xi(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=Yi(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&Li.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(Vr)),Vr(Dn(i))}}const n=this.types[e];if(n){const t=Zr(this._types[e]);return e=>{const r=n.map(({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?Vr(r):r});return r.unshift(t),Dn(r)}}return Li.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Li.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Vr(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(Yi(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&Li.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,n))}const i=this.types[e];return i?i.reduce((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e),{}):Li.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Zi(e)}static getPrimaryType(e){return Zi.from(e).primaryType}static hashStruct(e,t,n){return Zi.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=Ki[n];r||Li.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort((e,t)=>Wi.indexOf(e.name)-Wi.indexOf(t.name)),Zi.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Dn(["0x1901",Zi.hashDomain(e),Zi.from(t).hash(n)])}static hash(e,t,n){return Vr(Zi.encode(e,t,n))}static resolveNames(e,t,n,r){return i=this,a=function*(){e=gr(e);const i={};e.verifyingContract&&!Mn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const s=Zi.from(t);s.visit(n,(e,t)=>("address"!==e||Mn(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=s.visit(n,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:n}},new((s=void 0)||(s=Promise))(function(e,t){function n(e){try{o(a.next(e))}catch(e){t(e)}}function r(e){try{o(a.throw(e))}catch(e){t(e)}}function o(t){var i;t.done?e(t.value):(i=t.value,i instanceof s?i:new s(function(e){e(i)})).then(n,r)}o((a=a.apply(i,[])).next())});var i,s,a}static getPayload(e,t,n){Zi.hashDomain(e);const r={},i=[];Wi.forEach(t=>{const n=e[t];null!=n&&(r[t]=Qi[t](n),i.push({name:t,type:Ki[t]}))});const s=Zi.from(t),a=gr(t);return a.EIP712Domain?Li.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):a.EIP712Domain=i,s.encode(n),{types:a,domain:r,primaryType:s.primaryType,message:s.visit(n,(e,t)=>{if(e.match(/^bytes(\d*)/))return Pn(Nn(t));if(e.match(/^u?int/))return Wn.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Li.throwArgumentError("invalid string","value",t),t}return Li.throwArgumentError("unsupported type","type",e)})}}}var $i=es;function es(e,t){if(!e)throw new Error(t||"Assertion failed")}function ts(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function ns(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function rs(e){return 1===e.length?"0"+e:e}function is(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}es.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var ss={inherits:ln(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var s=e.charCodeAt(i);s<128?n[r++]=s:s<2048?(n[r++]=s>>6|192,n[r++]=63&s|128):ts(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},toHex:function(e){for(var t="",n=0;n<e.length;n++)t+=rs(e[n].toString(16));return t},htonl:ns,toHex32:function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=ns(i)),n+=is(i.toString(16))}return n},zero2:rs,zero8:is,join32:function(e,t,n,r){var i=n-t;$i(i%4==0);for(var s=new Array(i/4),a=0,o=t;a<s.length;a++,o+=4)s[a]=("big"===r?e[o]<<24|e[o+1]<<16|e[o+2]<<8|e[o+3]:e[o+3]<<24|e[o+2]<<16|e[o+1]<<8|e[o])>>>0;return s},split32:function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var s=e[r];"big"===t?(n[i]=s>>>24,n[i+1]=s>>>16&255,n[i+2]=s>>>8&255,n[i+3]=255&s):(n[i+3]=s>>>24,n[i+2]=s>>>16&255,n[i+1]=s>>>8&255,n[i]=255&s)}return n},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,n){return e+t+n>>>0},sum32_4:function(e,t,n,r){return e+t+n+r>>>0},sum32_5:function(e,t,n,r,i){return e+t+n+r+i>>>0},sum64:function(e,t,n,r){var i=r+e[t+1]>>>0;e[t]=(i<r?1:0)+n+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},sum64_lo:function(e,t,n,r){return t+r>>>0},sum64_4_hi:function(e,t,n,r,i,s,a,o){var u=0,l=t;return u+=(l=l+r>>>0)<t?1:0,u+=(l=l+s>>>0)<s?1:0,e+n+i+a+(u+=(l=l+o>>>0)<o?1:0)>>>0},sum64_4_lo:function(e,t,n,r,i,s,a,o){return t+r+s+o>>>0},sum64_5_hi:function(e,t,n,r,i,s,a,o,u,l){var d=0,c=t;return d+=(c=c+r>>>0)<t?1:0,d+=(c=c+s>>>0)<s?1:0,d+=(c=c+o>>>0)<o?1:0,e+n+i+a+u+(d+=(c=c+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,n,r,i,s,a,o,u,l){return t+r+s+o+l>>>0},rotr64_hi:function(e,t,n){return(t<<32-n|e>>>n)>>>0},rotr64_lo:function(e,t,n){return(e<<32-n|t>>>n)>>>0},shr64_hi:function(e,t,n){return e>>>n},shr64_lo:function(e,t,n){return(e<<32-n|t>>>n)>>>0}};function as(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var os=as;as.prototype.update=function(e,t){if(e=ss.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=ss.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},as.prototype.digest=function(e){return this.update(this._pad()),$i(null===this.pending),this._digest(e)},as.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var s=8;s<this.padLength;s++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,s=8;s<this.padLength;s++)r[i++]=0;return r};var us={BlockHash:os},ls=ss.rotr32;function ds(e,t,n){return e&t^~e&n}function cs(e,t,n){return e&t^e&n^t&n}var ps=ds,hs=cs,fs=ss.rotl32,ms=ss.sum32,ys=ss.sum32_5,gs=function(e,t,n,r){return 0===e?ds(t,n,r):1===e||3===e?function(e,t,n){return e^t^n}(t,n,r):2===e?cs(t,n,r):void 0},bs=us.BlockHash,vs=[1518500249,1859775393,2400959708,3395469782];function ws(){if(!(this instanceof ws))return new ws;bs.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}ss.inherits(ws,bs);var As=ws;ws.blockSize=512,ws.outSize=160,ws.hmacStrength=80,ws.padLength=64,ws.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=fs(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],s=this.h[1],a=this.h[2],o=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var l=~~(r/20),d=ys(fs(i,5),gs(l,s,a,o),u,n[r],vs[l]);u=o,o=a,a=fs(s,30),s=i,i=d}this.h[0]=ms(this.h[0],i),this.h[1]=ms(this.h[1],s),this.h[2]=ms(this.h[2],a),this.h[3]=ms(this.h[3],o),this.h[4]=ms(this.h[4],u)},ws.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"big"):ss.split32(this.h,"big")};var Ts=ss.sum32,Es=ss.sum32_4,Is=ss.sum32_5,Ss=ps,ks=hs,Cs=function(e){return ls(e,2)^ls(e,13)^ls(e,22)},Ns=function(e){return ls(e,6)^ls(e,11)^ls(e,25)},_s=function(e){return ls(e,7)^ls(e,18)^e>>>3},xs=function(e){return ls(e,17)^ls(e,19)^e>>>10},Ms=us.BlockHash,Rs=[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];function Ps(){if(!(this instanceof Ps))return new Ps;Ms.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Rs,this.W=new Array(64)}ss.inherits(Ps,Ms);var Os=Ps;function Bs(){if(!(this instanceof Bs))return new Bs;Os.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Ps.blockSize=512,Ps.outSize=256,Ps.hmacStrength=192,Ps.padLength=64,Ps.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=Es(xs(n[r-2]),n[r-7],_s(n[r-15]),n[r-16]);var i=this.h[0],s=this.h[1],a=this.h[2],o=this.h[3],u=this.h[4],l=this.h[5],d=this.h[6],c=this.h[7];for($i(this.k.length===n.length),r=0;r<n.length;r++){var p=Is(c,Ns(u),Ss(u,l,d),this.k[r],n[r]),h=Ts(Cs(i),ks(i,s,a));c=d,d=l,l=u,u=Ts(o,p),o=a,a=s,s=i,i=Ts(p,h)}this.h[0]=Ts(this.h[0],i),this.h[1]=Ts(this.h[1],s),this.h[2]=Ts(this.h[2],a),this.h[3]=Ts(this.h[3],o),this.h[4]=Ts(this.h[4],u),this.h[5]=Ts(this.h[5],l),this.h[6]=Ts(this.h[6],d),this.h[7]=Ts(this.h[7],c)},Ps.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"big"):ss.split32(this.h,"big")},ss.inherits(Bs,Os);var Ds=Bs;Bs.blockSize=512,Bs.outSize=224,Bs.hmacStrength=192,Bs.padLength=64,Bs.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h.slice(0,7),"big"):ss.split32(this.h.slice(0,7),"big")};var Fs=ss.rotr64_hi,Ls=ss.rotr64_lo,Us=ss.shr64_hi,Gs=ss.shr64_lo,qs=ss.sum64,Hs=ss.sum64_hi,Vs=ss.sum64_lo,zs=ss.sum64_4_hi,js=ss.sum64_4_lo,Ks=ss.sum64_5_hi,Ws=ss.sum64_5_lo,Js=us.BlockHash,Qs=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Ys(){if(!(this instanceof Ys))return new Ys;Js.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Qs,this.W=new Array(160)}ss.inherits(Ys,Js);var Xs=Ys;function Zs(e,t,n,r,i){var s=e&n^~e&i;return s<0&&(s+=4294967296),s}function $s(e,t,n,r,i,s){var a=t&r^~t&s;return a<0&&(a+=4294967296),a}function ea(e,t,n,r,i){var s=e&n^e&i^n&i;return s<0&&(s+=4294967296),s}function ta(e,t,n,r,i,s){var a=t&r^t&s^r&s;return a<0&&(a+=4294967296),a}function na(e,t){var n=Fs(e,t,28)^Fs(t,e,2)^Fs(t,e,7);return n<0&&(n+=4294967296),n}function ra(e,t){var n=Ls(e,t,28)^Ls(t,e,2)^Ls(t,e,7);return n<0&&(n+=4294967296),n}function ia(e,t){var n=Fs(e,t,14)^Fs(e,t,18)^Fs(t,e,9);return n<0&&(n+=4294967296),n}function sa(e,t){var n=Ls(e,t,14)^Ls(e,t,18)^Ls(t,e,9);return n<0&&(n+=4294967296),n}function aa(e,t){var n=Fs(e,t,1)^Fs(e,t,8)^Us(e,t,7);return n<0&&(n+=4294967296),n}function oa(e,t){var n=Ls(e,t,1)^Ls(e,t,8)^Gs(e,t,7);return n<0&&(n+=4294967296),n}function ua(e,t){var n=Fs(e,t,19)^Fs(t,e,29)^Us(e,t,6);return n<0&&(n+=4294967296),n}function la(e,t){var n=Ls(e,t,19)^Ls(t,e,29)^Gs(e,t,6);return n<0&&(n+=4294967296),n}function da(){if(!(this instanceof da))return new da;Xs.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Ys.blockSize=1024,Ys.outSize=512,Ys.hmacStrength=192,Ys.padLength=128,Ys.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=ua(n[r-4],n[r-3]),s=la(n[r-4],n[r-3]),a=n[r-14],o=n[r-13],u=aa(n[r-30],n[r-29]),l=oa(n[r-30],n[r-29]),d=n[r-32],c=n[r-31];n[r]=zs(i,s,a,o,u,l,d,c),n[r+1]=js(i,s,a,o,u,l,d,c)}},Ys.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],s=this.h[2],a=this.h[3],o=this.h[4],u=this.h[5],l=this.h[6],d=this.h[7],c=this.h[8],p=this.h[9],h=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];$i(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var w=g,A=b,T=ia(c,p),E=sa(c,p),I=Zs(c,0,h,0,m),S=$s(0,p,0,f,0,y),k=this.k[v],C=this.k[v+1],N=n[v],_=n[v+1],x=Ks(w,A,T,E,I,S,k,C,N,_),M=Ws(w,A,T,E,I,S,k,C,N,_);w=na(r,i),A=ra(r,i),T=ea(r,0,s,0,o),E=ta(0,i,0,a,0,u);var R=Hs(w,A,T,E),P=Vs(w,A,T,E);g=m,b=y,m=h,y=f,h=c,f=p,c=Hs(l,d,x,M),p=Vs(d,d,x,M),l=o,d=u,o=s,u=a,s=r,a=i,r=Hs(x,M,R,P),i=Vs(x,M,R,P)}qs(this.h,0,r,i),qs(this.h,2,s,a),qs(this.h,4,o,u),qs(this.h,6,l,d),qs(this.h,8,c,p),qs(this.h,10,h,f),qs(this.h,12,m,y),qs(this.h,14,g,b)},Ys.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"big"):ss.split32(this.h,"big")},ss.inherits(da,Xs);var ca=da;da.blockSize=1024,da.outSize=384,da.hmacStrength=192,da.padLength=128,da.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h.slice(0,12),"big"):ss.split32(this.h.slice(0,12),"big")};var pa={sha1:As,sha224:Ds,sha256:Os,sha384:ca,sha512:Xs},ha=ss.rotl32,fa=ss.sum32,ma=ss.sum32_3,ya=ss.sum32_4,ga=us.BlockHash;function ba(){if(!(this instanceof ba))return new ba;ga.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}ss.inherits(ba,ga);var va=ba;function wa(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function Aa(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Ta(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ba.blockSize=512,ba.outSize=160,ba.hmacStrength=192,ba.padLength=64,ba.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],s=this.h[3],a=this.h[4],o=n,u=r,l=i,d=s,c=a,p=0;p<80;p++){var h=fa(ha(ya(n,wa(p,r,i,s),e[Ea[p]+t],Aa(p)),Sa[p]),a);n=a,a=s,s=ha(i,10),i=r,r=h,h=fa(ha(ya(o,wa(79-p,u,l,d),e[Ia[p]+t],Ta(p)),ka[p]),c),o=c,c=d,d=ha(l,10),l=u,u=h}h=ma(this.h[1],i,d),this.h[1]=ma(this.h[2],s,c),this.h[2]=ma(this.h[3],a,o),this.h[3]=ma(this.h[4],n,u),this.h[4]=ma(this.h[0],r,l),this.h[0]=h},ba.prototype._digest=function(e){return"hex"===e?ss.toHex32(this.h,"little"):ss.split32(this.h,"little")};var Ea=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Ia=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Sa=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],ka=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Ca={ripemd160:va};function Na(e,t,n){if(!(this instanceof Na))return new Na(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(ss.toArray(t,n))}var _a=Na;Na.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),$i(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Na.prototype.update=function(e,t){return this.inner.update(e,t),this},Na.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var xa,Ma=ln(function(e,t){var n=t;n.utils=ss,n.common=us,n.sha=pa,n.ripemd=Ca,n.hmac=_a,n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160}),Ra=Ma;!function(e){e.sha256="sha256",e.sha512="sha512"}(xa||(xa={}));const Pa=new An("sha2/5.8.0");function Oa(e){return"0x"+Ra.sha256().update(Nn(e)).digest("hex")}function Ba(e,t,n){return xa[e]||Pa.throwError("unsupported algorithm "+e,An.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Ra.hmac(Ra[e],Nn(t)).update(Nn(n)).digest("hex")}var Da=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};function Fa(e,t){return Da(this,void 0,void 0,function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),s={};return r.headers.forEach?r.headers.forEach((e,t)=>{s[t.toLowerCase()]=e}):r.headers.keys().forEach(e=>{s[e.toLowerCase()]=r.headers.get(e)}),{headers:s,statusCode:r.status,statusMessage:r.statusText,body:Nn(new Uint8Array(i))}})}var La=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Ua=new An("web/5.8.0");function Ga(e){return new Promise(t=>{setTimeout(t,e)})}function qa(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Sn(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Xr(e)}catch(e){}return Pn(e)}return e}function Ha(e,t,n){let r=null;if(null!=t){r=Yr(t);const n="string"==typeof e?{url:e}:gr(e);n.headers?0!==Object.keys(n.headers).filter(e=>"content-type"===e.toLowerCase()).length||(n.headers=gr(n.headers),n.headers["content-type"]="application/json"):n.headers={"content-type":"application/json"},e=n}return function(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Ua.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,s="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Ua.assertArgument(s>0&&s%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",s);const a="object"==typeof e&&!!e.errorPassThrough,o={};let u=null;const l={method:"GET"};let d=!1,c=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Ua.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(c=e.timeout),e.headers)for(const t in e.headers)o[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(d=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Ua.throwError("basic authentication requires a secure https url",An.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),o.authorization={key:"Authorization",value:"Basic "+Or(Yr(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=gr(e.fetchOptions))}const p=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),h=u?u.match(p):null;if(h)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":h[1]||"text/plain"},body:h[2]?Pr(h[3]):(f=h[3],Yr(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){Ua.throwError("processing response error",An.errors.SERVER_ERROR,{body:qa(h[1],h[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==o["content-type"]&&(o["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==o["content-length"]&&(o["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(o).forEach(e=>{const t=o[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,n){c&&(e=setTimeout(()=>{null!=e&&(e=null,n(Ua.makeError("timeout",An.errors.TIMEOUT,{requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,timeout:c,url:u})))},c))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return La(this,void 0,void 0,function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield Fa(u,l),e<r)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):s*parseInt(String(Math.random()*Math.pow(2,e))),yield Ga(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Ua.throwError("missing response",An.errors.SERVER_ERROR,{requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let o=t.body;if(d&&304===t.statusCode?o=null:!a&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Ua.throwError("bad response",An.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:qa(o,t.headers?t.headers["content-type"]:null),requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,url:u})),n)try{const e=yield n(o,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=s*parseInt(String(Math.random()*Math.pow(2,e)));yield Ga(t);continue}}y.cancel(),Ua.throwError("processing response error",An.errors.SERVER_ERROR,{body:qa(o,t.headers?t.headers["content-type"]:null),error:n,requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),o}return Ua.throwError("failed response",An.errors.SERVER_ERROR,{requestBody:qa(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,r,(e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(Xr(e))}catch(t){Ua.throwError("invalid JSON",An.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r})}function Va(e,t){return t||(t={}),null==(t=gr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(n,r){let i=null,s=!1;const a=()=>!s&&(s=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{a()&&r(new Error("timeout"))},t.timeout));const o=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)a()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!s){if(u++,u>o)return void(a()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){a()&&r(e)})}()})}for(var za="qpzry9x8gf2tvdw0s3jn54khce6mua7l",ja={},Ka=0;Ka<za.length;Ka++){var Wa=za.charAt(Ka);if(void 0!==ja[Wa])throw new TypeError(Wa+" is ambiguous");ja[Wa]=Ka}function Ja(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const Qa="providers/5.8.0";function Ya(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},n.exports),n.exports}var Xa=Za;function Za(e,t){if(!e)throw new Error(t||"Assertion failed")}Za.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var $a=Ya(function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16));else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),s=i>>8,a=255&i;s?n.push(s,a):n.push(a)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}}),eo=Ya(function(e,t){var n=t;n.assert=Xa,n.toArray=$a.toArray,n.zero2=$a.zero2,n.toHex=$a.toHex,n.encode=$a.encode,n.getNAF=function(e,t,n){var r,i=new Array(Math.max(e.bitLength(),n)+1);for(r=0;r<i.length;r+=1)i[r]=0;var s=1<<t+1,a=e.clone();for(r=0;r<i.length;r++){var o,u=a.andln(s-1);a.isOdd()?a.isubn(o=u>(s>>1)-1?(s>>1)-u:u):o=0,i[r]=o,a.iushrn(1)}return i},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,s=0;e.cmpn(-i)>0||t.cmpn(-s)>0;){var a,o,u=e.andln(3)+i&3,l=t.andln(3)+s&3;3===u&&(u=-1),3===l&&(l=-1),a=0==(1&u)?0:3!=(r=e.andln(7)+i&7)&&5!==r||2!==l?u:-u,n[0].push(a),o=0==(1&l)?0:3!=(r=t.andln(7)+s&7)&&5!==r||2!==u?l:-l,n[1].push(o),2*i===a+1&&(i=1-i),2*s===o+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new cn(e,"hex","le")}}),to=eo.getNAF,no=eo.getJSF,ro=eo.assert;function io(e,t){this.type=e,this.p=new cn(t.p,16),this.red=t.prime?cn.red(t.prime):cn.mont(this.p),this.zero=new cn(0).toRed(this.red),this.one=new cn(1).toRed(this.red),this.two=new cn(2).toRed(this.red),this.n=t.n&&new cn(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var so=io;function ao(e,t){this.curve=e,this.type=t,this.precomputed=null}io.prototype.point=function(){throw new Error("Not implemented")},io.prototype.validate=function(){throw new Error("Not implemented")},io.prototype._fixedNafMul=function(e,t){ro(e.precomputed);var n=e._getDoubles(),r=to(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var s,a,o=[];for(s=0;s<r.length;s+=n.step){a=0;for(var u=s+n.step-1;u>=s;u--)a=(a<<1)+r[u];o.push(a)}for(var l=this.jpoint(null,null,null),d=this.jpoint(null,null,null),c=i;c>0;c--){for(s=0;s<o.length;s++)(a=o[s])===c?d=d.mixedAdd(n.points[s]):a===-c&&(d=d.mixedAdd(n.points[s].neg()));l=l.add(d)}return l.toP()},io.prototype._wnafMul=function(e,t){for(var n=4,r=e._getNAFPoints(n),i=r.points,s=to(t,n=r.wnd,this._bitLength),a=this.jpoint(null,null,null),o=s.length-1;o>=0;o--){for(var u=0;o>=0&&0===s[o];o--)u++;if(o>=0&&u++,a=a.dblp(u),o<0)break;var l=s[o];ro(0!==l),a="affine"===e.type?a.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):a.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?a.toP():a},io.prototype._wnafMulAdd=function(e,t,n,r,i){var s,a,o,u=this._wnafT1,l=this._wnafT2,d=this._wnafT3,c=0;for(s=0;s<r;s++){var p=(o=t[s])._getNAFPoints(e);u[s]=p.wnd,l[s]=p.points}for(s=r-1;s>=1;s-=2){var h=s-1,f=s;if(1===u[h]&&1===u[f]){var m=[t[h],null,null,t[f]];0===t[h].y.cmp(t[f].y)?(m[1]=t[h].add(t[f]),m[2]=t[h].toJ().mixedAdd(t[f].neg())):0===t[h].y.cmp(t[f].y.redNeg())?(m[1]=t[h].toJ().mixedAdd(t[f]),m[2]=t[h].add(t[f].neg())):(m[1]=t[h].toJ().mixedAdd(t[f]),m[2]=t[h].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=no(n[h],n[f]);for(c=Math.max(g[0].length,c),d[h]=new Array(c),d[f]=new Array(c),a=0;a<c;a++)d[h][a]=y[3*(1+(0|g[0][a]))+(1+(0|g[1][a]))],d[f][a]=0,l[h]=m}else d[h]=to(n[h],u[h],this._bitLength),d[f]=to(n[f],u[f],this._bitLength),c=Math.max(d[h].length,c),c=Math.max(d[f].length,c)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(s=c;s>=0;s--){for(var w=0;s>=0;){var A=!0;for(a=0;a<r;a++)v[a]=0|d[a][s],0!==v[a]&&(A=!1);if(!A)break;w++,s--}if(s>=0&&w++,b=b.dblp(w),s<0)break;for(a=0;a<r;a++){var T=v[a];0!==T&&(T>0?o=l[a][T-1>>1]:T<0&&(o=l[a][-T-1>>1].neg()),b="affine"===o.type?b.mixedAdd(o):b.add(o))}}for(s=0;s<r;s++)l[s]=null;return i?b:b.toP()},io.BasePoint=ao,ao.prototype.eq=function(){throw new Error("Not implemented")},ao.prototype.validate=function(){return this.curve.validate(this)},io.prototype.decodePoint=function(e,t){e=eo.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?ro(e[e.length-1]%2==0):7===e[0]&&ro(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},ao.prototype.encodeCompressed=function(e){return this.encode(e,!0)},ao.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},ao.prototype.encode=function(e,t){return eo.encode(this._encode(t),e)},ao.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},ao.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},ao.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var s=0;s<e;s++)r=r.dbl();n.push(r)}return{step:e,points:n}},ao.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},ao.prototype._getBeta=function(){return null},ao.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var oo=Ya(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}}),uo=eo.assert;function lo(e){so.call(this,"short",e),this.a=new cn(e.a,16).toRed(this.red),this.b=new cn(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}oo(lo,so);var co=lo;function po(e,t,n,r){so.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new cn(t,16),this.y=new cn(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function ho(e,t,n,r){so.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new cn(0)):(this.x=new cn(t,16),this.y=new cn(n,16),this.z=new cn(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}lo.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new cn(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new cn(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:uo(0===this.g.mul(n=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:n,basis:e.basis?e.basis.map(function(e){return{a:new cn(e.a,16),b:new cn(e.b,16)}}):this._getEndoBasis(n)}}},lo.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:cn.mont(e),n=new cn(2).toRed(t).redInvm(),r=n.redNeg(),i=new cn(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},lo.prototype._getEndoBasis=function(e){for(var t,n,r,i,s,a,o,u,l,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=e,p=this.n.clone(),h=new cn(1),f=new cn(0),m=new cn(0),y=new cn(1),g=0;0!==c.cmpn(0);){var b=p.div(c);u=p.sub(b.mul(c)),l=m.sub(b.mul(h));var v=y.sub(b.mul(f));if(!r&&u.cmp(d)<0)t=o.neg(),n=h,r=u.neg(),i=l;else if(r&&2==++g)break;o=u,p=c,c=u,m=h,h=l,y=f,f=v}s=u.neg(),a=l;var w=r.sqr().add(i.sqr());return s.sqr().add(a.sqr()).cmp(w)>=0&&(s=t,a=n),r.negative&&(r=r.neg(),i=i.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:i},{a:s,b:a}]},lo.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),s=n.b.neg().mul(e).divRound(this.n),a=i.mul(n.a),o=s.mul(r.a),u=i.mul(n.b),l=s.mul(r.b);return{k1:e.sub(a).sub(o),k2:u.add(l).neg()}},lo.prototype.pointFromX=function(e,t){(e=new cn(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},lo.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},lo.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,s=0;s<e.length;s++){var a=this._endoSplit(t[s]),o=e[s],u=o._getBeta();a.k1.negative&&(a.k1.ineg(),o=o.neg(!0)),a.k2.negative&&(a.k2.ineg(),u=u.neg(!0)),r[2*s]=o,r[2*s+1]=u,i[2*s]=a.k1,i[2*s+1]=a.k2}for(var l=this._wnafMulAdd(1,r,i,2*s,n),d=0;d<2*s;d++)r[d]=null,i[d]=null;return l},oo(po,so.BasePoint),lo.prototype.point=function(e,t,n){return new po(this,e,t,n)},lo.prototype.pointFromJSON=function(e,t){return po.fromJSON(this,e,t)},po.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},po.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},po.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var s=t[2];return r.precomputed={beta:null,doubles:s.doubles&&{step:s.doubles.step,points:[r].concat(s.doubles.points.map(i))},naf:s.naf&&{wnd:s.naf.wnd,points:[r].concat(s.naf.points.map(i))}},r},po.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},po.prototype.isInfinity=function(){return this.inf},po.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},po.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),s=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,a)},po.prototype.getX=function(){return this.x.fromRed()},po.prototype.getY=function(){return this.y.fromRed()},po.prototype.mul=function(e){return e=new cn(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},po.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},po.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},po.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},po.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},po.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},oo(ho,so.BasePoint),lo.prototype.jpoint=function(e,t,n){return new ho(this,e,t,n)},ho.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},ho.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},ho.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),s=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(n.redMul(this.z)),o=r.redSub(i),u=s.redSub(a);if(0===o.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=o.redSqr(),d=l.redMul(o),c=r.redMul(l),p=u.redSqr().redIAdd(d).redISub(c).redISub(c),h=u.redMul(c.redISub(p)).redISub(s.redMul(d)),f=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(p,h,f)},ho.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,s=e.y.redMul(t).redMul(this.z),a=n.redSub(r),o=i.redSub(s);if(0===a.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),l=u.redMul(a),d=n.redMul(u),c=o.redSqr().redIAdd(l).redISub(d).redISub(d),p=o.redMul(d.redISub(c)).redISub(i.redMul(l)),h=this.z.redMul(a);return this.curve.jpoint(c,p,h)},ho.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,s=this.x,a=this.y,o=this.z,u=o.redSqr().redSqr(),l=a.redAdd(a);for(t=0;t<e;t++){var d=s.redSqr(),c=l.redSqr(),p=c.redSqr(),h=d.redAdd(d).redIAdd(d).redIAdd(r.redMul(u)),f=s.redMul(c),m=h.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=h.redMul(y);g=g.redIAdd(g).redISub(p);var b=l.redMul(o);t+1<e&&(u=u.redMul(p)),s=m,o=b,l=g}return this.curve.jpoint(s,l.redMul(i),o)},ho.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},ho.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(r).redISub(s);a=a.redIAdd(a);var o=r.redAdd(r).redIAdd(r),u=o.redSqr().redISub(a).redISub(a),l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=o.redMul(a.redISub(u)).redISub(l),n=this.y.redAdd(this.y)}else{var d=this.x.redSqr(),c=this.y.redSqr(),p=c.redSqr(),h=this.x.redAdd(c).redSqr().redISub(d).redISub(p);h=h.redIAdd(h);var f=d.redAdd(d).redIAdd(d),m=f.redSqr(),y=p.redIAdd(p);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(h).redISub(h),t=f.redMul(h.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},ho.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(r).redISub(s);a=a.redIAdd(a);var o=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=o.redSqr().redISub(a).redISub(a);e=u;var l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),t=o.redMul(a.redISub(u)).redISub(l),n=this.y.redAdd(this.y)}else{var d=this.z.redSqr(),c=this.y.redSqr(),p=this.x.redMul(c),h=this.x.redSub(d).redMul(this.x.redAdd(d));h=h.redAdd(h).redIAdd(h);var f=p.redIAdd(p),m=(f=f.redIAdd(f)).redAdd(f);e=h.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(c).redISub(d);var y=c.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=h.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},ho.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),s=t.redSqr(),a=n.redSqr(),o=s.redAdd(s).redIAdd(s).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(a),d=o.redSqr().redISub(l.redAdd(l)),c=l.redISub(d),p=a.redSqr();p=(p=(p=p.redIAdd(p)).redIAdd(p)).redIAdd(p);var h=o.redMul(c).redISub(p),f=n.redAdd(n).redMul(r);return this.curve.jpoint(d,h,f)},ho.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),s=i.redSqr(),a=this.x.redAdd(t).redSqr().redISub(e).redISub(r),o=(a=(a=(a=a.redIAdd(a)).redAdd(a).redIAdd(a)).redISub(s)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(a).redSqr().redISub(s).redISub(o).redISub(u),d=t.redMul(l);d=(d=d.redIAdd(d)).redIAdd(d);var c=this.x.redMul(o).redISub(d);c=(c=c.redIAdd(c)).redIAdd(c);var p=this.y.redMul(l.redMul(u.redISub(l)).redISub(a.redMul(o)));p=(p=(p=p.redIAdd(p)).redIAdd(p)).redIAdd(p);var h=this.z.redAdd(a).redSqr().redISub(n).redISub(o);return this.curve.jpoint(c,p,h)},ho.prototype.mul=function(e,t){return e=new cn(e,t),this.curve._wnafMul(this,e)},ho.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},ho.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},ho.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},ho.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var fo=Ya(function(e,t){var n=t;n.base=so,n.short=co,n.mont=null,n.edwards=null}),mo=Ya(function(e,t){var n,r=t,i=eo.assert;function s(e){this.curve="short"===e.type?new fo.short(e):"edwards"===e.type?new fo.edwards(e):new fo.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function a(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new s(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=s,a("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Ra.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),a("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Ra.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),a("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Ra.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),a("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Ra.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),a("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Ra.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),a("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ra.sha256,gRed:!1,g:["9"]}),a("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ra.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}a("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Ra.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})});function yo(e){if(!(this instanceof yo))return new yo(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=$a.toArray(e.entropy,e.entropyEnc||"hex"),n=$a.toArray(e.nonce,e.nonceEnc||"hex"),r=$a.toArray(e.pers,e.persEnc||"hex");Xa(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var go=yo;yo.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},yo.prototype._hmac=function(){return new Ra.hmac(this.hash,this.K)},yo.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},yo.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=$a.toArray(e,t),n=$a.toArray(n,r),Xa(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},yo.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=$a.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var s=i.slice(0,e);return this._update(n),this._reseed++,$a.encode(s,t)};var bo=eo.assert;function vo(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var wo=vo;vo.fromPublic=function(e,t,n){return t instanceof vo?t:new vo(e,{pub:t,pubEnc:n})},vo.fromPrivate=function(e,t,n){return t instanceof vo?t:new vo(e,{priv:t,privEnc:n})},vo.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},vo.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},vo.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},vo.prototype._importPrivate=function(e,t){this.priv=new cn(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},vo.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?bo(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||bo(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},vo.prototype.derive=function(e){return e.validate()||bo(e.validate(),"public point not validated"),e.mul(this.priv).getX()},vo.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},vo.prototype.verify=function(e,t,n){return this.ec.verify(e,t,this,void 0,n)},vo.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ao=eo.assert;function To(e,t){if(e instanceof To)return e;this._importDER(e,t)||(Ao(e.r&&e.s,"Signature without r or s"),this.r=new cn(e.r,16),this.s=new cn(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var Eo=To;function Io(){this.place=0}function So(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;if(0===e[t.place])return!1;for(var i=0,s=0,a=t.place;s<r;s++,a++)i<<=8,i|=e[a],i>>>=0;return!(i<=127)&&(t.place=a,i)}function ko(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function Co(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}To.prototype._importDER=function(e,t){e=eo.toArray(e,t);var n=new Io;if(48!==e[n.place++])return!1;var r=So(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=So(e,n);if(!1===i)return!1;if(0!=(128&e[n.place]))return!1;var s=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var a=So(e,n);if(!1===a)return!1;if(e.length!==a+n.place)return!1;if(0!=(128&e[n.place]))return!1;var o=e.slice(n.place,a+n.place);if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}return this.r=new cn(s),this.s=new cn(o),this.recoveryParam=null,!0},To.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=ko(t),n=ko(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Co(r,t.length),(r=r.concat(t)).push(2),Co(r,n.length);var i=r.concat(n),s=[48];return Co(s,i.length),s=s.concat(i),eo.encode(s,e)};var No=function(){throw new Error("unsupported")},_o=eo.assert;function xo(e){if(!(this instanceof xo))return new xo(e);"string"==typeof e&&(_o(Object.prototype.hasOwnProperty.call(mo,e),"Unknown curve "+e),e=mo[e]),e instanceof mo.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Mo=xo;xo.prototype.keyPair=function(e){return new wo(this,e)},xo.prototype.keyFromPrivate=function(e,t){return wo.fromPrivate(this,e,t)},xo.prototype.keyFromPublic=function(e,t){return wo.fromPublic(this,e,t)},xo.prototype.genKeyPair=function(e){e||(e={});for(var t=new go({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||No(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new cn(2));;){var i=new cn(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},xo.prototype._truncateToN=function(e,t,n){var r;if(cn.isBN(e)||"number"==typeof e)r=(e=new cn(e,16)).byteLength();else if("object"==typeof e)r=e.length,e=new cn(e,16);else{var i=e.toString();r=i.length+1>>>1,e=new cn(i,16)}"number"!=typeof n&&(n=8*r);var s=n-this.n.bitLength();return s>0&&(e=e.ushrn(s)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},xo.prototype.sign=function(e,t,n,r){if("object"==typeof n&&(r=n,n=null),r||(r={}),"string"!=typeof e&&"number"!=typeof e&&!cn.isBN(e)){_o("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),_o(e.length>>>0===e.length);for(var i=0;i<e.length;i++)_o((255&e[i])===e[i])}t=this.keyFromPrivate(t,n),e=this._truncateToN(e,!1,r.msgBitLength),_o(!e.isNeg(),"Can not sign a negative message");var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),o=e.toArray("be",s);_o(new cn(o).eq(e),"Can not sign message");for(var u=new go({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),l=this.n.sub(new cn(1)),d=0;;d++){var c=r.k?r.k(d):new cn(u.generate(this.n.byteLength()));if(!((c=this._truncateToN(c,!0)).cmpn(1)<=0||c.cmp(l)>=0)){var p=this.g.mul(c);if(!p.isInfinity()){var h=p.getX(),f=h.umod(this.n);if(0!==f.cmpn(0)){var m=c.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==h.cmp(f)?2:0);return r.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new Eo({r:f,s:m,recoveryParam:y})}}}}}},xo.prototype.verify=function(e,t,n,r,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),n=this.keyFromPublic(n,r);var s=(t=new Eo(t,"hex")).r,a=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,u=a.invm(this.n),l=u.mul(e).umod(this.n),d=u.mul(s).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(l,n.getPublic(),d)).isInfinity()&&o.eqXToP(s):!(o=this.g.mulAdd(l,n.getPublic(),d)).isInfinity()&&0===o.getX().umod(this.n).cmp(s)},xo.prototype.recoverPubKey=function(e,t,n,r){_o((3&n)===n,"The recovery param is more than two bits"),t=new Eo(t,r);var i=this.n,s=new cn(e),a=t.r,o=t.s,u=1&n,l=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");a=this.curve.pointFromX(l?a.add(this.curve.n):a,u);var d=t.r.invm(i),c=i.sub(s).mul(d).umod(i),p=o.mul(d).umod(i);return this.g.mulAdd(c,a,p)},xo.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new Eo(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var s;try{s=this.recoverPubKey(e,t,i)}catch(e){continue}if(s.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var Ro=Ya(function(e,t){var n=t;n.version="6.6.1",n.utils=eo,n.rand=function(){throw new Error("unsupported")},n.curve=fo,n.curves=mo,n.ec=Mo,n.eddsa=null}).ec;const Po=new An("signing-key/5.8.0");let Oo=null;function Bo(){return Oo||(Oo=new Ro("secp256k1")),Oo}class Do{constructor(e){hr(this,"curve","secp256k1"),hr(this,"privateKey",Pn(e)),32!==On(this.privateKey)&&Po.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Bo().keyFromPrivate(Nn(this.privateKey));hr(this,"publicKey","0x"+t.getPublic(!1,"hex")),hr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),hr(this,"_isSigningKey",!0)}_addPoint(e){const t=Bo().keyFromPublic(Nn(this.publicKey)),n=Bo().keyFromPublic(Nn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Bo().keyFromPrivate(Nn(this.privateKey)),n=Nn(e);32!==n.length&&Po.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Un({recoveryParam:r.recoveryParam,r:Ln("0x"+r.r.toString(16),32),s:Ln("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Bo().keyFromPrivate(Nn(this.privateKey)),n=Bo().keyFromPublic(Nn(Fo(e)));return Ln("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Fo(e,t){const n=Nn(e);if(32===n.length){const e=new Do(n);return t?"0x"+Bo().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Pn(n):"0x"+Bo().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Bo().keyFromPublic(n).getPublic(!0,"hex"):Pn(n):Po.throwArgumentError("invalid public or private key","key","[REDACTED]")}const Lo=new An("transactions/5.8.0");var Uo;function Go(e){return"0x"===e?null:Di(e)}function qo(e){return"0x"===e?Lr:Wn.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Uo||(Uo={}));const Ho=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Vo={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function zo(e){return Di(Bn(Vr(Bn(Fo(e),1)),12))}function jo(e,t){return zo(function(e,t){const n=Un(t),r={r:Nn(n.r),s:Nn(n.s)};return"0x"+Bo().recoverPubKey(Nn(e),r,n.recoveryParam).encode("hex",!1)}(Nn(e),t))}function Ko(e,t){const n=xn(Wn.from(e).toHexString());return n.length>32&&Lo.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function Wo(e,t){return{address:Di(e),storageKeys:(t||[]).map((t,n)=>(32!==On(t)&&Lo.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase()))}}function Jo(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&Lo.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Wo(e[0],e[1])):Wo(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const n=e[t].reduce((e,t)=>(e[t]=!0,e),{});return Wo(t,Object.keys(n).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function Qo(e){return Jo(e).map(e=>[e.address,e.storageKeys])}function Yo(e,t){if(null!=e.gasPrice){const t=Wn.from(e.gasPrice),n=Wn.from(e.maxFeePerGas||0);t.eq(n)||Lo.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[Ko(e.chainId||0,"chainId"),Ko(e.nonce||0,"nonce"),Ko(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Ko(e.maxFeePerGas||0,"maxFeePerGas"),Ko(e.gasLimit||0,"gasLimit"),null!=e.to?Di(e.to):"0x",Ko(e.value||0,"value"),e.data||"0x",Qo(e.accessList||[])];if(t){const e=Un(t);n.push(Ko(e.recoveryParam,"recoveryParam")),n.push(xn(e.r)),n.push(xn(e.s))}return Dn(["0x02",Ni(n)])}function Xo(e,t){const n=[Ko(e.chainId||0,"chainId"),Ko(e.nonce||0,"nonce"),Ko(e.gasPrice||0,"gasPrice"),Ko(e.gasLimit||0,"gasLimit"),null!=e.to?Di(e.to):"0x",Ko(e.value||0,"value"),e.data||"0x",Qo(e.accessList||[])];if(t){const e=Un(t);n.push(Ko(e.recoveryParam,"recoveryParam")),n.push(xn(e.r)),n.push(xn(e.s))}return Dn(["0x01",Ni(n)])}function Zo(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Lo.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){yr(e,Vo);const n=[];Ho.forEach(function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=Nn(Pn(r,i)),t.length&&r.length!==t.length&&r.length>0&&Lo.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=xn(r),r.length>t.maxLength&&Lo.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Pn(r))});let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&Lo.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Sn(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Pn(r)),n.push("0x"),n.push("0x")),!t)return Ni(n);const i=Un(t);let s=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),s+=2*r+8,i.v>28&&i.v!==s&&Lo.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==s&&Lo.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Pn(s)),n.push(xn(Nn(i.r))),n.push(xn(Nn(i.s))),Ni(n)}(e,t);switch(e.type){case 1:return Xo(e,t);case 2:return Yo(e,t)}return Lo.throwError(`unsupported transaction type: ${e.type}`,An.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function $o(e,t,n){try{const n=qo(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){Lo.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Ln(t[1],32),e.s=Ln(t[2],32);try{const t=Vr(n(e));e.from=jo(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const eu=new An(Qa);class tu{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),s=this.hash.bind(this),a=this.hex.bind(this),o=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:s,type:u,accessList:tu.allowNull(this.accessList.bind(this),null),blockHash:tu.allowNull(s,null),blockNumber:tu.allowNull(o,null),transactionIndex:tu.allowNull(o,null),confirmations:tu.allowNull(o,null),from:t,gasPrice:tu.allowNull(n),maxPriorityFeePerGas:tu.allowNull(n),maxFeePerGas:tu.allowNull(n),gasLimit:n,to:tu.allowNull(t,null),value:n,nonce:o,data:i,r:tu.allowNull(this.uint256),s:tu.allowNull(this.uint256),v:tu.allowNull(o),creates:tu.allowNull(t,null),raw:tu.allowNull(i)},e.transactionRequest={from:tu.allowNull(t),nonce:tu.allowNull(o),gasLimit:tu.allowNull(n),gasPrice:tu.allowNull(n),maxPriorityFeePerGas:tu.allowNull(n),maxFeePerGas:tu.allowNull(n),to:tu.allowNull(t),value:tu.allowNull(n),data:tu.allowNull(e=>this.data(e,!0)),type:tu.allowNull(o),accessList:tu.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:o,blockNumber:o,transactionHash:s,address:t,topics:tu.arrayOf(s),data:i,logIndex:o,blockHash:s},e.receipt={to:tu.allowNull(this.address,null),from:tu.allowNull(this.address,null),contractAddress:tu.allowNull(t,null),transactionIndex:o,root:tu.allowNull(a),gasUsed:n,logsBloom:tu.allowNull(i),blockHash:s,transactionHash:s,logs:tu.arrayOf(this.receiptLog.bind(this)),blockNumber:o,confirmations:tu.allowNull(o,null),cumulativeGasUsed:n,effectiveGasPrice:tu.allowNull(n),status:tu.allowNull(o),type:u},e.block={hash:tu.allowNull(s),parentHash:s,number:o,timestamp:o,nonce:tu.allowNull(a),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:tu.allowNull(t),extraData:i,transactions:tu.allowNull(tu.arrayOf(s)),baseFeePerGas:tu.allowNull(n)},e.blockWithTransactions=gr(e.block),e.blockWithTransactions.transactions=tu.allowNull(tu.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:tu.allowNull(r,void 0),toBlock:tu.allowNull(r,void 0),blockHash:tu.allowNull(s,void 0),address:tu.allowNull(t,void 0),topics:tu.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:tu.allowNull(o),blockHash:tu.allowNull(s),transactionIndex:o,removed:tu.allowNull(this.boolean.bind(this)),address:t,data:tu.allowFalsish(i,"0x"),topics:tu.arrayOf(s),transactionHash:s,logIndex:o},e}accessList(e){return Jo(e||[])}number(e){return"0x"===e?0:Wn.from(e).toNumber()}type(e){return"0x"===e||null==e?0:Wn.from(e).toNumber()}bigNumber(e){return Wn.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Mn(e))?e.toLowerCase():eu.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return Di(e)}callAddress(e){if(!Mn(e,32))return null;const t=Di(Bn(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Fi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Mn(e))return Fn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==On(n)?eu.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=Wn.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Mn(e))throw new Error("invalid uint256");return Ln(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=tu.check(t,e);return r._difficulty=null==n?null:Wn.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return tu.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&Wn.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=tu.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;Mn(n)&&(n=Wn.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),Mn(n)&&(n=Wn.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Nn(e);if(t[0]>127)return function(e){const t=Mi(e);9!==t.length&&6!==t.length&&Lo.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:qo(t[0]).toNumber(),gasPrice:qo(t[1]),gasLimit:qo(t[2]),to:Go(t[3]),value:qo(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=Wn.from(t[6]).toNumber()}catch(e){return n}if(n.r=Ln(t[7],32),n.s=Ln(t[8],32),Wn.from(n.r).isZero()&&Wn.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(Pn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const s=Vr(Ni(i));try{n.from=jo(s,{r:Pn(n.r),s:Pn(n.s),recoveryParam:r})}catch(e){}n.hash=Vr(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Mi(e.slice(1));8!==t.length&&11!==t.length&&Lo.throwArgumentError("invalid component count for transaction type: 1","payload",Pn(e));const n={type:1,chainId:qo(t[0]).toNumber(),nonce:qo(t[1]).toNumber(),gasPrice:qo(t[2]),gasLimit:qo(t[3]),to:Go(t[4]),value:qo(t[5]),data:t[6],accessList:Jo(t[7])};return 8===t.length||(n.hash=Vr(e),$o(n,t.slice(8),Xo)),n}(t);case 2:return function(e){const t=Mi(e.slice(1));9!==t.length&&12!==t.length&&Lo.throwArgumentError("invalid component count for transaction type: 2","payload",Pn(e));const n=qo(t[2]),r=qo(t[3]),i={type:2,chainId:qo(t[0]).toNumber(),nonce:qo(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:qo(t[4]),to:Go(t[5]),value:qo(t[6]),data:t[7],accessList:Jo(t[8])};return 9===t.length||(i.hash=Vr(e),$o(i,t.slice(9),Yo)),i}(t)}return Lo.throwError(`unsupported transaction type: ${t[0]}`,An.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return tu.check(this.formats.receiptLog,e)}receipt(e){const t=tu.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=Wn.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&eu.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):eu.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&eu.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return tu.check(this.formats.filter,e)}filterLog(e){return tu.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach(function(t){n.push(e(t))}),n}}}var nu=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const ru=new An(Qa);function iu(e){return null==e?"null":(32!==On(e)&&ru.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function su(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[iu(e)]=!0});const n=Object.keys(t);return n.sort(),n.join("|")}return iu(e)}).join("&")}function au(e){if("string"==typeof e){if(32===On(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+su(e);if(Ir.isForkEvent(e))throw ru.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+su(e.topics||[])}throw new Error("invalid event - "+e)}function ou(){return(new Date).getTime()}function uu(e){return new Promise(t=>{setTimeout(t,e)})}const lu=["block","network","pending","poll"];class du{constructor(e,t,n){hr(this,"tag",e),hr(this,"listener",t),hr(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||lu.indexOf(this.tag)>=0}}const cu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function pu(e){return Ln(Wn.from(e).toHexString(),32)}function hu(e){return Dr.encode(_n([e,Bn(Oa(Oa(e)),0,4)]))}const fu=new RegExp("^(ipfs)://(.*)$","i"),mu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),fu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function yu(e,t){try{return Xr(gu(e,t))}catch(e){}return null}function gu(e,t){if("0x"===e)return null;const n=Wn.from(Bn(e,t,t+32)).toNumber(),r=Wn.from(Bn(e,n,n+32)).toNumber();return Bn(e,n+32,n+32+r)}function bu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):ru.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function vu(e){const t=Nn(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function wu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Au(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=Nn(e[r]);t[r]=vu(n),t.push(vu(i.length)),t.push(wu(i)),n+=32+32*Math.ceil(i.length/32)}return Dn(t)}class Tu{constructor(e,t,n,r){hr(this,"provider",e),hr(this,"name",n),hr(this,"address",e.formatter.address(t)),hr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>Wn.from(e).eq(1)).catch(e=>{if(e.code===An.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return nu(this,void 0,void 0,function*(){const n={to:this.address,ccipReadEnabled:!0,data:Dn([e,Ei(this.name),t||"0x"])};let r=!1;var i;(yield this.supportsWildcard())&&(r=!0,n.data=Dn(["0x9061b923",Au([(i=this.name,Pn(_n(Ti(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),n.data])]));try{let e=yield this.provider.call(n);return Nn(e).length%32==4&&ru.throwError("resolver threw error",An.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=gu(e,0)),e}catch(e){if(e.code===An.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return nu(this,void 0,void 0,function*(){const n=yield this._fetch(e,t);return null!=n?gu(n,0):null})}_getAddress(e,t){const n=cu[String(e)];if(null==n&&ru.throwError(`unsupported coin type: ${e}`,An.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=Nn(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return hu(_n([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return hu(_n([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,n,r){for(var i=0,s=0,a=[],o=0;o<e.length;++o)for(i=i<<8|e[o],s+=8;s>=5;)a.push(i>>(s-=5)&31);return s>0&&a.push(i<<5-s&31),a}(e);if(Array.isArray(t))return t;throw new Error(t)}(r.slice(2));return e.unshift(t),function(e,t,n){if(e.length+7+t.length>(n=n||90))throw new TypeError("Exceeds length limit");var r=function(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=Ja(t)^r>>5}for(t=Ja(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=Ja(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",s=0;s<t.length;++s){var a=t[s];if(a>>5!=0)throw new Error("Non 5-bit word");r=Ja(r)^a,i+=za.charAt(a)}for(s=0;s<6;++s)r=Ja(r);for(r^=1,s=0;s<6;++s)i+=za.charAt(r>>5*(5-s)&31);return i}(n.prefix,e)}}return null}getAddress(e){return nu(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===An.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",pu(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&ru.throwError("invalid or unsupported coin data",An.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n})}getAvatar(){return nu(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<mu.length;n++){const r=t.match(mu[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:bu(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const s=this._resolvedAddress||(yield this.getAddress()),a=(r[2]||"").split("/");if(2!==a.length)return null;const o=yield this.provider.formatter.address(a[0]),u=Ln(Wn.from(a[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:o,data:Dn(["0x6352211e",u])}));if(s!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=Wn.from(yield this.provider.call({to:o,data:Dn(["0x00fdd58e",Ln(s,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(a[0]),data:Dn([n,u])};let d=yu(yield this.provider.call(l),0);if(null==d)return null;e.push({type:"metadata-url-base",content:d}),"erc1155"===i&&(d=d.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:d})),d.match(/^ipfs:/i)&&(d=bu(d)),e.push({type:"metadata-url",content:d});const c=yield Ha(d);if(!c)return null;e.push({type:"metadata",content:JSON.stringify(c)});let p=c.image;if("string"!=typeof p)return null;if(p.match(/^(https:\/\/|data:)/i));else{if(null==p.match(fu))return null;e.push({type:"url-ipfs",content:p}),p=bu(p)}return e.push({type:"url",content:p}),{linkage:e,url:p}}}}}catch(e){}return null})}getContentHash(){return nu(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Dr.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+Dr.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Or("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return ru.throwError("invalid or unsupported content hash data",An.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return nu(this,void 0,void 0,function*(){let t=Yr(e);t=_n([pu(64),pu(t.length),t]),t.length%32!=0&&(t=_n([t,Ln("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Pn(t));return null==n||"0x"===n?null:Xr(n)})}}let Eu=null,Iu=1;class Su extends Sr{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),hr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=fr(new.target,"getNetwork")(e);t?(hr(this,"_network",t),this.emit("network",t,null)):ru.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return nu(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||ru.throwError("no network detected",An.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:hr(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Va(()=>this._ready().then(e=>e,e=>{if(e.code!==An.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==Eu&&(Eu=new tu),Eu}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Rr){const n=Rr[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Rr[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Rr[e.name];if(!t)return"number"!=typeof e.chainId&&kr.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&kr.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}(null==e?"homestead":e)}ccipReadFetch(e,t,n){return nu(this,void 0,void 0,function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),s=[];for(let e=0;e<n.length;e++){const t=n[e],a=t.replace("{sender}",r).replace("{data}",i),o=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield Ha({url:a,errorPassThrough:!0},o,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return ru.throwError(`response not found during CCIP fetch: ${l}`,An.errors.SERVER_ERROR,{url:t,errorMessage:l});s.push(l)}return ru.throwError(`error encountered during CCIP fetch: ${s.map(e=>JSON.stringify(e)).join(", ")}`,An.errors.SERVER_ERROR,{urls:n,errorMessages:s})})}_getInternalBlockNumber(e){return nu(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(ou()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=ou(),n=mr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=ou();return(e=Wn.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=n,n.catch(e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)}),(yield n).blockNumber})}poll(){return nu(this,void 0,void 0,function*(){const e=Iu++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)ru.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",ru.makeError("network block skew detected",An.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach(e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null).catch(e=>{this.emit("error",e)});t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const s=this.getLogs(r).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(s)}}}),this._lastBlockNumber=n,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return nu(this,void 0,void 0,function*(){return ru.throwError("provider does not support network detection",An.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return nu(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield uu(0),this._network;const n=ru.makeError("underlying network changed",An.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=ou();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=ou(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return nu(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)})}_waitForTransaction(e,t,n,r){return nu(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,s)=>{const a=[];let o=!1;const u=function(){return!!o||(o=!0,a.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),a.push(()=>{this.removeListener(e,l)}),r){let n=r.startBlock,i=null;const l=a=>nu(this,void 0,void 0,function*(){o||(yield uu(1e3),this.getTransactionCount(r.from).then(d=>nu(this,void 0,void 0,function*(){if(!o){if(d<=r.nonce)n=a;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=a;){if(o)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const a=n.transactions[i];if(a.hash===e)return;if(a.from===r.from&&a.nonce===r.nonce){if(o)return;const n=yield this.waitForTransaction(a.hash,t);if(u())return;let i="replaced";return a.data===r.data&&a.to===r.to&&a.value.eq(r.value)?i="repriced":"0x"===a.data&&a.from===a.to&&a.value.isZero()&&(i="cancelled"),void s(ru.makeError("transaction was replaced",An.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(a),hash:e,receipt:n}))}}i++}}o||this.once("block",l)}}),e=>{o||this.once("block",l)}))});if(o)return;this.once("block",l),a.push(()=>{this.removeListener("block",l)})}if("number"==typeof n&&n>0){const e=setTimeout(()=>{u()||s(ru.makeError("timeout exceeded",An.errors.TIMEOUT,{timeout:n}))},n);e.unref&&e.unref(),a.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return nu(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return Wn.from(e)}catch(t){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return Wn.from(r)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}})}getTransactionCount(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return Wn.from(r).toNumber()}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}})}getCode(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Pn(r)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}})}getStorageAt(e,t,n){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield mr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then(e=>Fn(e))}),i=yield this.perform("getStorageAt",r);try{return Pn(i)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}})}_wrapTransaction(e,t,n){if(null!=t&&32!==On(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&ru.throwError("Transaction hash mismatch from Provider.sendTransaction.",An.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>nu(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const s=yield this._waitForTransaction(e.hash,t,r,i);return null==s&&0===t?null:(this._emitted["t:"+e.hash]=s.blockNumber,0===s.status&&ru.throwError("transaction failed",An.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:s}),s)}),r}sendTransaction(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Pn(e)),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}})}_getTransactionRequest(e){return nu(this,void 0,void 0,function*(){const t=yield e,n={};return["from","to"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?Wn.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?Pn(e):null))}),this.formatter.transactionRequest(yield mr(n))})}_getFilter(e){return nu(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(n=>{null!=e[n]&&(t[n]=e[n])}),["fromBlock","toBlock"].forEach(n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))}),this.formatter.filter(yield mr(t))})}_call(e,t,n){return nu(this,void 0,void 0,function*(){n>=10&&ru.throwError("CCIP read exceeded maximum redirections",An.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&On(i)%32==4)try{const s=Bn(i,4),a=Bn(s,0,32);Wn.from(a).eq(r)||ru.throwError("CCIP Read sender did not match",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const o=[],u=Wn.from(Bn(s,32,64)).toNumber(),l=Wn.from(Bn(s,u,u+32)).toNumber(),d=Bn(s,u+32);for(let t=0;t<l;t++){const n=yu(d,32*t);null==n&&ru.throwError("CCIP Read contained corrupt URL string",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),o.push(n)}const c=gu(s,64);Wn.from(Bn(s,100,128)).isZero()||ru.throwError("CCIP Read callback selector included junk",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const p=Bn(s,96,100),h=gu(s,128),f=yield this.ccipReadFetch(e,c,o);null==f&&ru.throwError("CCIP Read disabled or provided no URLs",An.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Dn([p,Au([f,h])])};return this._call(m,t,n+1)}catch(e){if(e.code===An.errors.SERVER_ERROR)throw e}try{return Pn(i)}catch(n){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}})}call(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield mr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)})}estimateGas(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield mr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return Wn.from(n)}catch(e){return ru.throwError("bad result from backend",An.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}})}_getAddress(e){return nu(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&ru.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&ru.throwError("ENS name not configured",An.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return nu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(Mn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),Mn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){ru.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Va(()=>nu(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map(e=>this._wrapTransaction(e)),n}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Va(()=>nu(this,void 0,void 0,function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}),{oncePoll:this})})}getTransactionReceipt(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Va(()=>nu(this,void 0,void 0,function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}),{oncePoll:this})})}getLogs(e){return nu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield mr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach(e=>{null==e.removed&&(e.removed=!1)}),tu.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)})}getEtherPrice(){return nu(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return nu(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&ru.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return nu(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new Tu(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return nu(this,void 0,void 0,function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||ru.throwError("network does not support ENS",An.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+Ei(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return nu(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Mn(e))throw t}"string"!=typeof e&&ru.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return nu(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=yu(yield this.call({to:n,data:"0x691f3431"+Ei(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r})}getAvatar(e){return nu(this,void 0,void 0,function*(){let t=null;if(Mn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new Tu(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==An.errors.CALL_EXCEPTION)throw e}try{const e=yu(yield this.call({to:r,data:"0x691f3431"+Ei(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==An.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url})}perform(e,t){return ru.throwError(e+" not implemented",An.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,n){const r=new du(au(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=au(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),n=!0,!e.once||(r.push(e),!1))),r.forEach(e=>{this._stopEvent(e)}),n}listenerCount(e){if(!e)return this._events.length;let t=au(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=au(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=au(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!r||(r=!0,n.push(e),!1)),n.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=au(e);this._events=this._events.filter(e=>e.tag!==n||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var ku=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Cu=new An(Qa),Nu=["call","estimateGas"];function _u(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=Mn(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=_u(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return _u(JSON.parse(e),t)}catch(e){}return null}function xu(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=_u(t,!0);if(e)return e.data;Cu.throwError("missing revert data in call exception; Transaction reverted without a reason string",An.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=_u(t.body,!1);null==n&&(n=_u(t,!1)),n&&Cu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",An.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===An.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Cu.throwError("insufficient funds for intrinsic transaction cost",An.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&Cu.throwError("nonce has already been used",An.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Cu.throwError("replacement fee too low",An.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&Cu.throwError("legacy pre-eip-155 transactions not supported",An.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),Nu.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Cu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",An.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function Mu(e){return new Promise(function(t){setTimeout(t,e)})}function Ru(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Pu(e){return e?e.toLowerCase():e}const Ou={};class Bu extends o{constructor(e,t,n){if(super(),e!==Ou)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");hr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(hr(this,"_address",this.provider.formatter.address(n)),hr(this,"_index",null)):"number"==typeof n?(hr(this,"_index",n),hr(this,"_address",null)):Cu.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return Cu.throwError("cannot alter JSON-RPC Signer connection",An.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Du(Ou,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Cu.throwError("unknown account #"+this._index,An.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=gr(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const n=gr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>ku(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Cu.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),mr({tx:mr(e),sender:t}).then(({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&Cu.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Cu.throwError("user rejected transaction",An.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),xu("sendTransaction",e,r)))})}signTransaction(e){return Cu.throwError("signing transactions is unsupported",An.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return ku(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield Va(()=>ku(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}})}signMessage(e){return ku(this,void 0,void 0,function*(){const t="string"==typeof e?Yr(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Pn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Cu.throwError("user rejected signing",An.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}})}_legacySignMessage(e){return ku(this,void 0,void 0,function*(){const t="string"==typeof e?Yr(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Pn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Cu.throwError("user rejected signing",An.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}})}_signTypedData(e,t,n){return ku(this,void 0,void 0,function*(){const r=yield Zi.resolveNames(e,t,n,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Zi.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Cu.throwError("user rejected signing",An.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}})}unlock(e){return ku(this,void 0,void 0,function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])})}}class Du extends Bu{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const Fu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class Lu extends Su{constructor(e,t){let n=t;null==n&&(n=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(n),e||(e=fr(this.constructor,"defaultUrl")()),hr(this,"connection",Object.freeze("string"==typeof e?{url:e}:gr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return ku(this,void 0,void 0,function*(){yield Mu(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=fr(this.constructor,"getNetwork");try{return t(Wn.from(e).toNumber())}catch(t){return Cu.throwError("could not detect network",An.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Cu.throwError("could not detect network",An.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new Bu(Ou,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Ar(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=Ha(this.connection,JSON.stringify(n),Ru).then(e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e});return r&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Pu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Pu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Pu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Pu(t.address),Ln(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[fr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[fr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Pu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return ku(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&Wn.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=gr(t)).transaction=gr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&Cu.throwError(e+" not implemented",An.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return xu(e,n,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(n){return function r(){e.send("eth_getFilterChanges",[n]).then(function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),r.then(function(){return Mu(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){r()},0),null;e.send("eth_uninstallFilter",[n])}).catch(e=>{})}(),n}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=gr(Fu);if(t)for(const e in t)t[e]&&(n[e]=!0);yr(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const n=Fn(Wn.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n}),["from","to","data"].forEach(function(t){null!=e[t]&&(r[t]=Pn(e[t]))}),e.accessList&&(r.accessList=Jo(e.accessList)),r}}const Uu=new An("random/5.8.0"),Gu=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let qu=Gu.crypto||Gu.msCrypto;function Hu(e){(e<=0||e>1024||e%1||e!=e)&&Uu.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return qu.getRandomValues(t),Nn(t)}qu&&qu.getRandomValues||(Uu.warn("WARNING: Missing strong random number source"),qu={getRandomValues:function(e){return Uu.throwError("no secure random source avaialble",An.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Vu=new An(Qa);let zu=1;function ju(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:zu++,jsonrpc:"2.0"};return new Promise((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:Ar(i),provider:this}),t(i,(t,s)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:s,provider:this}),s.error){const e=new Error(s.error.message);return e.code=s.error.code,e.data=s.error.data,r(e)}e(s.result)})})}}class Ku extends Lu{constructor(e,t){null==e&&Vu.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Ar(r),provider:this}),e.request(r).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e})}}(e)):e.sendAsync?r=ju(0,e.sendAsync.bind(e)):e.send?r=ju(0,e.send.bind(e)):Vu.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),hr(this,"jsonRpcFetchFunc",r),hr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function Wu(e,t,n,r,i){let s;e=Nn(e),t=Nn(t);let a=1;const o=new Uint8Array(r),u=new Uint8Array(t.length+4);let l,d;u.set(t);for(let c=1;c<=a;c++){u[t.length]=c>>24&255,u[t.length+1]=c>>16&255,u[t.length+2]=c>>8&255,u[t.length+3]=255&c;let p=Nn(Ba(i,e,u));s||(s=p.length,d=new Uint8Array(s),a=Math.ceil(r/s),l=r-(a-1)*s),d.set(p);for(let t=1;t<n;t++){p=Nn(Ba(i,e,p));for(let e=0;e<s;e++)d[e]^=p[e]}const h=(c-1)*s,f=c===a?l:s;o.set(Nn(d).slice(0,f),h)}return Pn(o)}new An(Qa);const Ju=new An("wordlists/5.8.0");class Qu{constructor(e){Ju.checkAbstract(new.target,Qu),hr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return Zr(t.join("\n")+"\n")}static register(e,t){}}const Yu="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let Xu=null;function Zu(e){if(null==Xu&&(Xu=Yu.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Qu.check(e)))throw Xu=null,new Error("BIP39 Wordlist for en (English) FAILED")}const $u=new class extends Qu{constructor(){super("en")}getWord(e){return Zu(this),Xu[e]}getWordIndex(e){return Zu(this),Xu.indexOf(e)}};Qu.register($u);const el={en:$u},tl=new An("hdnode/5.8.0"),nl=Wn.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),rl=Yr("Bitcoin seed"),il=2147483648;function sl(e){return(1<<e)-1<<8-e}function al(e){return Ln(Pn(e),32)}function ol(e){return Dr.encode(_n([e,Bn(Oa(Oa(e)),0,4)]))}function ul(e){if(null==e)return el.en;if("string"==typeof e){const t=el[e];return null==t&&tl.throwArgumentError("unknown locale","wordlist",e),t}return e}const ll={},dl="m/44'/60'/0'/0/0";class cl{constructor(e,t,n,r,i,s,a,o){if(e!==ll)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Do(t);hr(this,"privateKey",e.privateKey),hr(this,"publicKey",e.compressedPublicKey)}else hr(this,"privateKey",null),hr(this,"publicKey",Pn(n));var u;hr(this,"parentFingerprint",r),hr(this,"fingerprint",Bn((u=Oa(this.publicKey),"0x"+Ra.ripemd160().update(Nn(u)).digest("hex")),0,4)),hr(this,"address",zo(this.publicKey)),hr(this,"chainCode",i),hr(this,"index",s),hr(this,"depth",a),null==o?(hr(this,"mnemonic",null),hr(this,"path",null)):"string"==typeof o?(hr(this,"mnemonic",null),hr(this,"path",o)):(hr(this,"mnemonic",o),hr(this,"path",o.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return ol(_n([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Pn(this.depth),this.parentFingerprint,Ln(Pn(this.index),4),this.chainCode,null!=this.privateKey?_n(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new cl(ll,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&il){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(Nn(this.privateKey),1),t&&(t+="'")}else n.set(Nn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=Nn(Ba(xa.sha512,this.chainCode,n)),i=r.slice(0,32),s=r.slice(32);let a=null,o=null;this.privateKey?a=al(Wn.from(i).add(this.privateKey).mod(nl)):o=new Do(Pn(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new cl(ll,a,o,this.fingerprint,al(s),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=il)throw new Error("invalid path index - "+r);n=n._derive(il+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=il)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=Nn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=Nn(Ba(xa.sha512,rl,n));return new cl(ll,al(r.slice(0,32)),null,"0x00000000",al(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=hl(pl(e,n=ul(n)),n),cl._fromSeed(function(e,t){t||(t="");const n=Yr("mnemonic"+t,jr.NFKD);return Wu(Yr(e,jr.NFKD),n,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return cl._fromSeed(e,null)}static fromExtendedKey(e){const t=Dr.decode(e);82===t.length&&ol(t.slice(0,78))===e||tl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Pn(t.slice(5,9)),i=parseInt(Pn(t.slice(9,13)).substring(2),16),s=Pn(t.slice(13,45)),a=t.slice(45,78);switch(Pn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new cl(ll,null,Pn(a),r,s,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==a[0])break;return new cl(ll,Pn(a.slice(1)),null,r,s,i,n,null)}return tl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function pl(e,t){t=ul(t),tl.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=Nn(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let s=t.getWordIndex(n[e].normalize("NFKD"));if(-1===s)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)s&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const s=32*n.length/3,a=sl(n.length/3);if((Nn(Oa(r.slice(0,s/8)))[0]&a)!=(r[r.length-1]&a))throw new Error("invalid checksum");return Pn(r.slice(0,s/8))}function hl(e,t){if(t=ul(t),(e=Nn(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,s=Nn(Oa(e))[0]&sl(i);return n[n.length-1]<<=i,n[n.length-1]|=s>>8-i,t.join(n.map(e=>t.getWord(e)))}var fl=ln(function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function s(e){return new Uint8Array(e)}function a(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var o,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},l=(o="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(o[(240&r)>>4]+o[15&r])}return t.join("")}}),d={16:10,24:12,32:14},c=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],p=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],h=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],w=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],A=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],I=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],S=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function k(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=d[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,s=k(this.key);for(t=0;t<i;t++)this._Ke[n=t>>2][t%4]=s[t],this._Kd[e-n][t%4]=s[t];for(var a,o=0,u=i;u<r;){if(s[0]^=p[(a=s[i-1])>>16&255]<<24^p[a>>8&255]<<16^p[255&a]<<8^p[a>>24&255]^c[o]<<24,o+=1,8!=i)for(t=1;t<i;t++)s[t]^=s[t-1];else{for(t=1;t<i/2;t++)s[t]^=s[t-1];for(s[i/2]^=p[255&(a=s[i/2-1])]^p[a>>8&255]<<8^p[a>>16&255]<<16^p[a>>24&255]<<24,t=i/2+1;t<i;t++)s[t]^=s[t-1]}for(t=0;t<i&&u<r;)this._Ke[l=u>>2][h=u%4]=s[t],this._Kd[e-l][h]=s[t++],u++}for(var l=1;l<e;l++)for(var h=0;h<4;h++)this._Kd[l][h]=T[(a=this._Kd[l][h])>>24&255]^E[a>>16&255]^I[a>>8&255]^S[255&a]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=k(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var a=1;a<t;a++){for(i=0;i<4;i++)n[i]=f[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[a][i];r=n.slice()}var o,u=s(16);for(i=0;i<4;i++)u[4*i]=255&(p[r[i]>>24&255]^(o=this._Ke[t][i])>>24),u[4*i+1]=255&(p[r[(i+1)%4]>>16&255]^o>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^o>>8),u[4*i+3]=255&(p[255&r[(i+3)%4]]^o);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=k(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var a=1;a<t;a++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^w[r[(i+2)%4]>>8&255]^A[255&r[(i+1)%4]]^this._Kd[a][i];r=n.slice()}var o,u=s(16);for(i=0;i<4;i++)u[4*i]=255&(h[r[i]>>24&255]^(o=this._Kd[t][i])>>24),u[4*i+1]=255&(h[r[(i+3)%4]>>16&255]^o>>16),u[4*i+2]=255&(h[r[(i+2)%4]>>8&255]^o>>8),u[4*i+3]=255&(h[255&r[(i+1)%4]]^o);return u};var N=function(e){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};N.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16)a(e,n,0,r,r+16),a(n=this._aes.encrypt(n),t,r);return t},N.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16)a(e,n,0,r,r+16),a(n=this._aes.decrypt(n),t,r);return t};var _=function(e,t){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=s(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};_.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16){a(e,n,0,r,r+16);for(var o=0;o<16;o++)n[o]^=this._lastCipherblock[o];this._lastCipherblock=this._aes.encrypt(n),a(this._lastCipherblock,t,r)}return t},_.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16){a(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var o=0;o<16;o++)t[r+o]=n[o]^this._lastCipherblock[o];a(e,this._lastCipherblock,0,r,r+16)}return t};var x=function(e,t,n){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=s(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};x.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[r+s]^=t[s];a(this._shiftRegister,this._shiftRegister,0,this.segmentSize),a(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},x.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[r+s]^=t[s];a(this._shiftRegister,this._shiftRegister,0,this.segmentSize),a(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var M=function(e,t){if(!(this instanceof M))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=s(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};M.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},M.prototype.decrypt=M.prototype.encrypt;var R=function(e){if(!(this instanceof R))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=s(16),this.setValue(e)):this.setBytes(e)};R.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},R.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},R.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof R||(t=new R(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt,e.exports={AES:C,Counter:R,ModeOfOperation:{ecb:N,cbc:_,cfb:x,ofb:M,ctr:P},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=s(e.length+t);a(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var o=s(n);return a(e,o,0,0,n),o}}},_arrayTest:{coerceArray:i,createArray:s,copyArray:a}}}()});const ml="json-wallets/5.8.0";function yl(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Nn(e)}function gl(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function bl(e){return"string"==typeof e?Yr(e,jr.NFKC):Nn(e)}function vl(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function wl(e){const t=Nn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Pn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const Al=new An(ml);class Tl extends Tr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function El(e,t){const n=JSON.parse(e);t=bl(t);const r=Di(vl(n,"ethaddr")),i=yl(vl(n,"encseed"));i&&i.length%16==0||Al.throwArgumentError("invalid encseed","json",e);const s=Nn(Wu(t,t,2e3,32,"sha256")).slice(0,16),a=i.slice(0,16),o=i.slice(16),u=new fl.ModeOfOperation.cbc(s,a),l=fl.padding.pkcs7.strip(Nn(u.decrypt(o)));let d="";for(let e=0;e<l.length;e++)d+=String.fromCharCode(l[e]);const c=Vr(Yr(d));return new Tl({_isCrowdsaleAccount:!0,address:r,privateKey:c})}function Il(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Sl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var kl=ln(function(e,t){!function(t){const n=2147483647;function r(e){const t=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]);let n=1779033703,r=3144134277,i=1013904242,s=2773480762,a=1359893119,o=2600822924,u=528734635,l=1541459225;const d=new Uint32Array(64);function c(e){let c=0,p=e.length;for(;p>=64;){let h,f,m,y,g,b=n,v=r,w=i,A=s,T=a,E=o,I=u,S=l;for(f=0;f<16;f++)m=c+4*f,d[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)h=d[f-2],y=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,h=d[f-15],g=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,d[f]=(y+d[f-7]|0)+(g+d[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&I)|0)+(S+(t[f]+d[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&w^v&w)|0,S=I,I=E,E=T,T=A+y|0,A=w,w=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+w|0,s=s+A|0,a=a+T|0,o=o+E|0,u=u+I|0,l=l+S|0,c+=64,p-=64}}c(e);let p,h=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=h<56?56:120,g=e.slice(e.length-h,e.length);for(g.push(128),p=h+1;p<y;p++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),c(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,s=new Array(i),a=new Array(64);let o,u=[];for(o=0;o<64;o++)s[o]=54;for(o=0;o<e.length;o++)s[o]^=e[o];for(o=0;o<t.length;o++)s[64+o]=t[o];for(o=i-4;o<i;o++)s[o]=0;for(o=0;o<64;o++)a[o]=92;for(o=0;o<e.length;o++)a[o]^=e[o];function l(){for(let e=i-1;e>=i-4;e--){if(s[e]++,s[e]<=255)return;s[e]=0}}for(;n>=32;)l(),u=u.concat(r(a.concat(r(s)))),n-=32;return n>0&&(l(),u=u.concat(r(a.concat(r(s))).slice(0,n))),u}function s(e,t,n,r,i){let s;for(l(e,16*(2*n-1),i,0,16),s=0;s<2*n;s++)u(e,16*s,i,16),o(i,r),l(i,0,e,t+16*s,16);for(s=0;s<n;s++)l(e,t+2*s*16,e,16*s,16);for(s=0;s<n;s++)l(e,t+16*(2*s+1),e,16*(s+n),16)}function a(e,t){return e<<t|e>>>32-t}function o(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=a(t[0]+t[12],7),t[8]^=a(t[4]+t[0],9),t[12]^=a(t[8]+t[4],13),t[0]^=a(t[12]+t[8],18),t[9]^=a(t[5]+t[1],7),t[13]^=a(t[9]+t[5],9),t[1]^=a(t[13]+t[9],13),t[5]^=a(t[1]+t[13],18),t[14]^=a(t[10]+t[6],7),t[2]^=a(t[14]+t[10],9),t[6]^=a(t[2]+t[14],13),t[10]^=a(t[6]+t[2],18),t[3]^=a(t[15]+t[11],7),t[7]^=a(t[3]+t[15],9),t[11]^=a(t[7]+t[3],13),t[15]^=a(t[11]+t[7],18),t[1]^=a(t[0]+t[3],7),t[2]^=a(t[1]+t[0],9),t[3]^=a(t[2]+t[1],13),t[0]^=a(t[3]+t[2],18),t[6]^=a(t[5]+t[4],7),t[7]^=a(t[6]+t[5],9),t[4]^=a(t[7]+t[6],13),t[5]^=a(t[4]+t[7],18),t[11]^=a(t[10]+t[9],7),t[8]^=a(t[11]+t[10],9),t[9]^=a(t[8]+t[11],13),t[10]^=a(t[9]+t[8],18),t[12]^=a(t[15]+t[14],7),t[13]^=a(t[12]+t[15],9),t[14]^=a(t[13]+t[12],13),t[15]^=a(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function l(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function d(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function c(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function p(e,t,r,a,o,p,h){if(r=c(r,"N"),a=c(a,"r"),o=c(o,"p"),p=c(p,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/a)throw new Error("N too large");if(a>n/128/o)throw new Error("r too large");if(!d(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!d(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*o*a);const m=new Uint32Array(32*o*a);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*a),g=new Uint32Array(32*a*r),b=32*a,v=new Uint32Array(16),w=new Uint32Array(16),A=o*r*2;let T,E,I=0,S=null,k=!1,C=0,N=0;const _=h?parseInt(1e3/a):4294967295,x="undefined"!=typeof setImmediate?setImmediate:setTimeout,M=function(){if(k)return h(new Error("cancelled"),I/A);let t;switch(C){case 0:E=32*N*a,l(m,E,y,0,b),C=1,T=0;case 1:t=r-T,t>_&&(t=_);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),s(y,b,a,v,w);if(T+=t,I+=t,h){const e=parseInt(1e3*I/A);if(e!==S){if(k=h(null,I/A),k)break;S=e}}if(T<r)break;T=0,C=2;case 2:t=r-T,t>_&&(t=_);for(let e=0;e<t;e++)u(g,(y[16*(2*a-1)]&r-1)*b,y,b),s(y,b,a,v,w);if(T+=t,I+=t,h){const e=parseInt(1e3*I/A);if(e!==S){if(k=h(null,I/A),k)break;S=e}}if(T<r)break;if(l(y,0,m,E,b),N++,N<o){C=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const n=i(e,f,p);return h&&h(null,1,n),n}h&&x(M)};if(!h)for(;;){const e=M();if(null!=e)return e}M()}const h={scrypt:function(e,t,n,r,i,s,a){return new Promise(function(o,u){let l=0;a&&a(0),p(e,t,n,r,i,s,function(e,t,n){if(e)u(e);else if(n)a&&1!==l&&a(1),o(new Uint8Array(n));else if(a&&t!==l)return l=t,a(t)})})},syncScrypt:function(e,t,n,r,i,s){return new Uint8Array(p(e,t,n,r,i,s))}};e.exports=h}()}),Cl=kl;const Nl=new An(ml);function _l(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class xl extends Tr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Ml(e,t){const n=yl(vl(e,"crypto/ciphertext"));if(Pn(Vr(_n([t.slice(16,32),n]))).substring(2)!==vl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===vl(e,"crypto/cipher")){const r=yl(vl(e,"crypto/cipherparams/iv")),i=new fl.Counter(r);return Nn(new fl.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Nl.throwError("unsupported cipher",An.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),s=zo(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Di(t)!==s)throw new Error("address mismatch")}const a={_isKeystoreAccount:!0,address:s,privateKey:Pn(r)};if("0.1"===vl(e,"x-ethers/version")){const t=yl(vl(e,"x-ethers/mnemonicCiphertext")),n=yl(vl(e,"x-ethers/mnemonicCounter")),r=new fl.Counter(n),s=new fl.ModeOfOperation.ctr(i,r),o=vl(e,"x-ethers/path")||dl,u=vl(e,"x-ethers/locale")||"en",l=Nn(s.decrypt(t));try{const e=hl(l,u),t=cl.fromMnemonic(e,null,u).derivePath(o);if(t.privateKey!=a.privateKey)throw new Error("mnemonic mismatch");a.mnemonic=t.mnemonic}catch(e){if(e.code!==An.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new xl(a)}function Rl(e,t,n,r,i){return Nn(Wu(e,t,n,r,i))}function Pl(e,t,n,r,i){return Promise.resolve(Rl(e,t,n,r,i))}function Ol(e,t,n,r,i){const s=bl(t),a=vl(e,"crypto/kdf");if(a&&"string"==typeof a){const t=function(e,t){return Nl.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===a.toLowerCase()){const n=yl(vl(e,"crypto/kdfparams/salt")),o=parseInt(vl(e,"crypto/kdfparams/n")),u=parseInt(vl(e,"crypto/kdfparams/r")),l=parseInt(vl(e,"crypto/kdfparams/p"));o&&u&&l||t("kdf",a),0!=(o&o-1)&&t("N",o);const d=parseInt(vl(e,"crypto/kdfparams/dklen"));return 32!==d&&t("dklen",d),r(s,n,o,u,l,64,i)}if("pbkdf2"===a.toLowerCase()){const r=yl(vl(e,"crypto/kdfparams/salt"));let i=null;const a=vl(e,"crypto/kdfparams/prf");"hmac-sha256"===a?i="sha256":"hmac-sha512"===a?i="sha512":t("prf",a);const o=parseInt(vl(e,"crypto/kdfparams/c")),u=parseInt(vl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(s,r,o,u,i)}}return Nl.throwArgumentError("unsupported key-derivation function","kdf",a)}var Bl=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Dl=new An("wallet/5.8.0");class Fl extends o{constructor(e,t){if(super(),null!=(n=e)&&Mn(n.privateKey,32)&&null!=n.address){const t=new Do(e.privateKey);if(hr(this,"_signingKey",()=>t),hr(this,"address",zo(this.publicKey)),this.address!==Di(e.address)&&Dl.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;hr(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||dl,locale:t.locale||"en"}));const n=this.mnemonic;zo(cl.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Dl.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else hr(this,"_mnemonic",()=>null)}else{if(Do.isSigningKey(e))"secp256k1"!==e.curve&&Dl.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),hr(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Do(e);hr(this,"_signingKey",()=>t)}hr(this,"_mnemonic",()=>null),hr(this,"address",zo(this.publicKey))}var n;t&&!Sr.isProvider(t)&&Dl.throwArgumentError("invalid provider","provider",t),hr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Fl(this,e)}signTransaction(e){return mr(e).then(t=>{null!=t.from&&(Di(t.from)!==this.address&&Dl.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(Vr(Zo(t)));return Zo(t,n)})}signMessage(e){return Bl(this,void 0,void 0,function*(){return Gn(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=Yr(e)),Vr(_n([Yr("Ethereum Signed Message:\n"),Yr(String(e.length)),e]))}(e)))})}_signTypedData(e,t,n){return Bl(this,void 0,void 0,function*(){const r=yield Zi.resolveNames(e,t,n,e=>(null==this.provider&&Dl.throwError("cannot resolve ENS names without a provider",An.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Gn(this._signingKey().signDigest(Zi.hash(r.domain,t,r.value)))})}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),function(e,t,n,r){try{if(Di(e.address)!==zo(e.privateKey))throw new Error("address/privateKey mismatch");if(_l(e)){const t=e.mnemonic;if(cl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||dl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=Nn(e.privateKey),s=bl(t);let a=null,o=null,u=null;if(_l(e)){const t=e.mnemonic;a=Nn(pl(t.phrase,t.locale||"en")),o=t.path||dl,u=t.locale||"en"}let l=n.client;l||(l="ethers.js");let d=null;d=n.salt?Nn(n.salt):Hu(32);let c=null;if(n.iv){if(c=Nn(n.iv),16!==c.length)throw new Error("invalid iv")}else c=Hu(16);let p=null;if(n.uuid){if(p=Nn(n.uuid),16!==p.length)throw new Error("invalid uuid")}else p=Hu(16);let h=1<<17,f=8,m=1;return n.scrypt&&(n.scrypt.N&&(h=n.scrypt.N),n.scrypt.r&&(f=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Cl.scrypt(s,d,h,f,m,64,r).then(t=>{const n=(t=Nn(t)).slice(0,16),r=t.slice(16,32),s=t.slice(32,64),y=new fl.Counter(c),g=Nn(new fl.ModeOfOperation.ctr(n,y).encrypt(i)),b=Vr(_n([r,g])),v={address:e.address.substring(2).toLowerCase(),id:wl(p),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Pn(c).substring(2)},ciphertext:Pn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Pn(d).substring(2),n:h,dklen:32,p:m,r:f},mac:b.substring(2)}};if(a){const e=Hu(16),t=new fl.Counter(e),n=Nn(new fl.ModeOfOperation.ctr(s,t).encrypt(a)),r=new Date,i=r.getUTCFullYear()+"-"+gl(r.getUTCMonth()+1,2)+"-"+gl(r.getUTCDate(),2)+"T"+gl(r.getUTCHours(),2)+"-"+gl(r.getUTCMinutes(),2)+"-"+gl(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Pn(e).substring(2),mnemonicCiphertext:Pn(n).substring(2),path:o,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,n)}static createRandom(e){let t=Hu(16);e||(e={}),e.extraEntropy&&(t=Nn(Bn(Vr(_n([t,e.extraEntropy])),0,16)));const n=hl(t,e.locale);return Fl.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return function(e,t,n){if(Il(e)){n&&n(0);const r=El(e,t);return n&&n(1),Promise.resolve(r)}return Sl(e)?function(e,t,n){return r=this,s=function*(){const r=JSON.parse(e);return Ml(r,yield Ol(r,t,Pl,Cl.scrypt,n))},new((i=void 0)||(i=Promise))(function(e,t){function n(e){try{o(s.next(e))}catch(e){t(e)}}function a(e){try{o(s.throw(e))}catch(e){t(e)}}function o(t){var r;t.done?e(t.value):(r=t.value,r instanceof i?r:new i(function(e){e(r)})).then(n,a)}o((s=s.apply(r,[])).next())});var r,i,s}(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}(e,t,n).then(e=>new Fl(e))}static fromEncryptedJsonSync(e,t){return new Fl(function(e,t){if(Il(e))return El(e,t);if(Sl(e))return function(e,t){const n=JSON.parse(e);return Ml(n,Ol(n,t,Rl,Cl.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,n){return t||(t=dl),new Fl(cl.fromMnemonic(e,null,n).derivePath(t))}}function Ll(e){return"string"==typeof e?new Fl(e):"request"in e||"send"in e?new Ku(e).getSigner():e}const Ul=new l;async function Gl({slippageBps:e,appCode:t,orderClass:n,partnerFee:r},i){const s={slippageBips:e},a={orderClass:n},o=await Ul.generateAppDataDoc(A({appCode:t,metadata:{quote:s,orderClass:a,partnerFee:r}},i||{})),{fullAppData:u,appDataKeccak256:l}=await ql(o);return{doc:o,fullAppData:u,appDataKeccak256:l}}async function ql(e){const t=await d(e);return{fullAppData:t,appDataKeccak256:c(p(t))}}async function Hl(e,t){var n;const r=null!=(n=t.metadata)&&n.hooks?K({},e,{metadata:K({},e.metadata,{hooks:{}})}):e,i=t?A(r,t):r,{fullAppData:s,appDataKeccak256:a}=await ql(i);return{fullAppData:s,appDataKeccak256:a,doc:i}}const Vl="Order",zl=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],jl=1e6,Kl=BigInt(jl),Wl=10000n;function Jl(e,t){const n=e*BigInt(Math.floor(t*jl))/Kl;return n/100n+(n%100n>=50n?1n:0n)}const Ql=1e4,Yl=50,Xl=.5;function Zl(e){const{quote:t,tradeParameters:n,trader:r,isEthFlow:i}=e,{sellTokenDecimals:s,buyTokenDecimals:a}=n,{isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=Tt({sellDecimals:s,buyDecimals:a,orderParams:t.quote}),{feeAmount:d}=t.quote,c=function(e){const{feeAmount:t,multiplyingFactorPercent:n}=e;if(t<0n)throw new Error("Fee amount must be non-negative: "+t);if(n<0)throw new Error("multiplyingFactorPercent must be non-negative: "+n);return Jl(t,n)}({feeAmount:BigInt(d),multiplyingFactorPercent:Yl}),p=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:n,isSell:r,slippagePercent:i}=e,s=r?n:t;if(s<=0n)throw new Error("sellAmount must be greater than 0: "+s);if(i<0)throw new Error("slippagePercent must be non-negative: "+i);return Jl(s,i)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:Xl}),h=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:n,slippage:r,isSell:i}=e,s=i?n:t;if(s<=0n)throw new Error("sellAmount must be greater than 0: "+s);if(r<0n)throw new Error("slippage must be non-negative: "+r);return i?Number(Bt-Bt*(s-r)/s)/Number(Bt):Number(Bt*(s+r)/s-Bt)/Number(Bt)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:c+p}),f=function(e){const t="bigint"==typeof e?Number(e*Wl):e*Number(Wl);return Math.round(t)}(h);return Math.max(Math.min(f,Ql),Lt(r.chainId,i))}const $l={signingScheme:wt.EIP1271,onchainOrder:!0,verificationGasLimit:0};async function ed(e,t,n,r){const{quote:i,orderBookApi:s,tradeParameters:a,slippageBps:o,suggestedSlippageBps:u,appDataInfo:l,isEthFlow:d}=await async function(e,t,n,r){const{appCode:i,chainId:s,account:a}=t,o=$t(e),u=o?rn(s,e):e,{sellToken:l,buyToken:d,amount:c,kind:p,partnerFee:h,validFor:f=Ut,slippageBps:m,env:y="prod"}=u;Qe(`getQuote for: Swap ${c} ${l} for ${d} on chain ${s} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=r||new st({chainId:s,env:y}),b=u.receiver||a,v="sell"===p;Qe("Building app data...");const w=Lt(s,o),A=null!=m?m:w,T={slippageBps:A,orderClass:"market",appCode:i,partnerFee:h},E=await Gl(T,null==n?void 0:n.appData),{appDataKeccak256:I,fullAppData:S}=E;Qe(`App data: appDataKeccak256=${I} fullAppData=${S}`);const k=K({from:a,sellToken:l,buyToken:d,receiver:b,validFor:f,appData:S,appDataHash:I,priceQuality:bt.OPTIMAL,signingScheme:wt.EIP712},o?$l:{},v?{kind:mt.SELL,sellAmountBeforeFee:c}:{kind:ft.BUY,buyAmountAfterFee:c},null==n?void 0:n.quoteRequest);Qe("Getting quote...");const C=await g.getQuote(k),N=Zl({isEthFlow:o,quote:C,tradeParameters:u,trader:t,advancedSettings:n}),_={isEthFlow:o,quote:C,orderBookApi:g,suggestedSlippageBps:N};if(void 0===m){if(N>w){Qe(`Suggested slippage is greater than ${w} BPS (default), using the suggested slippage (${N} BPS)`);const t=await Gl(K({},T,{slippageBps:N}),null==n?void 0:n.appData);return Qe(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`),K({},_,{appDataInfo:t,tradeParameters:K({},e,{slippageBps:N}),slippageBps:N})}Qe(`Suggested slippage is only ${N} BPS. Using the default slippage (${w} BPS)`)}return K({},_,{appDataInfo:E,tradeParameters:e,slippageBps:A})}(e,t,n,r),{partnerFee:c,sellTokenDecimals:p,buyTokenDecimals:h}=a,{chainId:f,account:m}=t,y=It({orderParams:i.quote,slippagePercentBps:o,partnerFeeBps:xt(c),sellDecimals:p,buyDecimals:h}),g=Gt({chainId:f,from:m,networkCostsAmount:i.quote.feeAmount,isEthFlow:d},Zt(a,i),l.appDataKeccak256),b=await async function(e,t){return{domain:await _t.getDomain(e),primaryType:Vl,types:{[Vl]:T,EIP712Domain:zl},message:t}}(f,g);return{result:{tradeParameters:a,suggestedSlippageBps:u,amountsAndCosts:y,orderToSign:g,quoteResponse:i,appDataInfo:l,orderTypedData:b},orderBookApi:s}}async function td(e,t,n){const r=Ll(e.signer),i=await async function(e,t){const n=t.owner||await e.getAddress();return{chainId:t.chainId,appCode:t.appCode,account:n}}(r,e),s=await ed(e,i,t,n);return{result:K({},s.result,{signer:r}),orderBookApi:s.orderBookApi}}async function nd(e,t,n){return rd(await td(e,t,n),t)}async function rd({orderBookApi:e,result:{signer:t,appDataInfo:n,quoteResponse:r,tradeParameters:i}},s){var a,o,u;const l=Zt(i,r),d=null==s?void 0:s.appData,c=d?await Hl(n.doc,d):n,p=null==d||null==(a=d.metadata)||null==(a=a.quote)?void 0:a.slippageBips,h=null==d||null==(o=d.metadata)?void 0:o.partnerFee;if(void 0!==p&&(l.slippageBps=p),h&&(l.partnerFee=h),null!=s&&s.quoteRequest){const{receiver:e,validTo:t,sellToken:n,buyToken:r}=s.quoteRequest;e&&(l.receiver=e),t&&(l.validTo=t),n&&(l.sellToken=n),r&&(l.buyToken=r)}return on(e,t,c,l,K({signingScheme:null==s||null==(u=s.quoteRequest)?void 0:u.signingScheme,networkCostsAmount:r.quote.feeAmount},null==s?void 0:s.additionalParams))}async function id(e,t,n){var r,i;const s=null==t||null==(r=t.appData)||null==(r=r.metadata)||null==(r=r.quote)?void 0:r.slippageBips,a=null==t||null==(i=t.appData)||null==(i=i.metadata)?void 0:i.partnerFee;void 0!==s&&(e.slippageBps=s),a&&(e.partnerFee=a),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:u,sellToken:l,buyToken:d,sellAmount:c,buyAmount:p,partnerFee:h}=e;Qe(`Limit order ${c} ${l} for ${p} ${d} on chain ${u}`);const f=Ll(e.signer),m=n||new st({chainId:u,env:e.env});return Qe("Building app data..."),on(m,f,await Gl({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:h},null==t?void 0:t.appData),e,null==t?void 0:t.additionalParams)}async function sd(e,t,n,r){const i=Xt.connect(n,e),s=Le[t];return{data:i.interface.encodeFunctionData("setPreSignature",[r,!0]),gasLimit:"0x"+en(await i.estimateGas.setPreSignature(r,!0).then(e=>BigInt(e.toHexString())).catch(()=>Ct)).toString(16),to:s,value:"0"}}class ad{constructor(e={},t={}){this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Ye(t.enableLogging)}setTraderParams(e){return this.traderParams=K({},this.traderParams,e),this}async getQuote(e,t){const n=await td(this.mergeParams(e),t,this.options.orderBookApi);return{quoteResults:n.result,postSwapOrderFromQuote:(t,r)=>(null==r||null==r.beforeOrderSign||r.beforeOrderSign(),rd(K({},n,{result:K({},n.result,{tradeParameters:nn({quoteParameters:n.result.tradeParameters,sellToken:e.sellToken})})}),t).catch(e=>{throw null==r||null==r.onOrderSignError||r.onOrderSignError(),e}).then(e=>(null==r||null==r.afterOrderSign||r.afterOrderSign(),e)))}}async getQuoteResults(e,t){return td(this.mergeParams(e),t,this.options.orderBookApi)}async postSwapOrder(e,t){return nd(this.mergeParams(e),t,this.options.orderBookApi)}async postLimitOrder(e,t){return id(this.mergeParams(e),t,this.options.orderBookApi)}async postSellNativeCurrencyOrder(e,t){const n=await td(this.mergeParams(e),t,this.options.orderBookApi),{tradeParameters:r,quoteResponse:i}=n.result;return an(n.orderBookApi,n.result.signer,n.result.appDataInfo,Zt(nn({quoteParameters:r,sellToken:e.sellToken}),i),null==t?void 0:t.additionalParams)}async getPreSignTransaction(e){const t=this.mergeParams(e);return sd(Ll(t.signer),t.chainId,e.account,e.orderId)}mergeParams(e){const{chainId:t,signer:n,appCode:r,env:i}=e,s={chainId:t||this.traderParams.chainId,signer:n||this.traderParams.signer,appCode:r||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===od(e).length}(e))throw new Error("Missing trader parameters: "+od(e).join(", "))}(s),K({},e,s)}}function od(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const ud=["sellTokenAddress","buyTokenAddress","amount"],ld=["signer"],dd=`${ae}/src/bridging/providers`,cd=24e4,pd=36e4,hd="cow-sdk://bridging/providers";function fd(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000",dappId:hd}}function md(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const yd=new An("units/5.8.0"),gd=["wei","kwei","mwei","gwei","szabo","finney","ether"],bd=["kind","sellTokenChainId","sellTokenAddress","buyTokenChainId","buyTokenAddress","amount","signer"],vd=["signer"];function wd(e,t){const n=z(e).find(e=>{var t;return null==(t=e.dappId)?void 0:t.startsWith(hd)});if(!n)return;const r=n.dappId;return t.find(e=>e.info.dappId===r)}async function Ad(e){const{chainId:t,orderId:n,orderBookApi:r,providers:i,env:s}=e,a={chainId:t,env:s},o=await r.getOrder(n,a),u=o.fullAppData&&wd(o.fullAppData,i);if(!u)throw new U(`Unknown Bridge provider in order ${o.uid}. Add provider to the SDK config to be able to decode the order`);const l=await r.getTrades({orderUid:o.uid},a);if(l.length>0){const e=l[0],r=e.txHash;if(!r)throw new U(`No tx hash found for order ${n} . First trade, with log index ${e.logIndex}`);const i=await u.getBridgingParams(t,n,r);if(!i)throw new U(`Bridging params cannot be derived from transaction: ${r}`);const s={provider:u,chainId:t,order:o,statusResult:{status:P.UNKNOWN},bridgingParams:i,tradeTxHash:r};try{return K({},s,{statusResult:await u.getStatus(i.bridgingId,t),explorerUrl:u.getExplorerUrl(i.bridgingId)})}catch(e){return console.error("Cannot get bridging status",e),s}}return null}const Td=["providers"];class Ed{constructor(e){var t,n;this.options=e;const{providers:r}=e,i=W(e,Td);if(!r||1!==r.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Ye(e.enableLogging);const s=null!==(t=e.tradingSdk)&&void 0!==t?t:new ad,a=null!==(n=null==s?void 0:s.options.orderBookApi)&&void 0!==n?n:new st;this.config=K({},i,{providers:r,tradingSdk:s,orderBookApi:a})}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}async getSourceNetworks(){return ke}async getTargetNetworks(){return this.provider.getNetworks()}async getBuyTokens(e){return this.provider.getBuyTokens(e)}async getQuote(e,t){const{sellTokenChainId:n,buyTokenChainId:r}=e,i=this.config.tradingSdk;return n!==r?async function(e){var t;const{provider:n,swapAndBridgeRequest:r,advancedSettings:i,tradingSdk:s,bridgeHookSigner:a}=e,{kind:o,sellTokenChainId:u,sellTokenAddress:l,buyTokenChainId:d,buyTokenAddress:c,amount:p,signer:f}=r,m=W(r,bd),y=Ll(f);if(o!==pt.SELL)throw new Error("Bridging only support SELL orders");Qe(`Cross-chain ${o} ${p} ${l} (source chain ${u}) for ${c} (target chain ${d})`);const g=await async function(e){const{provider:t,swapAndBridgeRequest:n}=e,r=await t.getIntermediateTokens(n);if(0===r.length)throw new F(O.NO_INTERMEDIATE_TOKENS);const i=r[0];return Qe(`Using ${i} as intermediate tokens`),K({},n,{sellTokenAddress:i.address,sellTokenDecimals:i.decimals})}({swapAndBridgeRequest:r,provider:n}),b=await n.getGasLimitEstimationForHook(g),v=fd(b);Qe(`Using mocked hook for swap gas estimation: ${JSON.stringify(v)}`);const{sellTokenAddress:w,sellTokenDecimals:A}=g,T=K({},m,{kind:o,chainId:u,sellToken:l,buyToken:w,buyTokenDecimals:A,amount:p.toString(),signer:y}),E=W(T,vd);Qe(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(E,tt)}`);const I=null==i||null==(t=i.appData)||null==(t=t.metadata)?void 0:t.hooks,{result:S,orderBookApi:k}=await s.getQuoteResults(T,K({},i,{appData:K({},null==i?void 0:i.appData,{metadata:{hooks:{pre:null==I?void 0:I.pre,post:[...(null==I?void 0:I.post)||[],v]},bridging:{destinationChainId:d.toString(),destinationTokenAddress:c}}})})),C=S.amountsAndCosts.afterSlippage.buyAmount;async function N(e,t,i){var s,a;const o=null==i?void 0:i.appData,u=null==i||null==(s=i.quoteRequest)?void 0:s.receiver,l=null==i||null==(a=i.quoteRequest)?void 0:a.validTo,{bridgeHook:d,appDataInfo:{doc:c,fullAppData:p,appDataKeccak256:f},bridgeResult:m}=await async function(e){const{swapResult:t,bridgeRequestWithoutAmount:n,provider:r,intermediateTokenAmount:i,appDataOverride:s}=e,a=K({},n,{amount:i}),{hook:o,unsignedBridgeCall:u,bridgingQuote:l}=await async function(e,{provider:t,signer:n,hookGasLimit:r,swapResult:i,validToOverride:s}){const a=await t.getQuote(e),o=await t.getUnsignedBridgeCall(e,a),u=BigInt(s||i.orderToSign.validTo),l=h(["bytes","uint256"],[o.data,u]);return{hook:await t.getSignedHook(e.sellTokenChainId,o,n,l,u,r),unsignedBridgeCall:o,bridgingQuote:a}}(a,e),d=await Hl(t.appDataInfo.doc,s||{}),c=d.doc.metadata.hooks,p=((null==c?void 0:c.post)||[]).filter(e=>{var t;return!(null!=(t=e.dappId)&&t.startsWith(hd))}),f=await Hl(d.doc,{metadata:{hooks:{pre:null==c?void 0:c.pre,post:[...p,o.postHook]}}});return{bridgeResult:{providerInfo:r.info,tradeParameters:a,bridgeCallDetails:{unsignedBridgeCall:u,preAuthorizedBridgingHook:o},isSell:l.isSell,expectedFillTimeSeconds:l.expectedFillTimeSeconds,fees:l.fees,limits:l.limits,quoteTimestamp:l.quoteTimestamp,amountsAndCosts:l.amountsAndCosts},bridgeHook:o,appDataInfo:f}}({swapAndBridgeRequest:K({},r,{kind:pt.SELL}),swapResult:S,bridgeRequestWithoutAmount:K({},g,{receiver:u||g.receiver}),provider:n,intermediateTokenAmount:C,signer:e,appDataOverride:o,validToOverride:l,hookGasLimit:t});return Qe(`Bridge hook for swap: ${JSON.stringify(d)}`),S.tradeParameters.receiver=d.recipient,Qe(`App data for swap: appDataKeccak256=${f}, fullAppData="${p}"`),S.appDataInfo={fullAppData:p,appDataKeccak256:f,doc:c},{bridgeResult:m,swapResult:K({},S,{tradeParameters:K({},S.tradeParameters,{receiver:d.recipient})})}}Qe(`Expected to receive ${C} of the intermediate token (${function(e,t){if("string"!=typeof e&&yd.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=gd.indexOf(t);-1!==e&&(t=3*e)}return ar(e,null!=t?t:18)}(C.toString(),A).toString()})`),Qe(`Using gas limit: ${b}`);const _=await N(a?Ll(a):y,b);return{swap:_.swapResult,bridge:_.bridgeResult,async postSwapOrderFromQuote(e,t){null==t||null==t.beforeBridgingSign||t.beforeBridgingSign();const{swapResult:n}=await N(y,b,e).catch(e=>{throw null==t||null==t.onBridgingSignError||t.onBridgingSignError(),e});null==t||null==t.afterBridgingSign||t.afterBridgingSign();const r={result:K({},n,{tradeParameters:nn({quoteParameters:n.tradeParameters,sellToken:l}),signer:y}),orderBookApi:k};return null==t||null==t.beforeOrderSign||t.beforeOrderSign(),rd(r,K({},e,{appData:n.appDataInfo.doc,quoteRequest:K({},null==e?void 0:e.quoteRequest,{receiver:n.tradeParameters.receiver})})).catch(e=>{throw null==t||null==t.onOrderSignError||t.onOrderSignError(),e}).then(e=>(null==t||null==t.afterOrderSign||t.afterOrderSign(),e))}}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:i,provider:this.provider,bridgeHookSigner:null==t?void 0:t.quoteSigner}):function(e){const{quoteBridgeRequest:t,advancedSettings:n,tradingSdk:r}=e,{sellTokenAddress:i,buyTokenAddress:s,amount:a}=t,o=K({},W(t,ud),{chainId:t.sellTokenChainId,sellToken:i,buyToken:s,amount:a.toString()}),u=W(o,ld);return Qe(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(u,tt)}`),r.getQuote(o,n)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:i})}async getOrder(e){const{orderBookApi:t}=this.config,{chainId:n,orderId:r,env:i=t.context.env}=e;return Ad({chainId:n,orderId:r,orderBookApi:t,env:i,providers:this.config.providers})}async getOrderBridgingStatus(e,t){return this.provider.getStatus(e,t)}getProviderFromAppData(e){return wd(e,this.getProviders())}}class Id{constructor(e={}){this.options=e}async getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:n,destinationToken:r}){const i={};return e&&(i.originChainId=e),t&&(i.originToken=t),n&&(i.destinationChainId=n),r&&(i.destinationToken=r),this.fetchApi("/available-routes",i,Cd)}async getSuggestedFees(e){const t={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(t.recipient=e.recipient),this.fetchApi("/suggested-fees",t,Sd)}async getSupportedTokens(){return this.fetchApi("/token-list",{}).then(e=>e.map(e=>K({},e,{logoUrl:e.logoURI})))}async getDepositStatus(e){return this.fetchApi("/deposit/status",{originChainId:e.originChainId,depositId:e.depositId})}async fetchApi(e,t,n){const r=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;Qe(`Fetching Across API: GET ${r}. Params: ${JSON.stringify(t)}`);const i=await fetch(r,{method:"GET"});if(!i.ok){const e=await i.json();throw new F(O.API_ERROR,e)}const s=await i.json();if(n){if(n(s))return s;throw new F(O.INVALID_API_JSON_RESPONSE,{path:e,json:s})}return s}}function Sd(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&kd(e.totalRelayFee)&&"relayerCapitalFee"in e&&kd(e.relayerCapitalFee)&&"relayerGasFee"in e&&kd(e.relayerGasFee)&&"lpFee"in e&&kd(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function kd(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Cd(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Nd=new f(["event FundsDeposited(bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 indexed destinationChainId, uint256 indexed depositId, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityDeadline, bytes32 indexed depositor, bytes32 recipient, bytes32 exclusiveRelayer, bytes message)"]),_d=new f(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:B.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:B.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:B.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:B.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:D.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const xd=Nd.getEventTopic("FundsDeposited"),Md=_d.getEventTopic("Trade"),Rd={[B.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[B.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[B.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[B.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[B.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[B.GNOSIS_CHAIN]:void 0,[B.AVALANCHE]:void 0,[D.OPTIMISM]:void 0},Pd={[B.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[B.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[B.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[B.GNOSIS_CHAIN]:void 0,[B.SEPOLIA]:void 0,[B.POLYGON]:void 0,[D.OPTIMISM]:void 0,[B.AVALANCHE]:void 0},Od=10n**18n;function Bd(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=St(r,i),o=a.big,u=St(a.num,s).big,l=BigInt(n.totalRelayFee.pct),d=Ld(u,l),c=o-Ld(o,l),p=u-d,h=function(e,t){return e*BigInt(1e4-t)/10000n}(d,t);return{beforeFee:{sellAmount:o,buyAmount:u},afterFee:{sellAmount:o,buyAmount:d},afterSlippage:{sellAmount:o,buyAmount:h},costs:{bridgingFee:{feeBps:(f=l,Fd(f),Number(10000n*f/Od)),amountInSellCurrency:c,amountInBuyCurrency:p}},slippageBps:t};var f}function Dd(e){return m.decode(["address"],e).toString()}function Fd(e){if(e>Od||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Ld(e,t){return Fd(t),e*(Od-t)/Od}const Ud={filled:P.EXECUTED,slowFillRequested:P.EXECUTED,pending:P.IN_PROGRESS,expired:P.EXPIRED,refunded:P.REFUND};let Gd;const qd="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",Hd={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Vd{constructor(e,t){this.chainId=e,this.customOptions=t}proxyOf(e){const t=m.encode(["address"],[e]),n=h(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,n)}encodeExecuteHooksForFactory(e,t,n,r,i){return(Gd||(Gd=Vt.createInterface()),Gd).encodeFunctionData("executeHooks",[e,t,n,r,i])}async signCalls(e,t,n,r,i){const s=await r.getAddress(),a=this.proxyOf(s),{domain:o,types:u,message:l}=this.infoToSign(e,t,n,a);return await async function(e,t,n,r,i){let s=null;switch(e){case I.EIP712:if(!k(t))throw new Error("signer does not support signing typed data");s=await t._signTypedData(n,r,i);break;case I.ETHSIGN:s=await t.signMessage(g(S(n,r,i)));break;default:throw new Error("invalid signing scheme")}return b(v(s))}(i,r,o,u,l)}infoToSign(e,t,n,r){const i={calls:e,nonce:t,deadline:n};return{domain:this.getDomain(r),types:Hd,message:i}}getDomain(e){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.proxyCreationCode)&&void 0!==e?e:qd}getFactoryAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.factoryAddress)&&void 0!==e?e:De}getImplementationAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.implementationAddress)&&void 0!==e?e:Fe}}const zd=Gr.toBigInt();class jd{constructor(e={}){this.hooksCache=new Map,this.options=e}getCowShedAccount(e,t){var n;return this.getCowShedHooks(e,null==(n=this.options)?void 0:n.factoryOptions).proxyOf(t)}async signCalls({calls:e,signer:t,chainId:n,nonce:r=jd.getNonce(),deadline:i=zd,gasLimit:s,defaultGasLimit:a,signingScheme:o=I.EIP712}){var u;const l=this.getCowShedHooks(n),d=t||(null==(u=this.options)?void 0:u.signer);if(!d)throw new Error("Signer is required");const c=Ll(d),p=await c.getAddress(),h=l.proxyOf(p),f=await l.signCalls(e,r,i,c,o),m=l.encodeExecuteHooksForFactory(e,r,i,p,f),y={to:l.getFactoryAddress(),data:m,value:BigInt(0)},g=s||await c.estimateGas(y).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(y,tt,2)}. Review the factory call`;if(a)return Qe(`${t}, using the default gas limit.`),a;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})});return{cowShedAccount:h,signedMulticall:y,gasLimit:BigInt(g.toString())}}getCowShedHooks(e,t){let n=this.hooksCache.get(e);return n||(n=new Vd(e,t),this.hooksCache.set(e,n),n)}static getNonce(){return w(Date.now().toString())}}const Kd="abi/5.8.0",Wd=new An(Kd),Jd={};let Qd={calldata:!0,memory:!0,storage:!0},Yd={calldata:!0,memory:!0};function Xd(e,t){if("bytes"===e||"string"===e){if(Qd[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Yd[t])return!0;return(Qd[t]||"payable"===t)&&Wd.throwArgumentError("invalid modifier","name",t),!1}function Zd(e,t){for(let n in t)hr(e,n,t[n])}const $d=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),ec=new RegExp(/^(.*)\[([0-9]*)\]$/);class tc{constructor(e,t){e!==Jd&&Wd.throwError("use fromString",An.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Zd(this,t);let n=this.type.match(ec);Zd(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:tc.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==$d.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===$d.full?", ":",")+")"):t+=this.type,e!==$d.sighash&&(!0===this.indexed&&(t+=" indexed"),e===$d.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?tc.fromString(e,t):tc.fromObject(e)}static fromObject(e){return tc.isParamType(e)?e:new tc(Jd,{name:e.name||null,type:pc(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(tc.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Wd.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let s={type:"",name:"",state:{allowType:!0}},a=s;for(let n=0;n<e.length;n++){let s=e[n];switch(s){case"(":a.state.allowType&&""===a.type?a.type="tuple":a.state.allowParams||r(n),a.state.allowType=!1,a.type=pc(a.type),a.components=[i(a)],a=a.components[0];break;case")":delete a.state,"indexed"===a.name&&(t||r(n),a.indexed=!0,a.name=""),Xd(a.type,a.name)&&(a.name=""),a.type=pc(a.type);let e=a;a=a.parent,a||r(n),delete e.parent,a.state.allowParams=!1,a.state.allowName=!0,a.state.allowArray=!0;break;case",":delete a.state,"indexed"===a.name&&(t||r(n),a.indexed=!0,a.name=""),Xd(a.type,a.name)&&(a.name=""),a.type=pc(a.type);let o=i(a.parent);a.parent.components.push(o),delete a.parent,a=o;break;case" ":a.state.allowType&&""!==a.type&&(a.type=pc(a.type),delete a.state.allowType,a.state.allowName=!0,a.state.allowParams=!0),a.state.allowName&&""!==a.name&&("indexed"===a.name?(t||r(n),a.indexed&&r(n),a.indexed=!0,a.name=""):Xd(a.type,a.name)?a.name="":a.state.allowName=!1);break;case"[":a.state.allowArray||r(n),a.type+=s,a.state.allowArray=!1,a.state.allowName=!1,a.state.readArray=!0;break;case"]":a.state.readArray||r(n),a.type+=s,a.state.readArray=!1,a.state.allowArray=!0,a.state.allowName=!0;break;default:a.state.allowType?(a.type+=s,a.state.allowParams=!0,a.state.allowArray=!0):a.state.allowName?(a.name+=s,delete a.state.allowArray):a.state.readArray?a.type+=s:r(n)}}return a.parent&&Wd.throwArgumentError("unexpected eof","param",e),delete s.state,"indexed"===a.name?(t||r(n.length-7),a.indexed&&r(n.length-7),a.indexed=!0,a.name=""):Xd(a.type,a.name)&&(a.name=""),s.type=pc(s.type),s}(e,!!t),tc.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function nc(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let s=e[i];","===s&&0===r?(t.push(n),n=""):(n+=s,"("===s?r++:")"===s&&(r--,-1===r&&Wd.throwArgumentError("unbalanced parenthesis","value",e)))}return n&&t.push(n),t}(e).map(e=>tc.fromString(e,t))}class rc{constructor(e,t){e!==Jd&&Wd.throwError("use a static from method",An.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Zd(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return rc.isFragment(e)?e:"string"==typeof e?rc.fromString(e):rc.fromObject(e)}static fromObject(e){if(rc.isFragment(e))return e;switch(e.type){case"function":return lc.fromObject(e);case"event":return ic.fromObject(e);case"constructor":return uc.fromObject(e);case"error":return cc.fromObject(e);case"fallback":case"receive":return null}return Wd.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?ic.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?lc.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?uc.fromString(e.trim()):"error"===e.split(" ")[0]?cc.fromString(e.substring(5).trim()):Wd.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class ic extends rc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==$d.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ",e!==$d.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?ic.fromString(e):ic.fromObject(e)}static fromObject(e){if(ic.isEventFragment(e))return e;"event"!==e.type&&Wd.throwArgumentError("invalid event object","value",e);const t={name:fc(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(tc.fromObject):[],type:"event"};return new ic(Jd,t)}static fromString(e){let t=e.match(mc);t||Wd.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Wd.warn("unknown modifier: "+e)}}),ic.fromObject({name:t[1].trim(),anonymous:n,inputs:nc(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function sc(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Wd.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Wd.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Wn.from(n[1]),n[0]):e}function ac(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function oc(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Wd.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Wd.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Wd.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Wd.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Wd.throwArgumentError("unable to determine stateMutability","value",e),t}class uc extends rc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===$d.sighash&&Wd.throwError("cannot format a constructor for sighash",An.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?uc.fromString(e):uc.fromObject(e)}static fromObject(e){if(uc.isConstructorFragment(e))return e;"constructor"!==e.type&&Wd.throwArgumentError("invalid constructor object","value",e);let t=oc(e);t.constant&&Wd.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(tc.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Wn.from(e.gas):null};return new uc(Jd,n)}static fromString(e){let t={type:"constructor"},n=(e=sc(e,t)).match(mc);return n&&"constructor"===n[1].trim()||Wd.throwArgumentError("invalid constructor string","value",e),t.inputs=nc(n[2].trim(),!1),ac(n[3].trim(),t),uc.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class lc extends uc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==$d.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ",e!==$d.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?lc.fromString(e):lc.fromObject(e)}static fromObject(e){if(lc.isFunctionFragment(e))return e;"function"!==e.type&&Wd.throwArgumentError("invalid function object","value",e);let t=oc(e);const n={type:e.type,name:fc(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(tc.fromObject):[],outputs:e.outputs?e.outputs.map(tc.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Wn.from(e.gas):null};return new lc(Jd,n)}static fromString(e){let t={type:"function"},n=(e=sc(e,t)).split(" returns ");n.length>2&&Wd.throwArgumentError("invalid function string","value",e);let r=n[0].match(mc);if(r||Wd.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&fc(t.name),t.inputs=nc(r[2],!1),ac(r[3].trim(),t),n.length>1){let r=n[1].match(mc);""==r[1].trim()&&""==r[3].trim()||Wd.throwArgumentError("unexpected tokens","value",e),t.outputs=nc(r[2],!1)}else t.outputs=[];return lc.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function dc(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Wd.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class cc extends rc{format(e){if(e||(e=$d.sighash),$d[e]||Wd.throwArgumentError("invalid format type","format",e),e===$d.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==$d.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===$d.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?cc.fromString(e):cc.fromObject(e)}static fromObject(e){if(cc.isErrorFragment(e))return e;"error"!==e.type&&Wd.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:fc(e.name),inputs:e.inputs?e.inputs.map(tc.fromObject):[]};return dc(new cc(Jd,t))}static fromString(e){let t={type:"error"},n=e.match(mc);return n||Wd.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&fc(t.name),t.inputs=nc(n[2],!1),dc(cc.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function pc(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const hc=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function fc(e){return e&&e.match(hc)||Wd.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const mc=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),yc=new An(Kd);class gc{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){yc.throwArgumentError(e,this.localName,t)}}class bc{constructor(e){hr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Dn(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(_n(e._data))}writeBytes(e){let t=Nn(e);const n=t.length%this.wordSize;return n&&(t=_n([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=Nn(Wn.from(e));return t.length>this.wordSize&&yc.throwError("value out-of-bounds",An.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=_n([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class vc{constructor(e,t,n,r){hr(this,"_data",Nn(e)),hr(this,"wordSize",t||32),hr(this,"_coerceFunc",n),hr(this,"allowLoose",r),this._offset=0}get data(){return Pn(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):vc.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:yc.throwError("data out-of-bounds",An.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new vc(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return Wn.from(this.readBytes(this.wordSize))}}class wc extends gc{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Di(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Di(Ln(e.readValue().toHexString(),20))}}class Ac extends gc{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Tc=new An(Kd);function Ec(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map(t=>{const r=t.localName;return r||Tc.throwError("cannot encode object for signature with missing names",An.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&Tc.throwError("cannot encode object for signature with duplicate names",An.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]})}else Tc.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&Tc.throwArgumentError("types/value length mismatch","tuple",n);let i=new bc(e.wordSize),s=new bc(e.wordSize),a=[];t.forEach((e,t)=>{let n=r[t];if(e.dynamic){let t=s.length;e.encode(s,n);let r=i.writeUpdatableValue();a.push(e=>{r(e+t)})}else e.encode(i,n)}),a.forEach(e=>{e(i.length)});let o=e.appendWriter(i);return o+=e.appendWriter(s),o}function Ic(e,t){let n=[],r=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let n=e.readValue(),s=r.subReader(n.toNumber());try{i=t.decode(s)}catch(e){if(e.code===An.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===An.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)});const i=t.reduce((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});t.forEach((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const s=n[t];s instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw s}}):n[r]=s});for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}class Sc extends gc{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),Tc.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return Ec(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Tc.throwError("insufficient data length",An.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Ac(this.coder));return e.coerce(this.name,Ic(e,n))}}class kc extends gc{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Cc extends gc{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Nn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Nc extends Cc{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Pn(super.decode(e)))}}class _c extends gc{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=Nn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Pn(e.readBytes(this.size)))}}class xc extends gc{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Mc extends gc{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=Wn.from(t),r=Gr.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(Ur).mul(Fr)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Lr)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Rc extends Cc{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Yr(t))}decode(e){return Xr(super.decode(e))}}class Pc extends gc{constructor(e,t){let n=!1;const r=[];e.forEach(e=>{e.dynamic&&(n=!0),r.push(e.type)}),super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});return this.coders.forEach((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))}),Object.freeze(e)}encode(e,t){return Ec(e,this.coders,t)}decode(e){return e.coerce(this.name,Ic(e,this.coders))}}const Oc=new An(Kd),Bc=new RegExp(/^bytes([0-9]*)$/),Dc=new RegExp(/^(u?int)([0-9]*)$/),Fc=new class{constructor(e){hr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new wc(e.name);case"bool":return new kc(e.name);case"string":return new Rc(e.name);case"bytes":return new Nc(e.name);case"array":return new Sc(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Pc((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new xc(e.name)}let t=e.type.match(Dc);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Oc.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Mc(n/8,"int"===t[1],e.name)}if(t=e.type.match(Bc),t){let n=parseInt(t[1]);return(0===n||n>32)&&Oc.throwArgumentError("invalid bytes length","param",e),new _c(n,e.name)}return Oc.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new vc(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new bc(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(tc.from(e)));return new Pc(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Oc.throwError("types/values length mismatch",An.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map(e=>this._getCoder(tc.from(e))),r=new Pc(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map(e=>this._getCoder(tc.from(e)));return new Pc(r,"_").decode(this._getReader(Nn(t),n))}},Lc=new An(Kd);class Uc extends Tr{}class Gc extends Tr{}class qc extends Tr{}class Hc extends Tr{static isIndexed(e){return!(!e||!e._isIndexed)}}const Vc={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function zc(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class jc{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,hr(this,"fragments",t.map(e=>rc.from(e)).filter(e=>null!=e)),hr(this,"_abiCoder",fr(new.target,"getAbiCoder")()),hr(this,"functions",{}),hr(this,"errors",{}),hr(this,"events",{}),hr(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Lc.warn("duplicate definition - constructor"):void hr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?Lc.warn("duplicate definition - "+n):t[n]=e}),this.deploy||hr(this,"deploy",uc.from({payable:!1,type:"constructor"})),hr(this,"_isInterface",!0)}format(e){e||(e=$d.full),e===$d.sighash&&Lc.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===$d.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return Fc}static getAddress(e){return Di(e)}static getSighash(e){return Bn(Zr(e.format()),0,4)}static getEventTopic(e){return Zr(e.format())}getFunction(e){if(Mn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Lc.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===n.length?Lc.throwArgumentError("no matching function","name",t):n.length>1&&Lc.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[lc.fromString(e).format()];return t||Lc.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Mn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Lc.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===n.length?Lc.throwArgumentError("no matching event","name",t):n.length>1&&Lc.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[ic.fromString(e).format()];return t||Lc.throwArgumentError("no matching event","signature",e),t}getError(e){if(Mn(e)){const t=fr(this.constructor,"getSighash");for(const n in this.errors)if(e===t(this.errors[n]))return this.errors[n];Lc.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===n.length?Lc.throwArgumentError("no matching error","name",t):n.length>1&&Lc.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[lc.fromString(e).format()];return t||Lc.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return fr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),fr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=Nn(t);return Pn(n.slice(0,4))!==this.getSighash(e)&&Lc.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Pn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Pn(_n([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=Nn(t);return Pn(n.slice(0,4))!==this.getSighash(e)&&Lc.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Pn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Pn(_n([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=Nn(t),r=null,i="",s=null,a=null,o=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=Pn(n.slice(0,4)),t=Vc[e];if(t)s=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,o=t.signature,t.reason&&(r=s[0]),"Error"===a?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(s[0])}`:"Panic"===a&&(i=`; VM Exception while processing transaction: reverted with panic code ${s[0]}`);else try{const t=this.getError(e);s=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,o=t.format()}catch(e){}break}}return Lc.throwError("call revert exception"+i,An.errors.CALL_EXCEPTION,{method:e.format(),data:Pn(t),errorArgs:s,errorName:a,errorSignature:o,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Pn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Lc.throwError("too many arguments for "+e.format(),An.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Zr(t):"bytes"===e.type?Vr(Pn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=Wn.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Ln(Pn(t),32));for(t.forEach((t,i)=>{let s=e.inputs[i];s.indexed?null==t?n.push(null):"array"===s.baseType||"tuple"===s.baseType?Lc.throwArgumentError("filtering with tuples or arrays not supported","contract."+s.name,t):Array.isArray(t)?n.push(t.map(e=>r(s,e))):n.push(r(s,t)):null!=t&&Lc.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+s.name,t)});n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Lc.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,s)=>{const a=t[s];if(e.indexed)if("string"===e.type)n.push(Zr(a));else if("bytes"===e.type)n.push(Vr(a));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[a]))}else r.push(e),i.push(a)}),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);Mn(n[0],32)&&n[0].toLowerCase()===t||Lc.throwError("fragment/topic mismatch",An.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],s=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(tc.fromObject({type:"bytes32",name:e.name})),s.push(!0)):(r.push(e),s.push(!1)):(i.push(e),s.push(!1))});let a=null!=n?this._abiCoder.decode(r,_n(n)):null,o=this._abiCoder.decode(i,t,!0),u=[],l=0,d=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==a)u[t]=new Hc({_isIndexed:!0,hash:null});else if(s[t])u[t]=new Hc({_isIndexed:!0,hash:a[d++]});else try{u[t]=a[d++]}catch(e){u[t]=e}else try{u[t]=o[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw zc(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw zc(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Gc({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:Wn.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Uc({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Pn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new qc({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var Kc=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Wc=new An("contracts/5.8.0");function Jc(e,t){return Kc(this,void 0,void 0,function*(){const n=yield t;"string"!=typeof n&&Wc.throwArgumentError("invalid address or ENS name","name",n);try{return Di(n)}catch(e){}e||Wc.throwError("a provider or signer is needed to resolve ENS names",An.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&Wc.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r})}function Qc(e,t,n){return Kc(this,void 0,void 0,function*(){return Array.isArray(n)?yield Promise.all(n.map((n,r)=>Qc(e,Array.isArray(t)?t[r]:t[n.name],n))):"address"===n.type?yield Jc(e,t):"tuple"===n.type?yield Qc(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>Qc(e,t,n.arrayChildren))):Promise.reject(Wc.makeError("invalid value for array",An.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function Yc(e,t,n){return Kc(this,void 0,void 0,function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=gr(n.pop())),Wc.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from=r.from?mr({override:Jc(e.signer,r.from),signer:e.signer.getAddress()}).then(e=>Kc(this,void 0,void 0,function*(){return Di(e.signer)!==e.override&&Wc.throwError("Contract with a Signer cannot override from",An.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():r.from&&(r.from=Jc(e.provider,r.from));const i=yield mr({args:Qc(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:mr(r)||{}}),s=e.interface.encodeFunctionData(t,i.args),a={data:s,to:i.address},o=i.overrides;if(null!=o.nonce&&(a.nonce=Wn.from(o.nonce).toNumber()),null!=o.gasLimit&&(a.gasLimit=Wn.from(o.gasLimit)),null!=o.gasPrice&&(a.gasPrice=Wn.from(o.gasPrice)),null!=o.maxFeePerGas&&(a.maxFeePerGas=Wn.from(o.maxFeePerGas)),null!=o.maxPriorityFeePerGas&&(a.maxPriorityFeePerGas=Wn.from(o.maxPriorityFeePerGas)),null!=o.from&&(a.from=o.from),null!=o.type&&(a.type=o.type),null!=o.accessList&&(a.accessList=Jo(o.accessList)),null==a.gasLimit&&null!=t.gas){let e=21e3;const n=Nn(s);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);a.gasLimit=Wn.from(t.gas).add(e)}if(o.value){const e=Wn.from(o.value);e.isZero()||t.payable||Wc.throwError("non-payable method cannot override value",An.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),a.value=e}o.customData&&(a.customData=gr(o.customData)),o.ccipReadEnabled&&(a.ccipReadEnabled=!!o.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter(e=>null!=r[e]);return u.length&&Wc.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,An.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),a})}function Xc(e,t,n){const r=e.signer||e.provider;return function(...i){return Kc(this,void 0,void 0,function*(){let s;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=gr(i.pop());null!=e.blockTag&&(s=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(s));const a=yield Yc(e,t,i),o=yield r.call(a,s);try{let r=e.interface.decodeFunctionResult(t,o);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===An.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=a),t}})}}function Zc(e,t,n){return t.constant?Xc(e,t,n):function(e,t){return function(...n){return Kc(this,void 0,void 0,function*(){e.signer||Wc.throwError("sending a transaction requires a signer",An.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield Yc(e,t,n),i=yield e.signer.sendTransaction(r);return function(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then(t=>(t.events=t.logs.map(n=>{let r=Ar(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r}),t))}(e,i),i})}}(e,t)}function $c(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class ep{constructor(e,t){hr(this,"tag",e),hr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(n=>!(!t&&n.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const n=e.slice();return setTimeout(()=>{t.listener.apply(this,n)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class tp extends ep{constructor(){super("error",null)}}class np extends ep{constructor(e,t,n,r){const i={address:e};let s=t.getEventTopic(n);r?(s!==r[0]&&Wc.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[s],super($c(i),i),hr(this,"address",e),hr(this,"interface",t),hr(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const s=e.slice();s.push(i);try{n(s,r[i])}catch(e){t.push({path:s,error:e})}}};return n([],e),t}(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}}class rp extends ep{constructor(e,t){super("*",{address:e}),hr(this,"address",e),hr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}}class ip{constructor(e,t,n){hr(this,"interface",fr(new.target,"getInterface")(t)),null==n?(hr(this,"provider",null),hr(this,"signer",null)):o.isSigner(n)?(hr(this,"provider",n.provider||null),hr(this,"signer",n)):Sr.isProvider(n)?(hr(this,"provider",n),hr(this,"signer",null)):Wc.throwArgumentError("invalid signer or provider","signerOrProvider",n),hr(this,"callStatic",{}),hr(this,"estimateGas",{}),hr(this,"functions",{}),hr(this,"populateTransaction",{}),hr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const n=this.interface.events[t];hr(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)})),e[n.name]||(e[n.name]=[]),e[n.name].push(t)}),Object.keys(e).forEach(t=>{const n=e[t];1===n.length?hr(this.filters,t,this.filters[n[0]]):Wc.warn(`Duplicate definition of ${t} (${n.join(", ")})`)})}if(hr(this,"_runningEvents",{}),hr(this,"_wrappedEmits",{}),null==e&&Wc.throwArgumentError("invalid contract address or ENS name","addressOrName",e),hr(this,"address",e),this.provider)hr(this,"resolvedAddress",Jc(this.provider,e));else try{hr(this,"resolvedAddress",Promise.resolve(Di(e)))}catch(e){Wc.throwError("provider is required to use ENS name as contract address",An.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const r={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])Wc.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&hr(this,e,Zc(this,t,!0)),null==this.functions[e]&&hr(this.functions,e,Zc(this,t,!1)),null==this.callStatic[e]&&hr(this.callStatic,e,Xc(this,t,!0)),null==this.populateTransaction[e]&&hr(this.populateTransaction,e,function(e,t){return function(...n){return Yc(e,t,n)}}(this,t)),null==this.estimateGas[e]&&hr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return Kc(this,void 0,void 0,function*(){n||Wc.throwError("estimate require a provider or signer",An.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Yc(e,t,r);return yield n.estimateGas(i)})}}(this,t))}}),Object.keys(r).forEach(e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&hr(this,e,this[n])}catch(e){}null==this.functions[e]&&hr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&hr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&hr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&hr(this.estimateGas,e,this.estimateGas[n])})}static getContractAddress(e){return Fi(e)}static getInterface(e){return jc.isInterface(e)?e:new jc(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&Wc.throwError("contract not deployed",An.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Wc.throwError("sending a transactions require a signer",An.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=gr(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Wc.throwError("cannot override "+e,An.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new u(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&hr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Hc.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new tp);if("event"===e)return this._normalizeRunningEvent(new ep("event",null));if("*"===e)return this._normalizeRunningEvent(new rp(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new np(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new np(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new ep($c(t),t))}return this._normalizeRunningEvent(new rp(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=Ar(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||Wc.throwError("events require a provider or a signer with a provider",An.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=gr(r.filter);return"string"==typeof t&&Mn(t,32)?(null!=n&&Wc.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(r,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}}class sp extends ip{}var ap;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(ap||(ap={}));const op="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",up=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function lp(e){const t=e.plan(),{commands:n,state:r}=t;return new jc(up).encodeFunctionData("execute",[n,r])}function dp(e){const t=new N;return e(t),{to:op,value:BigInt(0),data:lp(t)}}function cp(e,t){return _.createContract(e,t)}function pp(e){return _.createLibrary(e)}const hp=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],fp=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],mp=["function balanceOf(address account) external view returns (uint256)"],yp=["function approve(address spender, uint256 amount) external returns (bool)"];async function gp(e,t,n){const r=e.getCowShedAccount(t.sellTokenChainId,t.owner||t.account),i=await n.getCode(r);return i&&"0x"!==i?cd:cd+pd}const bp=`${hd}/across`,vp=[le,Ie,fe,ye,Te];class wp{constructor(e){this.supportedTokens=null,this.info={name:"Across",logoUrl:`${dd}/across/across-logo.png`,dappId:bp,website:"https://across.to"},this.api=new Id(e.apiOptions),this.cowShedSdk=new jd(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}async getNetworks(){return vp}async getBuyTokens(e){return Object.values((await this.getSupportedTokensState())[e.buyChainId]||{})}async getIntermediateTokens(e){var t;if(e.kind!==E.SELL)throw new F(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});const{sellTokenChainId:n,buyTokenChainId:r,buyTokenAddress:i}=e,s=await this.getSupportedTokensState(),a=i.toLowerCase(),o=s[n],u=s[r],l=u&&(null==(t=u[a])||null==(t=t.symbol)?void 0:t.toLowerCase());return l?Object.values(o||{}).filter(e=>{var t;return(null==(t=e.symbol)?void 0:t.toLowerCase())===l}):[]}async getQuote(e){const{sellTokenAddress:t,sellTokenChainId:n,buyTokenChainId:r,amount:i,receiver:s}=e;return function(e,t,n){const{kind:r}=e;return{isSell:r===E.SELL,amountsAndCosts:Bd(e,0,n),quoteTimestamp:Number(n.timestamp),expectedFillTimeSeconds:Number(n.estimatedFillTimeSec),fees:{bridgeFee:BigInt(n.relayerCapitalFee.total),destinationGasFee:BigInt(n.relayerGasFee.total)},limits:{minDeposit:BigInt(n.limits.minDeposit),maxDeposit:BigInt(n.limits.maxDeposit)},suggestedFees:n}}(e,0,await this.api.getSuggestedFees({token:t,originChainId:n,destinationChainId:r,amount:i,recipient:null!=s?s:void 0}))}async getUnsignedBridgeCall(e,t){return function(e){const{request:t,quote:n,cowShedSdk:r}=e,{sellTokenChainId:i,sellTokenAddress:s,buyTokenChainId:a,buyTokenAddress:o,account:u,receiver:l}=t,d=function(e){const t=Rd[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return cp(new sp(t,fp),ap.CALL)}(i),c=function(e){const t=Pd[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return cp(new sp(t,hp),ap.CALL)}(i),p=function(e){return cp(new sp(e,mp),ap.STATICCALL)}(s),h=function(e){return cp(new sp(e,yp),ap.CALL)}(s),f=r.getCowShedAccount(i,u),{suggestedFees:m}=n;return dp(e=>{const t=e.add(p.balanceOf(f)),n=BigInt(m.totalRelayFee.pct),r=e.add(c.multiplyAndSubtract(t,n));e.add(h.approve(d.address,t));const i=BigInt(m.timestamp);e.add(d.depositV3(f,l||u,s,o,t,r,a,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk})}async getGasLimitEstimationForHook(e){return gp(this.cowShedSdk,e,this.getRpcProvider(e.sellTokenChainId))}async getSignedHook(e,t,n,r,i,s){const{signedMulticall:a,cowShedAccount:o,gasLimit:u}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,gasLimit:BigInt(s),deadline:i,nonce:r}),{to:l,data:d}=a;return{postHook:{target:l,callData:d,gasLimit:u.toString(),dappId:bp},recipient:o}}async decodeBridgeHook(e){throw new Error("Not implemented")}async getBridgingParams(e,t,n){return async function(e,t,n){const r=function(e,t){var n;const r=null==(n=Rd[e])?void 0:n.toLowerCase();if(!r)return[];const i=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===xd);return i.map(e=>{const{inputToken:t,outputToken:n,inputAmount:r,outputAmount:i,destinationChainId:s,depositId:a,quoteTimestamp:o,fillDeadline:u,exclusivityDeadline:l,depositor:d,recipient:c,exclusiveRelayer:p,message:h}=Nd.parseLog(e).args;return{inputToken:Dd(t),outputToken:Dd(n),inputAmount:r,outputAmount:i,destinationChainId:s,depositId:a,quoteTimestamp:o,fillDeadline:u,exclusivityDeadline:l,depositor:Dd(d),recipient:Dd(c),exclusiveRelayer:p,message:h}})}(e,n.logs);if(0===r.length)return null;const i=function(e,t){const n=t.filter(t=>t.address.toLowerCase()===Le[e].toLowerCase()&&t.topics[0]===Md);return n.map(e=>{const t=_d.parseLog(e).args,{owner:n,sellToken:r,buyToken:i,sellAmount:s,buyAmount:a,feeAmount:o}=t;return{owner:n,sellToken:r,buyToken:i,sellAmount:s,buyAmount:a,feeAmount:o,orderUid:"0x"+e.data.slice(450,562)}})}(e,n.logs),s=i.findIndex(e=>e.orderUid===t);if(s<0)return null;const a=r[s];return a?{inputTokenAddress:a.inputToken,outputTokenAddress:a.outputToken,inputAmount:BigInt(a.inputAmount.toString()),outputAmount:BigInt(a.outputAmount.toString()),owner:a.depositor,quoteTimestamp:parseInt(a.quoteTimestamp.toString()),fillDeadline:parseInt(a.fillDeadline.toString()),recipient:a.recipient,sourceChainId:e,destinationChainId:parseInt(a.destinationChainId.toString()),bridgingId:a.depositId.toString()}:(Qe(`Trade event found at index ${s} but only ${r.length} deposit events available`),null)}(e,t,await this.getRpcProvider(e).getTransactionReceipt(n))}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}async getStatus(e,t){const n=await this.api.getDepositStatus({originChainId:t.toString(),depositId:e});return{status:(r=n.status,Ud[r]),depositTxHash:n.depositTxHash,fillTxHash:n.fillTx};var r}async getCancelBridgingTx(e){throw new Error("Not implemented")}async getRefundBridgingTx(e){throw new Error("Not implemented")}async getSupportedTokensState(){return this.supportedTokens||(this.supportedTokens=(await this.api.getSupportedTokens()).reduce((e,t)=>(e[t.chainId]=e[t.chainId]||{},e[t.chainId][t.address.toLowerCase()]=t,e),{})),this.supportedTokens}}const Ap=["function approve(address spender, uint256 amount) returns (bool)","function balanceOf(address account) view returns (uint256)","function decimals() view returns (uint8)","function symbol() view returns (string)","function allowance(address owner, address spender) view returns (uint256)"],Tp=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_socketGateway",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominateOwner",inputs:[{name:"nominee_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominee",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseCallData",inputs:[{name:"callData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"tuple",internalType:"struct SocketVerifier.UserRequest",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"bytes",internalType:"bytes"}]}],stateMutability:"nonpayable"},{type:"function",name:"routeIdsToVerifiers",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"socketGateway",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"validateRotueId",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRouteId",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateSocketRequest",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRequest",type:"tuple",internalType:"struct SocketVerifier.UserRequestValidation",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"tuple",internalType:"struct SocketVerifier.SocketRequest",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"toChainId",type:"uint256",internalType:"uint256"},{name:"token",type:"address",internalType:"address"},{name:"signature",type:"bytes4",internalType:"bytes4"}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnerClaimed",inputs:[{name:"claimer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerNominated",inputs:[{name:"nominee",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AmountNotMatched",inputs:[]},{type:"error",name:"FailedToVerify",inputs:[]},{type:"error",name:"OnlyNominee",inputs:[]},{type:"error",name:"OnlyOwner",inputs:[]},{type:"error",name:"RecipientNotMatched",inputs:[]},{type:"error",name:"RouteIdNotFound",inputs:[]},{type:"error",name:"RouteIdNotMatched",inputs:[]},{type:"error",name:"SignatureNotMatched",inputs:[]},{type:"error",name:"ToChainIdNotMatched",inputs:[]},{type:"error",name:"TokenNotMatched",inputs:[]}],Ep=[{inputs:[],name:"InvalidInput",type:"error"},{inputs:[],name:"PositionOutOfBounds",type:"error"},{inputs:[{internalType:"uint256",name:"_base",type:"uint256"},{internalType:"uint256",name:"_compare",type:"uint256"},{internalType:"uint256",name:"_target",type:"uint256"}],name:"addPctDiff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"_base",type:"uint256"},{internalType:"uint256",name:"_compare",type:"uint256"},{internalType:"uint256",name:"_target",type:"uint256"}],name:"applyPctDiff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_original",type:"bytes"},{internalType:"uint256",name:"_start",type:"uint256"},{internalType:"uint256",name:"_length",type:"uint256"},{internalType:"bytes",name:"_replacement",type:"bytes"}],name:"replaceBytes",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_original",type:"bytes"},{internalType:"uint256",name:"_start",type:"uint256"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"replaceUint256",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"_base",type:"uint256"},{internalType:"uint256",name:"_compare",type:"uint256"},{internalType:"uint256",name:"_target",type:"uint256"}],name:"subPctDiff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"}],Ip=[{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_disabledRoute",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ArrayLengthMismatch",type:"error"},{inputs:[],name:"IncorrectBridgeRatios",type:"error"},{inputs:[],name:"OnlyNominee",type:"error"},{inputs:[],name:"OnlyOwner",type:"error"},{inputs:[],name:"ZeroAddressNotAllowed",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"controllerId",type:"uint32"},{indexed:!0,internalType:"address",name:"controllerAddress",type:"address"}],name:"ControllerAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"controllerId",type:"uint32"}],name:"ControllerDisabled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"routeId",type:"uint32"},{indexed:!0,internalType:"address",name:"route",type:"address"}],name:"NewRouteAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"claimer",type:"address"}],name:"OwnerClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nominee",type:"address"}],name:"OwnerNominated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!0,internalType:"address",name:"_to",type:"address"}],name:"OwnershipTransferRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"routeId",type:"uint32"}],name:"RouteDisabled",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"BRIDGE_AFTER_SWAP_SELECTOR",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[],name:"CENT_PERCENT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"controllerAddress",type:"address"}],name:"addController",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"routeAddress",type:"address"}],name:"addRoute",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"}],name:"addressAt",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"claimOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"controllerCount",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"controllers",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"controllerId",type:"uint32"}],name:"disableController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"}],name:"disableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"disabledRouteAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint32",name:"controllerId",type:"uint32"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ISocketGateway.SocketControllerRequest",name:"socketControllerRequest",type:"tuple"}],name:"executeController",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint32",name:"controllerId",type:"uint32"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ISocketGateway.SocketControllerRequest[]",name:"controllerRequests",type:"tuple[]"}],name:"executeControllers",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"},{internalType:"bytes",name:"routeData",type:"bytes"}],name:"executeRoute",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32[]",name:"routeIds",type:"uint32[]"},{internalType:"bytes[]",name:"dataItems",type:"bytes[]"}],name:"executeRoutes",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"controllerId",type:"uint32"}],name:"getController",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"routeId",type:"uint32"}],name:"getRoute",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nominee_",type:"address"}],name:"nominateOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"nominee",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address payable",name:"userAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueEther",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"userAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"routes",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"routesCount",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"routeAddresses",type:"address[]"},{internalType:"address[]",name:"tokenAddresses",type:"address[]"},{internalType:"bool",name:"isMax",type:"bool"}],name:"setApprovalForRouters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint32",name:"swapRouteId",type:"uint32"},{internalType:"bytes",name:"swapImplData",type:"bytes"},{internalType:"uint32[]",name:"bridgeRouteIds",type:"uint32[]"},{internalType:"bytes[]",name:"bridgeImplDataItems",type:"bytes[]"},{internalType:"uint256[]",name:"bridgeRatios",type:"uint256[]"},{internalType:"bytes[]",name:"eventDataItems",type:"bytes[]"}],internalType:"struct ISocketRequest.SwapMultiBridgeRequest",name:"swapMultiBridgeRequest",type:"tuple"}],name:"swapAndMultiBridge",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],Sp={across:{inputAmount:{bytes_startIndex:4,bytes_length:32,bytesString_startIndex:10,bytesString_length:64},outputAmount:{bytes_startIndex:484,bytes_length:32,bytesString_startIndex:970,bytesString_length:64}},cctp:{inputAmount:{bytes_startIndex:4,bytes_length:32,bytesString_startIndex:10,bytesString_length:64}}};var kp;!function(e){e.Across="across",e.CircleCCTP="cctp"}(kp||(kp={}));const Cp={Across:kp.Across,"Circle CCTP":kp.CircleCCTP};var Np,_p;function xp(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=St(r,i).big,o=St(n.route.output.amount,s).big,u=o,l=n.route.routeDetails.routeFee.amount,d=function(e,t){return e*BigInt(1e4-t)/10000n}(u,t);return{beforeFee:{sellAmount:a,buyAmount:o},afterFee:{sellAmount:a,buyAmount:u},afterSlippage:{sellAmount:a,buyAmount:d},costs:{bridgingFee:{feeBps:function(e,t){if(0n===t)throw new Error("Denominator is 0");if(e>t)throw new Error("Fee amount is greater than amount");return Number((10000n*e+t/2n)/t)}(BigInt(n.route.routeDetails.routeFee.amount),BigInt(r)),amountInSellCurrency:BigInt(l),amountInBuyCurrency:BigInt(0)}},slippageBps:t}}function Mp(e){if(!e||e.length<10)throw new Error("Invalid txData: too short");if(!e.startsWith("0x"))throw new Error("Invalid txData: must start with 0x");const t=e.slice(2);if(t.length<8)throw new Error("Invalid txData: insufficient data for routeId");const n=`0x${t.slice(0,8)}`,r=`0x${t.slice(8)}`;if(r.length<10)throw new Error("Invalid txData: insufficient data for function selector");const i=`${r.slice(0,10)}`;return{routeId:n,encodedFunctionData:r,functionSelector:i}}function Rp(e){const t=new URLSearchParams;return Object.entries(e).forEach(([e,n])=>{Array.isArray(n)?t.append(e,n.join(",")):t.append(e,String(n))}),t}!function(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(Np||(Np={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(_p||(_p={}));const Pp="0x75b6ba5fcab20848ca00f132d253638fea82e598",Op={[B.MAINNET]:Pp,[B.GNOSIS_CHAIN]:Pp,[B.ARBITRUM_ONE]:Pp,[B.BASE]:Pp,[B.AVALANCHE]:Pp,[B.POLYGON]:Pp,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Pp},Bp="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Dp={[B.MAINNET]:Bp,[B.GNOSIS_CHAIN]:Bp,[B.ARBITRUM_ONE]:Bp,[B.BASE]:Bp,[B.AVALANCHE]:Bp,[B.POLYGON]:Bp,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Bp},Fp="https://public-backend.bungee.exchange/api/v1/bungee",Lp="https://microservices.socket.tech/loki",Up="https://app.across.to/api",Gp=["across","cctp"],qp={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error","bungee-manual":"Bungee Manual Api Error"};class Hp{constructor(e={apiBaseUrl:Fp,eventsApiBaseUrl:Lp,acrossApiBaseUrl:Up,includeBridges:Gp}){this.options=e,this.validateBridges(this.getSupportedBridges())}validateBridges(e){if(null!=e&&e.some(e=>!Gp.includes(e)))throw new L(`Unsupported bridge: ${e.filter(e=>!Gp.includes(e)).join(", ")}`,{includeBridges:e})}async getBuyTokens(e,t){const{sellChainId:n,sellTokenAddress:r,buyChainId:i}=e,s=this.getSupportedBridges(null==t?void 0:t.includeBridges);this.validateBridges(s);const a={toChainId:i.toString(),includeBridges:s.join(",")};n&&(a.fromChainId=n.toString()),r&&(a.fromTokenAddress=r);const o=Rp(a),u=await this.makeApiCall("bungee-manual","/dest-tokens",o);if(!u.success)throw new L("Bungee Api Error: Buy tokens failed",u);return u.result.map(e=>K({},e,{logoUrl:e.logoURI}))}async getIntermediateTokens(e){const{fromChainId:t,toChainId:n,toTokenAddress:r}=e,i=this.getSupportedBridges(e.includeBridges);this.validateBridges(i);const s=Rp({fromChainId:t.toString(),toChainId:n.toString(),toTokenAddress:r,includeBridges:i.join(",")}),a=await this.makeApiCall("bungee-manual","/intermediate-tokens",s);if(!a.success)throw new F(O.NO_INTERMEDIATE_TOKENS,a);return a.result.map(e=>K({},e,{logoUrl:e.logoURI}))}async getBungeeQuoteWithBuildTx(e){const t=await this.getBungeeQuote(e);return{bungeeQuote:t,buildTx:await this.getBungeeBuildTx(t)}}async getBungeeQuote(e){try{var t;e.includeBridges=this.getSupportedBridges(e.includeBridges),this.validateBridges(e.includeBridges);const n=Rp(e),r=await this.makeApiCall("bungee","/quote",n,Vp);if(!r.success)throw new F(O.QUOTE_ERROR,r);const i=Math.floor(Date.now()/1e3),{manualRoutes:s}=r.result;if(0===s.length)throw new F(O.NO_ROUTES,r.result);const a=s[0];if(null==a||null==(t=a.routeDetails)||!t.name)throw new F(O.NO_ROUTES,{manualRoutes:s});const o=Cp[a.routeDetails.name];if(!o)throw new F(O.INVALID_BRIDGE,{firstRoute:a});const u=s.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:r.result.originChainId,destinationChainId:r.result.destinationChainId,userAddress:r.result.userAddress,receiverAddress:r.result.receiverAddress,input:r.result.input,route:u[0],routeBridge:o,quoteTimestamp:i}}catch(e){throw console.error("🔴 Error getting bungee quote:",e),e}}async getBungeeBuildTx(e){const t=await this.makeApiCall("bungee","/build-tx",{quoteId:e.route.quoteId});if(!t.success)throw new F(O.TX_BUILD_ERROR,t);return t.result}async verifyBungeeBuildTx(e,t,n){const{routeId:r,functionSelector:i}=Mp(t.txData.data),s={amount:e.input.amount,recipient:e.receiverAddress,toChainId:e.destinationChainId.toString(),token:e.input.token.address,signature:i};return this.verifyBungeeBuildTxData(e.originChainId,t.txData.data,r,s,n)}async verifyBungeeBuildTxData(e,t,n,r,s){const a=Ll(s),o=Dp[e];if(!o)throw new F(O.TX_BUILD_ERROR,{originChainId:e,error:"Socket verifier not found"});const u=new i.Contract(o,Tp,a);try{await u.callStatic.validateRotueId(t,n)}catch(e){return console.error("🔴 Error validating routeId:",e),!1}const l={routeId:n,socketRequest:r};try{await u.callStatic.validateSocketRequest(t,l)}catch(e){return console.error("🔴 Error validating socket request:",e),!1}return!0}async getEvents(e){const t=await this.makeApiCall("events","/order",{orderId:e.orderId},zp);if(!t.success)throw new L("Bungee Events Api Error",t);return t.result}async getAcrossStatus(e){return(await this.makeApiCall("across","/deposit/status",{depositTxHash:e},jp)).status}getSupportedBridges(e){var t;return null!==(t=null!=e?e:this.options.includeBridges)&&void 0!==t?t:Gp}async makeApiCall(e,t,n,r){const i=`${{bungee:this.options.apiBaseUrl||Fp,events:this.options.eventsApiBaseUrl||Lp,across:this.options.acrossApiBaseUrl||Up,"bungee-manual":this.options.manualApiBaseUrl||"https://public-backend.bungee.exchange/api/v1/bungee-manual"}[e]}${t}?${new URLSearchParams(n).toString()}`;Qe(`Fetching ${e} API: GET ${i}. Params: ${JSON.stringify(n)}`);const s=await fetch(i,{method:"GET"});if(!s.ok){const t=await s.json();throw new F(O.API_ERROR,{errorBody:t,type:qp[e]})}const a=await s.json();if(r&&!r(a))throw new F(O.INVALID_API_JSON_RESPONSE,{json:a,apiType:e,params:n});return a}}function Vp(e){if("object"!=typeof e||null===e)return!1;if(!("success"in e)||!("statusCode"in e)||!("result"in e)||"boolean"!=typeof e.success||"number"!=typeof e.statusCode)return!1;const t=e.result;if("object"!=typeof t||null===t)return!1;const n=t;return!!("originChainId"in n&&"destinationChainId"in n&&"userAddress"in n&&"receiverAddress"in n&&"manualRoutes"in n&&Array.isArray(n.manualRoutes))&&n.manualRoutes.every(e=>{if("object"!=typeof e||null===e)return!1;if(!("routeDetails"in e)||"object"!=typeof e.routeDetails||null===e.routeDetails)return!1;if(!("routeFee"in e.routeDetails))return!1;const t=e.routeDetails.routeFee;return"object"==typeof t&&null!==t&&"amount"in t&&"quoteId"in e&&"quoteExpiry"in e&&"output"in e&&"gasFee"in e&&"slippage"in e&&"estimatedTime"in e&&"routeDetails"in e})}function zp(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!("success"in t&&"result"in t&&"boolean"==typeof t.success&&Array.isArray(t.result))&&t.result.every(e=>"object"==typeof e&&null!==e&&"identifier"in e&&"bridgeName"in e&&"fromChainId"in e&&"isCowswapTrade"in e&&"orderId"in e&&"recipient"in e&&"sender"in e&&"srcTxStatus"in e&&"destTxStatus"in e)}function jp(e){return"object"==typeof e&&null!==e&&"status"in e}const Kp="cow-sdk://bridging/providers/bungee",Wp=[le,Ie,fe,ye,Te];class Jp{constructor(e){this.info={name:"Bungee",logoUrl:`${dd}/bungee/bungee-logo.png`,dappId:Kp,website:"https://www.bungee.exchange"},this.options=e,this.api=new Hp(e.apiOptions),this.cowShedSdk=new jd(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}async getNetworks(){return Wp}async getBuyTokens(e){return this.api.getBuyTokens(e)}async getIntermediateTokens(e){if(e.kind!==E.SELL)throw new F(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});return this.api.getIntermediateTokens({fromChainId:e.sellTokenChainId,toChainId:e.buyTokenChainId,toTokenAddress:e.buyTokenAddress})}async getQuote(e){var t;const{sellTokenAddress:n,sellTokenChainId:r,buyTokenChainId:i,buyTokenAddress:s,amount:a,receiver:o,account:u,owner:l}=e,d={userAddress:this.cowShedSdk.getCowShedAccount(r,null!=l?l:u),originChainId:r.toString(),destinationChainId:i.toString(),inputToken:n,inputAmount:a.toString(),receiverAddress:null!=o?o:u,outputToken:s,includeBridges:null==(t=this.options.apiOptions)?void 0:t.includeBridges,enableManual:!0,disableSwapping:!0,disableAuto:!0},c=await this.api.getBungeeQuoteWithBuildTx(d);if(!await this.api.verifyBungeeBuildTx(c.bungeeQuote,c.buildTx,Ll(e.signer)))throw new F(O.TX_BUILD_ERROR,c);return function(e,t,n){const{kind:r}=e,{bungeeQuote:i,buildTx:s}=n;return{isSell:r===E.SELL,amountsAndCosts:xp(e,0,i),quoteTimestamp:Number(i.quoteTimestamp),expectedFillTimeSeconds:Number(i.route.estimatedTime),fees:{bridgeFee:BigInt(i.route.routeDetails.routeFee.amount),destinationGasFee:BigInt(0)},limits:{minDeposit:BigInt(0),maxDeposit:BigInt(0)},bungeeQuote:i,buildTx:s}}(e,0,c)}async getUnsignedBridgeCall(e,t){return async function(e){var t;const{request:n,quote:r,cowShedSdk:s}=e,{bungeeQuote:a,buildTx:o}=r,{routeId:u,encodedFunctionData:l}=Mp(o.txData.data),d=null!==(t=n.owner)&&void 0!==t?t:n.account,c=s.getCowShedAccount(n.sellTokenChainId,d),p=cp(new sp(n.sellTokenAddress,Ap),ap.CALL),h=function(e){const t=Op[e];if(!t)throw new Error("BungeeCowswapLib contract not found");return cp(new sp(t,Ep),ap.CALL)}(n.sellTokenChainId),f=cp(new sp(o.txData.to,Ip),ap.CALL);let m=!1;return n.sellTokenAddress.toLowerCase()!==Pe.toLowerCase()&&(m=!0),dp(e=>{const t=e.add(p.balanceOf(c));m&&e.add(p.approve(o.approvalData.spenderAddress,t));let r=e.add(h.replaceUint256(l,Sp[a.routeBridge].inputAmount.bytes_startIndex,t));if(a.routeBridge===kp.Across){const{inputAmountBigNumber:n,outputAmountBigNumber:s}=((e,t)=>{if(!e||!e.startsWith("0x"))throw new Error("Invalid txData format");if(!Sp[t])throw new Error(`Unsupported bridge type: ${t}`);const n=`0x${e.slice(Sp[t].inputAmount.bytesString_startIndex,Sp[t].inputAmount.bytesString_startIndex+Sp[t].inputAmount.bytesString_length)}`,r=i.BigNumber.from(n);if(t===kp.Across){const s=Sp[t];if(!s)throw new Error(`Unsupported bridge type: ${t}`);const a=`0x${e.slice(s.outputAmount.bytesString_startIndex,s.outputAmount.bytesString_startIndex+s.outputAmount.bytesString_length)}`;return{inputAmountBytes:n,inputAmountBigNumber:r,outputAmountBytes:a,outputAmountBigNumber:i.BigNumber.from(a)}}return{inputAmountBytes:n,inputAmountBigNumber:r}})(l,a.routeBridge),o=e.add(h.applyPctDiff(n,t,s));r=e.add(h.replaceUint256(r,Sp[a.routeBridge].outputAmount.bytes_startIndex,o))}n.sellTokenAddress.toLowerCase()===Pe.toLowerCase()?e.add(f.executeRoute(u,r).withValue(t)):e.add(f.executeRoute(u,r))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk})}async getGasLimitEstimationForHook(e){return gp(this.cowShedSdk,e,this.getRpcProvider(e.sellTokenChainId))}async getSignedHook(e,t,n,r,i,s){const{signedMulticall:a,cowShedAccount:o,gasLimit:u}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,gasLimit:BigInt(s),deadline:i,nonce:r}),{to:l,data:d}=a;return{postHook:{target:l,callData:d,gasLimit:u.toString(),dappId:Kp},recipient:o}}async getBridgingParams(e,t,n){const r=(await this.api.getEvents({orderId:t}))[0];return r?{inputTokenAddress:r.srcTokenAddress,outputTokenAddress:r.destTokenAddress,inputAmount:BigInt(r.srcAmount),outputAmount:r.destAmount?BigInt(r.destAmount):null,owner:r.sender,quoteTimestamp:null,fillDeadline:null,recipient:r.recipient,sourceChainId:r.fromChainId,destinationChainId:r.toChainId,bridgingId:t}:null}async decodeBridgeHook(e){throw new Error("Not implemented")}async getBridgingId(e,t,n){return e}getExplorerUrl(e){return`https://socketscan.io/tx/${e}`}async getStatus(e){const t=await this.api.getEvents({orderId:e});if(null==t||!t.length)return{status:P.UNKNOWN};const n=t[0];if(n.srcTxStatus===Np.PENDING)return{status:P.IN_PROGRESS};if(n.srcTxStatus===Np.COMPLETED&&n.destTxStatus===Np.PENDING){if(n.bridgeName===_p.ACROSS)try{const e=await this.api.getAcrossStatus(n.orderId);if("expired"===e)return{status:P.EXPIRED,depositTxHash:n.srcTransactionHash};if("refunded"===e)return{status:P.REFUND,depositTxHash:n.srcTransactionHash}}catch(e){console.error("BungeeBridgeProvider get across status error",e)}return{status:P.IN_PROGRESS,depositTxHash:n.srcTransactionHash}}if(n.srcTxStatus===Np.COMPLETED&&n.destTxStatus===Np.COMPLETED)return{status:P.EXECUTED,depositTxHash:n.srcTransactionHash,fillTxHash:n.destTransactionHash};throw new Error("Unknown status")}async getCancelBridgingTx(e){throw new Error("Not implemented")}async getRefundBridgingTx(e){throw new Error("Not implemented")}}let Qp,Yp,Xp,Zp=e=>e;const $p=x(Qp||(Qp=Zp`
|
|
2
2
|
query Totals {
|
|
3
3
|
totals {
|
|
4
4
|
tokens
|
|
@@ -25,5 +25,5 @@ import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOf
|
|
|
25
25
|
volumeUsd
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
`)),nh="https://api.thegraph.com/subgraphs/name/cowprotocol",rh={[B.MAINNET]:nh+"/cow",[B.GNOSIS_CHAIN]:nh+"/cow-gc",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null},ih={[B.MAINNET]:nh+"/cow-staging",[B.GNOSIS_CHAIN]:nh+"/cow-gc-staging",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null};class sh{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=K({},Ze,e)}async getTotals(e={}){return(await this.runQuery($p,void 0,e)).totals[0]}async getLastDaysVolume(e,t={}){return this.runQuery(eh,{days:e},t)}async getLastHoursVolume(e,t={}){return this.runQuery(th,{hours:e},t)}async runQuery(e,t=undefined,n={}){const{chainId:r,env:i}=this.getContextWithOverride(n),s=this.getEnvConfigs(i)[r];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+r);try{return await M(s,e,t)}catch(n){throw console.error(`[subgraph:${this.API_NAME}]`,n),new J(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${n}`)}}getContextWithOverride(e={}){return K({},this.context,e)}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?rh:ih}}var ah,oh;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(ah||(ah={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(oh||(oh={}));const uh=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],lh=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],dh=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],ch=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],ph=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],hh=["tuple(address handler, bytes32 salt, bytes staticInput)"],fh=(e,t)=>`${t}@${e}`;function mh(e,t){return e===Ge[t]}function yh(e,t){return e===qe[t]}async function gh(e,t,n,r){const i=Qt.connect(Ge[n],r);return await i.callStatic.domainVerifiers(e,t)}function bh(e,t){return Qt.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function vh(e){return n.defaultAbiCoder.encode(hh,[e])}function wh(e){const{handler:t,salt:r,staticInput:i}=n.defaultAbiCoder.decode(hh,e)[0];return{handler:t,salt:r,staticInput:i}}function Ah(e,t){try{n.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}async function Th(e){const t=await e.getBlock("latest");return{blockNumber:t.number,blockTimestamp:t.timestamp}}function Eh(e){return new Date(1e3*e).toISOString()}function Ih(e){if(uh.includes(e))return C.ERC20;if(lh.includes(e))return C.EXTERNAL;if(dh.includes(e))return C.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Sh(e){if(ch.includes(e))return E.SELL;if(ph.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function kh(e){const{sellToken:t,sellAmount:n,buyToken:r,buyAmount:i,buyTokenBalance:s,sellTokenBalance:a,feeAmount:o,kind:u,receiver:l,validTo:d,partiallyFillable:c,appData:p}=e;return{sellToken:t,sellAmount:n,buyToken:r,buyAmount:i,feeAmount:o,receiver:l,partiallyFillable:c,appData:p,validTo:Number(d),kind:Sh(u.toString()),sellTokenBalance:Ih(a.toString()),buyTokenBalance:Ih(s.toString())}}function Ch(e){return e.isValid}let Nh,_h;function xh(){return Nh||(Nh=jt.createInterface()),Nh}function Mh(e,t){return _h||(_h=jt.connect(qe[e],t)),_h}class Rh{constructor(e){const{handler:t,salt:r=n.keccak256(n.randomBytes(32)),data:s,hasOffChainInput:a=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(r)||32!==i.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=t,this.salt=r,this.data=s,this.staticInput=this.transformDataToStruct(s),this.hasOffChainInput=a}get context(){}assertIsValid(){const e=this.isValid();if(!Ch(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=xh(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?n.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[r,e.address,i,!0])}return t.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),xh().encodeFunctionData("remove",[this.id])}get id(){return n.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:s.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return n.keccak256(vh(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return n.defaultAbiCoder.encode(e,[t])}async poll(e){const{chainId:t,owner:n,provider:r,orderBookApi:i}=e,s=Mh(t,r);try{const r=this.isValid();if(!Ch(r))return{result:oh.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${r.reason}`};const a=await this.pollValidate(e);if(a)return a;if(!await this.isAuthorized(e))return{result:oh.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${this.id} is not authorized for ${n} on chain ${t}`};const[o,u]=await s.getTradeableOrderWithSignature(n,this.leaf,this.offChainInput,[]),l=await async function(e,t,n){const{computeOrderUid:r}=await import("@cowprotocol/contracts");return r(await _t.getDomain(e),n,t)}(t,n,kh(o));return await i.getOrder(l).then(()=>!0).catch(()=>!1)?await this.handlePollFailedAlreadyPresent(l,o,e)||{result:oh.TRY_NEXT_BLOCK,reason:"Order already in orderbook"}:{result:oh.SUCCESS,order:o,signature:u}}catch(e){return{result:oh.UNEXPECTED_ERROR,error:e}}}isAuthorized(e){const{chainId:t,owner:n,provider:r}=e;return Mh(t,r).callStatic.singleOrders(n,this.id)}cabinet(e){const{chainId:t,owner:n,provider:r}=e;return Mh(t,r).callStatic.cabinet(n,this.ctx)}static deserializeHelper(e,t,r,i){try{const{handler:s,salt:a,staticInput:o}=wh(e);if(s!=t)throw new Error("HandlerMismatch");const[u]=n.defaultAbiCoder.decode(r,o);return i(u,a)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Ph=["orderType"],Oh=["address","bytes32","bytes"],Bh=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Dh{constructor(e,t,n,r=ah.PRIVATE){if(this.orders={},this.chain=e,this.location=r,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!n||!t&&n)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const n=t[e];if(!Dh.orderTypeRegistry.hasOwnProperty(n.orderType))throw new Error(`Unknown order type: ${n.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==n))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:n,root:r,location:i}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const n in t)if(t.hasOwnProperty(n)){const r=t[n],{orderType:i}=r,s=W(r,Ph);if(!Dh.orderTypeRegistry.hasOwnProperty(i))throw new Error(`Unknown order type: ${i}`);e[n]=new(0,Dh.orderTypeRegistry[i])(s)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?a.from(t):t}),s=new Dh(t,n,r);return s.location=i,s}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify(K({},this,{root:e}),(e,t)=>{if("tree"!==e)return"object"==typeof t&&null!==t&&"orderType"in t?K({},t,{orderType:t.orderType}):t})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const n=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[n.id]=n,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=R.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Oh)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}async prepareProofStruct(e=this.location,t,r){var i=this;return await async function(){switch(e){case ah.PRIVATE:return"0x";case ah.EMITTED:return i.encodeToABI(t);case ah.SWARM:case ah.WAKU:case ah.IPFS:if(!r)throw new Error("Must provide an uploader function");try{return await r(i.encodeToJSON(t))}catch(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}default:throw new Error("Unsupported location")}}().then(t=>{try{return n.hexlify(n.arrayify(t)),this.location=e,{location:e,data:t}}catch(e){throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)})}static async poll(e,t,n,r,i){const s=Mh(n,r),a=i?await i(e,t.params):"0x";return await s.getTradeableOrderWithSignature(e,t.params,a,t.proof)}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,n])=>e&&e(n)||void 0===e?{idx:t,value:n}:void 0).reduce((e,t)=>{if(t){const n={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:n})}return e},[])}encodeToABI(e){return n.defaultAbiCoder.encode(Bh,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Dh.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Dh.orderTypeRegistry={}}}Dh.orderTypeRegistry={};class Fh{constructor(e){this.knownOrderTypes=Object.entries(e).reduce((e,[t,n])=>(e[t.toLowerCase()]=n,e),{})}fromParams(e){const{handler:t}=e,n=this.knownOrderTypes[t.toLocaleLowerCase()];if(n)return n(e)}}const Lh=["sellAmount","buyAmount","numberOfParts","startTime","timeBetweenParts","durationOfPart"],Uh="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Gh="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",qh=a.from(2).pow(32).sub(1),Hh=a.from(31536e3),Vh=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var zh,jh;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(zh||(zh={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(jh||(jh={}));const Kh={startType:jh.AT_MINING_TIME},Wh={durationType:zh.AUTO};class Jh extends Rh{constructor(e){const{handler:t,salt:n,data:r,hasOffChainInput:i}=e;if(t!==Uh)throw new Error(`InvalidHandler: Expected: ${Uh}, provided: ${t}`);super({handler:Uh,salt:n,data:r,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Jh({handler:Uh,data:e,salt:t})}static fromParams(e){return Jh.deserialize(vh(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Gh,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:r,startTime:i=Kh,numberOfParts:a,timeBetweenParts:o,durationOfPart:u=Wh}=this.data;if(e==n)return"InvalidSameToken";if(e==s.AddressZero||n==s.AddressZero)return"InvalidToken";if(!t.gt(s.Zero))return"InvalidSellAmount";if(!r.gt(s.Zero))return"InvalidMinBuyAmount";if(i.startType===jh.AT_EPOCH){const e=i.epoch;if(!e.gte(s.Zero)||!e.lt(qh))return"InvalidStartTime"}return a.gt(s.One)&&a.lte(qh)?o.gt(s.Zero)&&o.lte(Hh)?u.durationType!==zh.LIMIT_DURATION||u.duration.lte(o)?Ah(Vh,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}async startTimestamp(e){const{startTime:t}=this.data;if((null==t?void 0:t.startType)===jh.AT_EPOCH)return t.epoch.toNumber();const r=await this.cabinet(e),i=n.defaultAbiCoder.decode(["uint256"],r)[0];if(i.gt(qh))throw new Error(`Cabinet epoch out of range: ${i.toString()}`);const s=i.toNumber();if(0===s)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return s}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:n,durationOfPart:r}=this.data;return r&&r.durationType===zh.LIMIT_DURATION?e+t.sub(1).mul(n).add(r.duration).toNumber():e+t.mul(n).toNumber()}async pollValidate(e){const{blockInfo:t=await Th(e.provider)}=e,{blockTimestamp:n}=t;try{const t=await this.startTimestamp(e);if(t>n)return{result:oh.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${Eh(t)})`};const r=this.endTimestamp(t);return n>=r?{result:oh.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Eh(r)})`}:void 0}catch(e){var r,i;const t=e;return null!=t&&null!=(r=t.message)&&r.includes("Cabinet is not set")?{result:oh.DONT_TRY_AGAIN,reason:`${null==t?void 0:t.message}. User likely removed the order.`}:null!=t&&null!=(i=t.message)&&i.includes("Cabinet epoch out of range")?{result:oh.DONT_TRY_AGAIN,reason:`${null==t?void 0:t.message}`}:{result:oh.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}}}async handlePollFailedAlreadyPresent(e,t,n){const{blockInfo:r=await Th(n.provider)}=n,{blockTimestamp:i}=r,s=this.data.timeBetweenParts.toNumber(),{numberOfParts:a}=this.data,o=await this.startTimestamp(n);if(i<o)return{result:oh.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${o} (${Eh(o)})`,error:void 0};const u=a.mul(s).add(o).toNumber();if(i>=u)return{result:oh.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${u} (${Eh(u)})`,error:void 0};const l=Math.floor((i-o)/s);if(l===a.toNumber()-1)return{result:oh.DONT_TRY_AGAIN,reason:`Current active TWAP part (${l+1}/${a}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const d=o+(l+1)*s;return{result:oh.TRY_AT_EPOCH,epoch:d,reason:`Current active TWAP part (${l+1}/${a}) is already in the Order Book. TWAP part ${l+2} doesn't start until ${d} (${Eh(d)})`}}serialize(){return vh(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Vh,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Uh,Vh,(e,t)=>new Jh({handler:Uh,salt:t,data:Yh(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:n,buyToken:r,numberOfParts:i,startTime:s=Kh,timeBetweenParts:a,durationOfPart:o=Wh,receiver:u,appData:l}=this.data,d=s.startType===jh.AT_MINING_TIME?"AT_MINING_TIME":s.epoch.toNumber(),c=o.durationType===zh.AUTO?"AUTO":o.duration.toNumber(),p={sellAmount:e.toString(),sellToken:t,buyAmount:n.toString(),buyToken:r,numberOfParts:i.toString(),startTime:d,timeBetweenParts:a.toNumber(),durationOfPart:c,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(p)}`}transformDataToStruct(e){return Qh(e)}transformStructToData(e){return Yh(e)}}function Qh(e){const{sellAmount:t,buyAmount:n,numberOfParts:r,startTime:i=Kh,timeBetweenParts:a,durationOfPart:o=Wh}=e,u=W(e,Lh),{partSellAmount:l,minPartLimit:d}=r&&!r.isZero()?{partSellAmount:t.div(r),minPartLimit:n.div(r)}:{partSellAmount:s.Zero,minPartLimit:s.Zero};return K({partSellAmount:l,minPartLimit:d,t0:i.startType===jh.AT_MINING_TIME?s.Zero:i.epoch,n:r,t:a,span:o.durationType===zh.AUTO?s.Zero:o.duration},u)}function Yh(e){const{n:t,partSellAmount:n,minPartLimit:r,t:i,t0:s,span:a,sellToken:o,buyToken:u,receiver:l,appData:d}=e,c=a.isZero()?{durationType:zh.AUTO}:{durationType:zh.LIMIT_DURATION,duration:a},p=s.isZero()?{startType:jh.AT_MINING_TIME}:{startType:jh.AT_EPOCH,epoch:s};return{sellAmount:n.mul(t),buyAmount:r.mul(t),startTime:p,numberOfParts:t,timeBetweenParts:i,durationOfPart:c,sellToken:o,buyToken:u,receiver:l,appData:d}}const Xh={[Uh]:e=>Jh.fromParams(e)};export{nt as $,wp as A,Jp as B,J as C,md as D,ut as E,Be as F,De as G,gd as H,Fe as I,Ue as J,Ge as K,qe as L,He as M,Ve as N,ze as O,je as P,Ke as Q,fd as R,$e as S,et as T,te as U,ne as V,ie as W,se as X,Me as Y,Re as Z,K as _,Le as a,td as a$,rt as a0,st as a1,at as a2,ot as a3,lt as a4,dt as a5,ct as a6,pt as a7,ht as a8,ft as a9,wh as aA,Ah as aB,Th as aC,Eh as aD,kh as aE,Ch as aF,Rh as aG,Dh as aH,Fh as aI,Xh as aJ,Uh as aK,Gh as aL,qh as aM,Hh as aN,zh as aO,jh as aP,Jh as aQ,Qh as aR,Yh as aS,jd as aT,qd as aU,Hd as aV,Vd as aW,sn as aX,Gt as aY,sd as aZ,ed as a_,mt as aa,yt as ab,gt as ac,bt as ad,vt as ae,wt as af,Q as ag,X as ah,Z as ai,ee as aj,Tt as ak,It as al,St as am,rh as an,ih as ao,sh as ap,_t as aq,ah as ar,oh as as,hh as at,fh as au,mh as av,yh as aw,gh as ax,bh as ay,vh as az,P as b,on as b0,id as b1,an as b2,nd as b3,rd as b4,Zl as b5,xt as b6,tn as b7,Zt as b8,ad as b9,Vl as ba,Gl as bb,ql as bc,Hl as bd,qt as be,ap as bf,dp as bg,cp as bh,pp as bi,B as bj,D as bk,Mt as bl,Rt as bm,Pt as bn,Ot as bo,fe as bp,we as bq,ye as br,ce as bs,le as bt,Te as bu,Ie as bv,be as bw,dd as bx,cd as by,O as c,F as d,L as e,U as f,Ad as g,q as h,G as i,H as j,V as k,z as l,j as m,Ed as n,yd as o,Ye as p,Se as q,ke as r,Ce as s,Ne as t,_e as u,xe as v,Xe as w,Ze as x,Pe as y,Oe as z};
|
|
29
|
-
//# sourceMappingURL=index-
|
|
28
|
+
`)),nh="https://api.thegraph.com/subgraphs/name/cowprotocol",rh={[B.MAINNET]:nh+"/cow",[B.GNOSIS_CHAIN]:nh+"/cow-gc",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null},ih={[B.MAINNET]:nh+"/cow-staging",[B.GNOSIS_CHAIN]:nh+"/cow-gc-staging",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null};class sh{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=K({},Ze,e)}async getTotals(e={}){return(await this.runQuery($p,void 0,e)).totals[0]}async getLastDaysVolume(e,t={}){return this.runQuery(eh,{days:e},t)}async getLastHoursVolume(e,t={}){return this.runQuery(th,{hours:e},t)}async runQuery(e,t=undefined,n={}){const{chainId:r,env:i}=this.getContextWithOverride(n),s=this.getEnvConfigs(i)[r];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+r);try{return await M(s,e,t)}catch(n){throw console.error(`[subgraph:${this.API_NAME}]`,n),new J(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${n}`)}}getContextWithOverride(e={}){return K({},this.context,e)}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?rh:ih}}var ah,oh;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(ah||(ah={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(oh||(oh={}));const uh=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],lh=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],dh=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],ch=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],ph=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],hh=["tuple(address handler, bytes32 salt, bytes staticInput)"],fh=(e,t)=>`${t}@${e}`;function mh(e,t){return e===Ge[t]}function yh(e,t){return e===qe[t]}async function gh(e,t,n,r){const i=Qt.connect(Ge[n],r);return await i.callStatic.domainVerifiers(e,t)}function bh(e,t){return Qt.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function vh(e){return n.defaultAbiCoder.encode(hh,[e])}function wh(e){const{handler:t,salt:r,staticInput:i}=n.defaultAbiCoder.decode(hh,e)[0];return{handler:t,salt:r,staticInput:i}}function Ah(e,t){try{n.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}async function Th(e){const t=await e.getBlock("latest");return{blockNumber:t.number,blockTimestamp:t.timestamp}}function Eh(e){return new Date(1e3*e).toISOString()}function Ih(e){if(uh.includes(e))return C.ERC20;if(lh.includes(e))return C.EXTERNAL;if(dh.includes(e))return C.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Sh(e){if(ch.includes(e))return E.SELL;if(ph.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function kh(e){const{sellToken:t,sellAmount:n,buyToken:r,buyAmount:i,buyTokenBalance:s,sellTokenBalance:a,feeAmount:o,kind:u,receiver:l,validTo:d,partiallyFillable:c,appData:p}=e;return{sellToken:t,sellAmount:n,buyToken:r,buyAmount:i,feeAmount:o,receiver:l,partiallyFillable:c,appData:p,validTo:Number(d),kind:Sh(u.toString()),sellTokenBalance:Ih(a.toString()),buyTokenBalance:Ih(s.toString())}}function Ch(e){return e.isValid}let Nh,_h;function xh(){return Nh||(Nh=jt.createInterface()),Nh}function Mh(e,t){return _h||(_h=jt.connect(qe[e],t)),_h}class Rh{constructor(e){const{handler:t,salt:r=n.keccak256(n.randomBytes(32)),data:s,hasOffChainInput:a=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(r)||32!==i.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=t,this.salt=r,this.data=s,this.staticInput=this.transformDataToStruct(s),this.hasOffChainInput=a}get context(){}assertIsValid(){const e=this.isValid();if(!Ch(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=xh(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?n.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[r,e.address,i,!0])}return t.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),xh().encodeFunctionData("remove",[this.id])}get id(){return n.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:s.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return n.keccak256(vh(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return n.defaultAbiCoder.encode(e,[t])}async poll(e){const{chainId:t,owner:n,provider:r,orderBookApi:i}=e,s=Mh(t,r);try{const r=this.isValid();if(!Ch(r))return{result:oh.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${r.reason}`};const a=await this.pollValidate(e);if(a)return a;if(!await this.isAuthorized(e))return{result:oh.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${this.id} is not authorized for ${n} on chain ${t}`};const[o,u]=await s.getTradeableOrderWithSignature(n,this.leaf,this.offChainInput,[]),l=await async function(e,t,n){const{computeOrderUid:r}=await import("@cowprotocol/contracts");return r(await _t.getDomain(e),n,t)}(t,n,kh(o));return await i.getOrder(l).then(()=>!0).catch(()=>!1)?await this.handlePollFailedAlreadyPresent(l,o,e)||{result:oh.TRY_NEXT_BLOCK,reason:"Order already in orderbook"}:{result:oh.SUCCESS,order:o,signature:u}}catch(e){return{result:oh.UNEXPECTED_ERROR,error:e}}}isAuthorized(e){const{chainId:t,owner:n,provider:r}=e;return Mh(t,r).callStatic.singleOrders(n,this.id)}cabinet(e){const{chainId:t,owner:n,provider:r}=e;return Mh(t,r).callStatic.cabinet(n,this.ctx)}static deserializeHelper(e,t,r,i){try{const{handler:s,salt:a,staticInput:o}=wh(e);if(s!=t)throw new Error("HandlerMismatch");const[u]=n.defaultAbiCoder.decode(r,o);return i(u,a)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Ph=["orderType"],Oh=["address","bytes32","bytes"],Bh=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Dh{constructor(e,t,n,r=ah.PRIVATE){if(this.orders={},this.chain=e,this.location=r,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!n||!t&&n)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const n=t[e];if(!Dh.orderTypeRegistry.hasOwnProperty(n.orderType))throw new Error(`Unknown order type: ${n.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==n))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:n,root:r,location:i}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const n in t)if(t.hasOwnProperty(n)){const r=t[n],{orderType:i}=r,s=W(r,Ph);if(!Dh.orderTypeRegistry.hasOwnProperty(i))throw new Error(`Unknown order type: ${i}`);e[n]=new(0,Dh.orderTypeRegistry[i])(s)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?a.from(t):t}),s=new Dh(t,n,r);return s.location=i,s}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify(K({},this,{root:e}),(e,t)=>{if("tree"!==e)return"object"==typeof t&&null!==t&&"orderType"in t?K({},t,{orderType:t.orderType}):t})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const n=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[n.id]=n,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=R.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Oh)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}async prepareProofStruct(e=this.location,t,r){var i=this;return await async function(){switch(e){case ah.PRIVATE:return"0x";case ah.EMITTED:return i.encodeToABI(t);case ah.SWARM:case ah.WAKU:case ah.IPFS:if(!r)throw new Error("Must provide an uploader function");try{return await r(i.encodeToJSON(t))}catch(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}default:throw new Error("Unsupported location")}}().then(t=>{try{return n.hexlify(n.arrayify(t)),this.location=e,{location:e,data:t}}catch(e){throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)})}static async poll(e,t,n,r,i){const s=Mh(n,r),a=i?await i(e,t.params):"0x";return await s.getTradeableOrderWithSignature(e,t.params,a,t.proof)}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,n])=>e&&e(n)||void 0===e?{idx:t,value:n}:void 0).reduce((e,t)=>{if(t){const n={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:n})}return e},[])}encodeToABI(e){return n.defaultAbiCoder.encode(Bh,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Dh.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Dh.orderTypeRegistry={}}}Dh.orderTypeRegistry={};class Fh{constructor(e){this.knownOrderTypes=Object.entries(e).reduce((e,[t,n])=>(e[t.toLowerCase()]=n,e),{})}fromParams(e){const{handler:t}=e,n=this.knownOrderTypes[t.toLocaleLowerCase()];if(n)return n(e)}}const Lh=["sellAmount","buyAmount","numberOfParts","startTime","timeBetweenParts","durationOfPart"],Uh="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Gh="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",qh=a.from(2).pow(32).sub(1),Hh=a.from(31536e3),Vh=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var zh,jh;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(zh||(zh={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(jh||(jh={}));const Kh={startType:jh.AT_MINING_TIME},Wh={durationType:zh.AUTO};class Jh extends Rh{constructor(e){const{handler:t,salt:n,data:r,hasOffChainInput:i}=e;if(t!==Uh)throw new Error(`InvalidHandler: Expected: ${Uh}, provided: ${t}`);super({handler:Uh,salt:n,data:r,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Jh({handler:Uh,data:e,salt:t})}static fromParams(e){return Jh.deserialize(vh(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Gh,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:r,startTime:i=Kh,numberOfParts:a,timeBetweenParts:o,durationOfPart:u=Wh}=this.data;if(e==n)return"InvalidSameToken";if(e==s.AddressZero||n==s.AddressZero)return"InvalidToken";if(!t.gt(s.Zero))return"InvalidSellAmount";if(!r.gt(s.Zero))return"InvalidMinBuyAmount";if(i.startType===jh.AT_EPOCH){const e=i.epoch;if(!e.gte(s.Zero)||!e.lt(qh))return"InvalidStartTime"}return a.gt(s.One)&&a.lte(qh)?o.gt(s.Zero)&&o.lte(Hh)?u.durationType!==zh.LIMIT_DURATION||u.duration.lte(o)?Ah(Vh,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}async startTimestamp(e){const{startTime:t}=this.data;if((null==t?void 0:t.startType)===jh.AT_EPOCH)return t.epoch.toNumber();const r=await this.cabinet(e),i=n.defaultAbiCoder.decode(["uint256"],r)[0];if(i.gt(qh))throw new Error(`Cabinet epoch out of range: ${i.toString()}`);const s=i.toNumber();if(0===s)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return s}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:n,durationOfPart:r}=this.data;return r&&r.durationType===zh.LIMIT_DURATION?e+t.sub(1).mul(n).add(r.duration).toNumber():e+t.mul(n).toNumber()}async pollValidate(e){const{blockInfo:t=await Th(e.provider)}=e,{blockTimestamp:n}=t;try{const t=await this.startTimestamp(e);if(t>n)return{result:oh.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${Eh(t)})`};const r=this.endTimestamp(t);return n>=r?{result:oh.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Eh(r)})`}:void 0}catch(e){var r,i;const t=e;return null!=t&&null!=(r=t.message)&&r.includes("Cabinet is not set")?{result:oh.DONT_TRY_AGAIN,reason:`${null==t?void 0:t.message}. User likely removed the order.`}:null!=t&&null!=(i=t.message)&&i.includes("Cabinet epoch out of range")?{result:oh.DONT_TRY_AGAIN,reason:`${null==t?void 0:t.message}`}:{result:oh.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}}}async handlePollFailedAlreadyPresent(e,t,n){const{blockInfo:r=await Th(n.provider)}=n,{blockTimestamp:i}=r,s=this.data.timeBetweenParts.toNumber(),{numberOfParts:a}=this.data,o=await this.startTimestamp(n);if(i<o)return{result:oh.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${o} (${Eh(o)})`,error:void 0};const u=a.mul(s).add(o).toNumber();if(i>=u)return{result:oh.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${u} (${Eh(u)})`,error:void 0};const l=Math.floor((i-o)/s);if(l===a.toNumber()-1)return{result:oh.DONT_TRY_AGAIN,reason:`Current active TWAP part (${l+1}/${a}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const d=o+(l+1)*s;return{result:oh.TRY_AT_EPOCH,epoch:d,reason:`Current active TWAP part (${l+1}/${a}) is already in the Order Book. TWAP part ${l+2} doesn't start until ${d} (${Eh(d)})`}}serialize(){return vh(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Vh,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Uh,Vh,(e,t)=>new Jh({handler:Uh,salt:t,data:Yh(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:n,buyToken:r,numberOfParts:i,startTime:s=Kh,timeBetweenParts:a,durationOfPart:o=Wh,receiver:u,appData:l}=this.data,d=s.startType===jh.AT_MINING_TIME?"AT_MINING_TIME":s.epoch.toNumber(),c=o.durationType===zh.AUTO?"AUTO":o.duration.toNumber(),p={sellAmount:e.toString(),sellToken:t,buyAmount:n.toString(),buyToken:r,numberOfParts:i.toString(),startTime:d,timeBetweenParts:a.toNumber(),durationOfPart:c,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(p)}`}transformDataToStruct(e){return Qh(e)}transformStructToData(e){return Yh(e)}}function Qh(e){const{sellAmount:t,buyAmount:n,numberOfParts:r,startTime:i=Kh,timeBetweenParts:a,durationOfPart:o=Wh}=e,u=W(e,Lh),{partSellAmount:l,minPartLimit:d}=r&&!r.isZero()?{partSellAmount:t.div(r),minPartLimit:n.div(r)}:{partSellAmount:s.Zero,minPartLimit:s.Zero};return K({partSellAmount:l,minPartLimit:d,t0:i.startType===jh.AT_MINING_TIME?s.Zero:i.epoch,n:r,t:a,span:o.durationType===zh.AUTO?s.Zero:o.duration},u)}function Yh(e){const{n:t,partSellAmount:n,minPartLimit:r,t:i,t0:s,span:a,sellToken:o,buyToken:u,receiver:l,appData:d}=e,c=a.isZero()?{durationType:zh.AUTO}:{durationType:zh.LIMIT_DURATION,duration:a},p=s.isZero()?{startType:jh.AT_MINING_TIME}:{startType:jh.AT_EPOCH,epoch:s};return{sellAmount:n.mul(t),buyAmount:r.mul(t),startTime:p,numberOfParts:t,timeBetweenParts:i,durationOfPart:c,sellToken:o,buyToken:u,receiver:l,appData:d}}const Xh={[Uh]:e=>Jh.fromParams(e)};export{nt as $,wp as A,Jp as B,J as C,cd as D,ut as E,Be as F,De as G,hd as H,Fe as I,Ue as J,Ge as K,qe as L,He as M,Ve as N,ze as O,je as P,Ke as Q,dd as R,$e as S,et as T,te as U,ne as V,ie as W,se as X,Me as Y,Re as Z,K as _,Le as a,td as a$,rt as a0,st as a1,at as a2,ot as a3,lt as a4,dt as a5,ct as a6,pt as a7,ht as a8,ft as a9,wh as aA,Ah as aB,Th as aC,Eh as aD,kh as aE,Ch as aF,Rh as aG,Dh as aH,Fh as aI,Xh as aJ,Uh as aK,Gh as aL,qh as aM,Hh as aN,zh as aO,jh as aP,Jh as aQ,Qh as aR,Yh as aS,jd as aT,qd as aU,Hd as aV,Vd as aW,sn as aX,Gt as aY,sd as aZ,ed as a_,mt as aa,yt as ab,gt as ac,bt as ad,vt as ae,wt as af,Q as ag,X as ah,Z as ai,ee as aj,Tt as ak,It as al,St as am,rh as an,ih as ao,sh as ap,_t as aq,ah as ar,oh as as,hh as at,fh as au,mh as av,yh as aw,gh as ax,bh as ay,vh as az,P as b,on as b0,id as b1,an as b2,nd as b3,rd as b4,Zl as b5,xt as b6,tn as b7,Zt as b8,ad as b9,Vl as ba,Gl as bb,ql as bc,Hl as bd,qt as be,ap as bf,dp as bg,cp as bh,pp as bi,B as bj,D as bk,Mt as bl,Rt as bm,Pt as bn,Ot as bo,fe as bp,we as bq,ye as br,ce as bs,le as bt,Te as bu,Ie as bv,be as bw,fd as bx,md as by,O as c,F as d,L as e,U as f,Ad as g,q as h,G as i,H as j,V as k,z as l,j as m,Ed as n,pd as o,Ye as p,Se as q,ke as r,Ce as s,Ne as t,_e as u,xe as v,Xe as w,Ze as x,Pe as y,Oe as z};
|
|
29
|
+
//# sourceMappingURL=index-0091933f.js.map
|