@cowprotocol/cow-sdk 6.0.0-RC.61 → 6.0.0-RC.63
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-3d88c185.js +29 -0
- package/dist/index-3d88c185.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/dist/package.json +1 -2
- package/dist/{utils-0d4cc326.js → utils-031e4b83.js} +1 -1
- package/dist/{utils-0d4cc326.js.map → utils-031e4b83.js.map} +1 -1
- package/dist/{utils-49b326e1.js → utils-9e860989.js} +2 -2
- package/dist/{utils-49b326e1.js.map → utils-9e860989.js.map} +1 -1
- package/dist/{utils-2c8d559c.js → utils-e431cca8.js} +1 -1
- package/dist/{utils-2c8d559c.js.map → utils-e431cca8.js.map} +1 -1
- package/package.json +1 -2
- package/dist/index-7c7289b7.js +0 -29
- package/dist/index-7c7289b7.js.map +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
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,Interface as h,defaultAbiCoder as f,solidityKeccak256 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 x,Contract as N}from"@weiroll/weiroll.js";import{gql as _,request as M}from"graphql-request";import{StandardMerkleTree as R}from"@openzeppelin/merkle-tree";var P,O,B;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(P||(P={}));class D extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeProviderQuoteError"}}class F extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeOrderParsingError"}}function L(e){return"bridge"in e}function U(e){return!L(e)}function G(e){if(!L(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function H(e){if(!U(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function q(e){if(!e)return[];const t=JSON.parse(e);return V(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function V(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}function z(){return z=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},z.apply(this,arguments)}function j(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"}(O||(O={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(B||(B={}));class K extends Error{constructor(e,t){super(e),this.error_code=t}}class W extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=e,this.body=t}}const J=[408,425,429,500,502,503,504],Q={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof W)||J.includes(e.response.status)},Y={tokensPerInterval:5,interval:"second"},X=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 $(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 X(e);return e.status>=200&&e.status<300?t:Promise.reject(new W(e,t))},o)}const Z="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ee="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",te={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${ee}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},ne={[O.MAINNET]:z({},te,{chainId:O.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"}),[O.GNOSIS_CHAIN]:{chainId:O.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${ee}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[O.ARBITRUM_ONE]:z({},te,{chainId:O.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"}),[O.BASE]:z({},te,{chainId:O.BASE,address:"0x4200000000000000000000000000000000000006"}),[O.SEPOLIA]:z({},te,{chainId:O.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"}),[O.POLYGON]:{chainId:O.POLYGON,address:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",decimals:18,name:"Wrapped POL",symbol:"WPOL",logoUrl:`${ee}/137/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270/logo.png`},[O.AVALANCHE]:{chainId:O.AVALANCHE,address:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",decimals:18,name:"Wrapped AVAX",symbol:"WAVAX",logoUrl:`${ee}/43114/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7/logo.png`}},re={address:Z,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${ee}/1/${Z}/logo.png`},ie="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",se=`${ie}/src/chains`,ae=`${se}/images/mainnet-logo.svg`,oe={id:O.MAINNET,label:"Ethereum",nativeCurrency:z({},re,{chainId:O.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:ae,dark:ae},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"}},ue=`${se}/images/gnosis-logo.svg`,le={id:O.GNOSIS_CHAIN,label:"Gnosis Chain",nativeCurrency:z({},re,{chainId:O.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${ee}/100/${Z}/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:ue,dark:ue},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"}]},de=`${se}/images/arbitrum-logo-light.svg`,ce=`${se}/images/arbitrum-logo-dark.svg`,pe={id:O.ARBITRUM_ONE,label:"Arbitrum One",nativeCurrency:z({},re,{chainId:O.ARBITRUM_ONE}),addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:de,dark:ce},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"}]},he=`${se}/images/base-logo.svg`,fe={id:O.BASE,label:"Base",nativeCurrency:z({},re,{chainId:O.BASE}),addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:he,dark:he},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"}]},me=`${se}/images/sepolia-logo.svg`,ye={id:O.SEPOLIA,label:"Sepolia",nativeCurrency:z({},re,{chainId:O.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:me,dark:me},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"}},ge=`${se}/images/avax-logo.svg`,be={id:O.AVALANCHE,label:"Avalanche",logo:{light:ge,dark:ge},nativeCurrency:z({},re,{chainId:O.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:ge}),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"}},ve=`${se}/images/optimism-logo.svg`,we={id:10,label:"Optimism",logo:{light:ve,dark:ve},nativeCurrency:z({},re,{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"}},Ae=`${se}/images/polygon-logo.svg`,Te={id:O.POLYGON,label:"Polygon",logo:{light:Ae,dark:Ae},nativeCurrency:z({},re,{chainId:O.POLYGON,name:"POL",symbol:"POL",logoUrl:Ae}),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"}},Ee={[O.MAINNET]:oe,[O.GNOSIS_CHAIN]:le,[O.ARBITRUM_ONE]:pe,[O.BASE]:fe,[O.AVALANCHE]:be,[O.POLYGON]:Te,[O.SEPOLIA]:ye},Ie=Object.values(Ee),Se=Ie.map(e=>e.id),ke={[B.OPTIMISM]:we},Ce=Ie.concat(Object.values(ke)),xe=Ce.map(e=>e.id);function Ne(e){return Se.reduce((t,n)=>z({},t,{[n]:"function"==typeof e?e(n):e}),{})}function _e(e){return Ne(e)}const Me="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",Re="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Pe="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",Oe="0x00E989b87700514118Fa55326CD1cCE82faebEF6",Be="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",De=_e("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),Fe=_e("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),Le=_e(Re),Ue=_e(Pe),Ge="0xba3cb449bd2b4adddbc894d8697f5170800eadec",He="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",qe=_e(Ge),Ve=_e(He),ze=4294967295;function je(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:n}=t;return z({},e,{validTo:n,owner:e.onchainUser||e.owner,sellToken:Me})}(function(e){const{executedFeeAmount:t,executedFee:n}=e,r=BigInt(t||"0"),i=BigInt(n||"0");return z({},e,{totalFee:String(r+i)})}(e))}let Ke=!1;function We(e){Ke&&console.log(`[COW TRADING SDK] ${e}`)}function Je(e){Ke=e}const Qe=["prod","staging"],Ye={env:"prod",chainId:O.MAINNET},Xe="https://gnosis.mypinata.cloud/ipfs",$e="https://api.pinata.cloud",Ze=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,et={[O.MAINNET]:"https://api.cow.fi/mainnet",[O.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[O.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[O.BASE]:"https://api.cow.fi/base",[O.SEPOLIA]:"https://api.cow.fi/sepolia",[O.POLYGON]:"https://api.cow.fi/polygon",[O.AVALANCHE]:"https://api.cow.fi/avalanche"},tt={[O.MAINNET]:"https://barn.api.cow.fi/mainnet",[O.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[O.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[O.BASE]:"https://barn.api.cow.fi/base",[O.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[O.POLYGON]:"https://barn.api.cow.fi/polygon",[O.AVALANCHE]:"https://barn.api.cow.fi/avalanche"};function nt(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return void 0!==r&&(t[n]=r),t},{})}class rt{constructor(t={}){this.context=z({},Ye,t),this.rateLimiter=new e(t.limiterOpts||Y)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new K("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new K("Must specify either owner or orderId"));const n=new URLSearchParams(nt(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(nt({offset:t.toString(),limit:n.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},r).then(e=>e.map(je))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(je))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>je(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=Qe.filter(e=>e!==n);let i=0;const s=n=>{const a=r[i];return n instanceof W&&404===n.response.status&&a?(i++,this.getOrder(e,z({},t,{env:a})).catch(s)):Promise.reject(n)};return this.getOrder(e,z({},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 z({},this.context,e)}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?et:tt}fetch(t,n={}){const{chainId:r,env:i,backoffOpts:s}=this.getContextWithOverride(n),a=this.getApiBaseUrls(i)[r],o=s||Q,u=n.limiterOpts?new e(n.limiterOpts):this.rateLimiter;return We(`Fetching OrderBook API: ${a}${t.path}. Params: ${JSON.stringify(t,Ze)}`),$(a,t,u,o)}}var it,st,at,ot,ut,lt,dt,ct,pt,ht,ft,mt,yt,gt,bt;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(it||(it={})),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"}(st||(st={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(at||(at={})),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"}(ot||(ot={})),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"}(ut||(ut={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(lt||(lt={})),function(e){e.BUY="buy",e.SELL="sell"}(dt||(dt={})),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"}(ct||(ct={})),function(e){e.BUY="buy"}(pt||(pt={})),function(e){e.SELL="sell"}(ht||(ht={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(ft||(ft={})),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"}(mt||(mt={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(yt||(yt={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(gt||(gt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(bt||(bt={}));const vt=BigInt(1e4);function wt(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:s,buyAmountBeforeNetworkCosts:a,isSell:o,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:d}=At({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 At(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,i=r.kind===dt.SELL,s=Et(r.feeAmount,t),a=Et(r.sellAmount,t),o=Et(r.buyAmount,n),u=o.num/a.num,l=Et(a.big+s.big,t);return{isSell:i,quotePrice:u,networkCostAmount:s,sellAmountBeforeNetworkCosts:a,buyAmountAfterNetworkCosts:o,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:Et(u*l.num,n)}}function Tt(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}=At({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)/vt: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)/vt;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:Et(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 Et(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 It=1800,St={[at.EIP712]:bt.EIP712,[at.ETHSIGN]:bt.ETHSIGN},kt=BigInt(15e4),Ct=()=>import("./utils-9e860989.js");class xt{static async signOrder(e,t,n){const{signOrder:r}=await Ct();return r(e,t,n)}static async signOrderCancellation(e,t,n){const{signOrderCancellation:r}=await Ct();return r(e,t,n)}static async signOrderCancellations(e,t,n){const{signOrderCancellations:r}=await Ct();return r(e,t,n)}static async getDomain(e){const{getDomain:t}=await Ct();return t(e)}static async generateOrderId(e,t,n){const{generateOrderId:r}=await Ct();return r(e,t,n)}static async getDomainSeparator(e){const{getDomain:t}=await Ct(),{_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 Nt(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 _t(e){return Mt(e)?Ee[e]:Rt(e)?ke[e]:void 0}function Mt(e){return e in Ee}function Rt(e){return e in ke}function Pt(e){return Mt(e)||Rt(e)}const Ot=10n**6n,Bt=50,Dt={[O.MAINNET]:200,[O.ARBITRUM_ONE]:50,[O.BASE]:50,[O.GNOSIS_CHAIN]:50,[O.SEPOLIA]:50,[O.POLYGON]:50,[O.AVALANCHE]:50};function Ft(e,t){return t?Dt[e]:Bt}function Lt({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=Ft(e,r),partnerFee:m,validFor:y}=i,g=i.receiver||t,b=i.validTo||Math.floor(Date.now()/1e3)+(y||It),v={sellToken:u,buyToken:d,sellAmount:a,buyAmount:o,receiver:g,validTo:b,kind:p,feeAmount:n,appData:s,partiallyFillable:h},{afterSlippage:w}=Tt({orderParams:v,slippagePercentBps:f,partnerFeeBps:Nt(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:gt.ERC20,buyTokenBalance:it.ERC20}}async function Ut(e,t,n,r){const{orderDigest:i,orderId:s}=await xt.generateOrderId(e,z({},t,{sellTokenBalance:t.sellTokenBalance,buyTokenBalance:t.buyTokenBalance,validTo:ze,sellToken:ne[e].address}),{owner:"staging"===r?He:Ge});return n&&await n(s,i)?(console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+s,{sellAmount:t.sellAmount,fee:t.feeAmount}),Ut(e,function(e){return z({},e,{buyAmount:(BigInt(e.buyAmount)-BigInt(1)).toString()})}(t),n)):s}const Gt=[{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 Ht{static createInterface(){return new n.Interface(Gt)}static connect(e,t){return new r(e,Gt,t)}}Ht.abi=Gt;const qt=[{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 Vt{static createInterface(){return new n.Interface(qt)}static connect(e,t){return new r(e,qt,t)}}Vt.abi=qt;const zt=[{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 jt{static createInterface(){return new n.Interface(zt)}static connect(e,t){return new r(e,zt,t)}}jt.abi=zt;const Kt=[{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 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:"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 Qt{static createInterface(){return new n.Interface(Jt)}static connect(e,t){return new r(e,Jt,t)}}function Yt(e,t){return z({},e,{quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount})}function Xt(e){return e.sellToken.toLowerCase()===Me.toLowerCase()}function $t(e){return e+e*BigInt(20)/BigInt(100)}function Zt(e,t){const{costs:{networkFee:n,partnerFee:r}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return z({},e,{costs:z({},e.costs,{networkFee:z({},n,{amountInSellCurrency:t(n.amountInSellCurrency),amountInBuyCurrency:t(n.amountInBuyCurrency)}),partnerFee:z({},r,{amount:t(r.amount)})}),beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)})}function en({quoteParameters:e,sellToken:t}){return z({},e,{sellToken:t})}function tn(e,t){return z({},t,{sellToken:ne[e].address})}async function nn(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:Ft(r,!0),d=z({},tn(r,n),{slippageBps:l}),{quoteId:c}=d,p=function(e,t){return jt.connect("staging"===t?He:Ge,e)}(e,d.env),h=Lt({chainId:r,isEthFlow:!0,from:u,networkCostsAmount:a},d,t),f=await Ut(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),kt));return{orderId:f,orderToSign:h,transaction:{data:p.interface.encodeFunctionData("createOrder",[m]),gasLimit:"0x"+$t(y).toString(16),to:p.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}}async function rn(e,t,n,r,i={}){const{appDataKeccak256:s,fullAppData:a}=n,{orderId:o,transaction:u,orderToSign:l}=await nn(t,s,r,e.context.chainId,i);We("Uploading app-data"),await e.uploadAppData(s,a),We("Sending on-chain order transaction");const d=await t.sendTransaction(u);return We(`On-chain order transaction sent, txHash: ${d.hash}, order: ${o}`),{txHash:d.hash,orderId:o,orderToSign:l,signature:"",signingScheme:bt.EIP1271}}async function sn(e,t,n,r,i={}){const{networkCostsAmount:s="0",signingScheme:a=bt.EIP712}=i,o=Xt(r);if(o){const s=r.quoteId;if("number"==typeof s)return rn(e,t,n,z({},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=Lt({chainId:p,from:h,networkCostsAmount:s,isEthFlow:o},r,n.appDataKeccak256);We("Signing order...");const{signature:m,signingScheme:y}=await(async()=>{if(a===bt.PRESIGN)return{signature:h,signingScheme:bt.PRESIGN};{const e=await xt.signOrder(f,p,t);return{signature:e.signature,signingScheme:St[e.signingScheme]}}})(),g=z({},f,{from:h,signature:m,signingScheme:y,quoteId:u,appData:c,appDataHash:d});We("Posting order...");const b=await e.sendOrder(g);return We(`Order created, id: ${b}`),{orderId:b,signature:m,signingScheme:y,orderToSign:f}}Qt.abi=Jt;var an="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function on(e){var t={exports:{}};return e(t,t.exports),t.exports}var un={__proto__:null,default:{}},ln=on(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:un.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,x=0|a[6],N=8191&x,_=x>>>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],H=8191&G,q=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,$=0|o[4],Z=8191&$,ee=$>>>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,H))|0)+((8191&(i=(i=Math.imul(c,q))+Math.imul(p,H)|0))<<13)|0;l=((s=Math.imul(p,q))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(f,H),i=(i=Math.imul(f,q))+Math.imul(m,H)|0,s=Math.imul(m,q);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,H),i=(i=Math.imul(g,q))+Math.imul(b,H)|0,s=Math.imul(b,q),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,H),i=(i=Math.imul(w,q))+Math.imul(A,H)|0,s=Math.imul(A,q),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,H),i=(i=Math.imul(E,q))+Math.imul(I,H)|0,s=Math.imul(I,q),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,Z)|0)|0)+((8191&(i=(i=i+Math.imul(c,ee)|0)+Math.imul(p,Z)|0))<<13)|0;l=((s=s+Math.imul(p,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,H),i=(i=Math.imul(k,q))+Math.imul(C,H)|0,s=Math.imul(C,q),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,Z)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,Z)|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(N,H),i=(i=Math.imul(N,q))+Math.imul(_,H)|0,s=Math.imul(_,q),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,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|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,H),i=(i=Math.imul(R,q))+Math.imul(P,H)|0,s=Math.imul(P,q),r=r+Math.imul(N,z)|0,i=(i=i+Math.imul(N,j)|0)+Math.imul(_,z)|0,s=s+Math.imul(_,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,Z)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(A,Z)|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,H),i=(i=Math.imul(B,q))+Math.imul(D,H)|0,s=Math.imul(D,q),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(N,W)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(_,W)|0,s=s+Math.imul(_,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,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(I,Z)|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,H),i=(i=Math.imul(L,q))+Math.imul(U,H)|0,s=Math.imul(U,q),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(N,Y)|0,i=(i=i+Math.imul(N,X)|0)+Math.imul(_,Y)|0,s=s+Math.imul(_,X)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(C,Z)|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(N,Z)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(_,Z)|0,s=s+Math.imul(_,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,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(P,Z)|0,s=s+Math.imul(P,ee)|0,r=r+Math.imul(N,ne)|0,i=(i=i+Math.imul(N,re)|0)+Math.imul(_,ne)|0,s=s+Math.imul(_,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,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|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(N,se)|0,i=(i=i+Math.imul(N,ae)|0)+Math.imul(_,se)|0,s=s+Math.imul(_,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 xe=(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)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,ee))+Math.imul(U,Z)|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(N,ue)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(_,ue)|0,s=s+Math.imul(_,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 Ne=(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)+(Ne>>>26)|0,Ne&=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(N,ce)|0,i=(i=i+Math.imul(N,pe)|0)+Math.imul(_,ce)|0,s=s+Math.imul(_,pe)|0;var _e=(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)+(_e>>>26)|0,_e&=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(N,fe)|0)|0)+((8191&(i=(i=i+Math.imul(N,me)|0)+Math.imul(_,fe)|0))<<13)|0;l=((s=s+Math.imul(_,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]=xe,u[13]=Ne,u[14]=_e,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,an)});let dn=!1,cn=!1;const pn={debug:1,default:2,info:2,warning:3,error:4,off:5};let hn=pn.default,fn=null;const mn=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 yn,gn;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(yn||(yn={})),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"}(gn||(gn={}));const bn="0123456789abcdef";class vn{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==pn[n]&&this.throwArgumentError("invalid log level name","logLevel",e),hn>pn[n]||console.log.apply(console,t)}debug(...e){this._log(vn.levels.DEBUG,e)}info(...e){this._log(vn.levels.INFO,e)}warn(...e){this._log(vn.levels.WARNING,e)}makeError(e,t,n){if(cn)return this.makeError("censored error",t,{});t||(t=vn.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+=bn[t[e]>>4],n+=bn[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 gn.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 gn.CALL_EXCEPTION:case gn.INSUFFICIENT_FUNDS:case gn.MISSING_NEW:case gn.NONCE_EXPIRED:case gn.REPLACEMENT_UNDERPRICED:case gn.TRANSACTION_REPLACED:case gn.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,vn.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){mn&&this.throwError("platform missing String.prototype.normalize",vn.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:mn})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,vn.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,vn.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,n){n=n?": "+n:"",e<t&&this.throwError("missing argument"+n,vn.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+n,vn.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",vn.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",vn.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",vn.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return fn||(fn=new vn("logger/5.8.0")),fn}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",vn.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),dn){if(!e)return;this.globalLogger().throwError("error censorship permanent",vn.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}cn=!!e,dn=!!t}static setLogLevel(e){const t=pn[e.toLowerCase()];null!=t?hn=t:vn.globalLogger().warn("invalid log level - "+e)}static from(e){return new vn(e)}}vn.errors=gn,vn.levels=yn;const wn=new vn("bytes/5.8.0");function An(e){return!!e.toHexString}function Tn(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return Tn(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function En(e){return Nn(e)&&!(e.length%2)||Sn(e)}function In(e){return"number"==typeof e&&e==e&&e%1==0}function Sn(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!In(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!In(n)||n<0||n>=256)return!1}return!0}function kn(e,t){if(t||(t={}),"number"==typeof e){wn.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),Tn(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),An(e)&&(e=e.toHexString()),Nn(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":wn.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 Tn(new Uint8Array(r))}return Sn(e)?Tn(new Uint8Array(e)):wn.throwArgumentError("invalid arrayify value","value",e)}function Cn(e){const t=e.map(e=>kn(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),Tn(r)}function xn(e){let t=kn(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 Nn(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const _n="0123456789abcdef";function Mn(e,t){if(t||(t={}),"number"==typeof e){wn.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=_n[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),An(e))return e.toHexString();if(Nn(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":wn.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Sn(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=_n[(240&r)>>4]+_n[15&r]}return t}return wn.throwArgumentError("invalid hexlify value","value",e)}function Rn(e){if("string"!=typeof e)e=Mn(e);else if(!Nn(e)||e.length%2)return null;return(e.length-2)/2}function Pn(e,t,n){return"string"!=typeof e?e=Mn(e):(!Nn(e)||e.length%2)&&wn.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function On(e){let t="0x";return e.forEach(e=>{t+=Mn(e).substring(2)}),t}function Bn(e){const t=function(e){"string"!=typeof e&&(e=Mn(e)),Nn(e)||wn.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)}(Mn(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Dn(e,t){for("string"!=typeof e?e=Mn(e):Nn(e)||wn.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&wn.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function Fn(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(En(e)){let n=kn(e);64===n.length?(t.v=27+(n[32]>>7),n[32]&=127,t.r=Mn(n.slice(0,32)),t.s=Mn(n.slice(32,64))):65===n.length?(t.r=Mn(n.slice(0,32)),t.s=Mn(n.slice(32,64)),t.v=n[64]):wn.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:wn.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(n[32]|=128),t._vs=Mn(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=kn(e)).length>t&&wn.throwArgumentError("value out of range","value",arguments[0]);const n=new Uint8Array(t);return n.set(e,t-e.length),Tn(n)}(kn(t._vs),32);t._vs=Mn(n);const r=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=r:t.recoveryParam!==r&&wn.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;const i=Mn(n);null==t.s?t.s=i:t.s!==i&&wn.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?wn.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)&&wn.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Nn(t.r)?t.r=Dn(t.r,32):wn.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Nn(t.s)?t.s=Dn(t.s,32):wn.throwArgumentError("signature missing or invalid s","signature",e);const n=kn(t.s);n[0]>=128&&wn.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(n[0]|=128);const r=Mn(n);t._vs&&(Nn(t._vs)||wn.throwArgumentError("signature invalid _vs","signature",e),t._vs=Dn(t._vs,32)),null==t._vs?t._vs=r:t._vs!==r&&wn.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Ln(e){return Mn(Cn([(e=Fn(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const Un="bignumber/5.8.0";var Gn=ln.BN;const Hn=new vn(Un),qn={},Vn=9007199254740991;let zn=!1;class jn{constructor(e,t){e!==qn&&Hn.throwError("cannot call constructor directly; use BigNumber.from",vn.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Wn(Jn(this).fromTwos(e))}toTwos(e){return Wn(Jn(this).toTwos(e))}abs(){return"-"===this._hex[0]?jn.from(this._hex.substring(1)):this}add(e){return Wn(Jn(this).add(Jn(e)))}sub(e){return Wn(Jn(this).sub(Jn(e)))}div(e){return jn.from(e).isZero()&&Qn("division-by-zero","div"),Wn(Jn(this).div(Jn(e)))}mul(e){return Wn(Jn(this).mul(Jn(e)))}mod(e){const t=Jn(e);return t.isNeg()&&Qn("division-by-zero","mod"),Wn(Jn(this).umod(t))}pow(e){const t=Jn(e);return t.isNeg()&&Qn("negative-power","pow"),Wn(Jn(this).pow(t))}and(e){const t=Jn(e);return(this.isNegative()||t.isNeg())&&Qn("unbound-bitwise-result","and"),Wn(Jn(this).and(t))}or(e){const t=Jn(e);return(this.isNegative()||t.isNeg())&&Qn("unbound-bitwise-result","or"),Wn(Jn(this).or(t))}xor(e){const t=Jn(e);return(this.isNegative()||t.isNeg())&&Qn("unbound-bitwise-result","xor"),Wn(Jn(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&Qn("negative-width","mask"),Wn(Jn(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&Qn("negative-width","shl"),Wn(Jn(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&Qn("negative-width","shr"),Wn(Jn(this).shrn(e))}eq(e){return Jn(this).eq(Jn(e))}lt(e){return Jn(this).lt(Jn(e))}lte(e){return Jn(this).lte(Jn(e))}gt(e){return Jn(this).gt(Jn(e))}gte(e){return Jn(this).gte(Jn(e))}isNegative(){return"-"===this._hex[0]}isZero(){return Jn(this).isZero()}toNumber(){try{return Jn(this).toNumber()}catch(e){Qn("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Hn.throwError("this platform does not support BigInt",vn.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?zn||(zn=!0,Hn.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Hn.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",vn.errors.UNEXPECTED_ARGUMENT,{})),Jn(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof jn)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new jn(qn,Kn(e)):e.match(/^-?[0-9]+$/)?new jn(qn,Kn(new Gn(e))):Hn.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&Qn("underflow","BigNumber.from",e),(e>=Vn||e<=-Vn)&&Qn("overflow","BigNumber.from",e),jn.from(String(e));const t=e;if("bigint"==typeof t)return jn.from(t.toString());if(Sn(t))return jn.from(Mn(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return jn.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Nn(e)||"-"===e[0]&&Nn(e.substring(1))))return jn.from(e)}return Hn.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Kn(e){if("string"!=typeof e)return Kn(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Hn.throwArgumentError("invalid hex","value",e),"0x00"===(e=Kn(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 Wn(e){return jn.from(Kn(e))}function Jn(e){const t=jn.from(e).toHexString();return new Gn("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function Qn(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),Hn.throwError(e,vn.errors.NUMERIC_FAULT,r)}const Yn=new vn(Un),Xn={},$n=jn.from(0),Zn=jn.from(-1);function er(e,t,n,r){const i={fault:t,operation:n};return void 0!==r&&(i.value=r),Yn.throwError(e,vn.errors.NUMERIC_FAULT,i)}let tr="0";for(;tr.length<256;)tr+=tr;function nr(e){if("number"!=typeof e)try{e=jn.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+tr.substring(0,e):Yn.throwArgumentError("invalid decimal size","decimals",e)}function rr(e,t){null==t&&(t=0);const n=nr(t),r=(e=jn.from(e)).lt($n);r&&(e=e.mul(Zn));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 ir(e,t){null==t&&(t=0);const n=nr(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||Yn.throwArgumentError("invalid decimal value","value",e);const r="-"===e.substring(0,1);r&&(e=e.substring(1)),"."===e&&Yn.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&Yn.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&&er("fractional component exceeds decimals","underflow","parseFixed"),""===a&&(a="0");a.length<n.length-1;)a+="0";const o=jn.from(s),u=jn.from(a);let l=o.mul(n).add(u);return r&&(l=l.mul(Zn)),l}class sr{constructor(e,t,n,r){e!==Xn&&Yn.throwError("cannot use FixedFormat constructor; use FixedFormat.from",vn.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=nr(r),Object.freeze(this)}static from(e){if(e instanceof sr)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||Yn.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&&Yn.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&&Yn.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",n),r>80&&Yn.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",r),new sr(Xn,t,n,r)}}class ar{constructor(e,t,n,r){e!==Xn&&Yn.throwError("cannot use FixedNumber constructor; use FixedNumber.from",vn.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&&Yn.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=ir(this._value,this.format.decimals),n=ir(e._value,e.format.decimals);return ar.fromValue(t.add(n),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=ir(this._value,this.format.decimals),n=ir(e._value,e.format.decimals);return ar.fromValue(t.sub(n),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=ir(this._value,this.format.decimals),n=ir(e._value,e.format.decimals);return ar.fromValue(t.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=ir(this._value,this.format.decimals),n=ir(e._value,e.format.decimals);return ar.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=ar.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return this.isNegative()&&n&&(t=t.subUnsafe(or.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=ar.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return!this.isNegative()&&n&&(t=t.addUnsafe(or.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)&&Yn.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const n=ar.from("1"+tr.substring(0,e),this.format),r=ur.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&&Yn.throwArgumentError("invalid byte width","width",e),Dn(jn.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return ar.fromString(this._value,e)}static fromValue(e,t,n){return null!=n||null==t||function(e){return null!=e&&(jn.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Nn(e)||"bigint"==typeof e||Sn(e))}(t)||(n=t,t=null),null==t&&(t=0),null==n&&(n="fixed"),ar.fromString(rr(e,t),sr.from(n))}static fromString(e,t){null==t&&(t="fixed");const n=sr.from(t),r=ir(e,n.decimals);!n.signed&&r.lt($n)&&er("unsigned value cannot be negative","overflow","value",e);let i=null;n.signed?i=r.toTwos(n.width).toHexString():(i=r.toHexString(),i=Dn(i,n.width/8));const s=rr(r,n.decimals);return new ar(Xn,i,s,n)}static fromBytes(e,t){null==t&&(t="fixed");const n=sr.from(t);if(kn(e).length>n.width/8)throw new Error("overflow");let r=jn.from(e);n.signed&&(r=r.fromTwos(n.width));const i=r.toTwos((n.signed?0:1)+n.width).toHexString(),s=rr(r,n.decimals);return new ar(Xn,i,s,n)}static from(e,t){if("string"==typeof e)return ar.fromString(e,t);if(Sn(e))return ar.fromBytes(e,t);try{return ar.fromValue(e,0,t)}catch(e){if(e.code!==vn.errors.INVALID_ARGUMENT)throw e}return Yn.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const or=ar.from(1),ur=ar.from("0.5");var lr=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 dr=new vn("properties/5.8.0");function cr(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function pr(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 hr(e){return lr(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 fr(e,t){e&&"object"==typeof e||dr.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(n=>{t[n]||dr.throwArgumentError("invalid object key - "+n,"transaction:"+n,e)})}function mr(e){const t={};for(const n in e)t[n]=e[n];return t}const yr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function gr(e){if(null==e||yr[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(!gr(r))return!1}return!0}return dr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function br(e){if(gr(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>vr(e)));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&cr(t,n,vr(r))}return t}return dr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function vr(e){return br(e)}class wr{constructor(e){for(const t in e)this[t]=vr(e[t])}}const Ar=new vn("abstract-provider/5.8.0");class Tr extends wr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Er{constructor(){Ar.checkAbstract(new.target,Er),cr(this,"_isProvider",!0)}getFeeData(){return e=this,n=function*(){const{block:e,gasPrice:t}=yield hr({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=jn.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 Ir=new vn("networks/5.8.0");function Sr(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 Sr(e)},t}function kr(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return kr(e,t)},n}const Cr={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Sr("homestead")},xr={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Sr("ropsten")},Nr={chainId:63,name:"classicMordor",_defaultProvider:kr("https://www.ethercluster.com/mordor","classicMordor")},_r={unspecified:{chainId:0,name:"unspecified"},homestead:Cr,mainnet:Cr,morden:{chainId:2,name:"morden"},ropsten:xr,testnet:xr,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Sr("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Sr("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Sr("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Sr("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Sr("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:kr("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Nr,classicTestnet:Nr,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:kr("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Sr("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Sr("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Sr("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 Mr(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return kn(t)}function Rr(e){e=kn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}class Pr{constructor(e){cr(this,"alphabet",e),cr(this,"base",e.length),cr(this,"_alphabetMap",{}),cr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=kn(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 kn(new Uint8Array(t.reverse()))}}new Pr("abcdefghijklmnopqrstuvwxyz234567");const Or=new Pr("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Br=/*#__PURE__*/jn.from(-1),Dr=/*#__PURE__*/jn.from(0),Fr=/*#__PURE__*/jn.from(1),Lr=/*#__PURE__*/jn.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Ur=on(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=an: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 _(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new _(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 _(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 _(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 _(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 x=S.name+"_"+k[C];if(E.push(x),T[x]=S.createMethod(k[C],S.padding),"sha3"!==S.name){var N=S.name+k[C];E.push(N),T[N]=T[x]}}function _(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){_.call(this,e,t,n)}_.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},_.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},_.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},_.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},_.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)}},_.prototype.toString=_.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},_.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},_.prototype.buffer=_.prototype.arrayBuffer,_.prototype.digest=_.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 _).finalize=function(){return this.encode(this.outputBits,!0),_.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,x,N,_,M,R,P,O,B,D,F,L,U,G,H,q,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,N=e[20]<<3|e[21]>>>29,_=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,$=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,Z=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,x=e[19]<<20|e[18]>>>12,se=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,H=e[38]<<8|e[39]>>>24,q=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&N,e[11]=k^~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^~N&M,e[13]=x^~_&R,e[22]=F^~U&H,e[23]=L^~G&q,e[32]=W^~Q&X,e[33]=J^~Y&$,e[42]=re^~se&oe,e[43]=ie^~ae&ue,e[4]=v^~A&E,e[5]=w^~T&I,e[14]=N^~M&P,e[15]=_^~R&O,e[24]=U^~H&V,e[25]=G^~q&z,e[34]=Q^~X&Z,e[35]=Y^~$&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]=H^~V&B,e[27]=q^~z&D,e[36]=X^~Z&j,e[37]=$^~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&x,e[28]=V^~B&F,e[29]=z^~D&L,e[38]=Z^~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]]}()}),Gr=Ur;function Hr(e){return"0x"+Gr.keccak_256(kn(e))}const qr=new vn("strings/5.8.0");var Vr,zr;function jr(e,t,n,r,i){if(e===zr.BAD_PREFIX||e===zr.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===zr.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Vr||(Vr={})),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"}(zr||(zr={}));const Kr=Object.freeze({error:function(e,t,n,r,i){return qr.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:jr,replace:function(e,t,n,r,i){return e===zr.OVERLONG?(r.push(i),0):(r.push(65533),jr(e,t,n))}});function Wr(e,t){null==t&&(t=Kr.error),e=kn(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)?zr.UNEXPECTED_CONTINUE:zr.BAD_PREFIX,r-1,e,n);continue}s=3,a=65535}if(r-1+s>=e.length){r+=t(zr.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(zr.MISSING_CONTINUE,r,e,n),o=null;break}o=o<<6|63&i,r++}null!==o&&(o>1114111?r+=t(zr.OUT_OF_RANGE,r-1-s,e,n,o):o>=55296&&o<=57343?r+=t(zr.UTF16_SURROGATE,r-1-s,e,n,o):o<=a?r+=t(zr.OVERLONG,r-1-s,e,n,o):n.push(o))}return n}function Jr(e,t=Vr.current){t!=Vr.current&&(qr.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 kn(n)}function Qr(e,t){return Wr(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function Yr(e){return Hr(Jr(e))}const Xr="hash/5.8.0";function $r(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 Zr(e){return 1&e?~e>>1:e>>1}function ei(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function ti(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=Zr(t());return n}function ni(e,t){let n=ei(e(),e),r=e(),i=ei(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 ri(e,t,n){let r=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)ti(e,n).forEach((e,t)=>r[t].push(e));return r}function ii(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 $r(ri(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 si(e,t){return ri(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const ai=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}})}(Mr("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=="))),oi=new Set(ni(ai)),ui=new Set(ni(ai)),li=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(ii(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(si(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}($r(t))}(ai),di=function(e){let t=ni(e).sort((e,t)=>e-t);return function n(){let r=[];for(;;){let i=ni(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}}()}(ai),ci=45,pi=95;function hi(e){return function(e,t=Vr.current){return Wr(Jr(e,t))}(e)}function fi(e){return e.filter(e=>65039!=e)}function mi(e){for(let t of e.split(".")){let e=hi(t);try{for(let t=e.lastIndexOf(pi)-1;t>=0;t--)if(e[t]!==pi)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===ci&&e[3]===ci)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function yi(e,t){var n;let r,i,s=di,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 gi=new vn(Xr),bi=new Uint8Array(32);function vi(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function wi(e){const t=Jr(function(e){return mi(function(e,t){let n=hi(e).reverse(),r=[];for(;n.length;){let e=yi(n);if(e){r.push(...t(e));continue}let i=n.pop();if(oi.has(i)){r.push(i);continue}if(ui.has(i))continue;let s=li[i];if(!s)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...s)}return mi(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,fi))}(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++)46===t[e]&&(n.push(vi(t.slice(r,e))),r=e+1);if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(vi(t.slice(r))),n}function Ai(e){"string"!=typeof e&&gi.throwArgumentError("invalid ENS name; not a string","name",e);let t=bi;const n=wi(e);for(;n.length;)t=Hr(Cn([t,Hr(n.pop())]));return Mn(t)}bi.fill(0);const Ti=new vn("rlp/5.8.0");function Ei(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Ii(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function Si(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Si(e))}),t.length<=55)return t.unshift(192+t.length),t;const n=Ei(t.length);return n.unshift(247+n.length),n.concat(t)}En(e)||Ti.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(kn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=Ei(t.length);return n.unshift(183+n.length),n.concat(t)}function ki(e){return Mn(Si(e))}function Ci(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&&Ti.throwError("child data too short",vn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function xi(e,t){if(0===e.length&&Ti.throwError("data too short",vn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&Ti.throwError("data short segment too short",vn.errors.BUFFER_OVERRUN,{});const r=Ii(e,t+1,n);return t+1+n+r>e.length&&Ti.throwError("data long segment too short",vn.errors.BUFFER_OVERRUN,{}),Ci(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&Ti.throwError("data array too short",vn.errors.BUFFER_OVERRUN,{}),Ci(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&Ti.throwError("data array too short",vn.errors.BUFFER_OVERRUN,{});const r=Ii(e,t+1,n);return t+1+n+r>e.length&&Ti.throwError("data array too short",vn.errors.BUFFER_OVERRUN,{}),{consumed:1+n+r,result:Mn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;return t+1+n>e.length&&Ti.throwError("data too short",vn.errors.BUFFER_OVERRUN,{}),{consumed:1+n,result:Mn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Mn(e[t])}}function Ni(e){const t=kn(e),n=xi(t,0);return n.consumed!==t.length&&Ti.throwArgumentError("invalid rlp data","data",e),n.result}const _i=new vn("address/5.8.0");function Mi(e){Nn(e,20)||_i.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=kn(Hr(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 Ri={};for(let e=0;e<10;e++)Ri[String(e)]=String(e);for(let e=0;e<26;e++)Ri[String.fromCharCode(65+e)]=String(10+e);const Pi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Oi(e){let t=null;if("string"!=typeof e&&_i.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Mi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&_i.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=>Ri[e]).join("");for(;t.length>=Pi;){let e=t.substring(0,Pi);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)&&_i.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new Gn(n,36).toString(16);t.length<40;)t="0"+t;t=Mi("0x"+t)}else _i.throwArgumentError("invalid address","address",e);var n;return t}function Bi(e){let t=null;try{t=Oi(e.from)}catch(t){_i.throwArgumentError("missing from address","transaction",e)}return Oi(Pn(Hr(ki([t,xn(kn(jn.from(e.nonce).toHexString()))])),12))}const Di=new vn(Xr),Fi=new Uint8Array(32);Fi.fill(0);const Li=jn.from(-1),Ui=jn.from(0),Gi=jn.from(1),Hi=jn.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),qi=Dn(Gi.toHexString(),32),Vi=Dn(Ui.toHexString(),32),zi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},ji=["name","version","chainId","verifyingContract","salt"];function Ki(e){return function(t){return"string"!=typeof t&&Di.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Wi={name:Ki("name"),version:Ki("version"),chainId:function(e){try{return jn.from(e).toString()}catch(e){}return Di.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Oi(e).toLowerCase()}catch(e){}return Di.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=kn(e);if(32!==t.length)throw new Error("bad length");return Mn(t)}catch(e){}return Di.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Ji(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))&&Di.throwArgumentError("invalid numeric width","type",e);const i=Hi.mask(n?r-1:r),s=n?i.add(Gi).mul(Li):Ui;return function(t){const n=jn.from(t);return(n.lt(s)||n.gt(i))&&Di.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Dn(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))&&Di.throwArgumentError("invalid bytes width","type",e),function(t){return kn(t).length!==n&&Di.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=kn(e),n=t.length%32;return n?On([t,Fi.slice(n)]):Mn(t)}(t)}}}switch(e){case"address":return function(e){return Dn(Oi(e),32)};case"bool":return function(e){return e?qi:Vi};case"bytes":return function(e){return Hr(e)};case"string":return function(e){return Yr(e)}}return null}function Qi(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class Yi{constructor(e){cr(this,"types",Object.freeze(vr(e))),cr(this,"_encoderCache",{}),cr(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]&&Di.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&&Di.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),Ji(a)||(n[a]||Di.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?Di.throwArgumentError("missing primary type","types",e):i.length>1&&Di.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),cr(this,"primaryType",i[0]),function i(s,a){a[s]&&Di.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]=Qi(t,e[t])+n.map(t=>Qi(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=Ji(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&&Di.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(Hr)),Hr(On(i))}}const n=this.types[e];if(n){const t=Yr(this._types[e]);return e=>{const r=n.map(({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?Hr(r):r});return r.unshift(t),On(r)}}return Di.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Di.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Hr(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(Ji(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&&Di.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),{}):Di.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Yi(e)}static getPrimaryType(e){return Yi.from(e).primaryType}static hashStruct(e,t,n){return Yi.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=zi[n];r||Di.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort((e,t)=>ji.indexOf(e.name)-ji.indexOf(t.name)),Yi.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return On(["0x1901",Yi.hashDomain(e),Yi.from(t).hash(n)])}static hash(e,t,n){return Hr(Yi.encode(e,t,n))}static resolveNames(e,t,n,r){return i=this,a=function*(){e=mr(e);const i={};e.verifyingContract&&!Nn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const s=Yi.from(t);s.visit(n,(e,t)=>("address"!==e||Nn(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){Yi.hashDomain(e);const r={},i=[];ji.forEach(t=>{const n=e[t];null!=n&&(r[t]=Wi[t](n),i.push({name:t,type:zi[t]}))});const s=Yi.from(t),a=mr(t);return a.EIP712Domain?Di.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 Mn(kn(t));if(e.match(/^u?int/))return jn.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Di.throwArgumentError("invalid string","value",t),t}return Di.throwArgumentError("unsupported type","type",e)})}}}var Xi=$i;function $i(e,t){if(!e)throw new Error(t||"Assertion failed")}function Zi(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function es(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function ts(e){return 1===e.length?"0"+e:e}function ns(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}$i.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var rs={inherits:on(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):Zi(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+=ts(e[n].toString(16));return t},htonl:es,toHex32:function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=es(i)),n+=ns(i.toString(16))}return n},zero2:ts,zero8:ns,join32:function(e,t,n,r){var i=n-t;Xi(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 is(){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 ss=is;is.prototype.update=function(e,t){if(e=rs.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=rs.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},is.prototype.digest=function(e){return this.update(this._pad()),Xi(null===this.pending),this._digest(e)},is.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 as={BlockHash:ss},os=rs.rotr32;function us(e,t,n){return e&t^~e&n}function ls(e,t,n){return e&t^e&n^t&n}var ds=us,cs=ls,ps=rs.rotl32,hs=rs.sum32,fs=rs.sum32_5,ms=function(e,t,n,r){return 0===e?us(t,n,r):1===e||3===e?function(e,t,n){return e^t^n}(t,n,r):2===e?ls(t,n,r):void 0},ys=as.BlockHash,gs=[1518500249,1859775393,2400959708,3395469782];function bs(){if(!(this instanceof bs))return new bs;ys.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}rs.inherits(bs,ys);var vs=bs;bs.blockSize=512,bs.outSize=160,bs.hmacStrength=80,bs.padLength=64,bs.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]=ps(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=fs(ps(i,5),ms(l,s,a,o),u,n[r],gs[l]);u=o,o=a,a=ps(s,30),s=i,i=d}this.h[0]=hs(this.h[0],i),this.h[1]=hs(this.h[1],s),this.h[2]=hs(this.h[2],a),this.h[3]=hs(this.h[3],o),this.h[4]=hs(this.h[4],u)},bs.prototype._digest=function(e){return"hex"===e?rs.toHex32(this.h,"big"):rs.split32(this.h,"big")};var ws=rs.sum32,As=rs.sum32_4,Ts=rs.sum32_5,Es=ds,Is=cs,Ss=function(e){return os(e,2)^os(e,13)^os(e,22)},ks=function(e){return os(e,6)^os(e,11)^os(e,25)},Cs=function(e){return os(e,7)^os(e,18)^e>>>3},xs=function(e){return os(e,17)^os(e,19)^e>>>10},Ns=as.BlockHash,_s=[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 Ms(){if(!(this instanceof Ms))return new Ms;Ns.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=_s,this.W=new Array(64)}rs.inherits(Ms,Ns);var Rs=Ms;function Ps(){if(!(this instanceof Ps))return new Ps;Rs.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Ms.blockSize=512,Ms.outSize=256,Ms.hmacStrength=192,Ms.padLength=64,Ms.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]=As(xs(n[r-2]),n[r-7],Cs(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(Xi(this.k.length===n.length),r=0;r<n.length;r++){var p=Ts(c,ks(u),Es(u,l,d),this.k[r],n[r]),h=ws(Ss(i),Is(i,s,a));c=d,d=l,l=u,u=ws(o,p),o=a,a=s,s=i,i=ws(p,h)}this.h[0]=ws(this.h[0],i),this.h[1]=ws(this.h[1],s),this.h[2]=ws(this.h[2],a),this.h[3]=ws(this.h[3],o),this.h[4]=ws(this.h[4],u),this.h[5]=ws(this.h[5],l),this.h[6]=ws(this.h[6],d),this.h[7]=ws(this.h[7],c)},Ms.prototype._digest=function(e){return"hex"===e?rs.toHex32(this.h,"big"):rs.split32(this.h,"big")},rs.inherits(Ps,Rs);var Os=Ps;Ps.blockSize=512,Ps.outSize=224,Ps.hmacStrength=192,Ps.padLength=64,Ps.prototype._digest=function(e){return"hex"===e?rs.toHex32(this.h.slice(0,7),"big"):rs.split32(this.h.slice(0,7),"big")};var Bs=rs.rotr64_hi,Ds=rs.rotr64_lo,Fs=rs.shr64_hi,Ls=rs.shr64_lo,Us=rs.sum64,Gs=rs.sum64_hi,Hs=rs.sum64_lo,qs=rs.sum64_4_hi,Vs=rs.sum64_4_lo,zs=rs.sum64_5_hi,js=rs.sum64_5_lo,Ks=as.BlockHash,Ws=[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 Js(){if(!(this instanceof Js))return new Js;Ks.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Ws,this.W=new Array(160)}rs.inherits(Js,Ks);var Qs=Js;function Ys(e,t,n,r,i){var s=e&n^~e&i;return s<0&&(s+=4294967296),s}function Xs(e,t,n,r,i,s){var a=t&r^~t&s;return a<0&&(a+=4294967296),a}function $s(e,t,n,r,i){var s=e&n^e&i^n&i;return s<0&&(s+=4294967296),s}function Zs(e,t,n,r,i,s){var a=t&r^t&s^r&s;return a<0&&(a+=4294967296),a}function ea(e,t){var n=Bs(e,t,28)^Bs(t,e,2)^Bs(t,e,7);return n<0&&(n+=4294967296),n}function ta(e,t){var n=Ds(e,t,28)^Ds(t,e,2)^Ds(t,e,7);return n<0&&(n+=4294967296),n}function na(e,t){var n=Bs(e,t,14)^Bs(e,t,18)^Bs(t,e,9);return n<0&&(n+=4294967296),n}function ra(e,t){var n=Ds(e,t,14)^Ds(e,t,18)^Ds(t,e,9);return n<0&&(n+=4294967296),n}function ia(e,t){var n=Bs(e,t,1)^Bs(e,t,8)^Fs(e,t,7);return n<0&&(n+=4294967296),n}function sa(e,t){var n=Ds(e,t,1)^Ds(e,t,8)^Ls(e,t,7);return n<0&&(n+=4294967296),n}function aa(e,t){var n=Bs(e,t,19)^Bs(t,e,29)^Fs(e,t,6);return n<0&&(n+=4294967296),n}function oa(e,t){var n=Ds(e,t,19)^Ds(t,e,29)^Ls(e,t,6);return n<0&&(n+=4294967296),n}function ua(){if(!(this instanceof ua))return new ua;Qs.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Js.blockSize=1024,Js.outSize=512,Js.hmacStrength=192,Js.padLength=128,Js.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=aa(n[r-4],n[r-3]),s=oa(n[r-4],n[r-3]),a=n[r-14],o=n[r-13],u=ia(n[r-30],n[r-29]),l=sa(n[r-30],n[r-29]),d=n[r-32],c=n[r-31];n[r]=qs(i,s,a,o,u,l,d,c),n[r+1]=Vs(i,s,a,o,u,l,d,c)}},Js.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];Xi(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var w=g,A=b,T=na(c,p),E=ra(c,p),I=Ys(c,0,h,0,m),S=Xs(0,p,0,f,0,y),k=this.k[v],C=this.k[v+1],x=n[v],N=n[v+1],_=zs(w,A,T,E,I,S,k,C,x,N),M=js(w,A,T,E,I,S,k,C,x,N);w=ea(r,i),A=ta(r,i),T=$s(r,0,s,0,o),E=Zs(0,i,0,a,0,u);var R=Gs(w,A,T,E),P=Hs(w,A,T,E);g=m,b=y,m=h,y=f,h=c,f=p,c=Gs(l,d,_,M),p=Hs(d,d,_,M),l=o,d=u,o=s,u=a,s=r,a=i,r=Gs(_,M,R,P),i=Hs(_,M,R,P)}Us(this.h,0,r,i),Us(this.h,2,s,a),Us(this.h,4,o,u),Us(this.h,6,l,d),Us(this.h,8,c,p),Us(this.h,10,h,f),Us(this.h,12,m,y),Us(this.h,14,g,b)},Js.prototype._digest=function(e){return"hex"===e?rs.toHex32(this.h,"big"):rs.split32(this.h,"big")},rs.inherits(ua,Qs);var la=ua;ua.blockSize=1024,ua.outSize=384,ua.hmacStrength=192,ua.padLength=128,ua.prototype._digest=function(e){return"hex"===e?rs.toHex32(this.h.slice(0,12),"big"):rs.split32(this.h.slice(0,12),"big")};var da={sha1:vs,sha224:Os,sha256:Rs,sha384:la,sha512:Qs},ca=rs.rotl32,pa=rs.sum32,ha=rs.sum32_3,fa=rs.sum32_4,ma=as.BlockHash;function ya(){if(!(this instanceof ya))return new ya;ma.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}rs.inherits(ya,ma);var ga=ya;function ba(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 va(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function wa(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ya.blockSize=512,ya.outSize=160,ya.hmacStrength=192,ya.padLength=64,ya.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=pa(ca(fa(n,ba(p,r,i,s),e[Aa[p]+t],va(p)),Ea[p]),a);n=a,a=s,s=ca(i,10),i=r,r=h,h=pa(ca(fa(o,ba(79-p,u,l,d),e[Ta[p]+t],wa(p)),Ia[p]),c),o=c,c=d,d=ca(l,10),l=u,u=h}h=ha(this.h[1],i,d),this.h[1]=ha(this.h[2],s,c),this.h[2]=ha(this.h[3],a,o),this.h[3]=ha(this.h[4],n,u),this.h[4]=ha(this.h[0],r,l),this.h[0]=h},ya.prototype._digest=function(e){return"hex"===e?rs.toHex32(this.h,"little"):rs.split32(this.h,"little")};var Aa=[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],Ta=[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],Ea=[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],Ia=[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],Sa={ripemd160:ga};function ka(e,t,n){if(!(this instanceof ka))return new ka(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(rs.toArray(t,n))}var Ca=ka;ka.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Xi(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)},ka.prototype.update=function(e,t){return this.inner.update(e,t),this},ka.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var xa,Na=on(function(e,t){var n=t;n.utils=rs,n.common=as,n.sha=da,n.ripemd=Sa,n.hmac=Ca,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}),_a=Na;!function(e){e.sha256="sha256",e.sha512="sha512"}(xa||(xa={}));const Ma=new vn("sha2/5.8.0");function Ra(e){return"0x"+_a.sha256().update(kn(e)).digest("hex")}function Pa(e,t,n){return xa[e]||Ma.throwError("unsupported algorithm "+e,vn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+_a.hmac(_a[e],kn(t)).update(kn(n)).digest("hex")}var Oa=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 Ba(e,t){return Oa(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:kn(new Uint8Array(i))}})}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())})};const Fa=new vn("web/5.8.0");function La(e){return new Promise(t=>{setTimeout(t,e)})}function Ua(e,t){if(null==e)return null;if("string"==typeof e)return e;if(En(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Qr(e)}catch(e){}return Mn(e)}return e}function Ga(e,t,n){let r=null;if(null!=t){r=Jr(t);const n="string"==typeof e?{url:e}:mr(e);n.headers?0!==Object.keys(n.headers).filter(e=>"content-type"===e.toLowerCase()).length||(n.headers=mr(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;Fa.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;Fa.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||Fa.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&&Fa.throwError("basic authentication requires a secure https url",vn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),o.authorization={key:"Authorization",value:"Basic "+Rr(Jr(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=mr(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]?Mr(h[3]):(f=h[3],Jr(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){Fa.throwError("processing response error",vn.errors.SERVER_ERROR,{body:Ua(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(Fa.makeError("timeout",vn.errors.TIMEOUT,{requestBody:Ua(l.body,m["content-type"]),requestMethod:l.method,timeout:c,url:u})))},c))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return Da(this,void 0,void 0,function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield Ba(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 La(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Fa.throwError("missing response",vn.errors.SERVER_ERROR,{requestBody:Ua(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(),Fa.throwError("bad response",vn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:Ua(o,t.headers?t.headers["content-type"]:null),requestBody:Ua(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 La(t);continue}}y.cancel(),Fa.throwError("processing response error",vn.errors.SERVER_ERROR,{body:Ua(o,t.headers?t.headers["content-type"]:null),error:n,requestBody:Ua(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),o}return Fa.throwError("failed response",vn.errors.SERVER_ERROR,{requestBody:Ua(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(Qr(e))}catch(t){Fa.throwError("invalid JSON",vn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r})}function Ha(e,t){return t||(t={}),null==(t=mr(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 qa="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Va={},za=0;za<qa.length;za++){var ja=qa.charAt(za);if(void 0!==Va[ja])throw new TypeError(ja+" is ambiguous");Va[ja]=za}function Ka(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 Wa="providers/5.8.0";function Ja(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 Qa=Ya;function Ya(e,t){if(!e)throw new Error(t||"Assertion failed")}Ya.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var Xa=Ja(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}}),$a=Ja(function(e,t){var n=t;n.assert=Qa,n.toArray=Xa.toArray,n.zero2=Xa.zero2,n.toHex=Xa.toHex,n.encode=Xa.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 ln(e,"hex","le")}}),Za=$a.getNAF,eo=$a.getJSF,to=$a.assert;function no(e,t){this.type=e,this.p=new ln(t.p,16),this.red=t.prime?ln.red(t.prime):ln.mont(this.p),this.zero=new ln(0).toRed(this.red),this.one=new ln(1).toRed(this.red),this.two=new ln(2).toRed(this.red),this.n=t.n&&new ln(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 ro=no;function io(e,t){this.curve=e,this.type=t,this.precomputed=null}no.prototype.point=function(){throw new Error("Not implemented")},no.prototype.validate=function(){throw new Error("Not implemented")},no.prototype._fixedNafMul=function(e,t){to(e.precomputed);var n=e._getDoubles(),r=Za(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()},no.prototype._wnafMul=function(e,t){for(var n=4,r=e._getNAFPoints(n),i=r.points,s=Za(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];to(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},no.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=eo(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]=Za(n[h],u[h],this._bitLength),d[f]=Za(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()},no.BasePoint=io,io.prototype.eq=function(){throw new Error("Not implemented")},io.prototype.validate=function(){return this.curve.validate(this)},no.prototype.decodePoint=function(e,t){e=$a.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]?to(e[e.length-1]%2==0):7===e[0]&&to(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")},io.prototype.encodeCompressed=function(e){return this.encode(e,!0)},io.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))},io.prototype.encode=function(e,t){return $a.encode(this._encode(t),e)},io.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},io.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)},io.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}},io.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}},io.prototype._getBeta=function(){return null},io.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var so=Ja(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}}}),ao=$a.assert;function oo(e){ro.call(this,"short",e),this.a=new ln(e.a,16).toRed(this.red),this.b=new ln(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)}so(oo,ro);var uo=oo;function lo(e,t,n,r){ro.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new ln(t,16),this.y=new ln(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 co(e,t,n,r){ro.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new ln(0)):(this.x=new ln(t,16),this.y=new ln(n,16),this.z=new ln(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}oo.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new ln(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 ln(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]:ao(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 ln(e.a,16),b:new ln(e.b,16)}}):this._getEndoBasis(n)}}},oo.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:ln.mont(e),n=new ln(2).toRed(t).redInvm(),r=n.redNeg(),i=new ln(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},oo.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 ln(1),f=new ln(0),m=new ln(0),y=new ln(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}]},oo.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()}},oo.prototype.pointFromX=function(e,t){(e=new ln(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)},oo.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)},oo.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},so(lo,ro.BasePoint),oo.prototype.point=function(e,t,n){return new lo(this,e,t,n)},oo.prototype.pointFromJSON=function(e,t){return lo.fromJSON(this,e,t)},lo.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}},lo.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]},lo.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},lo.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)+">"},lo.prototype.isInfinity=function(){return this.inf},lo.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)},lo.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)},lo.prototype.getX=function(){return this.x.fromRed()},lo.prototype.getY=function(){return this.y.fromRed()},lo.prototype.mul=function(e){return e=new ln(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)},lo.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)},lo.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)},lo.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))},lo.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},lo.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},so(co,ro.BasePoint),oo.prototype.jpoint=function(e,t,n){return new co(this,e,t,n)},co.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)},co.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},co.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)},co.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)},co.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)},co.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},co.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)},co.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)},co.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)},co.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)},co.prototype.mul=function(e,t){return e=new ln(e,t),this.curve._wnafMul(this,e)},co.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)},co.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}},co.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)+">"},co.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var po=Ja(function(e,t){var n=t;n.base=ro,n.short=uo,n.mont=null,n.edwards=null}),ho=Ja(function(e,t){var n,r=t,i=$a.assert;function s(e){this.curve="short"===e.type?new po.short(e):"edwards"===e.type?new po.edwards(e):new po.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:_a.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:_a.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:_a.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:_a.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:_a.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:_a.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:_a.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:_a.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})});function fo(e){if(!(this instanceof fo))return new fo(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=Xa.toArray(e.entropy,e.entropyEnc||"hex"),n=Xa.toArray(e.nonce,e.nonceEnc||"hex"),r=Xa.toArray(e.pers,e.persEnc||"hex");Qa(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var mo=fo;fo.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},fo.prototype._hmac=function(){return new _a.hmac(this.hash,this.K)},fo.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())},fo.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=Xa.toArray(e,t),n=Xa.toArray(n,r),Qa(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},fo.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=Xa.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++,Xa.encode(s,t)};var yo=$a.assert;function go(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 bo=go;go.fromPublic=function(e,t,n){return t instanceof go?t:new go(e,{pub:t,pubEnc:n})},go.fromPrivate=function(e,t,n){return t instanceof go?t:new go(e,{priv:t,privEnc:n})},go.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"}},go.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},go.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},go.prototype._importPrivate=function(e,t){this.priv=new ln(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},go.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?yo(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||yo(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)},go.prototype.derive=function(e){return e.validate()||yo(e.validate(),"public point not validated"),e.mul(this.priv).getX()},go.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},go.prototype.verify=function(e,t,n){return this.ec.verify(e,t,this,void 0,n)},go.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var vo=$a.assert;function wo(e,t){if(e instanceof wo)return e;this._importDER(e,t)||(vo(e.r&&e.s,"Signature without r or s"),this.r=new ln(e.r,16),this.s=new ln(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var Ao=wo;function To(){this.place=0}function Eo(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 Io(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 So(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)}}wo.prototype._importDER=function(e,t){e=$a.toArray(e,t);var n=new To;if(48!==e[n.place++])return!1;var r=Eo(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=Eo(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=Eo(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 ln(s),this.s=new ln(o),this.recoveryParam=null,!0},wo.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=Io(t),n=Io(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];So(r,t.length),(r=r.concat(t)).push(2),So(r,n.length);var i=r.concat(n),s=[48];return So(s,i.length),s=s.concat(i),$a.encode(s,e)};var ko=function(){throw new Error("unsupported")},Co=$a.assert;function xo(e){if(!(this instanceof xo))return new xo(e);"string"==typeof e&&(Co(Object.prototype.hasOwnProperty.call(ho,e),"Unknown curve "+e),e=ho[e]),e instanceof ho.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 No=xo;xo.prototype.keyPair=function(e){return new bo(this,e)},xo.prototype.keyFromPrivate=function(e,t){return bo.fromPrivate(this,e,t)},xo.prototype.keyFromPublic=function(e,t){return bo.fromPublic(this,e,t)},xo.prototype.genKeyPair=function(e){e||(e={});for(var t=new mo({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||ko(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new ln(2));;){var i=new ln(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(ln.isBN(e)||"number"==typeof e)r=(e=new ln(e,16)).byteLength();else if("object"==typeof e)r=e.length,e=new ln(e,16);else{var i=e.toString();r=i.length+1>>>1,e=new ln(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&&!ln.isBN(e)){Co("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Co(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Co((255&e[i])===e[i])}t=this.keyFromPrivate(t,n),e=this._truncateToN(e,!1,r.msgBitLength),Co(!e.isNeg(),"Can not sign a negative message");var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),o=e.toArray("be",s);Co(new ln(o).eq(e),"Can not sign message");for(var u=new mo({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),l=this.n.sub(new ln(1)),d=0;;d++){var c=r.k?r.k(d):new ln(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 Ao({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 Ao(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){Co((3&n)===n,"The recovery param is more than two bits"),t=new Ao(t,r);var i=this.n,s=new ln(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 Ao(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 _o=Ja(function(e,t){var n=t;n.version="6.6.1",n.utils=$a,n.rand=function(){throw new Error("unsupported")},n.curve=po,n.curves=ho,n.ec=No,n.eddsa=null}).ec;const Mo=new vn("signing-key/5.8.0");let Ro=null;function Po(){return Ro||(Ro=new _o("secp256k1")),Ro}class Oo{constructor(e){cr(this,"curve","secp256k1"),cr(this,"privateKey",Mn(e)),32!==Rn(this.privateKey)&&Mo.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Po().keyFromPrivate(kn(this.privateKey));cr(this,"publicKey","0x"+t.getPublic(!1,"hex")),cr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),cr(this,"_isSigningKey",!0)}_addPoint(e){const t=Po().keyFromPublic(kn(this.publicKey)),n=Po().keyFromPublic(kn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Po().keyFromPrivate(kn(this.privateKey)),n=kn(e);32!==n.length&&Mo.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Fn({recoveryParam:r.recoveryParam,r:Dn("0x"+r.r.toString(16),32),s:Dn("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Po().keyFromPrivate(kn(this.privateKey)),n=Po().keyFromPublic(kn(Bo(e)));return Dn("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Bo(e,t){const n=kn(e);if(32===n.length){const e=new Oo(n);return t?"0x"+Po().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Mn(n):"0x"+Po().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Po().keyFromPublic(n).getPublic(!0,"hex"):Mn(n):Mo.throwArgumentError("invalid public or private key","key","[REDACTED]")}const Do=new vn("transactions/5.8.0");var Fo;function Lo(e){return"0x"===e?null:Oi(e)}function Uo(e){return"0x"===e?Dr:jn.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Fo||(Fo={}));const Go=[{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"}],Ho={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function qo(e){return Oi(Pn(Hr(Pn(Bo(e),1)),12))}function Vo(e,t){return qo(function(e,t){const n=Fn(t),r={r:kn(n.r),s:kn(n.s)};return"0x"+Po().recoverPubKey(kn(e),r,n.recoveryParam).encode("hex",!1)}(kn(e),t))}function zo(e,t){const n=xn(jn.from(e).toHexString());return n.length>32&&Do.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function jo(e,t){return{address:Oi(e),storageKeys:(t||[]).map((t,n)=>(32!==Rn(t)&&Do.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase()))}}function Ko(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&Do.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),jo(e[0],e[1])):jo(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const n=e[t].reduce((e,t)=>(e[t]=!0,e),{});return jo(t,Object.keys(n).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function Wo(e){return Ko(e).map(e=>[e.address,e.storageKeys])}function Jo(e,t){if(null!=e.gasPrice){const t=jn.from(e.gasPrice),n=jn.from(e.maxFeePerGas||0);t.eq(n)||Do.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[zo(e.chainId||0,"chainId"),zo(e.nonce||0,"nonce"),zo(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),zo(e.maxFeePerGas||0,"maxFeePerGas"),zo(e.gasLimit||0,"gasLimit"),null!=e.to?Oi(e.to):"0x",zo(e.value||0,"value"),e.data||"0x",Wo(e.accessList||[])];if(t){const e=Fn(t);n.push(zo(e.recoveryParam,"recoveryParam")),n.push(xn(e.r)),n.push(xn(e.s))}return On(["0x02",ki(n)])}function Qo(e,t){const n=[zo(e.chainId||0,"chainId"),zo(e.nonce||0,"nonce"),zo(e.gasPrice||0,"gasPrice"),zo(e.gasLimit||0,"gasLimit"),null!=e.to?Oi(e.to):"0x",zo(e.value||0,"value"),e.data||"0x",Wo(e.accessList||[])];if(t){const e=Fn(t);n.push(zo(e.recoveryParam,"recoveryParam")),n.push(xn(e.r)),n.push(xn(e.s))}return On(["0x01",ki(n)])}function Yo(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Do.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){fr(e,Ho);const n=[];Go.forEach(function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=kn(Mn(r,i)),t.length&&r.length!==t.length&&r.length>0&&Do.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=xn(r),r.length>t.maxLength&&Do.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Mn(r))});let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&Do.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!En(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Mn(r)),n.push("0x"),n.push("0x")),!t)return ki(n);const i=Fn(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&&Do.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==s&&Do.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Mn(s)),n.push(xn(kn(i.r))),n.push(xn(kn(i.s))),ki(n)}(e,t);switch(e.type){case 1:return Qo(e,t);case 2:return Jo(e,t)}return Do.throwError(`unsupported transaction type: ${e.type}`,vn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function Xo(e,t,n){try{const n=Uo(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){Do.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Dn(t[1],32),e.s=Dn(t[2],32);try{const t=Hr(n(e));e.from=Vo(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const $o=new vn(Wa);class Zo{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:Zo.allowNull(this.accessList.bind(this),null),blockHash:Zo.allowNull(s,null),blockNumber:Zo.allowNull(o,null),transactionIndex:Zo.allowNull(o,null),confirmations:Zo.allowNull(o,null),from:t,gasPrice:Zo.allowNull(n),maxPriorityFeePerGas:Zo.allowNull(n),maxFeePerGas:Zo.allowNull(n),gasLimit:n,to:Zo.allowNull(t,null),value:n,nonce:o,data:i,r:Zo.allowNull(this.uint256),s:Zo.allowNull(this.uint256),v:Zo.allowNull(o),creates:Zo.allowNull(t,null),raw:Zo.allowNull(i)},e.transactionRequest={from:Zo.allowNull(t),nonce:Zo.allowNull(o),gasLimit:Zo.allowNull(n),gasPrice:Zo.allowNull(n),maxPriorityFeePerGas:Zo.allowNull(n),maxFeePerGas:Zo.allowNull(n),to:Zo.allowNull(t),value:Zo.allowNull(n),data:Zo.allowNull(e=>this.data(e,!0)),type:Zo.allowNull(o),accessList:Zo.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:o,blockNumber:o,transactionHash:s,address:t,topics:Zo.arrayOf(s),data:i,logIndex:o,blockHash:s},e.receipt={to:Zo.allowNull(this.address,null),from:Zo.allowNull(this.address,null),contractAddress:Zo.allowNull(t,null),transactionIndex:o,root:Zo.allowNull(a),gasUsed:n,logsBloom:Zo.allowNull(i),blockHash:s,transactionHash:s,logs:Zo.arrayOf(this.receiptLog.bind(this)),blockNumber:o,confirmations:Zo.allowNull(o,null),cumulativeGasUsed:n,effectiveGasPrice:Zo.allowNull(n),status:Zo.allowNull(o),type:u},e.block={hash:Zo.allowNull(s),parentHash:s,number:o,timestamp:o,nonce:Zo.allowNull(a),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:Zo.allowNull(t),extraData:i,transactions:Zo.allowNull(Zo.arrayOf(s)),baseFeePerGas:Zo.allowNull(n)},e.blockWithTransactions=mr(e.block),e.blockWithTransactions.transactions=Zo.allowNull(Zo.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:Zo.allowNull(r,void 0),toBlock:Zo.allowNull(r,void 0),blockHash:Zo.allowNull(s,void 0),address:Zo.allowNull(t,void 0),topics:Zo.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:Zo.allowNull(o),blockHash:Zo.allowNull(s),transactionIndex:o,removed:Zo.allowNull(this.boolean.bind(this)),address:t,data:Zo.allowFalsish(i,"0x"),topics:Zo.arrayOf(s),transactionHash:s,logIndex:o},e}accessList(e){return Ko(e||[])}number(e){return"0x"===e?0:jn.from(e).toNumber()}type(e){return"0x"===e||null==e?0:jn.from(e).toNumber()}bigNumber(e){return jn.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),Nn(e))?e.toLowerCase():$o.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 Oi(e)}callAddress(e){if(!Nn(e,32))return null;const t=Oi(Pn(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Bi(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||Nn(e))return Bn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==Rn(n)?$o.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=jn.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Nn(e))throw new Error("invalid uint256");return Dn(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=Zo.check(t,e);return r._difficulty=null==n?null:jn.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return Zo.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&jn.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=Zo.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;Nn(n)&&(n=jn.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),Nn(n)&&(n=jn.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=kn(e);if(t[0]>127)return function(e){const t=Ni(e);9!==t.length&&6!==t.length&&Do.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:Uo(t[0]).toNumber(),gasPrice:Uo(t[1]),gasLimit:Uo(t[2]),to:Lo(t[3]),value:Uo(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=jn.from(t[6]).toNumber()}catch(e){return n}if(n.r=Dn(t[7],32),n.s=Dn(t[8],32),jn.from(n.r).isZero()&&jn.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(Mn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const s=Hr(ki(i));try{n.from=Vo(s,{r:Mn(n.r),s:Mn(n.s),recoveryParam:r})}catch(e){}n.hash=Hr(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Ni(e.slice(1));8!==t.length&&11!==t.length&&Do.throwArgumentError("invalid component count for transaction type: 1","payload",Mn(e));const n={type:1,chainId:Uo(t[0]).toNumber(),nonce:Uo(t[1]).toNumber(),gasPrice:Uo(t[2]),gasLimit:Uo(t[3]),to:Lo(t[4]),value:Uo(t[5]),data:t[6],accessList:Ko(t[7])};return 8===t.length||(n.hash=Hr(e),Xo(n,t.slice(8),Qo)),n}(t);case 2:return function(e){const t=Ni(e.slice(1));9!==t.length&&12!==t.length&&Do.throwArgumentError("invalid component count for transaction type: 2","payload",Mn(e));const n=Uo(t[2]),r=Uo(t[3]),i={type:2,chainId:Uo(t[0]).toNumber(),nonce:Uo(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:Uo(t[4]),to:Lo(t[5]),value:Uo(t[6]),data:t[7],accessList:Ko(t[8])};return 9===t.length||(i.hash=Hr(e),Xo(i,t.slice(9),Jo)),i}(t)}return Do.throwError(`unsupported transaction type: ${t[0]}`,vn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return Zo.check(this.formats.receiptLog,e)}receipt(e){const t=Zo.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=jn.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&$o.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):$o.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&$o.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 Zo.check(this.formats.filter,e)}filterLog(e){return Zo.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 eu=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 tu=new vn(Wa);function nu(e){return null==e?"null":(32!==Rn(e)&&tu.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function ru(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[nu(e)]=!0});const n=Object.keys(t);return n.sort(),n.join("|")}return nu(e)}).join("&")}function iu(e){if("string"==typeof e){if(32===Rn(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+ru(e);if(Tr.isForkEvent(e))throw tu.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+ru(e.topics||[])}throw new Error("invalid event - "+e)}function su(){return(new Date).getTime()}function au(e){return new Promise(t=>{setTimeout(t,e)})}const ou=["block","network","pending","poll"];class uu{constructor(e,t,n){cr(this,"tag",e),cr(this,"listener",t),cr(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||ou.indexOf(this.tag)>=0}}const lu={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 du(e){return Dn(jn.from(e).toHexString(),32)}function cu(e){return Or.encode(Cn([e,Pn(Ra(Ra(e)),0,4)]))}const pu=new RegExp("^(ipfs)://(.*)$","i"),hu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),pu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function fu(e,t){try{return Qr(mu(e,t))}catch(e){}return null}function mu(e,t){if("0x"===e)return null;const n=jn.from(Pn(e,t,t+32)).toNumber(),r=jn.from(Pn(e,n,n+32)).toNumber();return Pn(e,n+32,n+32+r)}function yu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):tu.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function gu(e){const t=kn(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 bu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function vu(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=kn(e[r]);t[r]=gu(n),t.push(gu(i.length)),t.push(bu(i)),n+=32+32*Math.ceil(i.length/32)}return On(t)}class wu{constructor(e,t,n,r){cr(this,"provider",e),cr(this,"name",n),cr(this,"address",e.formatter.address(t)),cr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>jn.from(e).eq(1)).catch(e=>{if(e.code===vn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return eu(this,void 0,void 0,function*(){const n={to:this.address,ccipReadEnabled:!0,data:On([e,Ai(this.name),t||"0x"])};let r=!1;var i;(yield this.supportsWildcard())&&(r=!0,n.data=On(["0x9061b923",vu([(i=this.name,Mn(Cn(wi(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 kn(e).length%32==4&&tu.throwError("resolver threw error",vn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=mu(e,0)),e}catch(e){if(e.code===vn.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return eu(this,void 0,void 0,function*(){const n=yield this._fetch(e,t);return null!=n?mu(n,0):null})}_getAddress(e,t){const n=lu[String(e)];if(null==n&&tu.throwError(`unsupported coin type: ${e}`,vn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=kn(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 cu(Cn([[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 cu(Cn([[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=Ka(t)^r>>5}for(t=Ka(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=Ka(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=Ka(r)^a,i+=qa.charAt(a)}for(s=0;s<6;++s)r=Ka(r);for(r^=1,s=0;s<6;++s)i+=qa.charAt(r>>5*(5-s)&31);return i}(n.prefix,e)}}return null}getAddress(e){return eu(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===vn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",du(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&tu.throwError("invalid or unsupported coin data",vn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n})}getAvatar(){return eu(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<hu.length;n++){const r=t.match(hu[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:yu(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=Dn(jn.from(a[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:o,data:On(["0x6352211e",u])}));if(s!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=jn.from(yield this.provider.call({to:o,data:On(["0x00fdd58e",Dn(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:On([n,u])};let d=fu(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=yu(d)),e.push({type:"metadata-url",content:d});const c=yield Ga(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(pu))return null;e.push({type:"url-ipfs",content:p}),p=yu(p)}return e.push({type:"url",content:p}),{linkage:e,url:p}}}}}catch(e){}return null})}getContentHash(){return eu(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://"+Or.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://"+Or.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://"+Rr("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return tu.throwError("invalid or unsupported content hash data",vn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return eu(this,void 0,void 0,function*(){let t=Jr(e);t=Cn([du(64),du(t.length),t]),t.length%32!=0&&(t=Cn([t,Dn("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Mn(t));return null==n||"0x"===n?null:Qr(n)})}}let Au=null,Tu=1;class Eu extends Er{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),cr(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=pr(new.target,"getNetwork")(e);t?(cr(this,"_network",t),this.emit("network",t,null)):tu.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return eu(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||tu.throwError("no network detected",vn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:cr(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Ha(()=>this._ready().then(e=>e,e=>{if(e.code!==vn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==Au&&(Au=new Zo),Au}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in _r){const n=_r[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=_r[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=_r[e.name];if(!t)return"number"!=typeof e.chainId&&Ir.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Ir.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 eu(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 Ga({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 tu.throwError(`response not found during CCIP fetch: ${l}`,vn.errors.SERVER_ERROR,{url:t,errorMessage:l});s.push(l)}return tu.throwError(`error encountered during CCIP fetch: ${s.map(e=>JSON.stringify(e)).join(", ")}`,vn.errors.SERVER_ERROR,{urls:n,errorMessages:s})})}_getInternalBlockNumber(e){return eu(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(su()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=su(),n=hr({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=su();return(e=jn.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 eu(this,void 0,void 0,function*(){const e=Tu++,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)tu.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",tu.makeError("network block skew detected",vn.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 eu(this,void 0,void 0,function*(){return tu.throwError("provider does not support network detection",vn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return eu(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 au(0),this._network;const n=tu.makeError("underlying network changed",vn.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=su();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=su(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return eu(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)})}_waitForTransaction(e,t,n,r){return eu(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=>eu(this,void 0,void 0,function*(){o||(yield au(1e3),this.getTransactionCount(r.from).then(d=>eu(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(tu.makeError("transaction was replaced",vn.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(tu.makeError("timeout exceeded",vn.errors.TIMEOUT,{timeout:n}))},n);e.unref&&e.unref(),a.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return eu(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return eu(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return jn.from(e)}catch(t){return tu.throwError("bad result from backend",vn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return eu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield hr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return jn.from(r)}catch(e){return tu.throwError("bad result from backend",vn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}})}getTransactionCount(e,t){return eu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield hr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return jn.from(r).toNumber()}catch(e){return tu.throwError("bad result from backend",vn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}})}getCode(e,t){return eu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield hr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Mn(r)}catch(e){return tu.throwError("bad result from backend",vn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}})}getStorageAt(e,t,n){return eu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield hr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then(e=>Bn(e))}),i=yield this.perform("getStorageAt",r);try{return Mn(i)}catch(e){return tu.throwError("bad result from backend",vn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}})}_wrapTransaction(e,t,n){if(null!=t&&32!==Rn(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&tu.throwError("Transaction hash mismatch from Provider.sendTransaction.",vn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>eu(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&&tu.throwError("transaction failed",vn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:s}),s)}),r}sendTransaction(e){return eu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Mn(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 eu(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?jn.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?Mn(e):null))}),this.formatter.transactionRequest(yield hr(n))})}_getFilter(e){return eu(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 hr(t))})}_call(e,t,n){return eu(this,void 0,void 0,function*(){n>=10&&tu.throwError("CCIP read exceeded maximum redirections",vn.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)&&Rn(i)%32==4)try{const s=Pn(i,4),a=Pn(s,0,32);jn.from(a).eq(r)||tu.throwError("CCIP Read sender did not match",vn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const o=[],u=jn.from(Pn(s,32,64)).toNumber(),l=jn.from(Pn(s,u,u+32)).toNumber(),d=Pn(s,u+32);for(let t=0;t<l;t++){const n=fu(d,32*t);null==n&&tu.throwError("CCIP Read contained corrupt URL string",vn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),o.push(n)}const c=mu(s,64);jn.from(Pn(s,100,128)).isZero()||tu.throwError("CCIP Read callback selector included junk",vn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const p=Pn(s,96,100),h=mu(s,128),f=yield this.ccipReadFetch(e,c,o);null==f&&tu.throwError("CCIP Read disabled or provided no URLs",vn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:On([p,vu([f,h])])};return this._call(m,t,n+1)}catch(e){if(e.code===vn.errors.SERVER_ERROR)throw e}try{return Mn(i)}catch(n){return tu.throwError("bad result from backend",vn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}})}call(e,t){return eu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield hr({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 eu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield hr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return jn.from(n)}catch(e){return tu.throwError("bad result from backend",vn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}})}_getAddress(e){return eu(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&tu.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&tu.throwError("ENS name not configured",vn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return eu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(Nn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),Nn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){tu.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Ha(()=>eu(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 eu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ha(()=>eu(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 eu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ha(()=>eu(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 eu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield hr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach(e=>{null==e.removed&&(e.removed=!1)}),Zo.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)})}getEtherPrice(){return eu(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return eu(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&tu.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 eu(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 wu(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return eu(this,void 0,void 0,function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||tu.throwError("network does not support ENS",vn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+Ai(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return eu(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Nn(e))throw t}"string"!=typeof e&&tu.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return eu(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=fu(yield this.call({to:n,data:"0x691f3431"+Ai(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r})}getAvatar(e){return eu(this,void 0,void 0,function*(){let t=null;if(Nn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new wu(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==vn.errors.CALL_EXCEPTION)throw e}try{const e=fu(yield this.call({to:r,data:"0x691f3431"+Ai(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==vn.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 tu.throwError(e+" not implemented",vn.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 uu(iu(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=iu(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=iu(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=iu(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=iu(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=iu(e);this._events=this._events.filter(e=>e.tag!==n||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Iu=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 Su=new vn(Wa),ku=["call","estimateGas"];function Cu(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=Nn(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=Cu(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return Cu(JSON.parse(e),t)}catch(e){}return null}function xu(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=Cu(t,!0);if(e)return e.data;Su.throwError("missing revert data in call exception; Transaction reverted without a reason string",vn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=Cu(t.body,!1);null==n&&(n=Cu(t,!1)),n&&Su.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",vn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===vn.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)&&Su.throwError("insufficient funds for intrinsic transaction cost",vn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&Su.throwError("nonce has already been used",vn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Su.throwError("replacement fee too low",vn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&Su.throwError("legacy pre-eip-155 transactions not supported",vn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),ku.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Su.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",vn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function Nu(e){return new Promise(function(t){setTimeout(t,e)})}function _u(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 Mu(e){return e?e.toLowerCase():e}const Ru={};class Pu extends o{constructor(e,t,n){if(super(),e!==Ru)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");cr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(cr(this,"_address",this.provider.formatter.address(n)),cr(this,"_index",null)):"number"==typeof n?(cr(this,"_index",n),cr(this,"_address",null)):Su.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return Su.throwError("cannot alter JSON-RPC Signer connection",vn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Ou(Ru,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&&Su.throwError("unknown account #"+this._index,vn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=mr(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const n=mr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Iu(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Su.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),hr({tx:hr(e),sender:t}).then(({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&Su.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)&&Su.throwError("user rejected transaction",vn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),xu("sendTransaction",e,r)))})}signTransaction(e){return Su.throwError("signing transactions is unsupported",vn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Iu(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 Ha(()=>Iu(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 Iu(this,void 0,void 0,function*(){const t="string"==typeof e?Jr(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Mn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Su.throwError("user rejected signing",vn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}})}_legacySignMessage(e){return Iu(this,void 0,void 0,function*(){const t="string"==typeof e?Jr(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Mn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Su.throwError("user rejected signing",vn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}})}_signTypedData(e,t,n){return Iu(this,void 0,void 0,function*(){const r=yield Yi.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(Yi.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Su.throwError("user rejected signing",vn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}})}unlock(e){return Iu(this,void 0,void 0,function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])})}}class Ou extends Pu{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 Bu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class Du extends Eu{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=pr(this.constructor,"defaultUrl")()),cr(this,"connection",Object.freeze("string"==typeof e?{url:e}:mr(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 Iu(this,void 0,void 0,function*(){yield Nu(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=pr(this.constructor,"getNetwork");try{return t(jn.from(e).toNumber())}catch(t){return Su.throwError("could not detect network",vn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Su.throwError("could not detect network",vn.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new Pu(Ru,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:vr(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=Ga(this.connection,JSON.stringify(n),_u).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",[Mu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Mu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Mu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Mu(t.address),Dn(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",[pr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[pr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Mu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Iu(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&jn.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=mr(t)).transaction=mr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&Su.throwError(e+" not implemented",vn.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 Nu(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=mr(Bu);if(t)for(const e in t)t[e]&&(n[e]=!0);fr(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const n=Bn(jn.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n}),["from","to","data"].forEach(function(t){null!=e[t]&&(r[t]=Mn(e[t]))}),e.accessList&&(r.accessList=Ko(e.accessList)),r}}const Fu=new vn("random/5.8.0"),Lu=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 Uu=Lu.crypto||Lu.msCrypto;function Gu(e){(e<=0||e>1024||e%1||e!=e)&&Fu.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Uu.getRandomValues(t),kn(t)}Uu&&Uu.getRandomValues||(Fu.warn("WARNING: Missing strong random number source"),Uu={getRandomValues:function(e){return Fu.throwError("no secure random source avaialble",vn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Hu=new vn(Wa);let qu=1;function Vu(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:qu++,jsonrpc:"2.0"};return new Promise((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:vr(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 zu extends Du{constructor(e,t){null==e&&Hu.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:vr(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=Vu(0,e.sendAsync.bind(e)):e.send?r=Vu(0,e.send.bind(e)):Hu.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),cr(this,"jsonRpcFetchFunc",r),cr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function ju(e,t,n,r,i){let s;e=kn(e),t=kn(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=kn(Pa(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=kn(Pa(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(kn(d).slice(0,f),h)}return Mn(o)}new vn(Wa);const Ku=new vn("wordlists/5.8.0");class Wu{constructor(e){Ku.checkAbstract(new.target,Wu),cr(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 Yr(t.join("\n")+"\n")}static register(e,t){}}const Ju="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let Qu=null;function Yu(e){if(null==Qu&&(Qu=Ju.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Wu.check(e)))throw Qu=null,new Error("BIP39 Wordlist for en (English) FAILED")}const Xu=new class extends Wu{constructor(){super("en")}getWord(e){return Yu(this),Qu[e]}getWordIndex(e){return Yu(this),Qu.indexOf(e)}};Wu.register(Xu);const $u={en:Xu},Zu=new vn("hdnode/5.8.0"),el=jn.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),tl=Jr("Bitcoin seed"),nl=2147483648;function rl(e){return(1<<e)-1<<8-e}function il(e){return Dn(Mn(e),32)}function sl(e){return Or.encode(Cn([e,Pn(Ra(Ra(e)),0,4)]))}function al(e){if(null==e)return $u.en;if("string"==typeof e){const t=$u[e];return null==t&&Zu.throwArgumentError("unknown locale","wordlist",e),t}return e}const ol={},ul="m/44'/60'/0'/0/0";class ll{constructor(e,t,n,r,i,s,a,o){if(e!==ol)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Oo(t);cr(this,"privateKey",e.privateKey),cr(this,"publicKey",e.compressedPublicKey)}else cr(this,"privateKey",null),cr(this,"publicKey",Mn(n));var u;cr(this,"parentFingerprint",r),cr(this,"fingerprint",Pn((u=Ra(this.publicKey),"0x"+_a.ripemd160().update(kn(u)).digest("hex")),0,4)),cr(this,"address",qo(this.publicKey)),cr(this,"chainCode",i),cr(this,"index",s),cr(this,"depth",a),null==o?(cr(this,"mnemonic",null),cr(this,"path",null)):"string"==typeof o?(cr(this,"mnemonic",null),cr(this,"path",o)):(cr(this,"mnemonic",o),cr(this,"path",o.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return sl(Cn([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Mn(this.depth),this.parentFingerprint,Dn(Mn(this.index),4),this.chainCode,null!=this.privateKey?Cn(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new ll(ol,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&nl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(kn(this.privateKey),1),t&&(t+="'")}else n.set(kn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=kn(Pa(xa.sha512,this.chainCode,n)),i=r.slice(0,32),s=r.slice(32);let a=null,o=null;this.privateKey?a=il(jn.from(i).add(this.privateKey).mod(el)):o=new Oo(Mn(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 ll(ol,a,o,this.fingerprint,il(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>=nl)throw new Error("invalid path index - "+r);n=n._derive(nl+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=nl)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=kn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=kn(Pa(xa.sha512,tl,n));return new ll(ol,il(r.slice(0,32)),null,"0x00000000",il(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=cl(dl(e,n=al(n)),n),ll._fromSeed(function(e,t){t||(t="");const n=Jr("mnemonic"+t,Vr.NFKD);return ju(Jr(e,Vr.NFKD),n,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return ll._fromSeed(e,null)}static fromExtendedKey(e){const t=Or.decode(e);82===t.length&&sl(t.slice(0,78))===e||Zu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Mn(t.slice(5,9)),i=parseInt(Mn(t.slice(9,13)).substring(2),16),s=Mn(t.slice(13,45)),a=t.slice(45,78);switch(Mn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new ll(ol,null,Mn(a),r,s,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==a[0])break;return new ll(ol,Mn(a.slice(1)),null,r,s,i,n,null)}return Zu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function dl(e,t){t=al(t),Zu.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=kn(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=rl(n.length/3);if((kn(Ra(r.slice(0,s/8)))[0]&a)!=(r[r.length-1]&a))throw new Error("invalid checksum");return Mn(r.slice(0,s/8))}function cl(e,t){if(t=al(t),(e=kn(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=kn(Ra(e))[0]&rl(i);return n[n.length-1]<<=i,n[n.length-1]|=s>>8-i,t.join(n.map(e=>t.getWord(e)))}var pl=on(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 x=function(e){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};x.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},x.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 N=function(e,t){if(!(this instanceof N))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)};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);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},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),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 _=function(e,t,n){if(!(this instanceof _))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)};_.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},_.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:x,cbc:N,cfb:_,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 hl="json-wallets/5.8.0";function fl(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),kn(e)}function ml(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function yl(e){return"string"==typeof e?Jr(e,Vr.NFKC):kn(e)}function gl(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 bl(e){const t=kn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Mn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const vl=new vn(hl);class wl extends wr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Al(e,t){const n=JSON.parse(e);t=yl(t);const r=Oi(gl(n,"ethaddr")),i=fl(gl(n,"encseed"));i&&i.length%16==0||vl.throwArgumentError("invalid encseed","json",e);const s=kn(ju(t,t,2e3,32,"sha256")).slice(0,16),a=i.slice(0,16),o=i.slice(16),u=new pl.ModeOfOperation.cbc(s,a),l=pl.padding.pkcs7.strip(kn(u.decrypt(o)));let d="";for(let e=0;e<l.length;e++)d+=String.fromCharCode(l[e]);const c=Hr(Jr(d));return new wl({_isCrowdsaleAccount:!0,address:r,privateKey:c})}function Tl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function El(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 Il=on(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,x=0;const N=h?parseInt(1e3/a):4294967295,_="undefined"!=typeof setImmediate?setImmediate:setTimeout,M=function(){if(k)return h(new Error("cancelled"),I/A);let t;switch(C){case 0:E=32*x*a,l(m,E,y,0,b),C=1,T=0;case 1:t=r-T,t>N&&(t=N);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>N&&(t=N);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),x++,x<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&&_(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}()}),Sl=Il;const kl=new vn(hl);function Cl(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class xl extends wr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Nl(e,t){const n=fl(gl(e,"crypto/ciphertext"));if(Mn(Hr(Cn([t.slice(16,32),n]))).substring(2)!==gl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===gl(e,"crypto/cipher")){const r=fl(gl(e,"crypto/cipherparams/iv")),i=new pl.Counter(r);return kn(new pl.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||kl.throwError("unsupported cipher",vn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),s=qo(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Oi(t)!==s)throw new Error("address mismatch")}const a={_isKeystoreAccount:!0,address:s,privateKey:Mn(r)};if("0.1"===gl(e,"x-ethers/version")){const t=fl(gl(e,"x-ethers/mnemonicCiphertext")),n=fl(gl(e,"x-ethers/mnemonicCounter")),r=new pl.Counter(n),s=new pl.ModeOfOperation.ctr(i,r),o=gl(e,"x-ethers/path")||ul,u=gl(e,"x-ethers/locale")||"en",l=kn(s.decrypt(t));try{const e=cl(l,u),t=ll.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!==vn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new xl(a)}function _l(e,t,n,r,i){return kn(ju(e,t,n,r,i))}function Ml(e,t,n,r,i){return Promise.resolve(_l(e,t,n,r,i))}function Rl(e,t,n,r,i){const s=yl(t),a=gl(e,"crypto/kdf");if(a&&"string"==typeof a){const t=function(e,t){return kl.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===a.toLowerCase()){const n=fl(gl(e,"crypto/kdfparams/salt")),o=parseInt(gl(e,"crypto/kdfparams/n")),u=parseInt(gl(e,"crypto/kdfparams/r")),l=parseInt(gl(e,"crypto/kdfparams/p"));o&&u&&l||t("kdf",a),0!=(o&o-1)&&t("N",o);const d=parseInt(gl(e,"crypto/kdfparams/dklen"));return 32!==d&&t("dklen",d),r(s,n,o,u,l,64,i)}if("pbkdf2"===a.toLowerCase()){const r=fl(gl(e,"crypto/kdfparams/salt"));let i=null;const a=gl(e,"crypto/kdfparams/prf");"hmac-sha256"===a?i="sha256":"hmac-sha512"===a?i="sha512":t("prf",a);const o=parseInt(gl(e,"crypto/kdfparams/c")),u=parseInt(gl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(s,r,o,u,i)}}return kl.throwArgumentError("unsupported key-derivation function","kdf",a)}var Pl=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 Ol=new vn("wallet/5.8.0");class Bl extends o{constructor(e,t){if(super(),null!=(n=e)&&Nn(n.privateKey,32)&&null!=n.address){const t=new Oo(e.privateKey);if(cr(this,"_signingKey",()=>t),cr(this,"address",qo(this.publicKey)),this.address!==Oi(e.address)&&Ol.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;cr(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||ul,locale:t.locale||"en"}));const n=this.mnemonic;qo(ll.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Ol.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else cr(this,"_mnemonic",()=>null)}else{if(Oo.isSigningKey(e))"secp256k1"!==e.curve&&Ol.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),cr(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Oo(e);cr(this,"_signingKey",()=>t)}cr(this,"_mnemonic",()=>null),cr(this,"address",qo(this.publicKey))}var n;t&&!Er.isProvider(t)&&Ol.throwArgumentError("invalid provider","provider",t),cr(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 Bl(this,e)}signTransaction(e){return hr(e).then(t=>{null!=t.from&&(Oi(t.from)!==this.address&&Ol.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(Hr(Yo(t)));return Yo(t,n)})}signMessage(e){return Pl(this,void 0,void 0,function*(){return Ln(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=Jr(e)),Hr(Cn([Jr("Ethereum Signed Message:\n"),Jr(String(e.length)),e]))}(e)))})}_signTypedData(e,t,n){return Pl(this,void 0,void 0,function*(){const r=yield Yi.resolveNames(e,t,n,e=>(null==this.provider&&Ol.throwError("cannot resolve ENS names without a provider",vn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Ln(this._signingKey().signDigest(Yi.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(Oi(e.address)!==qo(e.privateKey))throw new Error("address/privateKey mismatch");if(Cl(e)){const t=e.mnemonic;if(ll.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||ul).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=kn(e.privateKey),s=yl(t);let a=null,o=null,u=null;if(Cl(e)){const t=e.mnemonic;a=kn(dl(t.phrase,t.locale||"en")),o=t.path||ul,u=t.locale||"en"}let l=n.client;l||(l="ethers.js");let d=null;d=n.salt?kn(n.salt):Gu(32);let c=null;if(n.iv){if(c=kn(n.iv),16!==c.length)throw new Error("invalid iv")}else c=Gu(16);let p=null;if(n.uuid){if(p=kn(n.uuid),16!==p.length)throw new Error("invalid uuid")}else p=Gu(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)),Sl.scrypt(s,d,h,f,m,64,r).then(t=>{const n=(t=kn(t)).slice(0,16),r=t.slice(16,32),s=t.slice(32,64),y=new pl.Counter(c),g=kn(new pl.ModeOfOperation.ctr(n,y).encrypt(i)),b=Hr(Cn([r,g])),v={address:e.address.substring(2).toLowerCase(),id:bl(p),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Mn(c).substring(2)},ciphertext:Mn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Mn(d).substring(2),n:h,dklen:32,p:m,r:f},mac:b.substring(2)}};if(a){const e=Gu(16),t=new pl.Counter(e),n=kn(new pl.ModeOfOperation.ctr(s,t).encrypt(a)),r=new Date,i=r.getUTCFullYear()+"-"+ml(r.getUTCMonth()+1,2)+"-"+ml(r.getUTCDate(),2)+"T"+ml(r.getUTCHours(),2)+"-"+ml(r.getUTCMinutes(),2)+"-"+ml(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Mn(e).substring(2),mnemonicCiphertext:Mn(n).substring(2),path:o,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,n)}static createRandom(e){let t=Gu(16);e||(e={}),e.extraEntropy&&(t=kn(Pn(Hr(Cn([t,e.extraEntropy])),0,16)));const n=cl(t,e.locale);return Bl.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return function(e,t,n){if(Tl(e)){n&&n(0);const r=Al(e,t);return n&&n(1),Promise.resolve(r)}return El(e)?function(e,t,n){return r=this,s=function*(){const r=JSON.parse(e);return Nl(r,yield Rl(r,t,Ml,Sl.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 Bl(e))}static fromEncryptedJsonSync(e,t){return new Bl(function(e,t){if(Tl(e))return Al(e,t);if(El(e))return function(e,t){const n=JSON.parse(e);return Nl(n,Rl(n,t,_l,Sl.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,n){return t||(t=ul),new Bl(ll.fromMnemonic(e,null,n).derivePath(t))}}function Dl(e){return"string"==typeof e?new Bl(e):"request"in e||"send"in e?new zu(e).getSigner():e}const Fl=new l;async function Ll({slippageBps:e,appCode:t,orderClass:n,partnerFee:r},i){const s={slippageBips:e},a={orderClass:n},o=await Fl.generateAppDataDoc(A({appCode:t,metadata:{quote:s,orderClass:a,partnerFee:r}},i||{})),{fullAppData:u,appDataKeccak256:l}=await Ul(o);return{doc:o,fullAppData:u,appDataKeccak256:l}}async function Ul(e){const t=await d(e);return{fullAppData:t,appDataKeccak256:c(p(t))}}async function Gl(e,t){var n;const r=null!=(n=t.metadata)&&n.hooks?z({},e,{metadata:z({},e.metadata,{hooks:{}})}):e,i=t?A(r,t):r,{fullAppData:s,appDataKeccak256:a}=await Ul(i);return{fullAppData:s,appDataKeccak256:a,doc:i}}const Hl="Order",ql=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Vl=1e6,zl=BigInt(Vl),jl=10000n;function Kl(e,t){const n=e*BigInt(Math.floor(t*Vl))/zl;return n/100n+(n%100n>=50n?1n:0n)}const Wl=1e4,Jl=50,Ql=.5;function Yl(e){const{quote:t,tradeParameters:n,trader:r,isEthFlow:i}=e,{sellTokenDecimals:s,buyTokenDecimals:a}=n,{isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=wt({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 Kl(t,n)}({feeAmount:BigInt(d),multiplyingFactorPercent:Jl}),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 Kl(s,i)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:Ql}),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(Ot-Ot*(s-r)/s)/Number(Ot):Number(Ot*(s+r)/s-Ot)/Number(Ot)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:c+p}),f=function(e){const t="bigint"==typeof e?Number(e*jl):e*Number(jl);return Math.round(t)}(h);return Math.max(Math.min(f,Wl),Ft(r.chainId,i))}const Xl={signingScheme:bt.EIP1271,onchainOrder:!0,verificationGasLimit:0};async function $l(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=Xt(e),u=o?tn(s,e):e,{sellToken:l,buyToken:d,amount:c,kind:p,partnerFee:h,validFor:f=It,slippageBps:m,env:y="prod"}=u;We(`getQuote for: Swap ${c} ${l} for ${d} on chain ${s} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=r||new rt({chainId:s,env:y}),b=u.receiver||a,v="sell"===p;We("Building app data...");const w=Ft(s,o),A=null!=m?m:w,T={slippageBps:A,orderClass:"market",appCode:i,partnerFee:h},E=await Ll(T,null==n?void 0:n.appData),{appDataKeccak256:I,fullAppData:S}=E;We(`App data: appDataKeccak256=${I} fullAppData=${S}`);const k=z({from:a,sellToken:l,buyToken:d,receiver:b,validFor:f,appData:S,appDataHash:I,priceQuality:yt.OPTIMAL,signingScheme:bt.EIP712},o?Xl:{},v?{kind:ht.SELL,sellAmountBeforeFee:c}:{kind:pt.BUY,buyAmountAfterFee:c},null==n?void 0:n.quoteRequest);We("Getting quote...");const C=await g.getQuote(k),x=Yl({isEthFlow:o,quote:C,tradeParameters:u,trader:t,advancedSettings:n}),N={isEthFlow:o,quote:C,orderBookApi:g,suggestedSlippageBps:x};if(void 0===m){if(x>w){We(`Suggested slippage is greater than ${w} BPS (default), using the suggested slippage (${x} BPS)`);const t=await Ll(z({},T,{slippageBps:x}),null==n?void 0:n.appData);return We(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`),z({},N,{appDataInfo:t,tradeParameters:z({},e,{slippageBps:x}),slippageBps:x})}We(`Suggested slippage is only ${x} BPS. Using the default slippage (${w} BPS)`)}return z({},N,{appDataInfo:E,tradeParameters:e,slippageBps:A})}(e,t,n,r),{partnerFee:c,sellTokenDecimals:p,buyTokenDecimals:h}=a,{chainId:f,account:m}=t,y=Tt({orderParams:i.quote,slippagePercentBps:o,partnerFeeBps:Nt(c),sellDecimals:p,buyDecimals:h}),g=Lt({chainId:f,from:m,networkCostsAmount:i.quote.feeAmount,isEthFlow:d},Yt(a,i),l.appDataKeccak256),b=await async function(e,t){return{domain:await xt.getDomain(e),primaryType:Hl,types:{[Hl]:T,EIP712Domain:ql},message:t}}(f,g);return{result:{tradeParameters:a,suggestedSlippageBps:u,amountsAndCosts:y,orderToSign:g,quoteResponse:i,appDataInfo:l,orderTypedData:b},orderBookApi:s}}async function Zl(e,t,n){const r=Dl(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 $l(e,i,t,n);return{result:z({},s.result,{signer:r}),orderBookApi:s.orderBookApi}}async function ed(e,t,n){return td(await Zl(e,t,n),t)}async function td({orderBookApi:e,result:{signer:t,appDataInfo:n,quoteResponse:r,tradeParameters:i}},s){var a,o,u;const l=Yt(i,r),d=null==s?void 0:s.appData,c=d?await Gl(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 sn(e,t,c,l,z({signingScheme:null==s||null==(u=s.quoteRequest)?void 0:u.signingScheme,networkCostsAmount:r.quote.feeAmount},null==s?void 0:s.additionalParams))}async function nd(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;We(`Limit order ${c} ${l} for ${p} ${d} on chain ${u}`);const f=Dl(e.signer),m=n||new rt({chainId:u,env:e.env});return We("Building app data..."),sn(m,f,await Ll({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:h},null==t?void 0:t.appData),e,null==t?void 0:t.additionalParams)}async function rd(e,t,n,r){const i=Qt.connect(n,e),s=De[t];return{data:i.interface.encodeFunctionData("setPreSignature",[r,!0]),gasLimit:"0x"+$t(await i.estimateGas.setPreSignature(r,!0).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),kt))).toString(16),to:s,value:"0"}}class id{constructor(e={},t={}){this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Je(t.enableLogging)}setTraderParams(e){return this.traderParams=z({},this.traderParams,e),this}async getQuote(e,t){const n=await Zl(this.mergeParams(e),t,this.options.orderBookApi);return{quoteResults:n.result,postSwapOrderFromQuote:t=>td(z({},n,{result:z({},n.result,{tradeParameters:en({quoteParameters:n.result.tradeParameters,sellToken:e.sellToken})})}),t)}}async getQuoteResults(e,t){return Zl(this.mergeParams(e),t,this.options.orderBookApi)}async postSwapOrder(e,t){return ed(this.mergeParams(e),t,this.options.orderBookApi)}async postLimitOrder(e,t){return nd(this.mergeParams(e),t,this.options.orderBookApi)}async postSellNativeCurrencyOrder(e,t){const n=await Zl(this.mergeParams(e),t,this.options.orderBookApi),{tradeParameters:r,quoteResponse:i}=n.result;return rn(n.orderBookApi,n.result.signer,n.result.appDataInfo,Yt(en({quoteParameters:r,sellToken:e.sellToken}),i),null==t?void 0:t.additionalParams)}async getPreSignTransaction(e){const t=this.mergeParams(e);return rd(Dl(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===sd(e).length}(e))throw new Error("Missing trader parameters: "+sd(e).join(", "))}(s),z({},e,s)}}function sd(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const ad=["sellTokenAddress","buyTokenAddress","amount"],od=["signer"];function ud(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000"}}function ld(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const dd=new vn("units/5.8.0"),cd=["wei","kwei","mwei","gwei","szabo","finney","ether"],pd=["kind","sellTokenChainId","sellTokenAddress","buyTokenChainId","buyTokenAddress","amount","signer"],hd=["signer"],fd=`${ie}/src/bridging/providers`,md=2e5,yd="cow-sdk://bridging/providers";function gd(e,t){const n=q(e).find(e=>{var t;return null==(t=e.dappId)?void 0:t.startsWith(yd)});if(!n)return;const r=n.dappId;return t.find(e=>e.info.dappId===r)}async function bd(e){const{chainId:t,orderId:n,orderBookApi:r,providers:i,rpcProvider:s,env:a}=e,o={chainId:t,env:a},u=await r.getOrder(n,o),l=u.fullAppData&&gd(u.fullAppData,i);if(!l)throw new F(`Unknown Bridge provider in order ${u.uid}. Add provider to the SDK config to be able to decode the order`);const d=await r.getTrades({orderUid:u.uid},o);if(d.length>0){const e=d[0],r=e.txHash;if(!r)throw new F(`No tx hash found for order ${n} . First trade, with log index ${e.logIndex}`);const i=await l.getBridgingParams(t,s,n,r);if(!i)throw new F(`Bridging params cannot be derived from transaction: ${r}`);const a={provider:l,chainId:t,order:u,statusResult:{status:P.UNKNOWN},bridgingParams:i,tradeTxHash:r};try{return z({},a,{statusResult:await l.getStatus(i.bridgingId,t),explorerUrl:l.getExplorerUrl(i.bridgingId)})}catch(e){return console.error("Cannot get bridging status",e),a}}return null}const vd=["providers"];class wd{constructor(e){var t,n;this.options=e;const{providers:r}=e,i=j(e,vd);if(!r||1!==r.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Je(e.enableLogging);const s=null!==(t=e.tradingSdk)&&void 0!==t?t:new id,a=null!==(n=null==s?void 0:s.options.orderBookApi)&&void 0!==n?n:new rt;this.config=z({},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 Ie}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:h}=r,f=j(r,pd),m=Dl(h);if(o!==dt.SELL)throw new Error("Bridging only support SELL orders");We(`Cross-chain ${o} ${p} ${l} (source chain ${u}) for ${c} (target chain ${d})`);const y=await async function(e){const{provider:t,swapAndBridgeRequest:n}=e,r=await t.getIntermediateTokens(n);if(0===r.length)throw new D("No path found (not intermediate token for bridging)",{});const i=r[0];return We(`Using ${i} as intermediate tokens`),z({},n,{sellTokenAddress:i.address,sellTokenDecimals:i.decimals})}({swapAndBridgeRequest:r,provider:n}),g=n.getGasLimitEstimationForHook(y),b=ud(g);We(`Using mocked hook for swap gas estimation: ${JSON.stringify(b)}`);const{sellTokenAddress:v,sellTokenDecimals:w}=y,A=z({},f,{kind:o,chainId:u,sellToken:l,buyToken:v,buyTokenDecimals:w,amount:p.toString(),signer:m}),T=j(A,hd);We(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(T,Ze)}`);const E=null==i||null==(t=i.appData)||null==(t=t.metadata)?void 0:t.hooks,{result:I,orderBookApi:S}=await s.getQuoteResults(A,z({},i,{appData:z({},null==i?void 0:i.appData,{metadata:{hooks:{pre:null==E?void 0:E.pre,post:[...(null==E?void 0:E.post)||[],b]}}})})),k=I.amountsAndCosts.afterSlippage.buyAmount;async function C(e,t,i){var s;const a=null==i?void 0:i.appData,o=null==i||null==(s=i.quoteRequest)?void 0:s.receiver,{bridgeHook:u,appDataInfo:{doc:l,fullAppData:d,appDataKeccak256:c},bridgeResult:p}=await async function(e){const{swapResult:t,bridgeRequestWithoutAmount:n,provider:r,intermediateTokenAmount:i,signer:s,mockedHook:a,appDataOverride:o,defaultGasLimit:u}=e,l=z({},n,{amount:i}),d=await r.getQuote(l),c=await r.getUnsignedBridgeCall(l,d),p=await r.getSignedHook(l.sellTokenChainId,c,s,u),h=await Gl(t.appDataInfo.doc,o||{}),f=h.doc.metadata.hooks,m=((null==f?void 0:f.post)||[]).some(e=>ld(e,p.postHook)),y=await Gl(h.doc,{metadata:{hooks:{pre:null==f?void 0:f.pre,post:[...(null==f?void 0:f.post)||[],...m?[]:[p.postHook]].filter(e=>!ld(e,a))}}});return{bridgeResult:{providerInfo:r.info,tradeParameters:l,bridgeCallDetails:{unsignedBridgeCall:c,preAuthorizedBridgingHook:p},isSell:d.isSell,expectedFillTimeSeconds:d.expectedFillTimeSeconds,fees:d.fees,limits:d.limits,quoteTimestamp:d.quoteTimestamp,amountsAndCosts:d.amountsAndCosts},bridgeHook:p,appDataInfo:y}}({swapAndBridgeRequest:z({},r,{kind:dt.SELL}),swapResult:I,bridgeRequestWithoutAmount:z({},y,{receiver:o||y.receiver}),provider:n,intermediateTokenAmount:k,signer:e,mockedHook:b,appDataOverride:a,defaultGasLimit:t});return We(`Bridge hook for swap: ${JSON.stringify(u)}`),I.tradeParameters.receiver=u.recipient,We(`App data for swap: appDataKeccak256=${c}, fullAppData="${d}"`),I.appDataInfo={fullAppData:d,appDataKeccak256:c,doc:l},{bridgeResult:p,swapResult:z({},I,{tradeParameters:z({},I.tradeParameters,{receiver:u.recipient})})}}We(`Expected to receive ${k} of the intermediate token (${function(e,t){if("string"!=typeof e&&dd.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=cd.indexOf(t);-1!==e&&(t=3*e)}return ir(e,null!=t?t:18)}(k.toString(),w).toString()})`);const x=a?BigInt(g):void 0;We(`Using gas limit: ${x}`);const N=await C(a?Dl(a):m,x);return{swap:N.swapResult,bridge:N.bridgeResult,async postSwapOrderFromQuote(e){const{swapResult:t}=await C(m,x,e);return td({result:z({},t,{tradeParameters:en({quoteParameters:t.tradeParameters,sellToken:l}),signer:m}),orderBookApi:S},z({},e,{appData:t.appDataInfo.doc,quoteRequest:z({},null==e?void 0:e.quoteRequest,{receiver:t.tradeParameters.receiver})}))}}}({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=z({},j(t,ad),{chainId:t.sellTokenChainId,sellToken:i,buyToken:s,amount:a.toString()}),u=j(o,od);return We(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(u,Ze)}`),r.getQuote(o,n)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:i})}async getOrder(e){const{orderBookApi:t}=this.config,{chainId:n,orderId:r,rpcProvider:i,env:s=t.context.env}=e;return bd({chainId:n,orderId:r,rpcProvider:i,orderBookApi:t,env:s,providers:this.config.providers})}async getOrderBridgingStatus(e,t){return this.provider.getStatus(e,t)}getProviderFromAppData(e){return gd(e,this.getProviders())}}class Ad{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,Id)}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,Td)}async getSupportedTokens(){return this.fetchApi("/token-list",{}).then(e=>e.map(e=>z({},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()}`;We(`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 D("Across Api Error",e)}const s=await i.json();if(n){if(n(s))return s;throw new D(`Invalid response for Across API call ${e}. The response doesn't pass the validation. Did the API change?`,s)}return s}}function Td(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&Ed(e.totalRelayFee)&&"relayerCapitalFee"in e&&Ed(e.relayerCapitalFee)&&"relayerGasFee"in e&&Ed(e.relayerGasFee)&&"lpFee"in e&&Ed(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 Ed(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Id(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 Sd=new h(["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)"]),kd=new h(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:O.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:O.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:O.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:O.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:B.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const Cd=Sd.getEventTopic("FundsDeposited"),xd=kd.getEventTopic("Trade"),Nd={[O.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[O.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[O.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[O.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[O.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[O.GNOSIS_CHAIN]:void 0,[O.AVALANCHE]:void 0,[B.OPTIMISM]:void 0},_d={[O.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[O.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[O.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[O.GNOSIS_CHAIN]:void 0,[O.SEPOLIA]:void 0,[O.POLYGON]:void 0,[B.OPTIMISM]:void 0,[O.AVALANCHE]:void 0},Md=10n**18n;function Rd(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=Et(r,i),o=a.big,u=Et(a.num,s).big,l=BigInt(n.totalRelayFee.pct),d=Bd(u,l),c=o-Bd(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,Od(f),Number(10000n*f/Md)),amountInSellCurrency:c,amountInBuyCurrency:p}},slippageBps:t};var f}function Pd(e){return f.decode(["address"],e).toString()}function Od(e){if(e>Md||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Bd(e,t){return Od(t),e*(Md-t)/Md}const Dd={filled:P.EXECUTED,slowFillRequested:P.EXECUTED,pending:P.IN_PROGRESS,expired:P.EXPIRED,refunded:P.REFUND};let Fd;const Ld="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",Ud={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 Gd{constructor(e,t){this.chainId=e,this.customOptions=t}proxyOf(e){const t=f.encode(["address"],[e]),n=m(["bytes","bytes"],[this.proxyCreationCode(),f.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,n)}encodeExecuteHooksForFactory(e,t,n,r,i){return(Fd||(Fd=Ht.createInterface()),Fd).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:Ud,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:Ld}getFactoryAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.factoryAddress)&&void 0!==e?e:Oe}getImplementationAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.implementationAddress)&&void 0!==e?e:Be}}const Hd=Lr.toBigInt();class qd{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=qd.getNonce(),deadline:i=Hd,defaultGasLimit:s,signingScheme:a=I.EIP712}){var o;const u=this.getCowShedHooks(n),l=t||(null==(o=this.options)?void 0:o.signer);if(!l)throw new Error("Signer is required");const d=Dl(l),c=await d.getAddress(),p=u.proxyOf(c),h=await u.signCalls(e,r,i,d,a),f=u.encodeExecuteHooksForFactory(e,r,i,c,h),m={to:u.getFactoryAddress(),data:f,value:BigInt(0)},y=await d.estimateGas(m).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(m,Ze,2)}. Review the factory call`;if(s)return We(`${t}, using the default gas limit.`),s;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})});return{cowShedAccount:p,signedMulticall:m,gasLimit:BigInt(y.toString())}}getCowShedHooks(e,t){let n=this.hooksCache.get(e);return n||(n=new Gd(e,t),this.hooksCache.set(e,n),n)}static getNonce(){return w(Date.now().toString())}}const Vd="abi/5.8.0",zd=new vn(Vd),jd={};let Kd={calldata:!0,memory:!0,storage:!0},Wd={calldata:!0,memory:!0};function Jd(e,t){if("bytes"===e||"string"===e){if(Kd[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Wd[t])return!0;return(Kd[t]||"payable"===t)&&zd.throwArgumentError("invalid modifier","name",t),!1}function Qd(e,t){for(let n in t)cr(e,n,t[n])}const Yd=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Xd=new RegExp(/^(.*)\[([0-9]*)\]$/);class $d{constructor(e,t){e!==jd&&zd.throwError("use fromString",vn.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Qd(this,t);let n=this.type.match(Xd);Qd(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:$d.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=Yd.sighash),Yd[e]||zd.throwArgumentError("invalid format type","format",e),e===Yd.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!==Yd.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===Yd.full?", ":",")+")"):t+=this.type,e!==Yd.sighash&&(!0===this.indexed&&(t+=" indexed"),e===Yd.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?$d.fromString(e,t):$d.fromObject(e)}static fromObject(e){return $d.isParamType(e)?e:new $d(jd,{name:e.name||null,type:lc(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map($d.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){zd.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=lc(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=""),Jd(a.type,a.name)&&(a.name=""),a.type=lc(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=""),Jd(a.type,a.name)&&(a.name=""),a.type=lc(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=lc(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=""):Jd(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&&zd.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=""):Jd(a.type,a.name)&&(a.name=""),s.type=lc(s.type),s}(e,!!t),$d.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function Zd(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&&zd.throwArgumentError("unbalanced parenthesis","value",e)))}return n&&t.push(n),t}(e).map(e=>$d.fromString(e,t))}class ec{constructor(e,t){e!==jd&&zd.throwError("use a static from method",vn.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Qd(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return ec.isFragment(e)?e:"string"==typeof e?ec.fromString(e):ec.fromObject(e)}static fromObject(e){if(ec.isFragment(e))return e;switch(e.type){case"function":return ac.fromObject(e);case"event":return tc.fromObject(e);case"constructor":return sc.fromObject(e);case"error":return uc.fromObject(e);case"fallback":case"receive":return null}return zd.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]?tc.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?ac.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?sc.fromString(e.trim()):"error"===e.split(" ")[0]?uc.fromString(e.substring(5).trim()):zd.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class tc extends ec{format(e){if(e||(e=Yd.sighash),Yd[e]||zd.throwArgumentError("invalid format type","format",e),e===Yd.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!==Yd.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===Yd.full?", ":",")+") ",e!==Yd.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?tc.fromString(e):tc.fromObject(e)}static fromObject(e){if(tc.isEventFragment(e))return e;"event"!==e.type&&zd.throwArgumentError("invalid event object","value",e);const t={name:cc(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map($d.fromObject):[],type:"event"};return new tc(jd,t)}static fromString(e){let t=e.match(pc);t||zd.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:zd.warn("unknown modifier: "+e)}}),tc.fromObject({name:t[1].trim(),anonymous:n,inputs:Zd(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function nc(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&zd.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||zd.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=jn.from(n[1]),n[0]):e}function rc(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 ic(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&&zd.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&zd.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||zd.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&zd.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&&zd.throwArgumentError("unable to determine stateMutability","value",e),t}class sc extends ec{format(e){if(e||(e=Yd.sighash),Yd[e]||zd.throwArgumentError("invalid format type","format",e),e===Yd.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===Yd.sighash&&zd.throwError("cannot format a constructor for sighash",vn.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===Yd.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?sc.fromString(e):sc.fromObject(e)}static fromObject(e){if(sc.isConstructorFragment(e))return e;"constructor"!==e.type&&zd.throwArgumentError("invalid constructor object","value",e);let t=ic(e);t.constant&&zd.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map($d.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?jn.from(e.gas):null};return new sc(jd,n)}static fromString(e){let t={type:"constructor"},n=(e=nc(e,t)).match(pc);return n&&"constructor"===n[1].trim()||zd.throwArgumentError("invalid constructor string","value",e),t.inputs=Zd(n[2].trim(),!1),rc(n[3].trim(),t),sc.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class ac extends sc{format(e){if(e||(e=Yd.sighash),Yd[e]||zd.throwArgumentError("invalid format type","format",e),e===Yd.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!==Yd.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===Yd.full?", ":",")+") ",e!==Yd.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?ac.fromString(e):ac.fromObject(e)}static fromObject(e){if(ac.isFunctionFragment(e))return e;"function"!==e.type&&zd.throwArgumentError("invalid function object","value",e);let t=ic(e);const n={type:e.type,name:cc(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map($d.fromObject):[],outputs:e.outputs?e.outputs.map($d.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?jn.from(e.gas):null};return new ac(jd,n)}static fromString(e){let t={type:"function"},n=(e=nc(e,t)).split(" returns ");n.length>2&&zd.throwArgumentError("invalid function string","value",e);let r=n[0].match(pc);if(r||zd.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&cc(t.name),t.inputs=Zd(r[2],!1),rc(r[3].trim(),t),n.length>1){let r=n[1].match(pc);""==r[1].trim()&&""==r[3].trim()||zd.throwArgumentError("unexpected tokens","value",e),t.outputs=Zd(r[2],!1)}else t.outputs=[];return ac.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function oc(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||zd.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class uc extends ec{format(e){if(e||(e=Yd.sighash),Yd[e]||zd.throwArgumentError("invalid format type","format",e),e===Yd.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==Yd.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===Yd.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?uc.fromString(e):uc.fromObject(e)}static fromObject(e){if(uc.isErrorFragment(e))return e;"error"!==e.type&&zd.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:cc(e.name),inputs:e.inputs?e.inputs.map($d.fromObject):[]};return oc(new uc(jd,t))}static fromString(e){let t={type:"error"},n=e.match(pc);return n||zd.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&cc(t.name),t.inputs=Zd(n[2],!1),oc(uc.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function lc(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const dc=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function cc(e){return e&&e.match(dc)||zd.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const pc=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),hc=new vn(Vd);class fc{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){hc.throwArgumentError(e,this.localName,t)}}class mc{constructor(e){cr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return On(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(Cn(e._data))}writeBytes(e){let t=kn(e);const n=t.length%this.wordSize;return n&&(t=Cn([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=kn(jn.from(e));return t.length>this.wordSize&&hc.throwError("value out-of-bounds",vn.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Cn([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 yc{constructor(e,t,n,r){cr(this,"_data",kn(e)),cr(this,"wordSize",t||32),cr(this,"_coerceFunc",n),cr(this,"allowLoose",r),this._offset=0}get data(){return Mn(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):yc.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:hc.throwError("data out-of-bounds",vn.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new yc(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 jn.from(this.readBytes(this.wordSize))}}class gc extends fc{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Oi(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Oi(Dn(e.readValue().toHexString(),20))}}class bc extends fc{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 vc=new vn(Vd);function wc(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||vc.throwError("cannot encode object for signature with missing names",vn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&vc.throwError("cannot encode object for signature with duplicate names",vn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]})}else vc.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&vc.throwArgumentError("types/value length mismatch","tuple",n);let i=new mc(e.wordSize),s=new mc(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 Ac(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===vn.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===vn.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 Tc extends fc{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)),vc.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 wc(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&vc.throwError("insufficient data length",vn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new bc(this.coder));return e.coerce(this.name,Ac(e,n))}}class Ec extends fc{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 Ic extends fc{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=kn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Sc extends Ic{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Mn(super.decode(e)))}}class kc extends fc{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=kn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Mn(e.readBytes(this.size)))}}class Cc extends fc{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 xc extends fc{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=jn.from(t),r=Lr.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(Fr).mul(Br)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Dr)||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 Nc extends Ic{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Jr(t))}decode(e){return Qr(super.decode(e))}}class _c extends fc{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 wc(e,this.coders,t)}decode(e){return e.coerce(this.name,Ac(e,this.coders))}}const Mc=new vn(Vd),Rc=new RegExp(/^bytes([0-9]*)$/),Pc=new RegExp(/^(u?int)([0-9]*)$/),Oc=new class{constructor(e){cr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new gc(e.name);case"bool":return new Ec(e.name);case"string":return new Nc(e.name);case"bytes":return new Sc(e.name);case"array":return new Tc(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new _c((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new Cc(e.name)}let t=e.type.match(Pc);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Mc.throwArgumentError("invalid "+t[1]+" bit length","param",e),new xc(n/8,"int"===t[1],e.name)}if(t=e.type.match(Rc),t){let n=parseInt(t[1]);return(0===n||n>32)&&Mc.throwArgumentError("invalid bytes length","param",e),new kc(n,e.name)}return Mc.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new yc(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new mc(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder($d.from(e)));return new _c(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Mc.throwError("types/values length mismatch",vn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map(e=>this._getCoder($d.from(e))),r=new _c(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map(e=>this._getCoder($d.from(e)));return new _c(r,"_").decode(this._getReader(kn(t),n))}},Bc=new vn(Vd);class Dc extends wr{}class Fc extends wr{}class Lc extends wr{}class Uc extends wr{static isIndexed(e){return!(!e||!e._isIndexed)}}const Gc={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Hc(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class qc{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,cr(this,"fragments",t.map(e=>ec.from(e)).filter(e=>null!=e)),cr(this,"_abiCoder",pr(new.target,"getAbiCoder")()),cr(this,"functions",{}),cr(this,"errors",{}),cr(this,"events",{}),cr(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Bc.warn("duplicate definition - constructor"):void cr(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]?Bc.warn("duplicate definition - "+n):t[n]=e}),this.deploy||cr(this,"deploy",sc.from({payable:!1,type:"constructor"})),cr(this,"_isInterface",!0)}format(e){e||(e=Yd.full),e===Yd.sighash&&Bc.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===Yd.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return Oc}static getAddress(e){return Oi(e)}static getSighash(e){return Pn(Yr(e.format()),0,4)}static getEventTopic(e){return Yr(e.format())}getFunction(e){if(Nn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Bc.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?Bc.throwArgumentError("no matching function","name",t):n.length>1&&Bc.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[ac.fromString(e).format()];return t||Bc.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Nn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Bc.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?Bc.throwArgumentError("no matching event","name",t):n.length>1&&Bc.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[tc.fromString(e).format()];return t||Bc.throwArgumentError("no matching event","signature",e),t}getError(e){if(Nn(e)){const t=pr(this.constructor,"getSighash");for(const n in this.errors)if(e===t(this.errors[n]))return this.errors[n];Bc.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?Bc.throwArgumentError("no matching error","name",t):n.length>1&&Bc.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[ac.fromString(e).format()];return t||Bc.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 pr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),pr(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=kn(t);return Mn(n.slice(0,4))!==this.getSighash(e)&&Bc.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Mn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Mn(Cn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=kn(t);return Mn(n.slice(0,4))!==this.getSighash(e)&&Bc.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Mn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Mn(Cn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=kn(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=Mn(n.slice(0,4)),t=Gc[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 Bc.throwError("call revert exception"+i,vn.errors.CALL_EXCEPTION,{method:e.format(),data:Mn(t),errorArgs:s,errorName:a,errorSignature:o,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Mn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Bc.throwError("too many arguments for "+e.format(),vn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Yr(t):"bytes"===e.type?Hr(Mn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=jn.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Dn(Mn(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?Bc.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&&Bc.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&&Bc.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(Yr(a));else if("bytes"===e.type)n.push(Hr(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);Nn(n[0],32)&&n[0].toLowerCase()===t||Bc.throwError("fragment/topic mismatch",vn.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($d.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,Cn(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 Uc({_isIndexed:!0,hash:null});else if(s[t])u[t]=new Uc({_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 Hc(`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 Hc(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Fc({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:jn.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Dc({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Mn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new Lc({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 Vc=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 zc=new vn("contracts/5.8.0");function jc(e,t){return Vc(this,void 0,void 0,function*(){const n=yield t;"string"!=typeof n&&zc.throwArgumentError("invalid address or ENS name","name",n);try{return Oi(n)}catch(e){}e||zc.throwError("a provider or signer is needed to resolve ENS names",vn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&zc.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r})}function Kc(e,t,n){return Vc(this,void 0,void 0,function*(){return Array.isArray(n)?yield Promise.all(n.map((n,r)=>Kc(e,Array.isArray(t)?t[r]:t[n.name],n))):"address"===n.type?yield jc(e,t):"tuple"===n.type?yield Kc(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>Kc(e,t,n.arrayChildren))):Promise.reject(zc.makeError("invalid value for array",vn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function Wc(e,t,n){return Vc(this,void 0,void 0,function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=mr(n.pop())),zc.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from=r.from?hr({override:jc(e.signer,r.from),signer:e.signer.getAddress()}).then(e=>Vc(this,void 0,void 0,function*(){return Oi(e.signer)!==e.override&&zc.throwError("Contract with a Signer cannot override from",vn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():r.from&&(r.from=jc(e.provider,r.from));const i=yield hr({args:Kc(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:hr(r)||{}}),s=e.interface.encodeFunctionData(t,i.args),a={data:s,to:i.address},o=i.overrides;if(null!=o.nonce&&(a.nonce=jn.from(o.nonce).toNumber()),null!=o.gasLimit&&(a.gasLimit=jn.from(o.gasLimit)),null!=o.gasPrice&&(a.gasPrice=jn.from(o.gasPrice)),null!=o.maxFeePerGas&&(a.maxFeePerGas=jn.from(o.maxFeePerGas)),null!=o.maxPriorityFeePerGas&&(a.maxPriorityFeePerGas=jn.from(o.maxPriorityFeePerGas)),null!=o.from&&(a.from=o.from),null!=o.type&&(a.type=o.type),null!=o.accessList&&(a.accessList=Ko(o.accessList)),null==a.gasLimit&&null!=t.gas){let e=21e3;const n=kn(s);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);a.gasLimit=jn.from(t.gas).add(e)}if(o.value){const e=jn.from(o.value);e.isZero()||t.payable||zc.throwError("non-payable method cannot override value",vn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),a.value=e}o.customData&&(a.customData=mr(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&&zc.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,vn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),a})}function Jc(e,t,n){const r=e.signer||e.provider;return function(...i){return Vc(this,void 0,void 0,function*(){let s;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=mr(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 Wc(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===vn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=a),t}})}}function Qc(e,t,n){return t.constant?Jc(e,t,n):function(e,t){return function(...n){return Vc(this,void 0,void 0,function*(){e.signer||zc.throwError("sending a transaction requires a signer",vn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield Wc(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=vr(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 Yc(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 Xc{constructor(e,t){cr(this,"tag",e),cr(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 $c extends Xc{constructor(){super("error",null)}}class Zc extends Xc{constructor(e,t,n,r){const i={address:e};let s=t.getEventTopic(n);r?(s!==r[0]&&zc.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[s],super(Yc(i),i),cr(this,"address",e),cr(this,"interface",t),cr(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 ep extends Xc{constructor(e,t){super("*",{address:e}),cr(this,"address",e),cr(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 tp{constructor(e,t,n){cr(this,"interface",pr(new.target,"getInterface")(t)),null==n?(cr(this,"provider",null),cr(this,"signer",null)):o.isSigner(n)?(cr(this,"provider",n.provider||null),cr(this,"signer",n)):Er.isProvider(n)?(cr(this,"provider",n),cr(this,"signer",null)):zc.throwArgumentError("invalid signer or provider","signerOrProvider",n),cr(this,"callStatic",{}),cr(this,"estimateGas",{}),cr(this,"functions",{}),cr(this,"populateTransaction",{}),cr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const n=this.interface.events[t];cr(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?cr(this.filters,t,this.filters[n[0]]):zc.warn(`Duplicate definition of ${t} (${n.join(", ")})`)})}if(cr(this,"_runningEvents",{}),cr(this,"_wrappedEmits",{}),null==e&&zc.throwArgumentError("invalid contract address or ENS name","addressOrName",e),cr(this,"address",e),this.provider)cr(this,"resolvedAddress",jc(this.provider,e));else try{cr(this,"resolvedAddress",Promise.resolve(Oi(e)))}catch(e){zc.throwError("provider is required to use ENS name as contract address",vn.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])zc.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]&&cr(this,e,Qc(this,t,!0)),null==this.functions[e]&&cr(this.functions,e,Qc(this,t,!1)),null==this.callStatic[e]&&cr(this.callStatic,e,Jc(this,t,!0)),null==this.populateTransaction[e]&&cr(this.populateTransaction,e,function(e,t){return function(...n){return Wc(e,t,n)}}(this,t)),null==this.estimateGas[e]&&cr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return Vc(this,void 0,void 0,function*(){n||zc.throwError("estimate require a provider or signer",vn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Wc(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]&&cr(this,e,this[n])}catch(e){}null==this.functions[e]&&cr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&cr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&cr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&cr(this.estimateGas,e,this.estimateGas[n])})}static getContractAddress(e){return Bi(e)}static getInterface(e){return qc.isInterface(e)?e:new qc(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&&zc.throwError("contract not deployed",vn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||zc.throwError("sending a transactions require a signer",vn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=mr(e||{});return["from","to"].forEach(function(e){null!=t[e]&&zc.throwError("cannot override "+e,vn.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&&cr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Uc.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 $c);if("event"===e)return this._normalizeRunningEvent(new Xc("event",null));if("*"===e)return this._normalizeRunningEvent(new ep(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new Zc(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 Zc(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new Xc(Yc(t),t))}return this._normalizeRunningEvent(new ep(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=vr(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||zc.throwError("events require a provider or a signer with a provider",vn.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=mr(r.filter);return"string"==typeof t&&Nn(t,32)?(null!=n&&zc.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 np extends tp{}var rp;!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"}(rp||(rp={}));const ip="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",sp=[{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 ap(e){const t=e.plan(),{commands:n,state:r}=t;return new qc(sp).encodeFunctionData("execute",[n,r])}function op(e){const t=new x;return e(t),{to:ip,value:BigInt(0),data:ap(t)}}function up(e,t){return N.createContract(e,t)}function lp(e){return N.createLibrary(e)}const dp=[{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"}],cp=[{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"}],pp=["function balanceOf(address account) external view returns (uint256)"],hp=["function approve(address spender, uint256 amount) external returns (bool)"],fp=`${yd}/across`,mp=[oe,Te,pe,fe,we];class yp{constructor(e={}){this.supportedTokens=null,this.info={name:"Across",logoUrl:`${fd}/across/across-logo.png`,dappId:fp,website:"https://across.to"},this.api=new Ad(e.apiOptions),this.cowShedSdk=new qd(e.cowShedOptions)}async getNetworks(){return mp}async getBuyTokens(e){return Object.values((await this.getSupportedTokensState())[e]||{})}async getIntermediateTokens(e){var t;if(e.kind!==E.SELL)throw new D("Only SELL is supported for now",{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:Rd(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=Nd[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return up(new np(t,cp),rp.CALL)}(i),c=function(e){const t=_d[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return up(new np(t,dp),rp.CALL)}(i),p=function(e){return up(new np(e,pp),rp.STATICCALL)}(s),h=function(e){return up(new np(e,hp),rp.CALL)}(s),f=r.getCowShedAccount(i,u),{suggestedFees:m}=n;return op(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})}getGasLimitEstimationForHook(e){return md}async getSignedHook(e,t,n,r){const{signedMulticall:i,cowShedAccount:s,gasLimit:a}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,defaultGasLimit:r}),{to:o,data:u}=i;return{postHook:{target:o,callData:u,gasLimit:a.toString(),dappId:fp},recipient:s}}async decodeBridgeHook(e){throw new Error("Not implemented")}async getBridgingParams(e,t,n,r){return async function(e,t,n){const r=function(e,t){var n;const r=null==(n=Nd[e])?void 0:n.toLowerCase();if(!r)return[];const i=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===Cd);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}=Sd.parseLog(e).args;return{inputToken:Pd(t),outputToken:Pd(n),inputAmount:r,outputAmount:i,destinationChainId:s,depositId:a,quoteTimestamp:o,fillDeadline:u,exclusivityDeadline:l,depositor:Pd(d),recipient:Pd(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()===De[e].toLowerCase()&&t.topics[0]===xd);return n.map(e=>{const t=kd.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()}:(We(`Trade event found at index ${s} but only ${r.length} deposit events available`),null)}(e,n,await t.getTransactionReceipt(r))}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,Dd[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 gp={[O.MAINNET]:{"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":{chainId:O.MAINNET,address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",decimals:6,name:"USD Coin",symbol:"USDC"},"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2":{chainId:O.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",decimals:18,name:"Wrapped Ether",symbol:"WETH"},"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599":{chainId:O.MAINNET,address:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",decimals:8,name:"Wrapped BTC",symbol:"WBTC"},"0x6b175474e89094c44da98b954eedeac495271d0f":{chainId:O.MAINNET,address:"0x6B175474E89094C44Da98b954EedeAC495271d0F",decimals:18,name:"Dai Stablecoin",symbol:"DAI"},"0xdac17f958d2ee523a2206206994597c13d831ec7":{chainId:O.MAINNET,address:"0xdAC17F958D2ee523a2206206994597C13D831ec7",decimals:6,name:"Tether",symbol:"USDT"},[Me.toLowerCase()]:{chainId:O.MAINNET,address:Me.toLowerCase(),decimals:18,name:"Ether",symbol:"ETH"}},[O.POLYGON]:{"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359":{chainId:O.POLYGON,address:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",decimals:6,name:"USD Coin (Bridged)",symbol:"USDC"},"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619":{chainId:O.POLYGON,address:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",decimals:18,name:"Wrapped Ether (Bridged)",symbol:"WETH"},"0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6":{chainId:O.POLYGON,address:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",decimals:8,name:"Wrapped BTC (Bridged)",symbol:"WBTC"},"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063":{chainId:O.POLYGON,address:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",decimals:18,name:"Dai Stablecoin",symbol:"DAI"},"0xc2132d05d31c914a87c6611c10748aeb04b58e8f":{chainId:O.POLYGON,address:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F",decimals:6,name:"Tether USD",symbol:"USDT"},[Me.toLowerCase()]:{chainId:O.POLYGON,address:Me.toLowerCase(),decimals:18,name:"Ether",symbol:"ETH"}},[O.ARBITRUM_ONE]:{"0xaf88d065e77c8cc2239327c5edb3a432268e5831":{chainId:O.ARBITRUM_ONE,address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",decimals:6,name:"USD Coin",symbol:"USDC"},"0x82af49447d8a07e3bd95bd0d56f35241523fbab1":{chainId:O.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",decimals:18,name:"Wrapped Ether",symbol:"WETH"},"0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f":{chainId:O.ARBITRUM_ONE,address:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",decimals:8,name:"Wrapped BTC",symbol:"WBTC"},"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1":{chainId:O.ARBITRUM_ONE,address:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",decimals:18,name:"Dai Stablecoin",symbol:"DAI"},"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9":{chainId:O.ARBITRUM_ONE,address:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",decimals:6,name:"Tether USD",symbol:"USDT"},[Me.toLowerCase()]:{chainId:O.ARBITRUM_ONE,address:Me.toLowerCase(),decimals:18,name:"Ether",symbol:"ETH"}},[O.BASE]:{"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913":{chainId:O.BASE,address:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",decimals:6,name:"USD Coin",symbol:"USDC"},"0x4200000000000000000000000000000000000006":{chainId:O.BASE,address:"0x4200000000000000000000000000000000000006",decimals:18,name:"Wrapped Ether",symbol:"WETH"},"0x50c5725949a6f0c72e6c4a641f24049a917db0cb":{chainId:O.BASE,address:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb",decimals:18,name:"Dai Stablecoin",symbol:"DAI"},[Me.toLowerCase()]:{chainId:O.BASE,address:Me.toLowerCase(),decimals:18,name:"Ether",symbol:"ETH"}},[B.OPTIMISM]:{"0x0b2c639c533813f4aa9d7837caf62653d097ff85":{chainId:B.OPTIMISM,address:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",decimals:6,name:"USD Coin",symbol:"USDC"},"0x4200000000000000000000000000000000000006":{chainId:B.OPTIMISM,address:"0x4200000000000000000000000000000000000006",decimals:18,name:"Wrapped Ether",symbol:"WETH"},"0x68f180fcce6836688e9084f035309e29bf0a2095":{chainId:B.OPTIMISM,address:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",decimals:8,name:"Wrapped BTC",symbol:"WBTC"},"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1":{chainId:B.OPTIMISM,address:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",decimals:18,name:"Dai Stablecoin",symbol:"DAI"},"0x94b008aa00579c1307b0ef2c499ad98a8ce58e58":{chainId:B.OPTIMISM,address:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",decimals:6,name:"Tether USD",symbol:"USDT"},[Me.toLowerCase()]:{chainId:B.OPTIMISM,address:Me.toLowerCase(),decimals:18,name:"Ether",symbol:"ETH"}}},bp=["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)"],vp=[{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:[]}],wp=[{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"}],Ap=[{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"}],Tp={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 Ep;!function(e){e.Across="across",e.CircleCCTP="cctp"}(Ep||(Ep={}));const Ip={Across:Ep.Across,"Circle CCTP":Ep.CircleCCTP};var Sp,kp;function Cp(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=Et(r,i).big,o=Et(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 xp(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(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(Sp||(Sp={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(kp||(kp={}));const Np="0x75b6ba5fcab20848ca00f132d253638fea82e598",_p={[O.MAINNET]:Np,[O.GNOSIS_CHAIN]:Np,[O.ARBITRUM_ONE]:Np,[O.BASE]:Np,[O.AVALANCHE]:Np,[O.POLYGON]:Np,[O.SEPOLIA]:void 0,[B.OPTIMISM]:Np},Mp="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Rp={[O.MAINNET]:Mp,[O.GNOSIS_CHAIN]:Mp,[O.ARBITRUM_ONE]:Mp,[O.BASE]:Mp,[O.AVALANCHE]:Mp,[O.POLYGON]:Mp,[O.SEPOLIA]:void 0,[B.OPTIMISM]:Mp},Pp="https://public-backend.bungee.exchange/api/v1/bungee",Op="https://microservices.socket.tech/loki",Bp="https://app.across.to/api";class Dp{constructor(e={apiBaseUrl:Pp,eventsApiBaseUrl:Op,acrossApiBaseUrl:Bp,includeBridges:this.SUPPORTED_BRIDGES}){var t;this.SUPPORTED_BRIDGES=["across","cctp"],this.options=e,this.validateBridges(null!==(t=this.options.includeBridges)&&void 0!==t?t:this.SUPPORTED_BRIDGES)}validateBridges(e){if(null!=e&&e.some(e=>!this.SUPPORTED_BRIDGES.includes(e)))throw new D(`Unsupported bridge: ${e.filter(e=>!this.SUPPORTED_BRIDGES.includes(e)).join(", ")}`,{includeBridges:e})}async getBungeeQuoteWithBuildTx(e){const t=await this.getBungeeQuote(e);return{bungeeQuote:t,buildTx:await this.getBungeeBuildTx(t)}}async getBungeeQuote(e){try{var t,n,r;e.includeBridges=null!==(t=null!==(n=e.includeBridges)&&void 0!==n?n:this.options.includeBridges)&&void 0!==t?t:this.SUPPORTED_BRIDGES,this.validateBridges(e.includeBridges);const i=function(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}(e),s=await this.makeApiCall("bungee","/quote",i,Fp);if(!s.success)throw new D("Bungee Api Error: Quote failed",s);const a=Math.floor(Date.now()/1e3),{manualRoutes:o}=s.result;if(0===o.length)throw new D("No routes found",s.result);const u=o[0];if(null==u||null==(r=u.routeDetails)||!r.name)throw new D("Invalid route: missing route details or name",{manualRoutes:o});const l=Ip[u.routeDetails.name];if(!l)throw new D("Invalid bridge name",{firstRoute:u});const d=o.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:s.result.originChainId,destinationChainId:s.result.destinationChainId,userAddress:s.result.userAddress,receiverAddress:s.result.receiverAddress,input:s.result.input,route:d[0],routeBridge:l,quoteTimestamp:a}}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 D("Bungee Api Error: Build tx failed",t);return t.result}async verifyBungeeBuildTx(e,t,n){const{routeId:r,functionSelector:i}=xp(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=Dl(s),o=Rp[e];if(!o)throw new D("Socket verifier not found",{originChainId:e});const u=new i.Contract(o,vp,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},Lp);if(!t.success)throw new D("Bungee Events Api Error",t);return t.result}async getAcrossStatus(e){return(await this.makeApiCall("across","/deposit/status",{depositTxHash:e},Up)).status}async makeApiCall(e,t,n,r){const i={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error"},s=`${{bungee:this.options.apiBaseUrl||Pp,events:this.options.eventsApiBaseUrl||Op,across:this.options.acrossApiBaseUrl||Bp}[e]}${t}?${new URLSearchParams(n).toString()}`;We(`Fetching ${e} API: GET ${s}. Params: ${JSON.stringify(n)}`);const a=await fetch(s,{method:"GET"});if(!a.ok){const t=await a.json();throw new D(i[e],t)}const o=await a.json();if(r&&!r(o))throw new D(`Invalid response for ${e} API call ${t}. The response doesn't pass the validation. Did the API change?`,o);return o}}function Fp(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 Lp(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 Up(e){return"object"==typeof e&&null!==e&&"status"in e}const Gp=e=>!!e,Hp="cow-sdk://bridging/providers/bungee",qp=[oe,Te,pe,fe,we];class Vp{constructor(e={}){this.info={name:"Bungee",logoUrl:`${fd}/bungee/bungee-logo.png`,dappId:Hp,website:"https://www.bungee.exchange"},this.options=e,this.api=new Dp(e.apiOptions),this.cowShedSdk=new qd(e.cowShedOptions)}async getNetworks(){return qp}async getBuyTokens(e){const t=gp[e];return t?Object.values(t).filter(Gp):[]}async getIntermediateTokens(e){var t;if(e.kind!==E.SELL)throw new D("Only SELL is supported for now",{kind:e.kind});const{sellTokenChainId:n,buyTokenChainId:r,buyTokenAddress:i}=e,s=i.toLowerCase(),a=gp[n],o=gp[r];if(!a||!o)return[];const u=null==o||null==(t=o[s])||null==(t=t.symbol)?void 0:t.toLowerCase();if(!u)return[];if("eth"===u){const e=Object.values(a).find(e=>{var t;return"weth"===(null==e||null==(t=e.symbol)?void 0:t.toLowerCase())});return e?[e]:[]}return Object.values(a).filter(e=>{var t;return(null==e||null==(t=e.symbol)?void 0:t.toLowerCase())===u}).filter(Gp)}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,Dl(e.signer)))throw new D("Build tx data is invalid",c);return function(e,t,n){const{kind:r}=e,{bungeeQuote:i,buildTx:s}=n;return{isSell:r===E.SELL,amountsAndCosts:Cp(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}=xp(o.txData.data),d=null!==(t=n.owner)&&void 0!==t?t:n.account,c=s.getCowShedAccount(n.sellTokenChainId,d),p=up(new np(n.sellTokenAddress,bp),rp.CALL),h=function(e){const t=_p[e];if(!t)throw new Error("BungeeCowswapLib contract not found");return up(new np(t,wp),rp.CALL)}(n.sellTokenChainId),f=up(new np(o.txData.to,Ap),rp.CALL);let m=!1;return n.sellTokenAddress.toLowerCase()!==Me.toLowerCase()&&(m=!0),op(e=>{const t=e.add(p.balanceOf(c));m&&e.add(p.approve(o.approvalData.spenderAddress,t));let n=e.add(h.replaceUint256(l,Tp[a.routeBridge].inputAmount.bytes_startIndex,t));if(a.routeBridge===Ep.Across){const{inputAmountBigNumber:r,outputAmountBigNumber:s}=((e,t)=>{if(!e||!e.startsWith("0x"))throw new Error("Invalid txData format");if(!Tp[t])throw new Error(`Unsupported bridge type: ${t}`);const n=`0x${e.slice(Tp[t].inputAmount.bytesString_startIndex,Tp[t].inputAmount.bytesString_startIndex+Tp[t].inputAmount.bytesString_length)}`,r=i.BigNumber.from(n);if(t===Ep.Across){const s=Tp[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(r,t,s));n=e.add(h.replaceUint256(n,Tp[a.routeBridge].outputAmount.bytes_startIndex,o))}e.add(f.executeRoute(u,n))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk})}getGasLimitEstimationForHook(e){return md}async getSignedHook(e,t,n,r){const{signedMulticall:i,cowShedAccount:s,gasLimit:a}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,defaultGasLimit:r}),{to:o,data:u}=i;return{postHook:{target:o,callData:u,gasLimit:a.toString(),dappId:Hp},recipient:s}}async getBridgingParams(e,t,n,r){const i=(await this.api.getEvents({orderId:n}))[0];return i?{inputTokenAddress:i.srcTokenAddress,outputTokenAddress:i.destTokenAddress,inputAmount:BigInt(i.srcAmount),outputAmount:i.destAmount?BigInt(i.destAmount):null,owner:i.sender,quoteTimestamp:null,fillDeadline:null,recipient:i.recipient,sourceChainId:i.fromChainId,destinationChainId:i.toChainId,bridgingId:n}: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===Sp.PENDING)return{status:P.IN_PROGRESS};if(n.srcTxStatus===Sp.COMPLETED&&n.destTxStatus===Sp.PENDING){if(n.bridgeName===kp.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===Sp.COMPLETED&&n.destTxStatus===Sp.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 zp,jp,Kp,Wp=e=>e;const Jp=_(zp||(zp=Wp`
|
|
2
|
+
query Totals {
|
|
3
|
+
totals {
|
|
4
|
+
tokens
|
|
5
|
+
orders
|
|
6
|
+
traders
|
|
7
|
+
settlements
|
|
8
|
+
volumeUsd
|
|
9
|
+
volumeEth
|
|
10
|
+
feesUsd
|
|
11
|
+
feesEth
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
`)),Qp=_(jp||(jp=Wp`
|
|
15
|
+
query LastDaysVolume($days: Int!) {
|
|
16
|
+
dailyTotals(orderBy: timestamp, orderDirection: desc, first: $days) {
|
|
17
|
+
timestamp
|
|
18
|
+
volumeUsd
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
`)),Yp=_(Kp||(Kp=Wp`
|
|
22
|
+
query LastHoursVolume($hours: Int!) {
|
|
23
|
+
hourlyTotals(orderBy: timestamp, orderDirection: desc, first: $hours) {
|
|
24
|
+
timestamp
|
|
25
|
+
volumeUsd
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
`)),Xp="https://api.thegraph.com/subgraphs/name/cowprotocol",$p={[O.MAINNET]:Xp+"/cow",[O.GNOSIS_CHAIN]:Xp+"/cow-gc",[O.ARBITRUM_ONE]:null,[O.BASE]:null,[O.SEPOLIA]:null,[O.POLYGON]:null,[O.AVALANCHE]:null},Zp={[O.MAINNET]:Xp+"/cow-staging",[O.GNOSIS_CHAIN]:Xp+"/cow-gc-staging",[O.ARBITRUM_ONE]:null,[O.BASE]:null,[O.SEPOLIA]:null,[O.POLYGON]:null,[O.AVALANCHE]:null};class eh{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=z({},Ye,e)}async getTotals(e={}){return(await this.runQuery(Jp,void 0,e)).totals[0]}async getLastDaysVolume(e,t={}){return this.runQuery(Qp,{days:e},t)}async getLastHoursVolume(e,t={}){return this.runQuery(Yp,{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 K(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${n}`)}}getContextWithOverride(e={}){return z({},this.context,e)}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?$p:Zp}}var th,nh;!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"}(th||(th={})),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"}(nh||(nh={}));const rh=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],ih=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],sh=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],ah=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],oh=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],uh=["tuple(address handler, bytes32 salt, bytes staticInput)"],lh=(e,t)=>`${t}@${e}`;function dh(e,t){return e===Le[t]}function ch(e,t){return e===Ue[t]}async function ph(e,t,n,r){const i=Wt.connect(Le[n],r);return await i.callStatic.domainVerifiers(e,t)}function hh(e,t){return Wt.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function fh(e){return n.defaultAbiCoder.encode(uh,[e])}function mh(e){const{handler:t,salt:r,staticInput:i}=n.defaultAbiCoder.decode(uh,e)[0];return{handler:t,salt:r,staticInput:i}}function yh(e,t){try{n.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}async function gh(e){const t=await e.getBlock("latest");return{blockNumber:t.number,blockTimestamp:t.timestamp}}function bh(e){return new Date(1e3*e).toISOString()}function vh(e){if(rh.includes(e))return C.ERC20;if(ih.includes(e))return C.EXTERNAL;if(sh.includes(e))return C.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function wh(e){if(ah.includes(e))return E.SELL;if(oh.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function Ah(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:wh(u.toString()),sellTokenBalance:vh(a.toString()),buyTokenBalance:vh(s.toString())}}function Th(e){return e.isValid}let Eh,Ih;function Sh(){return Eh||(Eh=Vt.createInterface()),Eh}function kh(e,t){return Ih||(Ih=Vt.connect(Ue[e],t)),Ih}class Ch{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(!Th(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=Sh(),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(),Sh().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(fh(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=kh(t,r);try{const r=this.isValid();if(!Th(r))return{result:nh.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:nh.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 xt.getDomain(e),n,t)}(t,n,Ah(o));return await i.getOrder(l).then(()=>!0).catch(()=>!1)?await this.handlePollFailedAlreadyPresent(l,o,e)||{result:nh.TRY_NEXT_BLOCK,reason:"Order already in orderbook"}:{result:nh.SUCCESS,order:o,signature:u}}catch(e){return{result:nh.UNEXPECTED_ERROR,error:e}}}isAuthorized(e){const{chainId:t,owner:n,provider:r}=e;return kh(t,r).callStatic.singleOrders(n,this.id)}cabinet(e){const{chainId:t,owner:n,provider:r}=e;return kh(t,r).callStatic.cabinet(n,this.ctx)}static deserializeHelper(e,t,r,i){try{const{handler:s,salt:a,staticInput:o}=mh(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 xh=["orderType"],Nh=["address","bytes32","bytes"],_h=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Mh{constructor(e,t,n,r=th.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(!Mh.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=j(r,xh);if(!Mh.orderTypeRegistry.hasOwnProperty(i))throw new Error(`Unknown order type: ${i}`);e[n]=new(0,Mh.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 Mh(t,n,r);return s.location=i,s}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify(z({},this,{root:e}),(e,t)=>{if("tree"!==e)return"object"==typeof t&&null!==t&&"orderType"in t?z({},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)]),Nh)),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 th.PRIVATE:return"0x";case th.EMITTED:return i.encodeToABI(t);case th.SWARM:case th.WAKU:case th.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=kh(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(_h,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Mh.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Mh.orderTypeRegistry={}}}Mh.orderTypeRegistry={};class Rh{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 Ph=["sellAmount","buyAmount","numberOfParts","startTime","timeBetweenParts","durationOfPart"],Oh="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Bh="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Dh=a.from(2).pow(32).sub(1),Fh=a.from(31536e3),Lh=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Uh,Gh;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(Uh||(Uh={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(Gh||(Gh={}));const Hh={startType:Gh.AT_MINING_TIME},qh={durationType:Uh.AUTO};class Vh extends Ch{constructor(e){const{handler:t,salt:n,data:r,hasOffChainInput:i}=e;if(t!==Oh)throw new Error(`InvalidHandler: Expected: ${Oh}, provided: ${t}`);super({handler:Oh,salt:n,data:r,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Vh({handler:Oh,data:e,salt:t})}static fromParams(e){return Vh.deserialize(fh(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Bh,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:r,startTime:i=Hh,numberOfParts:a,timeBetweenParts:o,durationOfPart:u=qh}=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===Gh.AT_EPOCH){const e=i.epoch;if(!e.gte(s.Zero)||!e.lt(Dh))return"InvalidStartTime"}return a.gt(s.One)&&a.lte(Dh)?o.gt(s.Zero)&&o.lte(Fh)?u.durationType!==Uh.LIMIT_DURATION||u.duration.lte(o)?yh(Lh,[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)===Gh.AT_EPOCH)return t.epoch.toNumber();const r=await this.cabinet(e),i=n.defaultAbiCoder.decode(["uint256"],r)[0];if(i.gt(Dh))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===Uh.LIMIT_DURATION?e+t.sub(1).mul(n).add(r.duration).toNumber():e+t.mul(n).toNumber()}async pollValidate(e){const{blockInfo:t=await gh(e.provider)}=e,{blockTimestamp:n}=t;try{const t=await this.startTimestamp(e);if(t>n)return{result:nh.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${bh(t)})`};const r=this.endTimestamp(t);return n>=r?{result:nh.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${bh(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:nh.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:nh.DONT_TRY_AGAIN,reason:`${null==t?void 0:t.message}`}:{result:nh.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}}}async handlePollFailedAlreadyPresent(e,t,n){const{blockInfo:r=await gh(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:nh.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${o} (${bh(o)})`,error:void 0};const u=a.mul(s).add(o).toNumber();if(i>=u)return{result:nh.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${u} (${bh(u)})`,error:void 0};const l=Math.floor((i-o)/s);if(l===a.toNumber()-1)return{result:nh.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:nh.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} (${bh(d)})`}}serialize(){return fh(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Lh,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Oh,Lh,(e,t)=>new Vh({handler:Oh,salt:t,data:jh(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:n,buyToken:r,numberOfParts:i,startTime:s=Hh,timeBetweenParts:a,durationOfPart:o=qh,receiver:u,appData:l}=this.data,d=s.startType===Gh.AT_MINING_TIME?"AT_MINING_TIME":s.epoch.toNumber(),c=o.durationType===Uh.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 zh(e)}transformStructToData(e){return jh(e)}}function zh(e){const{sellAmount:t,buyAmount:n,numberOfParts:r,startTime:i=Hh,timeBetweenParts:a,durationOfPart:o=qh}=e,u=j(e,Ph),{partSellAmount:l,minPartLimit:d}=r&&!r.isZero()?{partSellAmount:t.div(r),minPartLimit:n.div(r)}:{partSellAmount:s.Zero,minPartLimit:s.Zero};return z({partSellAmount:l,minPartLimit:d,t0:i.startType===Gh.AT_MINING_TIME?s.Zero:i.epoch,n:r,t:a,span:o.durationType===Uh.AUTO?s.Zero:o.duration},u)}function jh(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:Uh.AUTO}:{durationType:Uh.LIMIT_DURATION,duration:a},p=s.isZero()?{startType:Gh.AT_MINING_TIME}:{startType:Gh.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 Kh={[Oh]:e=>Vh.fromParams(e)};export{it as $,yp as A,Vp as B,K as C,md as D,at as E,Fe as F,Le as G,yd as H,Ue as I,Ge as J,He as K,qe as L,Ve as M,ze as N,Xe as O,$e as P,Z as Q,fd as R,re as S,ee as T,Ne as U,_e as V,ne as W,et as X,tt as Y,rt as Z,z as _,De as a,rn as a$,st as a0,ot as a1,ut as a2,lt as a3,dt as a4,ct as a5,pt as a6,ht as a7,ft as a8,mt as a9,bh as aA,Ah as aB,Th as aC,Ch as aD,Mh as aE,Rh as aF,Kh as aG,Oh as aH,Bh as aI,Dh as aJ,Fh as aK,Uh as aL,Gh as aM,Vh as aN,zh as aO,jh as aP,qd as aQ,Ld as aR,Ud as aS,Gd as aT,nn as aU,Lt as aV,rd as aW,$l as aX,Zl as aY,sn as aZ,nd as a_,yt as aa,gt as ab,bt as ac,W as ad,Q as ae,Y as af,$ as ag,wt as ah,Tt as ai,Et as aj,$p as ak,Zp as al,eh as am,xt as an,th as ao,nh as ap,uh as aq,lh as ar,dh as as,ch as at,ph as au,hh as av,fh as aw,mh as ax,yh as ay,gh as az,P as b,ed as b0,td as b1,Yl as b2,Nt as b3,Zt as b4,Yt as b5,id as b6,Hl as b7,Ll as b8,Ul as b9,Gl as ba,Ut as bb,rp as bc,op as bd,up as be,lp as bf,O as bg,B as bh,_t as bi,Mt as bj,Rt as bk,Pt as bl,pe as bm,be as bn,fe as bo,le as bp,oe as bq,we as br,Te as bs,ye as bt,ud as bu,ld as bv,D as c,F as d,U as e,G as f,bd as g,H as h,L as i,q as j,V as k,wd as l,Je as m,Ee as n,Ie as o,Se as p,ke as q,Ce as r,xe as s,Qe as t,Ye as u,Me as v,Re as w,Pe as x,Oe as y,Be as z};
|
|
29
|
+
//# sourceMappingURL=index-3d88c185.js.map
|