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