@cowprotocol/cow-sdk 5.10.2-RC.0 → 5.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/common/chains.d.ts +11 -0
  2. package/dist/common/{types/config.d.ts → configs.d.ts} +9 -1
  3. package/dist/common/{consts/contracts.d.ts → consts.d.ts} +12 -1
  4. package/dist/common/{types/cow-error.d.ts → cow-error.d.ts} +1 -0
  5. package/dist/common/index.d.ts +5 -10
  6. package/dist/composable/Multiplexer.d.ts +1 -1
  7. package/dist/composable/contracts.d.ts +1 -1
  8. package/dist/composable/types.d.ts +1 -1
  9. package/dist/composable/utils.d.ts +1 -1
  10. package/dist/cow-shed/CoWShedHooks.d.ts +35 -0
  11. package/dist/cow-shed/contracts.d.ts +4 -0
  12. package/dist/cow-shed/index.d.ts +3 -1
  13. package/dist/cow-shed/{contracts/CoWShedHooks.d.ts → proxyInitCode.d.ts} +0 -45
  14. package/dist/cow-shed/types.d.ts +16 -0
  15. package/dist/index-2ed223c8.js +29 -0
  16. package/dist/index-2ed223c8.js.map +1 -0
  17. package/dist/index.d.ts +0 -1
  18. package/dist/index.js +4 -4
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.modern.mjs +1 -1
  21. package/dist/index.module.js +4 -4
  22. package/dist/index.module.js.map +1 -1
  23. package/dist/order-book/api.d.ts +1 -1
  24. package/dist/order-signing/orderSigningUtils.d.ts +1 -1
  25. package/dist/order-signing/types.d.ts +1 -1
  26. package/dist/order-signing/utils.d.ts +1 -1
  27. package/dist/package.json +2 -3
  28. package/dist/schemas/trading/LimitOrderAdvancedSettings.ts +0 -26
  29. package/dist/schemas/trading/LimitTradeParameters.ts +0 -3
  30. package/dist/schemas/trading/QuoteResultsSerialized.ts +0 -3
  31. package/dist/schemas/trading/SwapAdvancedSettings.ts +0 -26
  32. package/dist/schemas/trading/TradeParameters.ts +0 -3
  33. package/dist/src/trading/README.md +0 -1
  34. package/dist/subgraph/api.d.ts +2 -2
  35. package/dist/trading/calculateUniqueOrderId.d.ts +4 -3
  36. package/dist/trading/consts.d.ts +0 -2
  37. package/dist/trading/getEthFlowTransaction.d.ts +4 -3
  38. package/dist/trading/getOrderTypedData.d.ts +1 -1
  39. package/dist/trading/getPreSignTransaction.d.ts +1 -1
  40. package/dist/trading/postCoWProtocolTrade.d.ts +3 -3
  41. package/dist/trading/postSellNativeCurrencyOrder.d.ts +3 -2
  42. package/dist/trading/tradingSdk.d.ts +7 -9
  43. package/dist/trading/types.d.ts +8 -36
  44. package/dist/trading/utils.d.ts +4 -8
  45. package/dist/{utils-c854e052.js → utils-4bdd94dd.js} +2 -2
  46. package/dist/utils-4bdd94dd.js.map +1 -0
  47. package/dist/{utils-69f2c801.js → utils-63156cab.js} +1 -1
  48. package/dist/utils-63156cab.js.map +1 -0
  49. package/dist/{utils-8d77110e.js → utils-faedc0ab.js} +1 -1
  50. package/dist/utils-faedc0ab.js.map +1 -0
  51. package/dist/utils.d.ts +1 -1
  52. package/package.json +2 -3
  53. package/dist/bridging/BridgingSdk.d.ts +0 -42
  54. package/dist/bridging/const.d.ts +0 -1
  55. package/dist/bridging/index.d.ts +0 -3
  56. package/dist/bridging/providers/MockBridgeProvider.d.ts +0 -20
  57. package/dist/bridging/types.d.ts +0 -147
  58. package/dist/chains/const.d.ts +0 -14
  59. package/dist/chains/details/arbitrum.d.ts +0 -7
  60. package/dist/chains/details/base.d.ts +0 -7
  61. package/dist/chains/details/gnosis.d.ts +0 -7
  62. package/dist/chains/details/mainnet.d.ts +0 -7
  63. package/dist/chains/details/optimism.d.ts +0 -2
  64. package/dist/chains/details/polygon.d.ts +0 -2
  65. package/dist/chains/details/sepolia.d.ts +0 -7
  66. package/dist/chains/index.d.ts +0 -2
  67. package/dist/chains/types.d.ts +0 -106
  68. package/dist/common/consts/config.d.ts +0 -9
  69. package/dist/common/consts/path.d.ts +0 -1
  70. package/dist/common/consts/tokens.d.ts +0 -9
  71. package/dist/common/types/ethereum.d.ts +0 -5
  72. package/dist/common/types/tokens.d.ts +0 -12
  73. package/dist/common/types/wallets.d.ts +0 -5
  74. package/dist/common/utils/config.d.ts +0 -4
  75. package/dist/common/utils/serialize.d.ts +0 -1
  76. package/dist/common/utils/wallet.d.ts +0 -3
  77. package/dist/cow-shed/CowShedSdk.d.ts +0 -69
  78. package/dist/cow-shed/contracts/utils.d.ts +0 -4
  79. package/dist/index-0ebfdcaf.js +0 -29
  80. package/dist/index-0ebfdcaf.js.map +0 -1
  81. package/dist/src/bridging/README.md +0 -44
  82. package/dist/src/cow-shed/README.md +0 -60
  83. package/dist/src/weiroll/README.md +0 -55
  84. package/dist/utils-69f2c801.js.map +0 -1
  85. package/dist/utils-8d77110e.js.map +0 -1
  86. package/dist/utils-c854e052.js.map +0 -1
  87. package/dist/weiroll/index.d.ts +0 -20
  88. /package/dist/common/{consts/ipfs.d.ts → ipfs.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import"cross-fetch/polyfill";import{RateLimiter as t}from"limiter";import{backOff as e}from"exponential-backoff";import{gql as r,request as n}from"graphql-request";import{utils as i,Contract as o,ethers as s,constants as a,BigNumber as u}from"ethers";import{OrderBalance as l,OrderKind as h,SigningScheme as c,isTypedDataSigner as f,hashTypedData as d,ORDER_TYPE_FIELDS as p}from"@cowprotocol/contracts";import{StandardMerkleTree as m}from"@openzeppelin/merkle-tree";import{defaultAbiCoder as y,solidityKeccak256 as g,getCreate2Address as v,joinSignature as b,splitSignature as A,arrayify as w,keccak256 as E,toUtf8Bytes as T}from"ethers/lib/utils";import{Signer as I}from"@ethersproject/abstract-signer";import{MetadataApi as N,stringifyDeterministic as k}from"@cowprotocol/app-data";class M extends Error{constructor(t,e){super(t),this.error_code=void 0,this.error_code=e}}var _;!function(t){t[t.MAINNET=1]="MAINNET",t[t.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",t[t.ARBITRUM_ONE=42161]="ARBITRUM_ONE",t[t.BASE=8453]="BASE",t[t.SEPOLIA=11155111]="SEPOLIA"}(_||(_={}));const S="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",P="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",C={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${P}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},x={[_.MAINNET]:{...C,chainId:_.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},[_.GNOSIS_CHAIN]:{chainId:_.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${P}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[_.ARBITRUM_ONE]:{...C,chainId:_.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},[_.BASE]:{...C,chainId:_.BASE,address:"0x4200000000000000000000000000000000000006"},[_.SEPOLIA]:{...C,chainId:_.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"}},O={address:S,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${P}/1/${S}/logo.png`},R=`${Q}/images/mainnet-logo.svg`,B={id:_.MAINNET,label:"Ethereum",nativeCurrency:{...O,chainId:_.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:R,dark:R},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"}},D=`${Q}/images/gnosis-logo.svg`,L={id:_.GNOSIS_CHAIN,label:"Gnosis Chain",nativeCurrency:{...O,chainId:_.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${P}/100/${S}/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:D,dark:D},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"}]},U=`${Q}/images/arbitrum-one-logo-light.svg`,F=`${Q}/images/arbitrum-one-logo-dark.svg`,q={id:_.ARBITRUM_ONE,label:"Arbitrum One",nativeCurrency:{...O,chainId:_.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:U,dark:F},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"}]},G=`${Q}/images/base-logo.svg`,H={id:_.BASE,label:"Base",nativeCurrency:{...O,chainId:_.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:G,dark:G},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"}]},z=`${Q}/images/sepolia-logo.svg`,j={id:_.SEPOLIA,label:"Sepolia",nativeCurrency:{...O,chainId:_.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:z,dark:z},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"}},Q="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main/src/chains",K={[_.MAINNET]:B,[_.GNOSIS_CHAIN]:L,[_.ARBITRUM_ONE]:q,[_.BASE]:H,[_.SEPOLIA]:j},J=Object.values(K),V=J.map(t=>t.id),Y=["prod","staging"],W={env:"prod",chainId:_.MAINNET};function X(t){return e=t,V.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{});var e}const Z="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",$="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",tt="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",et="0x00E989b87700514118Fa55326CD1cCE82faebEF6",rt="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",nt=X("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),it=X("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),ot=X($),st=X(tt),at="0xba3cb449bd2b4adddbc894d8697f5170800eadec",ut="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",lt=X(at),ht=X(ut),ct=4294967295,ft="https://gnosis.mypinata.cloud/ipfs",dt="https://api.pinata.cloud",pt=function(t,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${t}${r}${n?"?"+n:""}`,h={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(e(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,h)).then(function(t){return Promise.resolve(bt(t)).then(function(e){return t.status>=200&&t.status<300?e:Promise.reject(new mt(t,e))})})})}catch(t){return Promise.reject(t)}},a))}catch(t){return Promise.reject(t)}};class mt extends Error{constructor(t,e){super("string"==typeof e?e:t.statusText),this.response=void 0,this.body=void 0,this.response=t,this.body=e}}const yt=[408,425,429,500,502,503,504],gt={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:t=>!(t instanceof mt)||yt.includes(t.response.status)},vt={tokensPerInterval:5,interval:"second"},bt=function(t){try{let e;const r=function(){if(204!==t.status)return function(r,n){try{var i=function(){const r=t.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(t.json()).then(function(t){return e=1,t}):Promise.resolve(t.text()).then(function(t){return e=1,t})}()}()}catch(t){return n(t)}return i&&i.then?i.then(void 0,n):i}(0,function(t){console.error(t)})}();return Promise.resolve(r&&r.then?r.then(function(t){return e?t:void 0}):e?r:void 0)}catch(t){return Promise.reject(t)}};function At(t){return function(t){const{ethflowData:e}=t;if(!e)return t;const{userValidTo:r}=e,n=t.onchainUser||t.owner,i=Z;return{...t,validTo:r,owner:n,sellToken:i}}(function(t){const{executedFeeAmount:e,executedFee:r}=t,n=BigInt(e||"0"),i=BigInt(r||"0"),o=String(n+i);return{...t,totalFee:o}}(t))}const wt={[_.MAINNET]:"https://api.cow.fi/mainnet",[_.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[_.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[_.BASE]:"https://api.cow.fi/base",[_.SEPOLIA]:"https://api.cow.fi/sepolia"},Et={[_.MAINNET]:"https://barn.api.cow.fi/mainnet",[_.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[_.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[_.BASE]:"https://barn.api.cow.fi/base",[_.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function Tt(t){return Object.keys(t).reduce((e,r)=>{const n=t[r];return void 0!==n&&(e[r]=n),e},{})}class It{constructor(e={}){this.context=void 0,this.rateLimiter=void 0,this.context={...W,...e},this.rateLimiter=new t(e.limiterOpts||vt)}getVersion(t={}){return this.fetch({path:"/api/v1/version",method:"GET"},t)}getTrades(t,e={}){if(t.owner&&t.orderUid)return Promise.reject(new M("Cannot specify both owner and orderId"));if(!t.owner&&!t.orderUid)return Promise.reject(new M("Must specify either owner or orderId"));const r=new URLSearchParams(Tt(t));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},e)}getOrders({owner:t,offset:e=0,limit:r=1e3},n={}){const i=new URLSearchParams(Tt({offset:e.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${t}/orders`,method:"GET",query:i},n).then(t=>t.map(At))}getTxOrders(t,e={}){return this.fetch({path:`/api/v1/transactions/${t}/orders`,method:"GET"},e).then(t=>t.map(At))}getOrder(t,e={}){return this.fetch({path:`/api/v1/orders/${t}`,method:"GET"},e).then(t=>At(t))}getOrderCompetitionStatus(t,e={}){return this.fetch({path:`/api/v1/orders/${t}/status`,method:"GET"},e)}getOrderMultiEnv(t,e={}){const{env:r}=this.getContextWithOverride(e),n=Y.filter(t=>t!==r);let i=0;const o=r=>{const s=n[i];return r instanceof mt&&404===r.response.status&&s?(i++,this.getOrder(t,{...e,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(t,{...e,env:r}).catch(o)}getQuote(t,e={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:t},e)}sendSignedOrderCancellations(t,e={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:t},e)}sendOrder(t,e={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:t},e)}getNativePrice(t,e={}){return this.fetch({path:`/api/v1/token/${t}/native_price`,method:"GET"},e)}getTotalSurplus(t,e={}){return this.fetch({path:`/api/v1/users/${t}/total_surplus`,method:"GET"},e)}getAppData(t,e={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"GET"},e)}uploadAppData(t,e,r={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"PUT",body:{fullAppData:e}},r)}getSolverCompetition(t,e={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof t?"/by_tx_hash":""}/${t}`,method:"GET"},e)}getOrderLink(t,e){const{chainId:r,env:n}=this.getContextWithOverride(e);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${t}`}getContextWithOverride(t={}){return{...this.context,...t}}getApiBaseUrls(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?wt:Et}fetch(e,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||gt,u=r.limiterOpts?new t(r.limiterOpts):this.rateLimiter;return pt(s,e,u,a)}}var Nt,kt,Mt,_t,St,Pt,Ct,xt,Ot,Rt,Bt,Dt,Lt,Ut,Ft;!function(t){t.ERC20="erc20",t.INTERNAL="internal"}(Nt||(Nt={})),function(t){var e;(e=t.type||(t.type={})).OPEN="open",e.SCHEDULED="scheduled",e.ACTIVE="active",e.SOLVED="solved",e.EXECUTING="executing",e.TRADED="traded",e.CANCELLED="cancelled"}(kt||(kt={})),function(t){t.EIP712="eip712",t.ETHSIGN="ethsign"}(Mt||(Mt={})),function(t){var e;(e=t.placementError||(t.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",e.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",e.PRE_VALIDATION_ERROR="PreValidationError"}(_t||(_t={})),function(t){var e;(e=t.errorType||(t.errorType={})).INVALID_SIGNATURE="InvalidSignature",e.WRONG_OWNER="WrongOwner",e.ORDER_NOT_FOUND="OrderNotFound",e.ALREADY_CANCELLED="AlreadyCancelled",e.ORDER_FULLY_EXECUTED="OrderFullyExecuted",e.ORDER_EXPIRED="OrderExpired",e.ON_CHAIN_ORDER="OnChainOrder"}(St||(St={})),function(t){t.MARKET="market",t.LIMIT="limit",t.LIQUIDITY="liquidity"}(Pt||(Pt={})),function(t){t.BUY="buy",t.SELL="sell"}(Ct||(Ct={})),function(t){var e;(e=t.errorType||(t.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",e.QUOTE_NOT_FOUND="QuoteNotFound",e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.INVALID_QUOTE="InvalidQuote",e.MISSING_FROM="MissingFrom",e.WRONG_OWNER="WrongOwner",e.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",e.INSUFFICIENT_BALANCE="InsufficientBalance",e.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",e.INVALID_SIGNATURE="InvalidSignature",e.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",e.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",e.ZERO_AMOUNT="ZeroAmount",e.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",e.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",e.TOO_MUCH_GAS="TooMuchGas",e.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",e.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",e.INSUFFICIENT_VALID_TO="InsufficientValidTo",e.EXCESSIVE_VALID_TO="ExcessiveValidTo",e.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",e.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.INVALID_APP_DATA="InvalidAppData",e.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",e.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(xt||(xt={})),function(t){t.BUY="buy"}(Ot||(Ot={})),function(t){t.SELL="sell"}(Rt||(Rt={})),function(t){t.PRESIGNATURE_PENDING="presignaturePending",t.OPEN="open",t.FULFILLED="fulfilled",t.CANCELLED="cancelled",t.EXPIRED="expired"}(Bt||(Bt={})),function(t){var e;(e=t.errorType||(t.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.ZERO_AMOUNT="ZeroAmount",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(Dt||(Dt={})),function(t){t.FAST="fast",t.OPTIMAL="optimal",t.VERIFIED="verified"}(Lt||(Lt={})),function(t){t.ERC20="erc20",t.INTERNAL="internal",t.EXTERNAL="external"}(Ut||(Ut={})),function(t){t.EIP712="eip712",t.ETHSIGN="ethsign",t.PRESIGN="presign",t.EIP1271="eip1271"}(Ft||(Ft={}));const qt=BigInt(1e4);function Gt(t){var e;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=t,s=null!==(e=t.partnerFeeBps)&&void 0!==e?e:0,a=r.kind===Ct.SELL,u=Ht(r.feeAmount,n),l=Ht(r.sellAmount,n),h=Ht(r.buyAmount,i),c=h.num/l.num,f=Ht(l.big+u.big,n),d=Ht(c*f.num,i),p=s>0?(a?d.big:l.big)*BigInt(s)/qt:BigInt(0),m=a?{sellAmount:f.big,buyAmount:h.big-p}:{sellAmount:f.big+p,buyAmount:h.big},y=t=>t*BigInt(o)/qt,g=a?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-y(m.buyAmount)}:{sellAmount:m.sellAmount+y(m.sellAmount),buyAmount:m.buyAmount};return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:Ht(c*u.num,i).big},partnerFee:{amount:p,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:d.big},afterNetworkCosts:{sellAmount:f.big,buyAmount:h.big},afterPartnerFees:m,afterSlippage:g}}function Ht(t,e){if("number"==typeof t){const r=t*10**e,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:t}}const r=BigInt(t);return{big:r,num:Number(r)/10**e}}const zt=r`
1
+ import"cross-fetch/polyfill";import{RateLimiter as t}from"limiter";import{backOff as e}from"exponential-backoff";import{gql as r,request as n}from"graphql-request";import{utils as i,Contract as o,ethers as s,constants as a,BigNumber as u}from"ethers";import{OrderBalance as l,OrderKind as h,SigningScheme as c,isTypedDataSigner as f,hashTypedData as d,ORDER_TYPE_FIELDS as p}from"@cowprotocol/contracts";import{StandardMerkleTree as m}from"@openzeppelin/merkle-tree";import{defaultAbiCoder as y,solidityKeccak256 as g,getCreate2Address as v,joinSignature as b,splitSignature as A,arrayify as w,keccak256 as E,toUtf8Bytes as T}from"ethers/lib/utils";import{Signer as I}from"@ethersproject/abstract-signer";import{stringifyDeterministic as N,MetadataApi as M}from"@cowprotocol/app-data";var k;!function(t){t[t.MAINNET=1]="MAINNET",t[t.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",t[t.ARBITRUM_ONE=42161]="ARBITRUM_ONE",t[t.BASE=8453]="BASE",t[t.SEPOLIA=11155111]="SEPOLIA"}(k||(k={}));const _=["prod","staging"],S={env:"prod",chainId:k.MAINNET};class P extends Error{constructor(t,e){super(t),this.error_code=void 0,this.error_code=e}}const C="cow-sdk:",x="https://gnosis.mypinata.cloud/ipfs",O="https://api.pinata.cloud",R="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",B="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",D="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",L="0x00E989b87700514118Fa55326CD1cCE82faebEF6",U="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",F=Object.values(k).filter(t=>"number"==typeof t);function q(t){return F.reduce((e,r)=>({...e,[r]:"function"==typeof t?t(r):t}),{})}function G(t){return q(t)}const H=G("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),z=G("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),j=G(B),Q=G(D),K={[k.MAINNET]:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",[k.GNOSIS_CHAIN]:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",[k.ARBITRUM_ONE]:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",[k.SEPOLIA]:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",[k.BASE]:"0x4200000000000000000000000000000000000006"},V="0xba3cb449bd2b4adddbc894d8697f5170800eadec",J="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",Y=G(V),W=G(J),X=4294967295,Z=function(t,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${t}${r}${n?"?"+n:""}`,h={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(e(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,h)).then(function(t){return Promise.resolve(nt(t)).then(function(e){return t.status>=200&&t.status<300?e:Promise.reject(new $(t,e))})})})}catch(t){return Promise.reject(t)}},a))}catch(t){return Promise.reject(t)}};class $ extends Error{constructor(t,e){super("string"==typeof e?e:t.statusText),this.response=void 0,this.body=void 0,this.response=t,this.body=e}}const tt=[408,425,429,500,502,503,504],et={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:t=>!(t instanceof $)||tt.includes(t.response.status)},rt={tokensPerInterval:5,interval:"second"},nt=function(t){try{let e;const r=function(){if(204!==t.status)return function(r,n){try{var i=function(){const r=t.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(t.json()).then(function(t){return e=1,t}):Promise.resolve(t.text()).then(function(t){return e=1,t})}()}()}catch(t){return n(t)}return i&&i.then?i.then(void 0,n):i}(0,function(t){console.error(t)})}();return Promise.resolve(r&&r.then?r.then(function(t){return e?t:void 0}):e?r:void 0)}catch(t){return Promise.reject(t)}};function it(t){return function(t){const{ethflowData:e}=t;if(!e)return t;const{userValidTo:r}=e,n=t.onchainUser||t.owner,i=R;return{...t,validTo:r,owner:n,sellToken:i}}(function(t){const{executedFeeAmount:e,executedFee:r}=t,n=BigInt(e||"0"),i=BigInt(r||"0"),o=String(n+i);return{...t,totalFee:o}}(t))}const ot={[k.MAINNET]:"https://api.cow.fi/mainnet",[k.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[k.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[k.BASE]:"https://api.cow.fi/base",[k.SEPOLIA]:"https://api.cow.fi/sepolia"},st={[k.MAINNET]:"https://barn.api.cow.fi/mainnet",[k.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[k.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[k.BASE]:"https://barn.api.cow.fi/base",[k.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function at(t){return Object.keys(t).reduce((e,r)=>{const n=t[r];return void 0!==n&&(e[r]=n),e},{})}class ut{constructor(e={}){this.context=void 0,this.rateLimiter=void 0,this.context={...S,...e},this.rateLimiter=new t(e.limiterOpts||rt)}getVersion(t={}){return this.fetch({path:"/api/v1/version",method:"GET"},t)}getTrades(t,e={}){if(t.owner&&t.orderUid)return Promise.reject(new P("Cannot specify both owner and orderId"));if(!t.owner&&!t.orderUid)return Promise.reject(new P("Must specify either owner or orderId"));const r=new URLSearchParams(at(t));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},e)}getOrders({owner:t,offset:e=0,limit:r=1e3},n={}){const i=new URLSearchParams(at({offset:e.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${t}/orders`,method:"GET",query:i},n).then(t=>t.map(it))}getTxOrders(t,e={}){return this.fetch({path:`/api/v1/transactions/${t}/orders`,method:"GET"},e).then(t=>t.map(it))}getOrder(t,e={}){return this.fetch({path:`/api/v1/orders/${t}`,method:"GET"},e).then(t=>it(t))}getOrderCompetitionStatus(t,e={}){return this.fetch({path:`/api/v1/orders/${t}/status`,method:"GET"},e)}getOrderMultiEnv(t,e={}){const{env:r}=this.getContextWithOverride(e),n=_.filter(t=>t!==r);let i=0;const o=r=>{const s=n[i];return r instanceof $&&404===r.response.status&&s?(i++,this.getOrder(t,{...e,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(t,{...e,env:r}).catch(o)}getQuote(t,e={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:t},e)}sendSignedOrderCancellations(t,e={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:t},e)}sendOrder(t,e={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:t},e)}getNativePrice(t,e={}){return this.fetch({path:`/api/v1/token/${t}/native_price`,method:"GET"},e)}getTotalSurplus(t,e={}){return this.fetch({path:`/api/v1/users/${t}/total_surplus`,method:"GET"},e)}getAppData(t,e={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"GET"},e)}uploadAppData(t,e,r={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"PUT",body:{fullAppData:e}},r)}getSolverCompetition(t,e={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof t?"/by_tx_hash":""}/${t}`,method:"GET"},e)}getOrderLink(t,e){const{chainId:r,env:n}=this.getContextWithOverride(e);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${t}`}getContextWithOverride(t={}){return{...this.context,...t}}getApiBaseUrls(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?ot:st}fetch(e,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||et,u=r.limiterOpts?new t(r.limiterOpts):this.rateLimiter;return Z(s,e,u,a)}}var lt,ht,ct,ft,dt,pt,mt,yt,gt,vt,bt,At,wt,Et,Tt;!function(t){t.ERC20="erc20",t.INTERNAL="internal"}(lt||(lt={})),function(t){var e;(e=t.type||(t.type={})).OPEN="open",e.SCHEDULED="scheduled",e.ACTIVE="active",e.SOLVED="solved",e.EXECUTING="executing",e.TRADED="traded",e.CANCELLED="cancelled"}(ht||(ht={})),function(t){t.EIP712="eip712",t.ETHSIGN="ethsign"}(ct||(ct={})),function(t){var e;(e=t.placementError||(t.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",e.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",e.PRE_VALIDATION_ERROR="PreValidationError"}(ft||(ft={})),function(t){var e;(e=t.errorType||(t.errorType={})).INVALID_SIGNATURE="InvalidSignature",e.WRONG_OWNER="WrongOwner",e.ORDER_NOT_FOUND="OrderNotFound",e.ALREADY_CANCELLED="AlreadyCancelled",e.ORDER_FULLY_EXECUTED="OrderFullyExecuted",e.ORDER_EXPIRED="OrderExpired",e.ON_CHAIN_ORDER="OnChainOrder"}(dt||(dt={})),function(t){t.MARKET="market",t.LIMIT="limit",t.LIQUIDITY="liquidity"}(pt||(pt={})),function(t){t.BUY="buy",t.SELL="sell"}(mt||(mt={})),function(t){var e;(e=t.errorType||(t.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",e.QUOTE_NOT_FOUND="QuoteNotFound",e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.INVALID_QUOTE="InvalidQuote",e.MISSING_FROM="MissingFrom",e.WRONG_OWNER="WrongOwner",e.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",e.INSUFFICIENT_BALANCE="InsufficientBalance",e.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",e.INVALID_SIGNATURE="InvalidSignature",e.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",e.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",e.ZERO_AMOUNT="ZeroAmount",e.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",e.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",e.TOO_MUCH_GAS="TooMuchGas",e.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",e.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",e.INSUFFICIENT_VALID_TO="InsufficientValidTo",e.EXCESSIVE_VALID_TO="ExcessiveValidTo",e.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",e.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.INVALID_APP_DATA="InvalidAppData",e.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",e.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(yt||(yt={})),function(t){t.BUY="buy"}(gt||(gt={})),function(t){t.SELL="sell"}(vt||(vt={})),function(t){t.PRESIGNATURE_PENDING="presignaturePending",t.OPEN="open",t.FULFILLED="fulfilled",t.CANCELLED="cancelled",t.EXPIRED="expired"}(bt||(bt={})),function(t){var e;(e=t.errorType||(t.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.ZERO_AMOUNT="ZeroAmount",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(At||(At={})),function(t){t.FAST="fast",t.OPTIMAL="optimal",t.VERIFIED="verified"}(wt||(wt={})),function(t){t.ERC20="erc20",t.INTERNAL="internal",t.EXTERNAL="external"}(Et||(Et={})),function(t){t.EIP712="eip712",t.ETHSIGN="ethsign",t.PRESIGN="presign",t.EIP1271="eip1271"}(Tt||(Tt={}));const It=BigInt(1e4);function Nt(t){var e;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=t,s=null!==(e=t.partnerFeeBps)&&void 0!==e?e:0,a=r.kind===mt.SELL,u=Mt(r.feeAmount,n),l=Mt(r.sellAmount,n),h=Mt(r.buyAmount,i),c=h.num/l.num,f=Mt(l.big+u.big,n),d=Mt(c*f.num,i),p=s>0?(a?d.big:l.big)*BigInt(s)/It:BigInt(0),m=a?{sellAmount:f.big,buyAmount:h.big-p}:{sellAmount:f.big+p,buyAmount:h.big},y=t=>t*BigInt(o)/It,g=a?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-y(m.buyAmount)}:{sellAmount:m.sellAmount+y(m.sellAmount),buyAmount:m.buyAmount};return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:Mt(c*u.num,i).big},partnerFee:{amount:p,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:d.big},afterNetworkCosts:{sellAmount:f.big,buyAmount:h.big},afterPartnerFees:m,afterSlippage:g}}function Mt(t,e){if("number"==typeof t){const r=t*10**e,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:t}}const r=BigInt(t);return{big:r,num:Number(r)/10**e}}const kt=r`
2
2
  query Totals {
3
3
  totals {
4
4
  tokens
@@ -11,19 +11,19 @@ import"cross-fetch/polyfill";import{RateLimiter as t}from"limiter";import{backOf
11
11
  feesEth
12
12
  }
13
13
  }
14
- `,jt=r`
14
+ `,_t=r`
15
15
  query LastDaysVolume($days: Int!) {
16
16
  dailyTotals(orderBy: timestamp, orderDirection: desc, first: $days) {
17
17
  timestamp
18
18
  volumeUsd
19
19
  }
20
20
  }
21
- `,Qt=r`
21
+ `,St=r`
22
22
  query LastHoursVolume($hours: Int!) {
23
23
  hourlyTotals(orderBy: timestamp, orderDirection: desc, first: $hours) {
24
24
  timestamp
25
25
  volumeUsd
26
26
  }
27
27
  }
28
- `,Kt="https://api.thegraph.com/subgraphs/name/cowprotocol",Jt={[_.MAINNET]:Kt+"/cow",[_.GNOSIS_CHAIN]:Kt+"/cow-gc",[_.ARBITRUM_ONE]:null,[_.BASE]:null,[_.SEPOLIA]:null},Vt={[_.MAINNET]:Kt+"/cow-staging",[_.GNOSIS_CHAIN]:Kt+"/cow-gc-staging",[_.ARBITRUM_ONE]:null,[_.BASE]:null,[_.SEPOLIA]:null};class Yt{constructor(t={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...W,...t}}getTotals(t={}){try{return Promise.resolve(this.runQuery(zt,void 0,t)).then(function(t){return t.totals[0]})}catch(t){return Promise.reject(t)}}getLastDaysVolume(t,e={}){try{return Promise.resolve(this.runQuery(jt,{days:t},e))}catch(t){return Promise.reject(t)}}getLastHoursVolume(t,e={}){try{return Promise.resolve(this.runQuery(Qt,{hours:t},e))}catch(t){return Promise.reject(t)}}runQuery(t,e=undefined,r={}){try{const i=this,{chainId:o,env:s}=i.getContextWithOverride(r),a=i.getEnvConfigs(s)[o];if(null===a)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+o);return Promise.resolve(function(r,i){try{var o=Promise.resolve(n(a,t,e))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(r){throw console.error(`[subgraph:${i.API_NAME}]`,r),new M(`Error running query: ${t}. Variables: ${JSON.stringify(e)}. API: ${a}. Inner Error: ${r}`)}))}catch(t){return Promise.reject(t)}}getContextWithOverride(t={}){return{...this.context,...t}}getEnvConfigs(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?Jt:Vt}}const Wt=()=>import("./utils-8d77110e.js");class Xt{static signOrder(t,e,r){try{return Promise.resolve(Wt()).then(function({signOrder:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellation(t,e,r){try{return Promise.resolve(Wt()).then(function({signOrderCancellation:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellations(t,e,r){try{return Promise.resolve(Wt()).then(function({signOrderCancellations:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomain(t){try{return Promise.resolve(Wt()).then(function({getDomain:e}){return e(t)})}catch(t){return Promise.reject(t)}}static generateOrderId(t,e,r){try{return Promise.resolve(Wt()).then(function({generateOrderId:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomainSeparator(t){try{return Promise.resolve(Wt()).then(function({getDomain:e}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:r}){return r.hashDomain(e(t))})})}catch(t){return Promise.reject(t)}}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"}]}}}var Zt,$t;!function(t){t[t.PRIVATE=0]="PRIVATE",t[t.EMITTED=1]="EMITTED",t[t.SWARM=2]="SWARM",t[t.WAKU=3]="WAKU",t[t.RESERVED=4]="RESERVED",t[t.IPFS=5]="IPFS"}(Zt||(Zt={})),function(t){t.SUCCESS="SUCCESS",t.UNEXPECTED_ERROR="UNEXPECTED_ERROR",t.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",t.TRY_ON_BLOCK="TRY_ON_BLOCK",t.TRY_AT_EPOCH="TRY_AT_EPOCH",t.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}($t||($t={}));const te=[{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 ee{static createInterface(){return new i.Interface(te)}static connect(t,e){return new o(t,te,e)}}ee.abi=te;const re=[{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 ne{static createInterface(){return new i.Interface(re)}static connect(t,e){return new o(t,re,e)}}ne.abi=re;const ie=[{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 oe{static createInterface(){return new i.Interface(ie)}static connect(t,e){return new o(t,ie,e)}}oe.abi=ie;const se=[{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 ae{static createInterface(){return new i.Interface(se)}static connect(t,e){return new o(t,se,e)}}ae.abi=se;const ue=[{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 le{static createInterface(){return new i.Interface(ue)}static connect(t,e){return new o(t,ue,e)}}le.abi=ue;const he=function(t){try{return Promise.resolve(t.getBlock("latest")).then(function(t){return{blockNumber:t.number,blockTimestamp:t.timestamp}})}catch(t){return Promise.reject(t)}},ce=function(t,e,r,n){try{const i=ae.connect(ot[r],n);return Promise.resolve(i.callStatic.domainVerifiers(t,e))}catch(t){return Promise.reject(t)}},fe=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],de=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],pe=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],me=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],ye=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],ge=["tuple(address handler, bytes32 salt, bytes staticInput)"],ve=(t,e)=>`${e}@${t}`;function be(t,e){return t===ot[e]}function Ae(t,e){return t===st[e]}function we(t,e){return ae.createInterface().encodeFunctionData("setDomainVerifier",[t,e])}function Ee(t){return i.defaultAbiCoder.encode(ge,[t])}function Te(t){const{handler:e,salt:r,staticInput:n}=i.defaultAbiCoder.decode(ge,t)[0];return{handler:e,salt:r,staticInput:n}}function Ie(t,e){try{i.defaultAbiCoder.encode(t,e)}catch(t){return!1}return!0}function Ne(t){return new Date(1e3*t).toISOString()}function ke(t){if(fe.includes(t))return l.ERC20;if(de.includes(t))return l.EXTERNAL;if(pe.includes(t))return l.INTERNAL;throw new Error(`Unknown balance type: ${t}`)}function Me(t){if(me.includes(t))return h.SELL;if(ye.includes(t))return h.BUY;throw new Error(`Unknown kind: ${t}`)}function _e(t){const{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:h,partiallyFillable:c,appData:f}=t;return{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:c,appData:f,validTo:Number(h),kind:Me(u.toString()),sellTokenBalance:ke(s.toString()),buyTokenBalance:ke(o.toString())}}function Se(t){return t.isValid}let Pe,Ce;function xe(){return Pe||(Pe=ne.createInterface()),Pe}function Oe(t,e){return Ce||(Ce=ne.connect(st[t],e)),Ce}class Re{constructor(t){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:e,salt:r=i.keccak256(i.randomBytes(32)),data:n,hasOffChainInput:o=!1}=t;if(!s.utils.isAddress(e))throw new Error(`Invalid handler: ${e}`);if(!s.utils.isHexString(r)||32!==s.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=e,this.salt=r,this.data=n,this.staticInput=this.transformDataToStruct(n),this.hasOffChainInput=o}get context(){}assertIsValid(){const t=this.isValid();if(!Se(t))throw new Error(`Invalid order: ${t.reason}`)}get createCalldata(){this.assertIsValid();const t=this.context,e=xe(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(t){const n=t.factoryArgs?i.defaultAbiCoder.encode(t.factoryArgs.argsType,t.factoryArgs.args):"0x";return e.encodeFunctionData("createWithContext",[r,t.address,n,!0])}return e.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),xe().encodeFunctionData("remove",[this.id])}get id(){return i.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:a.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(t){return i.keccak256(Ee(t))}get offChainInput(){return"0x"}encodeStaticInputHelper(t,e){return i.defaultAbiCoder.encode(t,[e])}poll(t){try{const e=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=t,s=Oe(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=e.isValid();return Se(i)?Promise.resolve(e.pollValidate(t)).then(function(i){return i||Promise.resolve(e.isAuthorized(t)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,e.leaf,e.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(t,e,r){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(Xt.getDomain(t)).then(function(t){return n(t,r,e)})})}catch(t){return Promise.reject(t)}}(r,n,_e(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(t){return o?t:{result:$t.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(e.handlePollFailedAlreadyPresent(r,i,t)).then(function(t){return t?(o=1,t):(o=1,{result:$t.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:$t.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${e.id} is not authorized for ${n} on chain ${r}`}})}):{result:$t.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(t){return a(t)}return u&&u.then?u.then(void 0,a):u}(0,function(t){return{result:$t.UNEXPECTED_ERROR,error:t}}))}catch(t){return Promise.reject(t)}}isAuthorized(t){const{chainId:e,owner:r,provider:n}=t;return Oe(e,n).callStatic.singleOrders(r,this.id)}cabinet(t){const{chainId:e,owner:r,provider:n}=t;return Oe(e,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(t,e,r,n){try{const{handler:o,salt:s,staticInput:a}=Te(t);if(o!=e)throw new Error("HandlerMismatch");const[u]=i.defaultAbiCoder.decode(r,a);return n(u,s)}catch(t){throw"HandlerMismatch"===t.message?t:new Error("InvalidSerializedConditionalOrder")}}}const Be=["address","bytes32","bytes"],De=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Le{constructor(t,e,r,n=Zt.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=t,this.location=n,e&&0===Object.keys(e).length)throw new Error("orders must have non-zero length");if(e&&!r||!e&&r)throw new Error("orders cannot have undefined root");for(const t in e)if(e.hasOwnProperty(t)){const r=e[t];if(!Le.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(e&&(this.orders=e,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(t){const{chain:e,orders:r,root:n,location:i}=JSON.parse(t,(t,e)=>{if("orders"===t&&"object"==typeof e&&null!==e){const t={};for(const r in e)if(e.hasOwnProperty(r)){const{orderType:n,...i}=e[r];if(!Le.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);t[r]=new(0,Le.orderTypeRegistry[n])(i)}return t}return"object"==typeof e&&null!==e&&e.hasOwnProperty("type")&&e.hasOwnProperty("hex")&&"BigNumber"===e.type?u.from(e):e}),o=new Le(e,r,n);return o.location=i,o}toJSON(){const t=this.getOrGenerateTree().root;return JSON.stringify({...this,root:t},(t,e)=>{if("tree"!==t){if("object"==typeof e&&null!==e&&"orderType"in e){const t=e;return{...t,orderType:t.orderType}}return e}})}add(t){t.assertIsValid(),this.orders[t.id]=t,this.reset()}remove(t){delete this.orders[t],this.reset()}update(t,e){const r=e(this.orders[t],this.ctx);delete this.orders[t],this.orders[r.id]=r,this.reset()}getById(t){return this.orders[t]}getByIndex(t){return this.orders[this.orderIds[t]]}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(t=>[...Object.values(t.leaf)]),Be)),this.tree}static decodeFromJSON(t){return JSON.parse(t)}prepareProofStruct(t,e,r){try{const n=this;void 0===t&&(t=n.location);const o=function(){try{switch(t){case Zt.PRIVATE:return Promise.resolve("0x");case Zt.EMITTED:return Promise.resolve(n.encodeToABI(e));case Zt.SWARM:case Zt.WAKU:case Zt.IPFS:if(!r)throw new Error("Must provide an uploader function");return Promise.resolve(function(t,i){try{var o=Promise.resolve(r(n.encodeToJSON(e)))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(e){throw new Error(`Error uploading to decentralized storage ${t}: ${e}`)}));default:throw new Error("Unsupported location")}}catch(t){return Promise.reject(t)}};return Promise.resolve(o().then(e=>{try{return i.hexlify(i.arrayify(e)),n.location=t,{location:t,data:e}}catch(t){throw new Error("data returned by uploader is invalid")}}).catch(t=>{throw new Error(`Error preparing proof struct: ${t}`)}))}catch(t){return Promise.reject(t)}}static poll(t,e,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(t,e.params,r,e.proof))}const s=Oe(r,n);return Promise.resolve(i?Promise.resolve(i(t,e.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(t){return this.encodeToJSON(t)}dumpProofsAndParams(t){return this.getProofs(t)}getProofs(t){return[...this.getOrGenerateTree().entries()].map(([e,r])=>t&&t(r)||void 0===t?{idx:e,value:r}:void 0).reduce((t,e)=>{if(e){const r={handler:e.value[0],salt:e.value[1],staticInput:e.value[2]};t.push({proof:this.getOrGenerateTree().getProof(e.idx),params:r})}return t},[])}encodeToABI(t){return i.defaultAbiCoder.encode(De,[this.getProofs(t)])}encodeToJSON(t){return JSON.stringify(this.getProofs(t))}reset(){this.tree=void 0}static registerOrderType(t,e){Le.orderTypeRegistry[t]=e}static resetOrderTypeRegistry(){Le.orderTypeRegistry={}}}Le.orderTypeRegistry={};class Ue{constructor(t){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(t).reduce((t,[e,r])=>(t[e.toLowerCase()]=r,t),{})}fromParams(t){const{handler:e}=t,r=this.knownOrderTypes[e.toLocaleLowerCase()];if(r)return r(t)}}const Fe="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",qe="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Ge=u.from(2).pow(32).sub(1),He=u.from(31536e3),ze=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var je,Qe;!function(t){t.AUTO="AUTO",t.LIMIT_DURATION="LIMIT_DURATION"}(je||(je={})),function(t){t.AT_MINING_TIME="AT_MINING_TIME",t.AT_EPOCH="AT_EPOCH"}(Qe||(Qe={}));const Ke={startType:Qe.AT_MINING_TIME},Je={durationType:je.AUTO};class Ve extends Re{constructor(t){const{handler:e,salt:r,data:n,hasOffChainInput:i}=t;if(e!==Fe)throw new Error(`InvalidHandler: Expected: ${Fe}, provided: ${e}`);super({handler:Fe,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(t,e){return new Ve({handler:Fe,data:t,salt:e})}static fromParams(t){return Ve.deserialize(Ee(t))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:qe,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const t=(()=>{const{sellToken:t,sellAmount:e,buyToken:r,buyAmount:n,startTime:i=Ke,numberOfParts:o,timeBetweenParts:s,durationOfPart:u=Je}=this.data;if(t==r)return"InvalidSameToken";if(t==a.AddressZero||r==a.AddressZero)return"InvalidToken";if(!e.gt(a.Zero))return"InvalidSellAmount";if(!n.gt(a.Zero))return"InvalidMinBuyAmount";if(i.startType===Qe.AT_EPOCH){const t=i.epoch;if(!t.gte(a.Zero)||!t.lt(Ge))return"InvalidStartTime"}return o.gt(a.One)&&o.lte(Ge)?s.gt(a.Zero)&&s.lte(He)?u.durationType!==je.LIMIT_DURATION||u.duration.lte(s)?Ie(ze,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return t?{isValid:!1,reason:t}:{isValid:!0}}startTimestamp(t){try{const e=this,{startTime:r}=e.data;return r?.startType===Qe.AT_EPOCH?Promise.resolve(r.epoch.toNumber()):Promise.resolve(e.cabinet(t)).then(function(t){const e=i.defaultAbiCoder.decode(["uint256"],t)[0];if(e.gt(Ge))throw new Error(`Cabinet epoch out of range: ${e.toString()}`);const r=e.toNumber();if(0===r)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return r})}catch(t){return Promise.reject(t)}}endTimestamp(t){const{numberOfParts:e,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===je.LIMIT_DURATION?t+e.sub(1).mul(r).add(n.duration).toNumber():t+e.mul(r).toNumber()}pollValidate(t){try{const e=this;return Promise.resolve(he(t.provider)).then(function(r){const{blockInfo:n=r}=t,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(e.startTimestamp(t)).then(function(t){if(t>i)return{result:$t.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${Ne(t)})`};const r=e.endTimestamp(t);return i>=r?{result:$t.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Ne(r)})`}:void 0})}catch(t){return n(t)}return o&&o.then?o.then(void 0,n):o}(0,function(t){return t?.message?.includes("Cabinet is not set")?{result:$t.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:$t.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:$t.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(t){return Promise.reject(t)}}handlePollFailedAlreadyPresent(t,e,r){try{const t=this;return Promise.resolve(he(r.provider)).then(function(e){const{blockInfo:n=e}=r,{blockTimestamp:i}=n,o=t.data.timeBetweenParts.toNumber(),{numberOfParts:s}=t.data;return Promise.resolve(t.startTimestamp(r)).then(function(t){if(i<t)return{result:$t.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${t} (${Ne(t)})`,error:void 0};const e=s.mul(o).add(t).toNumber();if(i>=e)return{result:$t.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${e} (${Ne(e)})`,error:void 0};const r=Math.floor((i-t)/o);if(r===s.toNumber()-1)return{result:$t.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=t+(r+1)*o;return{result:$t.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${Ne(n)})`}})})}catch(t){return Promise.reject(t)}}serialize(){return Ee(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(ze,this.staticInput)}static deserialize(t){return super.deserializeHelper(t,Fe,ze,(t,e)=>new Ve({handler:Fe,salt:e,data:We(t)}))}toString(){const{sellAmount:t,sellToken:e,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=Ke,timeBetweenParts:s,durationOfPart:a=Je,receiver:u,appData:l}=this.data,h=o.startType===Qe.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),c=a.durationType===je.AUTO?"AUTO":a.duration.toNumber(),f={sellAmount:t.toString(),sellToken:e,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:h,timeBetweenParts:s.toNumber(),durationOfPart:c,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(f)}`}transformDataToStruct(t){return Ye(t)}transformStructToData(t){return We(t)}}function Ye(t){const{sellAmount:e,buyAmount:r,numberOfParts:n,startTime:i=Ke,timeBetweenParts:o,durationOfPart:s=Je,...u}=t,{partSellAmount:l,minPartLimit:h}=n&&!n.isZero()?{partSellAmount:e.div(n),minPartLimit:r.div(n)}:{partSellAmount:a.Zero,minPartLimit:a.Zero};return{partSellAmount:l,minPartLimit:h,t0:i.startType===Qe.AT_MINING_TIME?a.Zero:i.epoch,n:n,t:o,span:s.durationType===je.AUTO?a.Zero:s.duration,...u}}function We(t){const{n:e,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:h}=t,c=s.isZero()?{durationType:je.AUTO}:{durationType:je.LIMIT_DURATION,duration:s},f=s.isZero()?{startType:Qe.AT_MINING_TIME}:{startType:Qe.AT_EPOCH,epoch:o};return{sellAmount:r.mul(e),buyAmount:n.mul(e),startTime:f,numberOfParts:e,timeBetweenParts:i,durationOfPart:c,sellToken:a,buyToken:u,receiver:l,appData:h}}const Xe={[Fe]:t=>Ve.fromParams(t)};let Ze;function $e(t,e,r){if(!t.s){if(r instanceof tr){if(!r.s)return void(r.o=$e.bind(null,t,e));1&e&&(e=r.s),r=r.v}if(r&&r.then)return void r.then($e.bind(null,t,e),$e.bind(null,t,2));t.s=e,t.v=r;const n=t.o;n&&n(t)}}const tr=/*#__PURE__*/function(){function t(){}return t.prototype.then=function(e,r){const n=new t,i=this.s;if(i){const t=1&i?e:r;if(t){try{$e(n,1,t(this.v))}catch(t){$e(n,2,t)}return n}return this}return this.o=function(t){try{const i=t.v;1&t.s?$e(n,1,e?e(i):i):r?$e(n,1,r(i)):$e(n,2,i)}catch(t){$e(n,2,t)}},n},t}(),er={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 rr{constructor(t,e){this.chainId=void 0,this.customOptions=void 0,this.chainId=t,this.customOptions=e}proxyOf(t){const e=y.encode(["address"],[t]),r=g(["bytes","bytes"],[this.proxyCreationCode(),y.encode(["address","address"],[this.getImplementationAddress(),t])]);return v(this.getFactoryAddress(),e,r)}encodeExecuteHooksForFactory(t,e,r,n,i){return(Ze||(Ze=ee.createInterface()),Ze).encodeFunctionData("executeHooks",[t,e,r,n,i])}signCalls(t,e,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:h}=o.infoToSign(t,e,r,a);return Promise.resolve(function(t,e,r,n,i){try{let o,s;function a(t){return o?t:b(A(u))}let u=null;const l=function(t,e){var r,n=-1;t:{for(var i=0;i<e.length;i++){var o=e[i][0];if(o){var s=o();if(s&&s.then)break t;if(s===t){n=i;break}}else n=i}if(-1!==n){do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then){r=!0;break t}var l=e[n][2];n++}while(l&&!l());return u}}const h=new tr,c=$e.bind(null,h,2);return(r?u.then(f):s.then(function r(s){for(;;){if(s===t){n=i;break}if(++i===e.length){if(-1!==n)break;return void $e(h,1,u)}if(o=e[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,c)}else n=i}do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then)return void u.then(f).then(void 0,c);var l=e[n][2];n++}while(l&&!l());$e(h,1,u)})).then(void 0,c),h;function f(t){for(;;){var r=e[n][2];if(!r||r())break;n++;for(var i=e[n][1];!i;)n++,i=e[n][1];if((t=i())&&t.then)return void t.then(f).then(void 0,c)}$e(h,1,t)}}(t,[[function(){return c.EIP712},function(){if(!f(e))throw new Error("signer does not support signing typed data");return Promise.resolve(e._signTypedData(r,n,i)).then(function(t){u=t,s=1})}],[function(){return c.ETHSIGN},function(){return Promise.resolve(e.signMessage(w(d(r,n,i)))).then(function(t){u=t,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(h){return Promise.reject(h)}}(i,n,u,l,h))})}catch(t){return Promise.reject(t)}}infoToSign(t,e,r,n){const i={calls:t,nonce:e,deadline:r};return{domain:this.getDomain(n),types:er,message:i}}getDomain(t){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:t}}proxyCreationCode(){var t;return null!==(t=this.customOptions?.proxyCreationCode)&&void 0!==t?t:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033"}getFactoryAddress(){var t;return null!==(t=this.customOptions?.factoryAddress)&&void 0!==t?t:et}getImplementationAddress(){var t;return null!==(t=this.customOptions?.implementationAddress)&&void 0!==t?t:rt}}var nr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ir(t){var e={exports:{}};return t(e,e.exports),e.exports}var or={__proto__:null,default:{}},sr=ir(function(t){!function(t,e){function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function i(t,e,r){if(i.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=i:e.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:or.Buffer}catch(t){}function s(t,e){var n=t.charCodeAt(e);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+t)}function a(t,e,r){var n=s(t,r);return r-1>=e&&(n|=s(t,r-1)<<4),n}function u(t,e,n,i){for(var o=0,s=0,a=Math.min(t.length,n),u=e;u<a;u++){var l=t.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(i.isBN=function(t){return t instanceof i||null!==t&&"object"==typeof t&&t.constructor.wordSize===i.wordSize&&Array.isArray(t.words)},i.max=function(t,e){return t.cmp(e)>0?t:e},i.min=function(t,e){return t.cmp(e)<0?t:e},i.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,n):(this._parseBase(t,e,i),"le"===n&&this._initArray(this.toArray(),e,n)))},i.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=t.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=t[i]|t[i-1]<<8|t[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<t.length;i+=3)this.words[o]|=(s=t[i]|t[i+1]<<8|t[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=a(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=a(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,h=r;h<a;h+=n)l=u(t,h,h+n,e),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var c=1;for(l=u(t,h,t.length,e),h=0;h<s;h++)c*=e;this.imuln(c),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},i.prototype._move=function(t){l(t,this)},i.prototype.clone=function(){var t=new i(null);return this.copy(t),t},i.prototype._expand=function(t){for(;this.length<t;)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")]=h}catch(t){i.prototype.inspect=h}else i.prototype.inspect=h;function h(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[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],d=[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 p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,h=67108863&a,c=Math.min(u,e.length-1),f=Math.max(0,u-t.length+1);f<=c;f++)l+=(s=(i=0|t.words[u-f|0])*(o=0|e.words[f])+h)/67108864|0,h=67108863&s;r.words[u]=0|h,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==o||s!==this.length-1?c[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=f[t],h=d[t];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modrn(h).toString(t);n=(p=p.idivn(h)).isZero()?m+n:c[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(t,e){return this.toArrayLike(o,t,e)}),i.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},i.prototype.toArrayLike=function(t,e,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r++]=255&s,r<t.length&&(t[r++]=s>>8&255),r<t.length&&(t[r++]=s>>16&255),6===o?(r<t.length&&(t[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<t.length)for(t[r++]=n;r<t.length;)t[r++]=0},i.prototype._toArrayLikeBE=function(t,e){for(var r=t.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r--]=255&s,r>=0&&(t[r--]=s>>8&255),r>=0&&(t[r--]=s>>16&255),6===o?(r>=0&&(t[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},i.prototype._countBits=Math.clz32?function(t){return 32-Math.clz32(t)}:function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},i.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},i.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},i.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).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(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},i.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},i.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},i.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},i.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this._strip()},i.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},i.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},i.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},i.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},i.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},i.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},i.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},i.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(t){return this.clone().inotn(t)},i.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+(0|n.words[o])+i),i=e>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+i),i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},i.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(t){return this.clone().isub(t)};var m=function(t,e,r){var n,i,o,s=t.words,a=e.words,u=r.words,l=0,h=0|s[0],c=8191&h,f=h>>>13,d=0|s[1],p=8191&d,m=d>>>13,y=0|s[2],g=8191&y,v=y>>>13,b=0|s[3],A=8191&b,w=b>>>13,E=0|s[4],T=8191&E,I=E>>>13,N=0|s[5],k=8191&N,M=N>>>13,_=0|s[6],S=8191&_,P=_>>>13,C=0|s[7],x=8191&C,O=C>>>13,R=0|s[8],B=8191&R,D=R>>>13,L=0|s[9],U=8191&L,F=L>>>13,q=0|a[0],G=8191&q,H=q>>>13,z=0|a[1],j=8191&z,Q=z>>>13,K=0|a[2],J=8191&K,V=K>>>13,Y=0|a[3],W=8191&Y,X=Y>>>13,Z=0|a[4],$=8191&Z,tt=Z>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,lt=at>>>13,ht=0|a[8],ct=8191&ht,ft=ht>>>13,dt=0|a[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(l+(n=Math.imul(c,G))|0)+((8191&(i=(i=Math.imul(c,H))+Math.imul(f,G)|0))<<13)|0;l=((o=Math.imul(f,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,G),i=(i=Math.imul(p,H))+Math.imul(m,G)|0,o=Math.imul(m,H);var gt=(l+(n=n+Math.imul(c,j)|0)|0)+((8191&(i=(i=i+Math.imul(c,Q)|0)+Math.imul(f,j)|0))<<13)|0;l=((o=o+Math.imul(f,Q)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(g,G),i=(i=Math.imul(g,H))+Math.imul(v,G)|0,o=Math.imul(v,H),n=n+Math.imul(p,j)|0,i=(i=i+Math.imul(p,Q)|0)+Math.imul(m,j)|0,o=o+Math.imul(m,Q)|0;var vt=(l+(n=n+Math.imul(c,J)|0)|0)+((8191&(i=(i=i+Math.imul(c,V)|0)+Math.imul(f,J)|0))<<13)|0;l=((o=o+Math.imul(f,V)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(A,G),i=(i=Math.imul(A,H))+Math.imul(w,G)|0,o=Math.imul(w,H),n=n+Math.imul(g,j)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(v,j)|0,o=o+Math.imul(v,Q)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(m,J)|0,o=o+Math.imul(m,V)|0;var bt=(l+(n=n+Math.imul(c,W)|0)|0)+((8191&(i=(i=i+Math.imul(c,X)|0)+Math.imul(f,W)|0))<<13)|0;l=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(T,G),i=(i=Math.imul(T,H))+Math.imul(I,G)|0,o=Math.imul(I,H),n=n+Math.imul(A,j)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(w,j)|0,o=o+Math.imul(w,Q)|0,n=n+Math.imul(g,J)|0,i=(i=i+Math.imul(g,V)|0)+Math.imul(v,J)|0,o=o+Math.imul(v,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,X)|0;var At=(l+(n=n+Math.imul(c,$)|0)|0)+((8191&(i=(i=i+Math.imul(c,tt)|0)+Math.imul(f,$)|0))<<13)|0;l=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(k,G),i=(i=Math.imul(k,H))+Math.imul(M,G)|0,o=Math.imul(M,H),n=n+Math.imul(T,j)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(I,j)|0,o=o+Math.imul(I,Q)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(w,J)|0,o=o+Math.imul(w,V)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,X)|0,n=n+Math.imul(p,$)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(l+(n=n+Math.imul(c,rt)|0)|0)+((8191&(i=(i=i+Math.imul(c,nt)|0)+Math.imul(f,rt)|0))<<13)|0;l=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(S,G),i=(i=Math.imul(S,H))+Math.imul(P,G)|0,o=Math.imul(P,H),n=n+Math.imul(k,j)|0,i=(i=i+Math.imul(k,Q)|0)+Math.imul(M,j)|0,o=o+Math.imul(M,Q)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,V)|0)+Math.imul(I,J)|0,o=o+Math.imul(I,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var Et=(l+(n=n+Math.imul(c,ot)|0)|0)+((8191&(i=(i=i+Math.imul(c,st)|0)+Math.imul(f,ot)|0))<<13)|0;l=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,H))+Math.imul(O,G)|0,o=Math.imul(O,H),n=n+Math.imul(S,j)|0,i=(i=i+Math.imul(S,Q)|0)+Math.imul(P,j)|0,o=o+Math.imul(P,Q)|0,n=n+Math.imul(k,J)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(M,J)|0,o=o+Math.imul(M,V)|0,n=n+Math.imul(T,W)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(I,W)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0;var Tt=(l+(n=n+Math.imul(c,ut)|0)|0)+((8191&(i=(i=i+Math.imul(c,lt)|0)+Math.imul(f,ut)|0))<<13)|0;l=((o=o+Math.imul(f,lt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(B,G),i=(i=Math.imul(B,H))+Math.imul(D,G)|0,o=Math.imul(D,H),n=n+Math.imul(x,j)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(O,j)|0,o=o+Math.imul(O,Q)|0,n=n+Math.imul(S,J)|0,i=(i=i+Math.imul(S,V)|0)+Math.imul(P,J)|0,o=o+Math.imul(P,V)|0,n=n+Math.imul(k,W)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(M,W)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,st)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,lt)|0;var It=(l+(n=n+Math.imul(c,ct)|0)|0)+((8191&(i=(i=i+Math.imul(c,ft)|0)+Math.imul(f,ct)|0))<<13)|0;l=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(U,G),i=(i=Math.imul(U,H))+Math.imul(F,G)|0,o=Math.imul(F,H),n=n+Math.imul(B,j)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,j)|0,o=o+Math.imul(D,Q)|0,n=n+Math.imul(x,J)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(O,J)|0,o=o+Math.imul(O,V)|0,n=n+Math.imul(S,W)|0,i=(i=i+Math.imul(S,X)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(k,$)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(g,ut)|0,i=(i=i+Math.imul(g,lt)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,lt)|0,n=n+Math.imul(p,ct)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(m,ct)|0,o=o+Math.imul(m,ft)|0;var Nt=(l+(n=n+Math.imul(c,pt)|0)|0)+((8191&(i=(i=i+Math.imul(c,mt)|0)+Math.imul(f,pt)|0))<<13)|0;l=((o=o+Math.imul(f,mt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(U,j),i=(i=Math.imul(U,Q))+Math.imul(F,j)|0,o=Math.imul(F,Q),n=n+Math.imul(B,J)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(D,J)|0,o=o+Math.imul(D,V)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(O,W)|0,o=o+Math.imul(O,X)|0,n=n+Math.imul(S,$)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(k,rt)|0,i=(i=i+Math.imul(k,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,lt)|0)+Math.imul(w,ut)|0,o=o+Math.imul(w,lt)|0,n=n+Math.imul(g,ct)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(v,ct)|0,o=o+Math.imul(v,ft)|0;var kt=(l+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;l=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(U,J),i=(i=Math.imul(U,V))+Math.imul(F,J)|0,o=Math.imul(F,V),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(x,$)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(S,rt)|0,i=(i=i+Math.imul(S,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(k,ot)|0,i=(i=i+Math.imul(k,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,lt)|0)+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,n=n+Math.imul(A,ct)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(w,ct)|0,o=o+Math.imul(w,ft)|0;var Mt=(l+(n=n+Math.imul(g,pt)|0)|0)+((8191&(i=(i=i+Math.imul(g,mt)|0)+Math.imul(v,pt)|0))<<13)|0;l=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(U,W),i=(i=Math.imul(U,X))+Math.imul(F,W)|0,o=Math.imul(F,X),n=n+Math.imul(B,$)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(S,ot)|0,i=(i=i+Math.imul(S,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(k,ut)|0,i=(i=i+Math.imul(k,lt)|0)+Math.imul(M,ut)|0,o=o+Math.imul(M,lt)|0,n=n+Math.imul(T,ct)|0,i=(i=i+Math.imul(T,ft)|0)+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0;var _t=(l+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,mt)|0)+Math.imul(w,pt)|0))<<13)|0;l=((o=o+Math.imul(w,mt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(U,$),i=(i=Math.imul(U,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(S,ut)|0,i=(i=i+Math.imul(S,lt)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,n=n+Math.imul(k,ct)|0,i=(i=i+Math.imul(k,ft)|0)+Math.imul(M,ct)|0,o=o+Math.imul(M,ft)|0;var St=(l+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(I,pt)|0))<<13)|0;l=((o=o+Math.imul(I,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(U,rt),i=(i=Math.imul(U,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,st)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,st)|0,n=n+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,lt)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,lt)|0,n=n+Math.imul(S,ct)|0,i=(i=i+Math.imul(S,ft)|0)+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0;var Pt=(l+(n=n+Math.imul(k,pt)|0)|0)+((8191&(i=(i=i+Math.imul(k,mt)|0)+Math.imul(M,pt)|0))<<13)|0;l=((o=o+Math.imul(M,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(U,ot),i=(i=Math.imul(U,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,lt)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,lt)|0,n=n+Math.imul(x,ct)|0,i=(i=i+Math.imul(x,ft)|0)+Math.imul(O,ct)|0,o=o+Math.imul(O,ft)|0;var Ct=(l+(n=n+Math.imul(S,pt)|0)|0)+((8191&(i=(i=i+Math.imul(S,mt)|0)+Math.imul(P,pt)|0))<<13)|0;l=((o=o+Math.imul(P,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(U,ut),i=(i=Math.imul(U,lt))+Math.imul(F,ut)|0,o=Math.imul(F,lt),n=n+Math.imul(B,ct)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(D,ct)|0,o=o+Math.imul(D,ft)|0;var xt=(l+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,mt)|0)+Math.imul(O,pt)|0))<<13)|0;l=((o=o+Math.imul(O,mt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(U,ct),i=(i=Math.imul(U,ft))+Math.imul(F,ct)|0,o=Math.imul(F,ft);var Ot=(l+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,mt)|0)+Math.imul(D,pt)|0))<<13)|0;l=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var Rt=(l+(n=Math.imul(U,pt))|0)+((8191&(i=(i=Math.imul(U,mt))+Math.imul(F,pt)|0))<<13)|0;return l=((o=Math.imul(F,mt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=yt,u[1]=gt,u[2]=vt,u[3]=bt,u[4]=At,u[5]=wt,u[6]=Et,u[7]=Tt,u[8]=It,u[9]=Nt,u[10]=kt,u[11]=Mt,u[12]=_t,u[13]=St,u[14]=Pt,u[15]=Ct,u[16]=xt,u[17]=Ot,u[18]=Rt,0!==l&&(u[19]=l,r.length++),r};function y(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,e.length-1),l=Math.max(0,o-t.length+1);l<=u;l++){var h=(0|t.words[o-l])*(0|e.words[l]),c=67108863&h;a=67108863&(c=c+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(c>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(t,e,r){return y(t,e,r)}Math.imul||(m=p),i.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?m(this,t,e):r<63?p(this,t,e):r<1024?y(this,t,e):g(this,t,e)},i.prototype.mul=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},i.prototype.mulf=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),g(this,t,e)},i.prototype.imul=function(t){return this.clone().mulTo(t,this)},i.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r("number"==typeof t),r(t<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*t,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),e?this.ineg():this},i.prototype.muln=function(t){return this.clone().imuln(t)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++)e[r]=t.words[r/26|0]>>>r%26&1;return e}(t);if(0===e.length)return new i(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var o=r.sqr();n<e.length;n++,o=o.sqr())0!==e[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o;this.words[e]=(0|this.words[e])-a<<n|s,s=a>>>26-n}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},i.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var h=0;for(l=this.length-1;l>=0&&(0!==h||l>=i);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&a}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},i.prototype.shln=function(t){return this.clone().ishln(t)},i.prototype.ushln=function(t){return this.clone().iushln(t)},i.prototype.shrn=function(t){return this.clone().ishrn(t)},i.prototype.ushrn=function(t){return this.clone().iushrn(t)},i.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return!(this.length<=n||!(this.words[n]&1<<e))},i.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==e&&n++,this.length=Math.min(n,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<<e),this._strip())},i.prototype.maskn=function(t){return this.clone().imaskn(t)},i.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},i.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},i.prototype.addn=function(t){return this.clone().iaddn(t)},i.prototype.subn=function(t){return this.clone().isubn(t)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(t,e,n){var i,o;this._expand(t.length+n);var s=0;for(i=0;i<t.length;i++){o=(0|this.words[i+n])+s;var a=(0|t.words[i])*e;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(t,e){var r,n=this.clone(),o=t,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==e){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var h=n.clone()._ishlnsubmul(o,1,u);0===h.negative&&(n=h,a&&(a.words[u]=1));for(var c=u-1;c>=0;c--){var f=67108864*(0|n.words[o.length+c])+(0|n.words[o.length+c-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(o,f,c);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,c),n.isZero()||(n.negative^=1);a&&(a.words[c]=f)}return a&&a._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(o=a.div.neg()),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(t)),{div:o,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new i(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new i(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new i(this.modrn(t.words[0]))}:this._wordDiv(t,e);var o,s,a},i.prototype.div=function(t){return this.divmod(t,"div",!1).div},i.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},i.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},i.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%t;return e?-i:i},i.prototype.modn=function(t){return this.modrn(t)},i.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/t|0,n=o%t}return this._strip(),e?this.ineg():this},i.prototype.divn=function(t){return this.clone().idivn(t)},i.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++l;for(var h=n.clone(),c=e.clone();!e.isZero();){for(var f=0,d=1;0==(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(h),s.isub(c)),o.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(h),u.isub(c)),a.iushrn(1),u.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(a),s.isub(u)):(n.isub(e),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,h=1;0==(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(e.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var c=0,f=1;0==(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(n.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),s.isub(a)):(n.isub(e),a.isub(s))}return(o=0===e.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(t),o},i.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},i.prototype.invm=function(t){return this.egcd(t).a.umod(t)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(t){return this.words[0]&t},i.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},i.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},i.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},i.prototype.gtn=function(t){return 1===this.cmpn(t)},i.prototype.gt=function(t){return 1===this.cmp(t)},i.prototype.gten=function(t){return this.cmpn(t)>=0},i.prototype.gte=function(t){return this.cmp(t)>=0},i.prototype.ltn=function(t){return-1===this.cmpn(t)},i.prototype.lt=function(t){return-1===this.cmp(t)},i.prototype.lten=function(t){return this.cmpn(t)<=0},i.prototype.lte=function(t){return this.cmp(t)<=0},i.prototype.eqn=function(t){return 0===this.cmpn(t)},i.prototype.eq=function(t){return 0===this.cmp(t)},i.red=function(t){return new I(t)},i.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(t){return this.red=t,this},i.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},i.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},i.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},i.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},i.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},i.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},i.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},i.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function T(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(t){if("string"==typeof t){var e=i._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function N(t){I.call(this,t),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)}b.prototype._tmp=function(){var t=new i(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},n(A,b),A.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}t.words[i-10]=o>>>=22,t.length-=0===o&&t.length>10?10:9},A.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];t.words[r]=67108863&(e+=977*n),e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(w,b),n(E,b),n(T,b),T.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},i._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new A;else if("p224"===t)e=new w;else if("p192"===t)e=new E;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new T}return v[t]=e,e},I.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},I.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},I.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(l(t,t.umod(this.m)._forceRed(this)),t)},I.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},I.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},I.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},I.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},I.prototype.isqr=function(t){return this.imul(t,t.clone())},I.prototype.sqr=function(t){return this.mul(t,t)},I.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new i(1)).iushrn(2);return this.pow(t,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new i(2*h*h).toRed(this);0!==this.pow(h,l).cmp(u);)h.redIAdd(u);for(var c=this.pow(h,o),f=this.pow(t,o.addn(1).iushrn(1)),d=this.pow(t,o),p=s;0!==d.cmp(a);){for(var m=d,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<p);var g=this.pow(c,new i(1).iushln(p-y-1));f=f.redMul(g),c=g.redSqr(),d=d.redMul(c),p=y}return f},I.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},I.prototype.pow=function(t,e){if(e.isZero())return new i(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var o=r[0],s=0,a=0,u=e.bitLength()%26;for(0===u&&(u=26),n=e.length-1;n>=0;n--){for(var l=e.words[n],h=u-1;h>=0;h--){var c=l>>h&1;o!==r[0]&&(o=this.sqr(o)),0!==c||0!==s?(s<<=1,s|=c,(4==++a||0===n&&0===h)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},I.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},I.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},i.mont=function(t){return new N(t)},n(N,I),N.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},N.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},N.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},N.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new i(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},N.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,nr)});let ar=!1,ur=!1;const lr={debug:1,default:2,info:2,warning:3,error:4,off:5};let hr=lr.default,cr=null;const fr=function(){try{const t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(e=>{try{if("test"!=="test".normalize(e))throw new Error("bad normalize")}catch(r){t.push(e)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(t){return t.message}return null}();var dr,pr;!function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"}(dr||(dr={})),function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"}(pr||(pr={}));const mr="0123456789abcdef";class yr{constructor(t){Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}_log(t,e){const r=t.toLowerCase();null==lr[r]&&this.throwArgumentError("invalid log level name","logLevel",t),hr>lr[r]||console.log.apply(console,e)}debug(...t){this._log(yr.levels.DEBUG,t)}info(...t){this._log(yr.levels.INFO,t)}warn(...t){this._log(yr.levels.WARNING,t)}makeError(t,e,r){if(ur)return this.makeError("censored error",e,{});e||(e=yr.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(t=>{const e=r[t];try{if(e instanceof Uint8Array){let r="";for(let t=0;t<e.length;t++)r+=mr[e[t]>>4],r+=mr[15&e[t]];n.push(t+"=Uint8Array(0x"+r+")")}else n.push(t+"="+JSON.stringify(e))}catch(e){n.push(t+"="+JSON.stringify(r[t].toString()))}}),n.push(`code=${e}`),n.push(`version=${this.version}`);const i=t;let o="";switch(e){case pr.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case pr.CALL_EXCEPTION:case pr.INSUFFICIENT_FUNDS:case pr.MISSING_NEW:case pr.NONCE_EXPIRED:case pr.REPLACEMENT_UNDERPRICED:case pr.TRANSACTION_REPLACED:case pr.UNPREDICTABLE_GAS_LIMIT:o=e}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(t+=" ("+n.join(", ")+")");const s=new Error(t);return s.reason=i,s.code=e,Object.keys(r).forEach(function(t){s[t]=r[t]}),s}throwError(t,e,r){throw this.makeError(t,e,r)}throwArgumentError(t,e,r){return this.throwError(t,yr.errors.INVALID_ARGUMENT,{argument:e,value:r})}assert(t,e,r,n){t||this.throwError(e,r,n)}assertArgument(t,e,r,n){t||this.throwArgumentError(e,r,n)}checkNormalize(t){fr&&this.throwError("platform missing String.prototype.normalize",yr.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:fr})}checkSafeUint53(t,e){"number"==typeof t&&(null==e&&(e="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(e,yr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(e,yr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,e,r){r=r?": "+r:"",t<e&&this.throwError("missing argument"+r,yr.errors.MISSING_ARGUMENT,{count:t,expectedCount:e}),t>e&&this.throwError("too many arguments"+r,yr.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:e})}checkNew(t,e){t!==Object&&null!=t||this.throwError("missing new",yr.errors.MISSING_NEW,{name:e.name})}checkAbstract(t,e){t===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",yr.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",yr.errors.MISSING_NEW,{name:e.name})}static globalLogger(){return cr||(cr=new yr("logger/5.8.0")),cr}static setCensorship(t,e){if(!t&&e&&this.globalLogger().throwError("cannot permanently disable censorship",yr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),ar){if(!t)return;this.globalLogger().throwError("error censorship permanent",yr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}ur=!!t,ar=!!e}static setLogLevel(t){const e=lr[t.toLowerCase()];null!=e?hr=e:yr.globalLogger().warn("invalid log level - "+t)}static from(t){return new yr(t)}}yr.errors=pr,yr.levels=dr;const gr=new yr("bytes/5.8.0");function vr(t){return!!t.toHexString}function br(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return br(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function Ar(t){return kr(t)&&!(t.length%2)||Er(t)}function wr(t){return"number"==typeof t&&t==t&&t%1==0}function Er(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if("string"==typeof t)return!1;if(!wr(t.length)||t.length<0)return!1;for(let e=0;e<t.length;e++){const r=t[e];if(!wr(r)||r<0||r>=256)return!1}return!0}function Tr(t,e){if(e||(e={}),"number"==typeof t){gr.checkSafeUint53(t,"invalid arrayify value");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),br(new Uint8Array(e))}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),vr(t)&&(t=t.toHexString()),kr(t)){let r=t.substring(2);r.length%2&&("left"===e.hexPad?r="0"+r:"right"===e.hexPad?r+="0":gr.throwArgumentError("hex data is odd-length","value",t));const n=[];for(let t=0;t<r.length;t+=2)n.push(parseInt(r.substring(t,t+2),16));return br(new Uint8Array(n))}return Er(t)?br(new Uint8Array(t)):gr.throwArgumentError("invalid arrayify value","value",t)}function Ir(t){const e=t.map(t=>Tr(t)),r=e.reduce((t,e)=>t+e.length,0),n=new Uint8Array(r);return e.reduce((t,e)=>(n.set(e,t),t+e.length),0),br(n)}function Nr(t){let e=Tr(t);if(0===e.length)return e;let r=0;for(;r<e.length&&0===e[r];)r++;return r&&(e=e.slice(r)),e}function kr(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}const Mr="0123456789abcdef";function _r(t,e){if(e||(e={}),"number"==typeof t){gr.checkSafeUint53(t,"invalid hexlify value");let e="";for(;t;)e=Mr[15&t]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if("bigint"==typeof t)return(t=t.toString(16)).length%2?"0x0"+t:"0x"+t;if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),vr(t))return t.toHexString();if(kr(t))return t.length%2&&("left"===e.hexPad?t="0x0"+t.substring(2):"right"===e.hexPad?t+="0":gr.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(Er(t)){let e="0x";for(let r=0;r<t.length;r++){let n=t[r];e+=Mr[(240&n)>>4]+Mr[15&n]}return e}return gr.throwArgumentError("invalid hexlify value","value",t)}function Sr(t){if("string"!=typeof t)t=_r(t);else if(!kr(t)||t.length%2)return null;return(t.length-2)/2}function Pr(t,e,r){return"string"!=typeof t?t=_r(t):(!kr(t)||t.length%2)&&gr.throwArgumentError("invalid hexData","value",t),e=2+2*e,null!=r?"0x"+t.substring(e,2+2*r):"0x"+t.substring(e)}function Cr(t){let e="0x";return t.forEach(t=>{e+=_r(t).substring(2)}),e}function xr(t){const e=function(t){"string"!=typeof t&&(t=_r(t)),kr(t)||gr.throwArgumentError("invalid hex string","value",t),t=t.substring(2);let e=0;for(;e<t.length&&"0"===t[e];)e++;return"0x"+t.substring(e)}(_r(t,{hexPad:"left"}));return"0x"===e?"0x0":e}function Or(t,e){for("string"!=typeof t?t=_r(t):kr(t)||gr.throwArgumentError("invalid hex string","value",t),t.length>2*e+2&&gr.throwArgumentError("value out of range","value",arguments[1]);t.length<2*e+2;)t="0x0"+t.substring(2);return t}function Rr(t){const e={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Ar(t)){let r=Tr(t);64===r.length?(e.v=27+(r[32]>>7),r[32]&=127,e.r=_r(r.slice(0,32)),e.s=_r(r.slice(32,64))):65===r.length?(e.r=_r(r.slice(0,32)),e.s=_r(r.slice(32,64)),e.v=r[64]):gr.throwArgumentError("invalid signature string","signature",t),e.v<27&&(0===e.v||1===e.v?e.v+=27:gr.throwArgumentError("signature invalid v byte","signature",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(r[32]|=128),e._vs=_r(r.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,null!=e._vs){const r=function(t,e){(t=Tr(t)).length>e&&gr.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(e);return r.set(t,e-t.length),br(r)}(Tr(e._vs),32);e._vs=_r(r);const n=r[0]>=128?1:0;null==e.recoveryParam?e.recoveryParam=n:e.recoveryParam!==n&&gr.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),r[0]&=127;const i=_r(r);null==e.s?e.s=i:e.s!==i&&gr.throwArgumentError("signature v mismatch _vs","signature",t)}null==e.recoveryParam?null==e.v?gr.throwArgumentError("signature missing v and recoveryParam","signature",t):e.recoveryParam=0===e.v||1===e.v?e.v:1-e.v%2:null==e.v?e.v=27+e.recoveryParam:e.recoveryParam!==(0===e.v||1===e.v?e.v:1-e.v%2)&&gr.throwArgumentError("signature recoveryParam mismatch v","signature",t),null!=e.r&&kr(e.r)?e.r=Or(e.r,32):gr.throwArgumentError("signature missing or invalid r","signature",t),null!=e.s&&kr(e.s)?e.s=Or(e.s,32):gr.throwArgumentError("signature missing or invalid s","signature",t);const r=Tr(e.s);r[0]>=128&&gr.throwArgumentError("signature s out of range","signature",t),e.recoveryParam&&(r[0]|=128);const n=_r(r);e._vs&&(kr(e._vs)||gr.throwArgumentError("signature invalid _vs","signature",t),e._vs=Or(e._vs,32)),null==e._vs?e._vs=n:e._vs!==n&&gr.throwArgumentError("signature _vs mismatch v and s","signature",t)}return e.yParityAndS=e._vs,e.compact=e.r+e.yParityAndS.substring(2),e}var Br=sr.BN;const Dr=new yr("bignumber/5.8.0"),Lr={},Ur=9007199254740991;let Fr=!1;class qr{constructor(t,e){t!==Lr&&Dr.throwError("cannot call constructor directly; use BigNumber.from",yr.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return Hr(zr(this).fromTwos(t))}toTwos(t){return Hr(zr(this).toTwos(t))}abs(){return"-"===this._hex[0]?qr.from(this._hex.substring(1)):this}add(t){return Hr(zr(this).add(zr(t)))}sub(t){return Hr(zr(this).sub(zr(t)))}div(t){return qr.from(t).isZero()&&jr("division-by-zero","div"),Hr(zr(this).div(zr(t)))}mul(t){return Hr(zr(this).mul(zr(t)))}mod(t){const e=zr(t);return e.isNeg()&&jr("division-by-zero","mod"),Hr(zr(this).umod(e))}pow(t){const e=zr(t);return e.isNeg()&&jr("negative-power","pow"),Hr(zr(this).pow(e))}and(t){const e=zr(t);return(this.isNegative()||e.isNeg())&&jr("unbound-bitwise-result","and"),Hr(zr(this).and(e))}or(t){const e=zr(t);return(this.isNegative()||e.isNeg())&&jr("unbound-bitwise-result","or"),Hr(zr(this).or(e))}xor(t){const e=zr(t);return(this.isNegative()||e.isNeg())&&jr("unbound-bitwise-result","xor"),Hr(zr(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&jr("negative-width","mask"),Hr(zr(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&jr("negative-width","shl"),Hr(zr(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&jr("negative-width","shr"),Hr(zr(this).shrn(t))}eq(t){return zr(this).eq(zr(t))}lt(t){return zr(this).lt(zr(t))}lte(t){return zr(this).lte(zr(t))}gt(t){return zr(this).gt(zr(t))}gte(t){return zr(this).gte(zr(t))}isNegative(){return"-"===this._hex[0]}isZero(){return zr(this).isZero()}toNumber(){try{return zr(this).toNumber()}catch(t){jr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return Dr.throwError("this platform does not support BigInt",yr.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Fr||(Fr=!0,Dr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Dr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",yr.errors.UNEXPECTED_ARGUMENT,{})),zr(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof qr)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new qr(Lr,Gr(t)):t.match(/^-?[0-9]+$/)?new qr(Lr,Gr(new Br(t))):Dr.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&jr("underflow","BigNumber.from",t),(t>=Ur||t<=-Ur)&&jr("overflow","BigNumber.from",t),qr.from(String(t));const e=t;if("bigint"==typeof e)return qr.from(e.toString());if(Er(e))return qr.from(_r(e));if(e)if(e.toHexString){const t=e.toHexString();if("string"==typeof t)return qr.from(t)}else{let t=e._hex;if(null==t&&"BigNumber"===e.type&&(t=e.hex),"string"==typeof t&&(kr(t)||"-"===t[0]&&kr(t.substring(1))))return qr.from(t)}return Dr.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(t){return!(!t||!t._isBigNumber)}}function Gr(t){if("string"!=typeof t)return Gr(t.toString(16));if("-"===t[0])return"-"===(t=t.substring(1))[0]&&Dr.throwArgumentError("invalid hex","value",t),"0x00"===(t=Gr(t))?t:"-"+t;if("0x"!==t.substring(0,2)&&(t="0x"+t),"0x"===t)return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&"0x00"===t.substring(0,4);)t="0x"+t.substring(4);return t}function Hr(t){return qr.from(Gr(t))}function zr(t){const e=qr.from(t).toHexString();return new Br("-"===e[0]?"-"+e.substring(3):e.substring(2),16)}function jr(t,e,r){const n={fault:t,operation:e};return null!=r&&(n.value=r),Dr.throwError(t,yr.errors.NUMERIC_FAULT,n)}var Qr=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Kr=new yr("properties/5.8.0");function Jr(t,e,r){Object.defineProperty(t,e,{enumerable:!0,value:r,writable:!1})}function Vr(t,e){for(let r=0;r<32;r++){if(t[e])return t[e];if(!t.prototype||"object"!=typeof t.prototype)break;t=Object.getPrototypeOf(t.prototype).constructor}return null}function Yr(t){return Qr(this,void 0,void 0,function*(){const e=Object.keys(t).map(e=>Promise.resolve(t[e]).then(t=>({key:e,value:t})));return(yield Promise.all(e)).reduce((t,e)=>(t[e.key]=e.value,t),{})})}function Wr(t){const e={};for(const r in t)e[r]=t[r];return e}const Xr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Zr(t){if(null==t||Xr[typeof t])return!0;if(Array.isArray(t)||"object"==typeof t){if(!Object.isFrozen(t))return!1;const e=Object.keys(t);for(let r=0;r<e.length;r++){let n=null;try{n=t[e[r]]}catch(t){continue}if(!Zr(n))return!1}return!0}return Kr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function $r(t){if(Zr(t))return t;if(Array.isArray(t))return Object.freeze(t.map(t=>tn(t)));if("object"==typeof t){const e={};for(const r in t){const n=t[r];void 0!==n&&Jr(e,r,tn(n))}return e}return Kr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function tn(t){return $r(t)}class en{constructor(t){for(const e in t)this[e]=tn(t[e])}}const rn=new yr("abstract-provider/5.8.0");class nn extends en{static isForkEvent(t){return!(!t||!t._isForkEvent)}}class on{constructor(){rn.checkAbstract(new.target,on),Jr(this,"_isProvider",!0)}getFeeData(){return t=this,r=function*(){const{block:t,gasPrice:e}=yield Yr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(t=>null)});let r=null,n=null,i=null;return t&&t.baseFeePerGas&&(r=t.baseFeePerGas,i=qr.from("1500000000"),n=t.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:e}},new((e=void 0)||(e=Promise))(function(n,i){function o(t){try{a(r.next(t))}catch(t){i(t)}}function s(t){try{a(r.throw(t))}catch(t){i(t)}}function a(t){var r;t.done?n(t.value):(r=t.value,r instanceof e?r:new e(function(t){t(r)})).then(o,s)}a((r=r.apply(t,[])).next())});var t,e,r}addListener(t,e){return this.on(t,e)}removeListener(t,e){return this.off(t,e)}static isProvider(t){return!(!t||!t._isProvider)}}const sn=new yr("networks/5.8.0");function an(t){const e=function(e,r){null==r&&(r={});const n=[];if(e.InfuraProvider&&"-"!==r.infura)try{n.push(new e.InfuraProvider(t,r.infura))}catch(t){}if(e.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new e.EtherscanProvider(t,r.etherscan))}catch(t){}if(e.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new e.AlchemyProvider(t,r.alchemy))}catch(t){}if(e.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new e.PocketProvider(t,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}}if(e.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new e.CloudflareProvider(t))}catch(t){}if(e.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new e.AnkrProvider(t,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}if(e.QuickNodeProvider&&"-"!==r.quicknode)try{n.push(new e.QuickNodeProvider(t,r.quicknode))}catch(t){}if(0===n.length)return null;if(e.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===t&&(i=2),new e.FallbackProvider(n,i)}return n[0]};return e.renetwork=function(t){return an(t)},e}function un(t,e){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(t,e):null};return r.renetwork=function(e){return un(t,e)},r}const ln={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:an("homestead")},hn={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:an("ropsten")},cn={chainId:63,name:"classicMordor",_defaultProvider:un("https://www.ethercluster.com/mordor","classicMordor")},fn={unspecified:{chainId:0,name:"unspecified"},homestead:ln,mainnet:ln,morden:{chainId:2,name:"morden"},ropsten:hn,testnet:hn,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:an("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:an("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:an("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:an("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:an("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:un("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:cn,classicTestnet:cn,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:un("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:an("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:an("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:an("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 dn(t){t=atob(t);const e=[];for(let r=0;r<t.length;r++)e.push(t.charCodeAt(r));return Tr(e)}function pn(t){t=Tr(t);let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}class mn{constructor(t){Jr(this,"alphabet",t),Jr(this,"base",t.length),Jr(this,"_alphabetMap",{}),Jr(this,"_leader",t.charAt(0));for(let e=0;e<t.length;e++)this._alphabetMap[t.charAt(e)]=e}encode(t){let e=Tr(t);if(0===e.length)return"";let r=[0];for(let t=0;t<e.length;++t){let n=e[t];for(let t=0;t<r.length;++t)n+=r[t]<<8,r[t]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let t=0;0===e[t]&&t<e.length-1;++t)n+=this._leader;for(let t=r.length-1;t>=0;--t)n+=this.alphabet[r[t]];return n}decode(t){if("string"!=typeof t)throw new TypeError("Expected String");let e=[];if(0===t.length)return new Uint8Array(e);e.push(0);for(let r=0;r<t.length;r++){let n=this._alphabetMap[t[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let t=0;t<e.length;++t)i+=e[t]*this.base,e[t]=255&i,i>>=8;for(;i>0;)e.push(255&i),i>>=8}for(let r=0;t[r]===this._leader&&r<t.length-1;++r)e.push(0);return Tr(new Uint8Array(e.reverse()))}}new mn("abcdefghijklmnopqrstuvwxyz234567");const yn=new mn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),gn=/*#__PURE__*/qr.from(0);var vn=ir(function(t){!function(){var e="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=nr:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&t.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],h=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],c=[224,256,384,512],f=[128,256],d=["hex","buffer","arrayBuffer","array","digest"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var m=function(t,e,r){return function(n){return new P(t,e,t).update(n)[r]()}},y=function(t,e,r){return function(n,i){return new P(t,e,i).update(n)[r]()}},g=function(t,e,r){return function(e,n,i,o){return E["cshake"+t].update(e,n,i,o)[r]()}},v=function(t,e,r){return function(e,n,i,o){return E["kmac"+t].update(e,n,i,o)[r]()}},b=function(t,e,r,n){for(var i=0;i<d.length;++i){var o=d[i];t[o]=e(r,n,o)}return t},A=function(t,e){var r=m(t,e,"hex");return r.create=function(){return new P(t,e,t)},r.update=function(t){return r.create().update(t)},b(r,m,t,e)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:c,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:c,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(t,e){var r=y(t,e,"hex");return r.create=function(r){return new P(t,e,r)},r.update=function(t,e){return r.create(e).update(t)},b(r,y,t,e)}},{name:"cshake",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=g(t,0,"hex");return n.create=function(n,i,o){return i||o?new P(t,e,n).bytepad([i,o],r):E["shake"+t].create(n)},n.update=function(t,e,r,i){return n.create(e,r,i).update(t)},b(n,g,t,e)}},{name:"kmac",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=v(t,0,"hex");return n.create=function(n,i,o){return new C(t,e,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(t,e,r,i){return n.create(t,r,i).update(e)},b(n,v,t,e)}}],E={},T=[],I=0;I<w.length;++I)for(var N=w[I],k=N.bits,M=0;M<k.length;++M){var _=N.name+"_"+k[M];if(T.push(_),E[_]=N.createMethod(k[M],N.padding),"sha3"!==N.name){var S=N.name+k[M];T.push(S),E[S]=E[_]}}function P(t,e,r){this.blocks=[],this.s=[],this.padding=e,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function C(t,e,r){P.call(this,t,e,r)}P.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,h=t.length,c=this.blockCount,f=0,d=this.s;f<h;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<c+1;++i)a[i]=0;if(r)for(i=this.start;f<h&&i<u;++f)a[i>>2]|=t[f]<<l[3&i++];else for(i=this.start;f<h&&i<u;++f)(o=t.charCodeAt(f))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&t.charCodeAt(++f)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[c],i=0;i<c;++i)d[i]^=a[i];x(d),this.reset=!0}else this.start=i}return this},P.prototype.encode=function(t,e){var r=255&t,n=1,i=[r];for(r=255&(t>>=8);r>0;)i.unshift(r),r=255&(t>>=8),++n;return e?i.push(n):i.unshift(n),this.update(i),i.length},P.prototype.encodeString=function(t){var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}var i=0;if(r)i=t.length;else for(var o=0;o<t.length;++o){var a=t.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(t),i},P.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n<t.length;++n)r+=this.encodeString(t[n]);var i=[];return i.length=e-r%e,this.update(i),this},P.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,r=this.blockCount,n=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e<r+1;++e)t[e]=0;for(t[r-1]|=2147483648,e=0;e<r;++e)n[e]^=t[e];x(n)}},P.prototype.toString=P.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<e&&s<n;++o,++s)u+=a[(t=r[o])>>4&15]+a[15&t]+a[t>>12&15]+a[t>>8&15]+a[t>>20&15]+a[t>>16&15]+a[t>>28&15]+a[t>>24&15];s%e==0&&(x(r),o=0)}return i&&(u+=a[(t=r[o])>>4&15]+a[15&t],i>1&&(u+=a[t>>12&15]+a[t>>8&15]),i>2&&(u+=a[t>>20&15]+a[t>>16&15])),u},P.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(t);s<n;){for(o=0;o<e&&s<n;++o,++s)u[s]=r[o];s%e==0&&x(r)}return i&&(u[o]=r[o],t=t.slice(0,a)),t},P.prototype.buffer=P.prototype.arrayBuffer,P.prototype.digest=P.prototype.array=function(){this.finalize();for(var t,e,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[t=a<<2]=255&(e=n[s]),u[t+1]=e>>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;a%r==0&&x(n)}return o&&(u[t=a<<2]=255&(e=n[s]),o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u},(C.prototype=new P).finalize=function(){return this.encode(this.outputBits,!0),P.prototype.finalize.call(this)};var x=function(t){var e,r,n,i,o,s,a,u,l,c,f,d,p,m,y,g,v,b,A,w,E,T,I,N,k,M,_,S,P,C,x,O,R,B,D,L,U,F,q,G,H,z,j,Q,K,J,V,Y,W,X,Z,$,tt,et,rt,nt,it,ot,st,at,ut,lt,ht;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],u=t[4]^t[14]^t[24]^t[34]^t[44],l=t[5]^t[15]^t[25]^t[35]^t[45],c=t[6]^t[16]^t[26]^t[36]^t[46],f=t[7]^t[17]^t[27]^t[37]^t[47],r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^((a=t[3]^t[13]^t[23]^t[33]^t[43])<<1|(s=t[2]^t[12]^t[22]^t[32]^t[42])>>>31),t[0]^=e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(s<<1|a>>>31),t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,r=o^(l<<1|u>>>31),t[2]^=e=i^(u<<1|l>>>31),t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,r=a^(f<<1|c>>>31),t[4]^=e=s^(c<<1|f>>>31),t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,r=l^(p<<1|d>>>31),t[6]^=e=u^(d<<1|p>>>31),t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,r=f^(o<<1|i>>>31),t[8]^=e=c^(i<<1|o>>>31),t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,y=t[1],J=t[11]<<4|t[10]>>>28,V=t[10]<<4|t[11]>>>28,S=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,z=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,B=t[2]<<1|t[3]>>>31,D=t[3]<<1|t[2]>>>31,v=t[12]<<12|t[13]>>>20,Y=t[22]<<10|t[23]>>>22,W=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,x=t[32]<<13|t[33]>>>19,lt=t[42]<<2|t[43]>>>30,ht=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,L=t[14]<<6|t[15]>>>26,U=t[15]<<6|t[14]>>>26,A=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,O=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,N=t[6]<<28|t[7]>>>4,k=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,q=t[27]<<25|t[26]>>>7,w=t[36]<<21|t[37]>>>11,E=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,Q=t[8]<<27|t[9]>>>5,K=t[9]<<27|t[8]>>>5,M=t[18]<<20|t[19]>>>12,_=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,G=t[38]<<8|t[39]>>>24,H=t[39]<<8|t[38]>>>24,T=t[48]<<14|t[49]>>>18,I=t[49]<<14|t[48]>>>18,t[0]=(m=t[0])^~(g=t[13]<<12|t[12]>>>20)&(b=t[25]<<11|t[24]>>>21),t[1]=y^~v&A,t[10]=N^~M&S,t[11]=k^~_&P,t[20]=B^~L&F,t[21]=D^~U&q,t[30]=Q^~J&Y,t[31]=K^~V&W,t[40]=et^~nt&ot,t[41]=rt^~it&st,t[2]=g^~b&w,t[3]=v^~A&E,t[12]=M^~S&C,t[13]=_^~P&x,t[22]=L^~F&G,t[23]=U^~q&H,t[32]=J^~Y&X,t[33]=V^~W&Z,t[42]=nt^~ot&at,t[43]=it^~st&ut,t[4]=b^~w&T,t[5]=A^~E&I,t[14]=S^~C&O,t[15]=P^~x&R,t[24]=F^~G&z,t[25]=q^~H&j,t[34]=Y^~X&$,t[35]=W^~Z&tt,t[44]=ot^~at&lt,t[45]=st^~ut&ht,t[6]=w^~T&m,t[7]=E^~I&y,t[16]=C^~O&N,t[17]=x^~R&k,t[26]=G^~z&B,t[27]=H^~j&D,t[36]=X^~$&Q,t[37]=Z^~tt&K,t[46]=at^~lt&et,t[47]=ut^~ht&rt,t[8]=T^~m&g,t[9]=I^~y&v,t[18]=O^~N&M,t[19]=R^~k&_,t[28]=z^~B&L,t[29]=j^~D&U,t[38]=$^~Q&J,t[39]=tt^~K&V,t[48]=lt^~et&nt,t[49]=ht^~rt&it,t[0]^=h[n],t[1]^=h[n+1]};if(o)t.exports=E;else for(I=0;I<T.length;++I)n[T[I]]=E[T[I]]}()});function bn(t){return"0x"+vn.keccak_256(Tr(t))}const An=new yr("strings/5.8.0");var wn,En;function Tn(t,e,r,n,i){if(t===En.BAD_PREFIX||t===En.UNEXPECTED_CONTINUE){let t=0;for(let n=e+1;n<r.length&&r[n]>>6==2;n++)t++;return t}return t===En.OVERRUN?r.length-e-1:0}!function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"}(wn||(wn={})),function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"}(En||(En={}));const In=Object.freeze({error:function(t,e,r,n,i){return An.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,"bytes",r)},ignore:Tn,replace:function(t,e,r,n,i){return t===En.OVERLONG?(n.push(i),0):(n.push(65533),Tn(t,e,r))}});function Nn(t,e){null==e&&(e=In.error),t=Tr(t);const r=[];let n=0;for(;n<t.length;){const i=t[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=e(128==(192&i)?En.UNEXPECTED_CONTINUE:En.BAD_PREFIX,n-1,t,r);continue}o=3,s=65535}if(n-1+o>=t.length){n+=e(En.OVERRUN,n-1,t,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=t[n];if(128!=(192&i)){n+=e(En.MISSING_CONTINUE,n,t,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=e(En.OUT_OF_RANGE,n-1-o,t,r,a):a>=55296&&a<=57343?n+=e(En.UTF16_SURROGATE,n-1-o,t,r,a):a<=s?n+=e(En.OVERLONG,n-1-o,t,r,a):r.push(a))}return r}function kn(t,e=wn.current){e!=wn.current&&(An.checkNormalize(),t=t.normalize(e));let r=[];for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){e++;const i=t.charCodeAt(e);if(e>=t.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Tr(r)}function Mn(t,e){return Nn(t,e).map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t)))).join("")}function _n(t){return bn(kn(t))}const Sn="hash/5.8.0";function Pn(t,e){null==e&&(e=1);const r=[],n=r.forEach,i=function(t,e){n.call(t,function(t){e>0&&Array.isArray(t)?i(t,e-1):r.push(t)})};return i(t,e),r}function Cn(t){return 1&t?~t>>1:t>>1}function xn(t,e){let r=Array(t);for(let n=0,i=-1;n<t;n++)r[n]=i+=1+e();return r}function On(t,e){let r=Array(t);for(let n=0,i=0;n<t;n++)r[n]=i+=Cn(e());return r}function Rn(t,e){let r=xn(t(),t),n=t(),i=xn(n,t),o=function(t,e){let r=Array(t);for(let n=0;n<t;n++)r[n]=1+e();return r}(n,t);for(let t=0;t<n;t++)for(let e=0;e<o[t];e++)r.push(i[t]+e);return e?r.map(t=>e[t]):r}function Bn(t,e,r){let n=Array(t).fill(void 0).map(()=>[]);for(let i=0;i<e;i++)On(t,r).forEach((t,e)=>n[e].push(t));return n}function Dn(t,e){let r=1+e(),n=e(),i=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(r)}return e}(e);return Pn(Bn(i.length,1+t,e).map((t,e)=>{const o=t[0],s=t.slice(1);return Array(i[e]).fill(void 0).map((t,e)=>{let i=e*n;return[o+e*r,s.map(t=>t+i)]})}))}function Ln(t,e){return Bn(1+e(),1+t,e).map(t=>[t[0],t.slice(1)])}const Un=function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function r(){return t[e++]<<8|t[e++]}let n=r(),i=1,o=[0,1];for(let t=1;t<n;t++)o.push(i+=r());let s=r(),a=e;e+=s;let u=0,l=0;function h(){return 0==u&&(l=l<<8|t[e++],u=8),l>>--u&1}const c=Math.pow(2,31),f=c>>>1,d=f>>1,p=c-1;let m=0;for(let t=0;t<31;t++)m=m<<1|h();let y=[],g=0,v=c;for(;;){let t=Math.floor(((m-g+1)*i-1)/v),e=0,r=n;for(;r-e>1;){let n=e+r>>>1;t<o[n]?r=n:e=n}if(0==e)break;y.push(e);let s=g+Math.floor(v*o[e]/i),a=g+Math.floor(v*o[e+1]/i)-1;for(;0==((s^a)&f);)m=m<<1&p|h(),s=s<<1&p,a=a<<1&p|1;for(;s&~a&d;)m=m&f|m<<1&p>>>1|h(),s=s<<1^f,a=(a^f)<<1|f|1;g=s,v=1+a-s}let b=n-4;return y.map(e=>{switch(e-b){case 3:return b+65792+(t[a++]<<16|t[a++]<<8|t[a++]);case 2:return b+256+(t[a++]<<8|t[a++]);case 1:return b+t[a++];default:return e-1}})}(dn("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"))),Fn=new Set(Rn(Un)),qn=new Set(Rn(Un)),Gn=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(Dn(r,t))}for(;;){let r=t()-1;if(r<0)break;e.push(Ln(r,t))}return function(t){const e={};for(let r=0;r<t.length;r++){const n=t[r];e[n[0]]=n[1]}return e}(Pn(e))}(Un),Hn=function(t){let e=Rn(t).sort((t,e)=>t-e);return function r(){let n=[];for(;;){let i=Rn(t,e);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((t,e)=>e.set.size-t.set.size);let i=t(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(Un),zn=45,jn=95;function Qn(t){return function(t,e=wn.current){return Nn(kn(t,e))}(t)}function Kn(t){return t.filter(t=>65039!=t)}function Jn(t){for(let e of t.split(".")){let t=Qn(e);try{for(let e=t.lastIndexOf(jn)-1;e>=0;e--)if(t[e]!==jn)throw new Error("underscore only allowed at start");if(t.length>=4&&t.every(t=>t<128)&&t[2]===zn&&t[3]===zn)throw new Error("invalid label extension")}catch(t){throw new Error(`Invalid label "${e}": ${t.message}`)}}return t}function Vn(t,e){var r;let n,i,o=Hn,s=[],a=t.length;for(e&&(e.length=0);a;){let u=t[--a];if(o=null===(r=o.branches.find(t=>t.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==t[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),e&&e.push(...t.slice(a).reverse()),t.length=a)}return n}const Yn=new yr(Sn),Wn=new Uint8Array(32);function Xn(t){if(0===t.length)throw new Error("invalid ENS name; empty component");return t}function Zn(t){const e=kn(function(t){return Jn(function(t,e){let r=Qn(t).reverse(),n=[];for(;r.length;){let t=Vn(r);if(t){n.push(...e(t));continue}let i=r.pop();if(Fn.has(i)){n.push(i);continue}if(qn.has(i))continue;let o=Gn[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Jn(function(t){return t.normalize("NFC")}(String.fromCodePoint(...n)))}(t,Kn))}(t)),r=[];if(0===t.length)return r;let n=0;for(let t=0;t<e.length;t++)46===e[t]&&(r.push(Xn(e.slice(n,t))),n=t+1);if(n>=e.length)throw new Error("invalid ENS name; empty component");return r.push(Xn(e.slice(n))),r}function $n(t){"string"!=typeof t&&Yn.throwArgumentError("invalid ENS name; not a string","name",t);let e=Wn;const r=Zn(t);for(;r.length;)e=bn(Ir([e,bn(r.pop())]));return _r(e)}Wn.fill(0);const ti=new yr("rlp/5.8.0");function ei(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function ri(t,e,r){let n=0;for(let i=0;i<r;i++)n=256*n+t[e+i];return n}function ni(t){if(Array.isArray(t)){let e=[];if(t.forEach(function(t){e=e.concat(ni(t))}),e.length<=55)return e.unshift(192+e.length),e;const r=ei(e.length);return r.unshift(247+r.length),r.concat(e)}Ar(t)||ti.throwArgumentError("RLP object must be BytesLike","object",t);const e=Array.prototype.slice.call(Tr(t));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const r=ei(e.length);return r.unshift(183+r.length),r.concat(e)}function ii(t){return _r(ni(t))}function oi(t,e,r,n){const i=[];for(;r<e+1+n;){const o=si(t,r);i.push(o.result),(r+=o.consumed)>e+1+n&&ti.throwError("child data too short",yr.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function si(t,e){if(0===t.length&&ti.throwError("data too short",yr.errors.BUFFER_OVERRUN,{}),t[e]>=248){const r=t[e]-247;e+1+r>t.length&&ti.throwError("data short segment too short",yr.errors.BUFFER_OVERRUN,{});const n=ri(t,e+1,r);return e+1+r+n>t.length&&ti.throwError("data long segment too short",yr.errors.BUFFER_OVERRUN,{}),oi(t,e,e+1+r,r+n)}if(t[e]>=192){const r=t[e]-192;return e+1+r>t.length&&ti.throwError("data array too short",yr.errors.BUFFER_OVERRUN,{}),oi(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;e+1+r>t.length&&ti.throwError("data array too short",yr.errors.BUFFER_OVERRUN,{});const n=ri(t,e+1,r);return e+1+r+n>t.length&&ti.throwError("data array too short",yr.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:_r(t.slice(e+1+r,e+1+r+n))}}if(t[e]>=128){const r=t[e]-128;return e+1+r>t.length&&ti.throwError("data too short",yr.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:_r(t.slice(e+1,e+1+r))}}return{consumed:1,result:_r(t[e])}}function ai(t){const e=Tr(t),r=si(e,0);return r.consumed!==e.length&&ti.throwArgumentError("invalid rlp data","data",t),r.result}const ui=new yr("address/5.8.0");function li(t){kr(t,20)||ui.throwArgumentError("invalid address","address",t);const e=(t=t.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=Tr(bn(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const hi={};for(let t=0;t<10;t++)hi[String(t)]=String(t);for(let t=0;t<26;t++)hi[String.fromCharCode(65+t)]=String(10+t);const ci=Math.floor(function(t){return Math.log10?Math.log10(t):Math.log(t)/Math.LN10}(9007199254740991));function fi(t){let e=null;if("string"!=typeof t&&ui.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==t.substring(0,2)&&(t="0x"+t),e=li(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&ui.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map(t=>hi[t]).join("");for(;e.length>=ci;){let t=e.substring(0,ci);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r="0"+r;return r}(t)&&ui.throwArgumentError("bad icap checksum","address",t),r=t.substring(4),e=new Br(r,36).toString(16);e.length<40;)e="0"+e;e=li("0x"+e)}else ui.throwArgumentError("invalid address","address",t);var r;return e}const di=new yr(Sn),pi=new Uint8Array(32);pi.fill(0);const mi=qr.from(-1),yi=qr.from(0),gi=qr.from(1),vi=qr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),bi=Or(gi.toHexString(),32),Ai=Or(yi.toHexString(),32),wi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Ei=["name","version","chainId","verifyingContract","salt"];function Ti(t){return function(e){return"string"!=typeof e&&di.throwArgumentError(`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const Ii={name:Ti("name"),version:Ti("version"),chainId:function(t){try{return qr.from(t).toString()}catch(t){}return di.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",t)},verifyingContract:function(t){try{return fi(t).toLowerCase()}catch(t){}return di.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){try{const e=Tr(t);if(32!==e.length)throw new Error("bad length");return _r(e)}catch(t){}return di.throwArgumentError('invalid domain value "salt"',"domain.salt",t)}};function Ni(t){{const e=t.match(/^(u?)int(\d*)$/);if(e){const r=""===e[1],n=parseInt(e[2]||"256");(n%8!=0||n>256||e[2]&&e[2]!==String(n))&&di.throwArgumentError("invalid numeric width","type",t);const i=vi.mask(r?n-1:n),o=r?i.add(gi).mul(mi):yi;return function(e){const r=qr.from(e);return(r.lt(o)||r.gt(i))&&di.throwArgumentError(`value out-of-bounds for ${t}`,"value",e),Or(r.toTwos(256).toHexString(),32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const r=parseInt(e[1]);return(0===r||r>32||e[1]!==String(r))&&di.throwArgumentError("invalid bytes width","type",t),function(e){return Tr(e).length!==r&&di.throwArgumentError(`invalid length for ${t}`,"value",e),function(t){const e=Tr(t),r=e.length%32;return r?Cr([e,pi.slice(r)]):_r(e)}(e)}}}switch(t){case"address":return function(t){return Or(fi(t),32)};case"bool":return function(t){return t?bi:Ai};case"bytes":return function(t){return bn(t)};case"string":return function(t){return _n(t)}}return null}function ki(t,e){return`${t}(${e.map(({name:t,type:e})=>e+" "+t).join(",")})`}class Mi{constructor(t){Jr(this,"types",Object.freeze(tn(t))),Jr(this,"_encoderCache",{}),Jr(this,"_types",{});const e={},r={},n={};Object.keys(t).forEach(t=>{e[t]={},r[t]=[],n[t]={}});for(const n in t){const i={};t[n].forEach(o=>{i[o.name]&&di.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",t),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&di.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",t),Ni(s)||(r[s]||di.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",t),r[s].push(n),e[n][s]=!0)})}const i=Object.keys(r).filter(t=>0===r[t].length);0===i.length?di.throwArgumentError("missing primary type","types",t):i.length>1&&di.throwArgumentError(`ambiguous primary types or unused types: ${i.map(t=>JSON.stringify(t)).join(", ")}`,"types",t),Jr(this,"primaryType",i[0]),function i(o,s){s[o]&&di.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",t),s[o]=!0,Object.keys(e[o]).forEach(t=>{r[t]&&(i(t,s),Object.keys(s).forEach(e=>{n[e][t]=!0}))}),delete s[o]}(this.primaryType,{});for(const e in n){const r=Object.keys(n[e]);r.sort(),this._types[e]=ki(e,t[e])+r.map(e=>ki(e,t[e])).join("")}}getEncoder(t){let e=this._encoderCache[t];return e||(e=this._encoderCache[t]=this._getEncoder(t)),e}_getEncoder(t){{const e=Ni(t);if(e)return e}const e=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(e){const t=e[1],r=this.getEncoder(t),n=parseInt(e[3]);return e=>{n>=0&&e.length!==n&&di.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e);let i=e.map(r);return this._types[t]&&(i=i.map(bn)),bn(Cr(i))}}const r=this.types[t];if(r){const e=_n(this._types[t]);return t=>{const n=r.map(({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this._types[r]?bn(n):n});return n.unshift(e),Cr(n)}}return di.throwArgumentError(`unknown type: ${t}`,"type",t)}encodeType(t){const e=this._types[t];return e||di.throwArgumentError(`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return bn(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(Ni(t))return r(t,e);const n=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const t=n[1],i=parseInt(n[3]);return i>=0&&e.length!==i&&di.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e),e.map(e=>this._visit(t,e,r))}const i=this.types[t];return i?i.reduce((t,{name:n,type:i})=>(t[n]=this._visit(i,e[n],r),t),{}):di.throwArgumentError(`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new Mi(t)}static getPrimaryType(t){return Mi.from(t).primaryType}static hashStruct(t,e,r){return Mi.from(e).hashStruct(t,r)}static hashDomain(t){const e=[];for(const r in t){const n=wi[r];n||di.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",t),e.push({name:r,type:n})}return e.sort((t,e)=>Ei.indexOf(t.name)-Ei.indexOf(e.name)),Mi.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,r){return Cr(["0x1901",Mi.hashDomain(t),Mi.from(e).hash(r)])}static hash(t,e,r){return bn(Mi.encode(t,e,r))}static resolveNames(t,e,r,n){return i=this,s=function*(){t=Wr(t);const i={};t.verifyingContract&&!kr(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const o=Mi.from(e);o.visit(r,(t,e)=>("address"!==t||kr(e,20)||(i[e]="0x"),e));for(const t in i)i[t]=yield n(t);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),r=o.visit(r,(t,e)=>"address"===t&&i[e]?i[e]:e),{domain:t,value:r}},new((o=void 0)||(o=Promise))(function(t,e){function r(t){try{a(s.next(t))}catch(t){e(t)}}function n(t){try{a(s.throw(t))}catch(t){e(t)}}function a(e){var i;e.done?t(e.value):(i=e.value,i instanceof o?i:new o(function(t){t(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(t,e,r){Mi.hashDomain(t);const n={},i=[];Ei.forEach(e=>{const r=t[e];null!=r&&(n[e]=Ii[e](r),i.push({name:e,type:wi[e]}))});const o=Mi.from(e),s=Wr(e);return s.EIP712Domain?di.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",e):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(t,e)=>{if(t.match(/^bytes(\d*)/))return _r(Tr(e));if(t.match(/^u?int/))return qr.from(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return"string"!=typeof e&&di.throwArgumentError("invalid string","value",e),e}return di.throwArgumentError("unsupported type","type",t)})}}}var _i=Si;function Si(t,e){if(!t)throw new Error(e||"Assertion failed")}function Pi(t,e){return 55296==(64512&t.charCodeAt(e))&&!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1))}function Ci(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function xi(t){return 1===t.length?"0"+t:t}function Oi(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}Si.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var Ri={inherits:ir(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),toArray:function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)r.push(parseInt(t[i]+t[i+1],16))}else for(var n=0,i=0;i<t.length;i++){var o=t.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):Pi(t,i)?(o=65536+((1023&o)<<10)+(1023&t.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<t.length;i++)r[i]=0|t[i];return r},toHex:function(t){for(var e="",r=0;r<t.length;r++)e+=xi(t[r].toString(16));return e},htonl:Ci,toHex32:function(t,e){for(var r="",n=0;n<t.length;n++){var i=t[n];"little"===e&&(i=Ci(i)),r+=Oi(i.toString(16))}return r},zero2:xi,zero8:Oi,join32:function(t,e,r,n){var i=r-e;_i(i%4==0);for(var o=new Array(i/4),s=0,a=e;s<o.length;s++,a+=4)o[s]=("big"===n?t[a]<<24|t[a+1]<<16|t[a+2]<<8|t[a+3]:t[a+3]<<24|t[a+2]<<16|t[a+1]<<8|t[a])>>>0;return o},split32:function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n<t.length;n++,i+=4){var o=t[n];"big"===e?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(t,e){return t>>>e|t<<32-e},rotl32:function(t,e){return t<<e|t>>>32-e},sum32:function(t,e){return t+e>>>0},sum32_3:function(t,e,r){return t+e+r>>>0},sum32_4:function(t,e,r,n){return t+e+r+n>>>0},sum32_5:function(t,e,r,n,i){return t+e+r+n+i>>>0},sum64:function(t,e,r,n){var i=n+t[e+1]>>>0;t[e]=(i<n?1:0)+r+t[e]>>>0,t[e+1]=i},sum64_hi:function(t,e,r,n){return(e+n>>>0<e?1:0)+t+r>>>0},sum64_lo:function(t,e,r,n){return e+n>>>0},sum64_4_hi:function(t,e,r,n,i,o,s,a){var u=0,l=e;return u+=(l=l+n>>>0)<e?1:0,u+=(l=l+o>>>0)<o?1:0,t+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(t,e,r,n,i,o,s,a){return e+n+o+a>>>0},sum64_5_hi:function(t,e,r,n,i,o,s,a,u,l){var h=0,c=e;return h+=(c=c+n>>>0)<e?1:0,h+=(c=c+o>>>0)<o?1:0,h+=(c=c+a>>>0)<a?1:0,t+r+i+s+u+(h+=(c=c+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(t,e,r,n,i,o,s,a,u,l){return e+n+o+a+l>>>0},rotr64_hi:function(t,e,r){return(e<<32-r|t>>>r)>>>0},rotr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0},shr64_hi:function(t,e,r){return t>>>r},shr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0}};function Bi(){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 Di=Bi;Bi.prototype.update=function(t,e){if(t=Ri.toArray(t,e),this.pending=this.pending?this.pending.concat(t):t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=Ri.join32(t,0,t.length-r,this.endian);for(var n=0;n<t.length;n+=this._delta32)this._update(t,n,n+this._delta32)}return this},Bi.prototype.digest=function(t){return this.update(this._pad()),_i(null===this.pending),this._digest(t)},Bi.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,r=e-(t+this.padLength)%e,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(t<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=t>>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var Li={BlockHash:Di},Ui=Ri.rotr32;function Fi(t,e,r){return t&e^~t&r}function qi(t,e,r){return t&e^t&r^e&r}var Gi=Fi,Hi=qi,zi=Ri.rotl32,ji=Ri.sum32,Qi=Ri.sum32_5,Ki=function(t,e,r,n){return 0===t?Fi(e,r,n):1===t||3===t?function(t,e,r){return t^e^r}(e,r,n):2===t?qi(e,r,n):void 0},Ji=Li.BlockHash,Vi=[1518500249,1859775393,2400959708,3395469782];function Yi(){if(!(this instanceof Yi))return new Yi;Ji.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Ri.inherits(Yi,Ji);var Wi=Yi;Yi.blockSize=512,Yi.outSize=160,Yi.hmacStrength=80,Yi.padLength=64,Yi.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=zi(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),h=Qi(zi(i,5),Ki(l,o,s,a),u,r[n],Vi[l]);u=a,a=s,s=zi(o,30),o=i,i=h}this.h[0]=ji(this.h[0],i),this.h[1]=ji(this.h[1],o),this.h[2]=ji(this.h[2],s),this.h[3]=ji(this.h[3],a),this.h[4]=ji(this.h[4],u)},Yi.prototype._digest=function(t){return"hex"===t?Ri.toHex32(this.h,"big"):Ri.split32(this.h,"big")};var Xi=Ri.sum32,Zi=Ri.sum32_4,$i=Ri.sum32_5,to=Gi,eo=Hi,ro=function(t){return Ui(t,2)^Ui(t,13)^Ui(t,22)},no=function(t){return Ui(t,6)^Ui(t,11)^Ui(t,25)},io=function(t){return Ui(t,7)^Ui(t,18)^t>>>3},oo=function(t){return Ui(t,17)^Ui(t,19)^t>>>10},so=Li.BlockHash,ao=[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 uo(){if(!(this instanceof uo))return new uo;so.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=ao,this.W=new Array(64)}Ri.inherits(uo,so);var lo=uo;function ho(){if(!(this instanceof ho))return new ho;lo.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}uo.blockSize=512,uo.outSize=256,uo.hmacStrength=192,uo.padLength=64,uo.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=Zi(oo(r[n-2]),r[n-7],io(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],h=this.h[6],c=this.h[7];for(_i(this.k.length===r.length),n=0;n<r.length;n++){var f=$i(c,no(u),to(u,l,h),this.k[n],r[n]),d=Xi(ro(i),eo(i,o,s));c=h,h=l,l=u,u=Xi(a,f),a=s,s=o,o=i,i=Xi(f,d)}this.h[0]=Xi(this.h[0],i),this.h[1]=Xi(this.h[1],o),this.h[2]=Xi(this.h[2],s),this.h[3]=Xi(this.h[3],a),this.h[4]=Xi(this.h[4],u),this.h[5]=Xi(this.h[5],l),this.h[6]=Xi(this.h[6],h),this.h[7]=Xi(this.h[7],c)},uo.prototype._digest=function(t){return"hex"===t?Ri.toHex32(this.h,"big"):Ri.split32(this.h,"big")},Ri.inherits(ho,lo);var co=ho;ho.blockSize=512,ho.outSize=224,ho.hmacStrength=192,ho.padLength=64,ho.prototype._digest=function(t){return"hex"===t?Ri.toHex32(this.h.slice(0,7),"big"):Ri.split32(this.h.slice(0,7),"big")};var fo=Ri.rotr64_hi,po=Ri.rotr64_lo,mo=Ri.shr64_hi,yo=Ri.shr64_lo,go=Ri.sum64,vo=Ri.sum64_hi,bo=Ri.sum64_lo,Ao=Ri.sum64_4_hi,wo=Ri.sum64_4_lo,Eo=Ri.sum64_5_hi,To=Ri.sum64_5_lo,Io=Li.BlockHash,No=[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 ko(){if(!(this instanceof ko))return new ko;Io.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=No,this.W=new Array(160)}Ri.inherits(ko,Io);var Mo=ko;function _o(t,e,r,n,i){var o=t&r^~t&i;return o<0&&(o+=4294967296),o}function So(t,e,r,n,i,o){var s=e&n^~e&o;return s<0&&(s+=4294967296),s}function Po(t,e,r,n,i){var o=t&r^t&i^r&i;return o<0&&(o+=4294967296),o}function Co(t,e,r,n,i,o){var s=e&n^e&o^n&o;return s<0&&(s+=4294967296),s}function xo(t,e){var r=fo(t,e,28)^fo(e,t,2)^fo(e,t,7);return r<0&&(r+=4294967296),r}function Oo(t,e){var r=po(t,e,28)^po(e,t,2)^po(e,t,7);return r<0&&(r+=4294967296),r}function Ro(t,e){var r=fo(t,e,14)^fo(t,e,18)^fo(e,t,9);return r<0&&(r+=4294967296),r}function Bo(t,e){var r=po(t,e,14)^po(t,e,18)^po(e,t,9);return r<0&&(r+=4294967296),r}function Do(t,e){var r=fo(t,e,1)^fo(t,e,8)^mo(t,e,7);return r<0&&(r+=4294967296),r}function Lo(t,e){var r=po(t,e,1)^po(t,e,8)^yo(t,e,7);return r<0&&(r+=4294967296),r}function Uo(t,e){var r=fo(t,e,19)^fo(e,t,29)^mo(t,e,6);return r<0&&(r+=4294967296),r}function Fo(t,e){var r=po(t,e,19)^po(e,t,29)^yo(t,e,6);return r<0&&(r+=4294967296),r}function qo(){if(!(this instanceof qo))return new qo;Mo.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}ko.blockSize=1024,ko.outSize=512,ko.hmacStrength=192,ko.padLength=128,ko.prototype._prepareBlock=function(t,e){for(var r=this.W,n=0;n<32;n++)r[n]=t[e+n];for(;n<r.length;n+=2){var i=Uo(r[n-4],r[n-3]),o=Fo(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=Do(r[n-30],r[n-29]),l=Lo(r[n-30],r[n-29]),h=r[n-32],c=r[n-31];r[n]=Ao(i,o,s,a,u,l,h,c),r[n+1]=wo(i,o,s,a,u,l,h,c)}},ko.prototype._update=function(t,e){this._prepareBlock(t,e);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],h=this.h[7],c=this.h[8],f=this.h[9],d=this.h[10],p=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],v=this.h[15];_i(this.k.length===r.length);for(var b=0;b<r.length;b+=2){var A=g,w=v,E=Ro(c,f),T=Bo(c,f),I=_o(c,0,d,0,m),N=So(0,f,0,p,0,y),k=this.k[b],M=this.k[b+1],_=r[b],S=r[b+1],P=Eo(A,w,E,T,I,N,k,M,_,S),C=To(A,w,E,T,I,N,k,M,_,S);A=xo(n,i),w=Oo(n,i),E=Po(n,0,o,0,a),T=Co(0,i,0,s,0,u);var x=vo(A,w,E,T),O=bo(A,w,E,T);g=m,v=y,m=d,y=p,d=c,p=f,c=vo(l,h,P,C),f=bo(h,h,P,C),l=a,h=u,a=o,u=s,o=n,s=i,n=vo(P,C,x,O),i=bo(P,C,x,O)}go(this.h,0,n,i),go(this.h,2,o,s),go(this.h,4,a,u),go(this.h,6,l,h),go(this.h,8,c,f),go(this.h,10,d,p),go(this.h,12,m,y),go(this.h,14,g,v)},ko.prototype._digest=function(t){return"hex"===t?Ri.toHex32(this.h,"big"):Ri.split32(this.h,"big")},Ri.inherits(qo,Mo);var Go=qo;qo.blockSize=1024,qo.outSize=384,qo.hmacStrength=192,qo.padLength=128,qo.prototype._digest=function(t){return"hex"===t?Ri.toHex32(this.h.slice(0,12),"big"):Ri.split32(this.h.slice(0,12),"big")};var Ho={sha1:Wi,sha224:co,sha256:lo,sha384:Go,sha512:Mo},zo=Ri.rotl32,jo=Ri.sum32,Qo=Ri.sum32_3,Ko=Ri.sum32_4,Jo=Li.BlockHash;function Vo(){if(!(this instanceof Vo))return new Vo;Jo.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}Ri.inherits(Vo,Jo);var Yo=Vo;function Wo(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function Xo(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function Zo(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}Vo.blockSize=512,Vo.outSize=160,Vo.hmacStrength=192,Vo.padLength=64,Vo.prototype._update=function(t,e){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,h=o,c=s,f=0;f<80;f++){var d=jo(zo(Ko(r,Wo(f,n,i,o),t[$o[f]+e],Xo(f)),es[f]),s);r=s,s=o,o=zo(i,10),i=n,n=d,d=jo(zo(Ko(a,Wo(79-f,u,l,h),t[ts[f]+e],Zo(f)),rs[f]),c),a=c,c=h,h=zo(l,10),l=u,u=d}d=Qo(this.h[1],i,h),this.h[1]=Qo(this.h[2],o,c),this.h[2]=Qo(this.h[3],s,a),this.h[3]=Qo(this.h[4],r,u),this.h[4]=Qo(this.h[0],n,l),this.h[0]=d},Vo.prototype._digest=function(t){return"hex"===t?Ri.toHex32(this.h,"little"):Ri.split32(this.h,"little")};var $o=[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],ts=[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],es=[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],rs=[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],ns={ripemd160:Yo};function is(t,e,r){if(!(this instanceof is))return new is(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(Ri.toArray(e,r))}var os=is;is.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),_i(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},is.prototype.update=function(t,e){return this.inner.update(t,e),this},is.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)};var ss=ir(function(t,e){var r=e;r.utils=Ri,r.common=Li,r.sha=Ho,r.ripemd=ns,r.hmac=os,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),as=ss;function us(t){return"0x"+as.sha256().update(Tr(t)).digest("hex")}new yr("sha2/5.8.0");var ls=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};function hs(t,e){return ls(this,void 0,void 0,function*(){null==e&&(e={});const r={method:e.method||"GET",headers:e.headers||{},body:e.body||void 0};if(!0!==e.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=e.fetchOptions){const t=e.fetchOptions;t.mode&&(r.mode=t.mode),t.cache&&(r.cache=t.cache),t.credentials&&(r.credentials=t.credentials),t.redirect&&(r.redirect=t.redirect),t.referrer&&(r.referrer=t.referrer)}const n=yield fetch(t,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((t,e)=>{o[e.toLowerCase()]=t}):n.headers.keys().forEach(t=>{o[t.toLowerCase()]=n.headers.get(t)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Tr(new Uint8Array(i))}})}var cs=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const fs=new yr("web/5.8.0");function ds(t){return new Promise(e=>{setTimeout(e,t)})}function ps(t,e){if(null==t)return null;if("string"==typeof t)return t;if(Ar(t)){if(e&&("text"===e.split("/")[0]||"application/json"===e.split(";")[0].trim()))try{return Mn(t)}catch(t){}return _r(t)}return t}function ms(t,e,r){let n=null;if(null!=e){n=kn(e);const r="string"==typeof t?{url:t}:Wr(t);r.headers?0!==Object.keys(r.headers).filter(t=>"content-type"===t.toLowerCase()).length||(r.headers=Wr(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},t=r}return function(t,e,r){const n="object"==typeof t&&null!=t.throttleLimit?t.throttleLimit:12;fs.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof t?t.throttleCallback:null,o="object"==typeof t&&"number"==typeof t.throttleSlotInterval?t.throttleSlotInterval:100;fs.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof t&&!!t.errorPassThrough,a={};let u=null;const l={method:"GET"};let h=!1,c=12e4;if("string"==typeof t)u=t;else if("object"==typeof t){if(null!=t&&null!=t.url||fs.throwArgumentError("missing URL","connection.url",t),u=t.url,"number"==typeof t.timeout&&t.timeout>0&&(c=t.timeout),t.headers)for(const e in t.headers)a[e.toLowerCase()]={key:e,value:String(t.headers[e])},["if-none-match","if-modified-since"].indexOf(e.toLowerCase())>=0&&(h=!0);l.allowGzip=!!t.allowGzip,null!=t.user&&null!=t.password&&("https:"!==u.substring(0,6)&&!0!==t.allowInsecureAuthentication&&fs.throwError("basic authentication requires a secure https url",yr.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:t.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+pn(kn(t.user+":"+t.password))}),null!=t.skipFetchSetup&&(l.skipFetchSetup=!!t.skipFetchSetup),null!=t.fetchOptions&&(l.fetchOptions=Wr(t.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),d=u?u.match(f):null;if(d)try{const t={statusCode:200,statusMessage:"OK",headers:{"content-type":d[1]||"text/plain"},body:d[2]?dn(d[3]):(p=d[3],kn(p.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16)))))};let e=t.body;return r&&(e=r(t.body,t)),Promise.resolve(e)}catch(t){fs.throwError("processing response error",yr.errors.SERVER_ERROR,{body:ps(d[1],d[2]),error:t,requestBody:null,requestMethod:"GET",url:u})}var p;e&&(l.method="POST",l.body=e,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(e.length)}));const m={};Object.keys(a).forEach(t=>{const e=a[t];m[e.key]=e.value}),l.headers=m;const y=function(){let t=null;return{promise:new Promise(function(e,r){c&&(t=setTimeout(()=>{null!=t&&(t=null,r(fs.makeError("timeout",yr.errors.TIMEOUT,{requestBody:ps(l.body,m["content-type"]),requestMethod:l.method,timeout:c,url:u})))},c))}),cancel:function(){null!=t&&(clearTimeout(t),t=null)}}}(),g=function(){return cs(this,void 0,void 0,function*(){for(let t=0;t<n;t++){let e=null;try{if(e=yield hs(u,l),t<n)if(301===e.statusCode||302===e.statusCode){if("GET"===l.method&&(e.headers.location||"").match(/^https:/)){u=e.headers.location;continue}}else if(429===e.statusCode){let r=!0;if(i&&(r=yield i(t,u)),r){let r=0;const n=e.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,t))),yield ds(r);continue}}}catch(t){e=t.response,null==e&&(y.cancel(),fs.throwError("missing response",yr.errors.SERVER_ERROR,{requestBody:ps(l.body,m["content-type"]),requestMethod:l.method,serverError:t,url:u}))}let a=e.body;if(h&&304===e.statusCode?a=null:!s&&(e.statusCode<200||e.statusCode>=300)&&(y.cancel(),fs.throwError("bad response",yr.errors.SERVER_ERROR,{status:e.statusCode,headers:e.headers,body:ps(a,e.headers?e.headers["content-type"]:null),requestBody:ps(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const t=yield r(a,e);return y.cancel(),t}catch(r){if(r.throttleRetry&&t<n){let e=!0;if(i&&(e=yield i(t,u)),e){const e=o*parseInt(String(Math.random()*Math.pow(2,t)));yield ds(e);continue}}y.cancel(),fs.throwError("processing response error",yr.errors.SERVER_ERROR,{body:ps(a,e.headers?e.headers["content-type"]:null),error:r,requestBody:ps(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return fs.throwError("failed response",yr.errors.SERVER_ERROR,{requestBody:ps(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(t,n,(t,e)=>{let n=null;if(null!=t)try{n=JSON.parse(Mn(t))}catch(e){fs.throwError("invalid JSON",yr.errors.SERVER_ERROR,{body:t,error:e})}return r&&(n=r(n,e)),n})}function ys(t,e){return e||(e={}),null==(e=Wr(e)).floor&&(e.floor=0),null==e.ceiling&&(e.ceiling=1e4),null==e.interval&&(e.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);e.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},e.timeout));const a=e.retryLimit;let u=0;!function i(){return t().then(function(t){if(void 0!==t)s()&&r(t);else if(e.oncePoll)e.oncePoll.once("poll",i);else if(e.onceBlock)e.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let t=e.interval*parseInt(String(Math.random()*Math.pow(2,u)));t<e.floor&&(t=e.floor),t>e.ceiling&&(t=e.ceiling),setTimeout(i,t)}return null},function(t){s()&&n(t)})}()})}for(var gs="qpzry9x8gf2tvdw0s3jn54khce6mua7l",vs={},bs=0;bs<gs.length;bs++){var As=gs.charAt(bs);if(void 0!==vs[As])throw new TypeError(As+" is ambiguous");vs[As]=bs}function ws(t){var e=t>>25;return(33554431&t)<<5^996825010&-(e>>0&1)^642813549&-(e>>1&1)^513874426&-(e>>2&1)^1027748829&-(e>>3&1)^705979059&-(e>>4&1)}const Es="providers/5.8.0";function Ts(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var Is=Ns;function Ns(t,e){if(!t)throw new Error(e||"Assertion failed")}Ns.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var ks=Ts(function(t,e){var r=e;function n(t){return 1===t.length?"0"+t:t}function i(t){for(var e="",r=0;r<t.length;r++)e+=n(t[r].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"!=typeof t){for(var n=0;n<t.length;n++)r[n]=0|t[n];return r}if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n<t.length;n+=2)r.push(parseInt(t[n]+t[n+1],16));else for(n=0;n<t.length;n++){var i=t.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(t,e){return"hex"===e?i(t):t}}),Ms=Ts(function(t,e){var r=e;r.assert=Is,r.toArray=ks.toArray,r.zero2=ks.zero2,r.toHex=ks.toHex,r.encode=ks.encode,r.getNAF=function(t,e,r){var n,i=new Array(Math.max(t.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<e+1,s=t.clone();for(n=0;n<i.length;n++){var a,u=s.andln(o-1);s.isOdd()?s.isubn(a=u>(o>>1)-1?(o>>1)-u:u):a=0,i[n]=a,s.iushrn(1)}return i},r.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n,i=0,o=0;t.cmpn(-i)>0||e.cmpn(-o)>0;){var s,a,u=t.andln(3)+i&3,l=e.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=t.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=e.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),t.iushrn(1),e.iushrn(1)}return r},r.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new sr(t,"hex","le")}}),_s=Ms.getNAF,Ss=Ms.getJSF,Ps=Ms.assert;function Cs(t,e){this.type=t,this.p=new sr(e.p,16),this.red=e.prime?sr.red(e.prime):sr.mont(this.p),this.zero=new sr(0).toRed(this.red),this.one=new sr(1).toRed(this.red),this.two=new sr(2).toRed(this.red),this.n=e.n&&new sr(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.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 r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var xs=Cs;function Os(t,e){this.curve=t,this.type=e,this.precomputed=null}Cs.prototype.point=function(){throw new Error("Not implemented")},Cs.prototype.validate=function(){throw new Error("Not implemented")},Cs.prototype._fixedNafMul=function(t,e){Ps(t.precomputed);var r=t._getDoubles(),n=_s(e,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),h=this.jpoint(null,null,null),c=i;c>0;c--){for(o=0;o<a.length;o++)(s=a[o])===c?h=h.mixedAdd(r.points[o]):s===-c&&(h=h.mixedAdd(r.points[o].neg()));l=l.add(h)}return l.toP()},Cs.prototype._wnafMul=function(t,e){for(var r=4,n=t._getNAFPoints(r),i=n.points,o=_s(e,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];Ps(0!==l),s="affine"===t.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===t.type?s.toP():s},Cs.prototype._wnafMulAdd=function(t,e,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,h=this._wnafT3,c=0;for(o=0;o<n;o++){var f=(a=e[o])._getNAFPoints(t);u[o]=f.wnd,l[o]=f.points}for(o=n-1;o>=1;o-=2){var d=o-1,p=o;if(1===u[d]&&1===u[p]){var m=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(m[1]=e[d].add(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].add(e[p].neg())):(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=Ss(r[d],r[p]);for(c=Math.max(g[0].length,c),h[d]=new Array(c),h[p]=new Array(c),s=0;s<c;s++)h[d][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],h[p][s]=0,l[d]=m}else h[d]=_s(r[d],u[d],this._bitLength),h[p]=_s(r[p],u[p],this._bitLength),c=Math.max(h[d].length,c),c=Math.max(h[p].length,c)}var v=this.jpoint(null,null,null),b=this._wnafT4;for(o=c;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)b[s]=0|h[s][o],0!==b[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,v=v.dblp(A),o<0)break;for(s=0;s<n;s++){var E=b[s];0!==E&&(E>0?a=l[s][E-1>>1]:E<0&&(a=l[s][-E-1>>1].neg()),v="affine"===a.type?v.mixedAdd(a):v.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?v:v.toP()},Cs.BasePoint=Os,Os.prototype.eq=function(){throw new Error("Not implemented")},Os.prototype.validate=function(){return this.curve.validate(this)},Cs.prototype.decodePoint=function(t,e){t=Ms.toArray(t,e);var r=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*r)return 6===t[0]?Ps(t[t.length-1]%2==0):7===t[0]&&Ps(t[t.length-1]%2==1),this.point(t.slice(1,1+r),t.slice(1+r,1+2*r));if((2===t[0]||3===t[0])&&t.length-1===r)return this.pointFromX(t.slice(1,1+r),3===t[0]);throw new Error("Unknown point format")},Os.prototype.encodeCompressed=function(t){return this.encode(t,!0)},Os.prototype._encode=function(t){var e=this.curve.p.byteLength(),r=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",e))},Os.prototype.encode=function(t,e){return Ms.encode(this._encode(e),t)},Os.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},Os.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},Os.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)n=n.dbl();r.push(n)}return{step:t,points:r}},Os.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],r=(1<<t)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)e[i]=e[i-1].add(n);return{wnd:t,points:e}},Os.prototype._getBeta=function(){return null},Os.prototype.dblp=function(t){for(var e=this,r=0;r<t;r++)e=e.dbl();return e};var Rs=Ts(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),Bs=Ms.assert;function Ds(t){xs.call(this,"short",t),this.a=new sr(t.a,16).toRed(this.red),this.b=new sr(t.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(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Rs(Ds,xs);var Ls=Ds;function Us(t,e,r,n){xs.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new sr(e,16),this.y=new sr(r,16),n&&(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 Fs(t,e,r,n){xs.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new sr(0)):(this.x=new sr(e,16),this.y=new sr(r,16),this.z=new sr(n,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}Ds.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new sr(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new sr(t.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?r=i[0]:Bs(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(e)))}return{beta:e,lambda:r,basis:t.basis?t.basis.map(function(t){return{a:new sr(t.a,16),b:new sr(t.b,16)}}):this._getEndoBasis(r)}}},Ds.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:sr.mont(t),r=new sr(2).toRed(e).redInvm(),n=r.redNeg(),i=new sr(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},Ds.prototype._getEndoBasis=function(t){for(var e,r,n,i,o,s,a,u,l,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=t,f=this.n.clone(),d=new sr(1),p=new sr(0),m=new sr(0),y=new sr(1),g=0;0!==c.cmpn(0);){var v=f.div(c);u=f.sub(v.mul(c)),l=m.sub(v.mul(d));var b=y.sub(v.mul(p));if(!n&&u.cmp(h)<0)e=a.neg(),r=d,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,f=c,c=u,m=d,d=l,y=p,p=b}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=e,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},Ds.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:t.sub(s).sub(a),k2:u.add(l).neg()}},Ds.prototype.pointFromX=function(t,e){(t=new sr(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(t,n)},Ds.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},Ds.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var s=this._endoSplit(e[o]),a=t[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),h=0;h<2*o;h++)n[h]=null,i[h]=null;return l},Rs(Us,xs.BasePoint),Ds.prototype.point=function(t,e,r){return new Us(this,t,e,r)},Ds.prototype.pointFromJSON=function(t,e){return Us.fromJSON(this,t,e)},Us.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var r=this.curve,n=function(t){return r.point(t.x.redMul(r.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(n)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(n)}}}return e}},Us.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]},Us.fromJSON=function(t,e,r){"string"==typeof e&&(e=JSON.parse(e));var n=t.point(e[0],e[1],r);if(!e[2])return n;function i(e){return t.point(e[0],e[1],r)}var o=e[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},Us.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)+">"},Us.prototype.isInfinity=function(){return this.inf},Us.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Us.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},Us.prototype.getX=function(){return this.x.fromRed()},Us.prototype.getY=function(){return this.y.fromRed()},Us.prototype.mul=function(t){return t=new sr(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},Us.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},Us.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},Us.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},Us.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},Us.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Rs(Fs,xs.BasePoint),Ds.prototype.jpoint=function(t,e,r){return new Fs(this,t,e,r)},Fs.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},Fs.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Fs.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),s=t.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),h=l.redMul(a),c=n.redMul(l),f=u.redSqr().redIAdd(h).redISub(c).redISub(c),d=u.redMul(c.redISub(f)).redISub(o.redMul(h)),p=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(f,d,p)},Fs.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),h=r.redMul(u),c=a.redSqr().redIAdd(l).redISub(h).redISub(h),f=a.redMul(h.redISub(c)).redISub(i.redMul(l)),d=this.z.redMul(s);return this.curve.jpoint(c,f,d)},Fs.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var r=this;for(e=0;e<t;e++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(e=0;e<t;e++){var h=o.redSqr(),c=l.redSqr(),f=c.redSqr(),d=h.redAdd(h).redIAdd(h).redIAdd(n.redMul(u)),p=o.redMul(c),m=d.redSqr().redISub(p.redAdd(p)),y=p.redISub(m),g=d.redMul(y);g=g.redIAdd(g).redISub(f);var v=l.redMul(a);e+1<t&&(u=u.redMul(f)),o=m,a=v,l=g}return this.curve.jpoint(o,l.redMul(i),a)},Fs.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Fs.prototype._zeroDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=u,e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.x.redSqr(),c=this.y.redSqr(),f=c.redSqr(),d=this.x.redAdd(c).redSqr().redISub(h).redISub(f);d=d.redIAdd(d);var p=h.redAdd(h).redIAdd(h),m=p.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),t=m.redISub(d).redISub(d),e=p.redMul(d.redISub(t)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(t,e,r)},Fs.prototype._threeDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);t=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.z.redSqr(),c=this.y.redSqr(),f=this.x.redMul(c),d=this.x.redSub(h).redMul(this.x.redAdd(h));d=d.redAdd(d).redIAdd(d);var p=f.redIAdd(f),m=(p=p.redIAdd(p)).redAdd(p);t=d.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(c).redISub(h);var y=c.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),e=d.redMul(p.redISub(t)).redISub(y)}return this.curve.jpoint(t,e,r)},Fs.prototype._dbl=function(){var t=this.curve.a,e=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=e.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),u=e.redAdd(e),l=(u=u.redIAdd(u)).redMul(s),h=a.redSqr().redISub(l.redAdd(l)),c=l.redISub(h),f=s.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=a.redMul(c).redISub(f),p=r.redAdd(r).redMul(n);return this.curve.jpoint(h,d,p)},Fs.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr(),n=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),s=this.x.redAdd(e).redSqr().redISub(t).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),h=e.redMul(l);h=(h=h.redIAdd(h)).redIAdd(h);var c=this.x.redMul(a).redISub(h);c=(c=c.redIAdd(c)).redIAdd(c);var f=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(c,f,d)},Fs.prototype.mul=function(t,e){return t=new sr(t,e),this.curve._wnafMul(this,t)},Fs.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),r=t.z.redSqr();if(0!==this.x.redMul(r).redISub(t.x.redMul(e)).cmpn(0))return!1;var n=e.redMul(this.z),i=r.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(n)).cmpn(0)},Fs.prototype.eqXToP=function(t){var e=this.z.redSqr(),r=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(r))return!0;for(var n=t.clone(),i=this.curve.redN.redMul(e);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},Fs.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)+">"},Fs.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var qs=Ts(function(t,e){var r=e;r.base=xs,r.short=Ls,r.mont=null,r.edwards=null}),Gs=Ts(function(t,e){var r,n=e,i=Ms.assert;function o(t){this.curve="short"===t.type?new qs.short(t):"edwards"===t.type?new qs.edwards(t):new qs.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(t,e){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var r=new o(e);return Object.defineProperty(n,t,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("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:as.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("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:as.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("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:as.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("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:as.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"]}),s("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:as.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"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:as.sha256,gRed:!1,g:["9"]}),s("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:as.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(t){r=void 0}s("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:as.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Hs(t){if(!(this instanceof Hs))return new Hs(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=ks.toArray(t.entropy,t.entropyEnc||"hex"),r=ks.toArray(t.nonce,t.nonceEnc||"hex"),n=ks.toArray(t.pers,t.persEnc||"hex");Is(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}var zs=Hs;Hs.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);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(n),this._reseed=1,this.reseedInterval=281474976710656},Hs.prototype._hmac=function(){return new as.hmac(this.hash,this.K)},Hs.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},Hs.prototype.reseed=function(t,e,r,n){"string"!=typeof e&&(n=r,r=e,e=null),t=ks.toArray(t,e),r=ks.toArray(r,n),Is(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},Hs.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=ks.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<t;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,t);return this._update(r),this._reseed++,ks.encode(o,e)};var js=Ms.assert;function Qs(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}var Ks=Qs;Qs.fromPublic=function(t,e,r){return e instanceof Qs?e:new Qs(t,{pub:e,pubEnc:r})},Qs.fromPrivate=function(t,e,r){return e instanceof Qs?e:new Qs(t,{priv:e,privEnc:r})},Qs.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.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"}},Qs.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},Qs.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},Qs.prototype._importPrivate=function(t,e){this.priv=new sr(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},Qs.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?js(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||js(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},Qs.prototype.derive=function(t){return t.validate()||js(t.validate(),"public point not validated"),t.mul(this.priv).getX()},Qs.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},Qs.prototype.verify=function(t,e,r){return this.ec.verify(t,e,this,void 0,r)},Qs.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Js=Ms.assert;function Vs(t,e){if(t instanceof Vs)return t;this._importDER(t,e)||(Js(t.r&&t.s,"Signature without r or s"),this.r=new sr(t.r,16),this.s=new sr(t.s,16),this.recoveryParam=void 0===t.recoveryParam?null:t.recoveryParam)}var Ys=Vs;function Ws(){this.place=0}function Xs(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===t[e.place])return!1;for(var i=0,o=0,s=e.place;o<n;o++,s++)i<<=8,i|=t[s],i>>>=0;return!(i<=127)&&(e.place=s,i)}function Zs(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e<r;)e++;return 0===e?t:t.slice(e)}function $s(t,e){if(e<128)t.push(e);else{var r=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}Vs.prototype._importDER=function(t,e){t=Ms.toArray(t,e);var r=new Ws;if(48!==t[r.place++])return!1;var n=Xs(t,r);if(!1===n)return!1;if(n+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var i=Xs(t,r);if(!1===i)return!1;if(0!=(128&t[r.place]))return!1;var o=t.slice(r.place,i+r.place);if(r.place+=i,2!==t[r.place++])return!1;var s=Xs(t,r);if(!1===s)return!1;if(t.length!==s+r.place)return!1;if(0!=(128&t[r.place]))return!1;var a=t.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new sr(o),this.s=new sr(a),this.recoveryParam=null,!0},Vs.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=Zs(e),r=Zs(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];$s(n,e.length),(n=n.concat(e)).push(2),$s(n,r.length);var i=n.concat(r),o=[48];return $s(o,i.length),o=o.concat(i),Ms.encode(o,t)};var ta=function(){throw new Error("unsupported")},ea=Ms.assert;function ra(t){if(!(this instanceof ra))return new ra(t);"string"==typeof t&&(ea(Object.prototype.hasOwnProperty.call(Gs,t),"Unknown curve "+t),t=Gs[t]),t instanceof Gs.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var na=ra;ra.prototype.keyPair=function(t){return new Ks(this,t)},ra.prototype.keyFromPrivate=function(t,e){return Ks.fromPrivate(this,t,e)},ra.prototype.keyFromPublic=function(t,e){return Ks.fromPublic(this,t,e)},ra.prototype.genKeyPair=function(t){t||(t={});for(var e=new zs({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||ta(),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new sr(2));;){var i=new sr(e.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},ra.prototype._truncateToN=function(t,e,r){var n;if(sr.isBN(t)||"number"==typeof t)n=(t=new sr(t,16)).byteLength();else if("object"==typeof t)n=t.length,t=new sr(t,16);else{var i=t.toString();n=i.length+1>>>1,t=new sr(i,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(t=t.ushrn(o)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},ra.prototype.sign=function(t,e,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof t&&"number"!=typeof t&&!sr.isBN(t)){ea("object"==typeof t&&t&&"number"==typeof t.length,"Expected message to be an array-like, a hex string, or a BN instance"),ea(t.length>>>0===t.length);for(var i=0;i<t.length;i++)ea((255&t[i])===t[i])}e=this.keyFromPrivate(e,r),t=this._truncateToN(t,!1,n.msgBitLength),ea(!t.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=e.getPrivate().toArray("be",o),a=t.toArray("be",o);ea(new sr(a).eq(t),"Can not sign message");for(var u=new zs({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new sr(1)),h=0;;h++){var c=n.k?n.k(h):new sr(u.generate(this.n.byteLength()));if(!((c=this._truncateToN(c,!0)).cmpn(1)<=0||c.cmp(l)>=0)){var f=this.g.mul(c);if(!f.isInfinity()){var d=f.getX(),p=d.umod(this.n);if(0!==p.cmpn(0)){var m=c.invm(this.n).mul(p.mul(e.getPrivate()).iadd(t));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(f.getY().isOdd()?1:0)|(0!==d.cmp(p)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new Ys({r:p,s:m,recoveryParam:y})}}}}}},ra.prototype.verify=function(t,e,r,n,i){i||(i={}),t=this._truncateToN(t,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(e=new Ys(e,"hex")).r,s=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),l=u.mul(t).umod(this.n),h=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,r.getPublic(),h)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,r.getPublic(),h)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},ra.prototype.recoverPubKey=function(t,e,r,n){ea((3&r)===r,"The recovery param is more than two bits"),e=new Ys(e,n);var i=this.n,o=new sr(t),s=e.r,a=e.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var h=e.r.invm(i),c=i.sub(o).mul(h).umod(i),f=a.mul(h).umod(i);return this.g.mulAdd(c,s,f)},ra.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new Ys(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var ia=Ts(function(t,e){var r=e;r.version="6.6.1",r.utils=Ms,r.rand=function(){throw new Error("unsupported")},r.curve=qs,r.curves=Gs,r.ec=na,r.eddsa=null}).ec;const oa=new yr("signing-key/5.8.0");let sa=null;function aa(){return sa||(sa=new ia("secp256k1")),sa}class ua{constructor(t){Jr(this,"curve","secp256k1"),Jr(this,"privateKey",_r(t)),32!==Sr(this.privateKey)&&oa.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const e=aa().keyFromPrivate(Tr(this.privateKey));Jr(this,"publicKey","0x"+e.getPublic(!1,"hex")),Jr(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),Jr(this,"_isSigningKey",!0)}_addPoint(t){const e=aa().keyFromPublic(Tr(this.publicKey)),r=aa().keyFromPublic(Tr(t));return"0x"+e.pub.add(r.pub).encodeCompressed("hex")}signDigest(t){const e=aa().keyFromPrivate(Tr(this.privateKey)),r=Tr(t);32!==r.length&&oa.throwArgumentError("bad digest length","digest",t);const n=e.sign(r,{canonical:!0});return Rr({recoveryParam:n.recoveryParam,r:Or("0x"+n.r.toString(16),32),s:Or("0x"+n.s.toString(16),32)})}computeSharedSecret(t){const e=aa().keyFromPrivate(Tr(this.privateKey)),r=aa().keyFromPublic(Tr(la(t)));return Or("0x"+e.derive(r.getPublic()).toString(16),32)}static isSigningKey(t){return!(!t||!t._isSigningKey)}}function la(t,e){const r=Tr(t);if(32===r.length){const t=new ua(r);return e?"0x"+aa().keyFromPrivate(r).getPublic(!0,"hex"):t.publicKey}return 33===r.length?e?_r(r):"0x"+aa().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?e?"0x"+aa().keyFromPublic(r).getPublic(!0,"hex"):_r(r):oa.throwArgumentError("invalid public or private key","key","[REDACTED]")}const ha=new yr("transactions/5.8.0");var ca;function fa(t){return"0x"===t?null:fi(t)}function da(t){return"0x"===t?gn:qr.from(t)}function pa(t,e){return function(t){return fi(Pr(bn(Pr(la(t),1)),12))}(function(t,e){const r=Rr(e),n={r:Tr(r.r),s:Tr(r.s)};return"0x"+aa().recoverPubKey(Tr(t),n,r.recoveryParam).encode("hex",!1)}(Tr(t),e))}function ma(t,e){const r=Nr(qr.from(t).toHexString());return r.length>32&&ha.throwArgumentError("invalid length for "+e,"transaction:"+e,t),r}function ya(t,e){return{address:fi(t),storageKeys:(e||[]).map((e,r)=>(32!==Sr(e)&&ha.throwArgumentError("invalid access list storageKey",`accessList[${t}:${r}]`,e),e.toLowerCase()))}}function ga(t){if(Array.isArray(t))return t.map((t,e)=>Array.isArray(t)?(t.length>2&&ha.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${e}]`,t),ya(t[0],t[1])):ya(t.address,t.storageKeys));const e=Object.keys(t).map(e=>{const r=t[e].reduce((t,e)=>(t[e]=!0,t),{});return ya(e,Object.keys(r).sort())});return e.sort((t,e)=>t.address.localeCompare(e.address)),e}function va(t){return ga(t).map(t=>[t.address,t.storageKeys])}function ba(t,e){if(null!=t.gasPrice){const e=qr.from(t.gasPrice),r=qr.from(t.maxFeePerGas||0);e.eq(r)||ha.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:e,maxFeePerGas:r})}const r=[ma(t.chainId||0,"chainId"),ma(t.nonce||0,"nonce"),ma(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),ma(t.maxFeePerGas||0,"maxFeePerGas"),ma(t.gasLimit||0,"gasLimit"),null!=t.to?fi(t.to):"0x",ma(t.value||0,"value"),t.data||"0x",va(t.accessList||[])];if(e){const t=Rr(e);r.push(ma(t.recoveryParam,"recoveryParam")),r.push(Nr(t.r)),r.push(Nr(t.s))}return Cr(["0x02",ii(r)])}function Aa(t,e){const r=[ma(t.chainId||0,"chainId"),ma(t.nonce||0,"nonce"),ma(t.gasPrice||0,"gasPrice"),ma(t.gasLimit||0,"gasLimit"),null!=t.to?fi(t.to):"0x",ma(t.value||0,"value"),t.data||"0x",va(t.accessList||[])];if(e){const t=Rr(e);r.push(ma(t.recoveryParam,"recoveryParam")),r.push(Nr(t.r)),r.push(Nr(t.s))}return Cr(["0x01",ii(r)])}function wa(t,e,r){try{const r=da(e[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");t.v=r}catch(t){ha.throwArgumentError("invalid v for transaction type: 1","v",e[0])}t.r=Or(e[1],32),t.s=Or(e[2],32);try{const e=bn(r(t));t.from=pa(e,{r:t.r,s:t.s,recoveryParam:t.v})}catch(t){}}!function(t){t[t.legacy=0]="legacy",t[t.eip2930=1]="eip2930",t[t.eip1559=2]="eip1559"}(ca||(ca={}));const Ea=new yr(Es);class Ta{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const t={},e=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return t.transaction={hash:o,type:u,accessList:Ta.allowNull(this.accessList.bind(this),null),blockHash:Ta.allowNull(o,null),blockNumber:Ta.allowNull(a,null),transactionIndex:Ta.allowNull(a,null),confirmations:Ta.allowNull(a,null),from:e,gasPrice:Ta.allowNull(r),maxPriorityFeePerGas:Ta.allowNull(r),maxFeePerGas:Ta.allowNull(r),gasLimit:r,to:Ta.allowNull(e,null),value:r,nonce:a,data:i,r:Ta.allowNull(this.uint256),s:Ta.allowNull(this.uint256),v:Ta.allowNull(a),creates:Ta.allowNull(e,null),raw:Ta.allowNull(i)},t.transactionRequest={from:Ta.allowNull(e),nonce:Ta.allowNull(a),gasLimit:Ta.allowNull(r),gasPrice:Ta.allowNull(r),maxPriorityFeePerGas:Ta.allowNull(r),maxFeePerGas:Ta.allowNull(r),to:Ta.allowNull(e),value:Ta.allowNull(r),data:Ta.allowNull(t=>this.data(t,!0)),type:Ta.allowNull(a),accessList:Ta.allowNull(this.accessList.bind(this),null)},t.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:e,topics:Ta.arrayOf(o),data:i,logIndex:a,blockHash:o},t.receipt={to:Ta.allowNull(this.address,null),from:Ta.allowNull(this.address,null),contractAddress:Ta.allowNull(e,null),transactionIndex:a,root:Ta.allowNull(s),gasUsed:r,logsBloom:Ta.allowNull(i),blockHash:o,transactionHash:o,logs:Ta.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:Ta.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:Ta.allowNull(r),status:Ta.allowNull(a),type:u},t.block={hash:Ta.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:Ta.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:Ta.allowNull(e),extraData:i,transactions:Ta.allowNull(Ta.arrayOf(o)),baseFeePerGas:Ta.allowNull(r)},t.blockWithTransactions=Wr(t.block),t.blockWithTransactions.transactions=Ta.allowNull(Ta.arrayOf(this.transactionResponse.bind(this))),t.filter={fromBlock:Ta.allowNull(n,void 0),toBlock:Ta.allowNull(n,void 0),blockHash:Ta.allowNull(o,void 0),address:Ta.allowNull(e,void 0),topics:Ta.allowNull(this.topics.bind(this),void 0)},t.filterLog={blockNumber:Ta.allowNull(a),blockHash:Ta.allowNull(o),transactionIndex:a,removed:Ta.allowNull(this.boolean.bind(this)),address:e,data:Ta.allowFalsish(i,"0x"),topics:Ta.arrayOf(o),transactionHash:o,logIndex:a},t}accessList(t){return ga(t||[])}number(t){return"0x"===t?0:qr.from(t).toNumber()}type(t){return"0x"===t||null==t?0:qr.from(t).toNumber()}bigNumber(t){return qr.from(t)}boolean(t){if("boolean"==typeof t)return t;if("string"==typeof t){if("true"===(t=t.toLowerCase()))return!0;if("false"===t)return!1}throw new Error("invalid boolean - "+t)}hex(t,e){return"string"==typeof t&&(e||"0x"===t.substring(0,2)||(t="0x"+t),kr(t))?t.toLowerCase():Ea.throwArgumentError("invalid hash","value",t)}data(t,e){const r=this.hex(t,e);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+t);return r}address(t){return fi(t)}callAddress(t){if(!kr(t,32))return null;const e=fi(Pr(t,12));return"0x0000000000000000000000000000000000000000"===e?null:e}contractAddress(t){return function(t){let e=null;try{e=fi(t.from)}catch(e){ui.throwArgumentError("missing from address","transaction",t)}return fi(Pr(bn(ii([e,Nr(Tr(qr.from(t.nonce).toHexString()))])),12))}(t)}blockTag(t){if(null==t)return"latest";if("earliest"===t)return"0x0";switch(t){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return t}if("number"==typeof t||kr(t))return xr(t);throw new Error("invalid blockTag")}hash(t,e){const r=this.hex(t,e);return 32!==Sr(r)?Ea.throwArgumentError("invalid hash","value",t):r}difficulty(t){if(null==t)return null;const e=qr.from(t);try{return e.toNumber()}catch(t){}return null}uint256(t){if(!kr(t))throw new Error("invalid uint256");return Or(t,32)}_block(t,e){null!=t.author&&null==t.miner&&(t.miner=t.author);const r=null!=t._difficulty?t._difficulty:t.difficulty,n=Ta.check(e,t);return n._difficulty=null==r?null:qr.from(r),n}block(t){return this._block(t,this.formats.block)}blockWithTransactions(t){return this._block(t,this.formats.blockWithTransactions)}transactionRequest(t){return Ta.check(this.formats.transactionRequest,t)}transactionResponse(t){null!=t.gas&&null==t.gasLimit&&(t.gasLimit=t.gas),t.to&&qr.from(t.to).isZero()&&(t.to="0x0000000000000000000000000000000000000000"),null!=t.input&&null==t.data&&(t.data=t.input),null==t.to&&null==t.creates&&(t.creates=this.contractAddress(t)),1!==t.type&&2!==t.type||null!=t.accessList||(t.accessList=[]);const e=Ta.check(this.formats.transaction,t);if(null!=t.chainId){let r=t.chainId;kr(r)&&(r=qr.from(r).toNumber()),e.chainId=r}else{let r=t.networkId;null==r&&null==e.v&&(r=t.chainId),kr(r)&&(r=qr.from(r).toNumber()),"number"!=typeof r&&null!=e.v&&(r=(e.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),e.chainId=r}return e.blockHash&&"x"===e.blockHash.replace(/0/g,"")&&(e.blockHash=null),e}transaction(t){return function(t){const e=Tr(t);if(e[0]>127)return function(t){const e=ai(t);9!==e.length&&6!==e.length&&ha.throwArgumentError("invalid raw transaction","rawTransaction",t);const r={nonce:da(e[0]).toNumber(),gasPrice:da(e[1]),gasLimit:da(e[2]),to:fa(e[3]),value:da(e[4]),data:e[5],chainId:0};if(6===e.length)return r;try{r.v=qr.from(e[6]).toNumber()}catch(t){return r}if(r.r=Or(e[7],32),r.s=Or(e[8],32),qr.from(r.r).isZero()&&qr.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=e.slice(0,6);0!==r.chainId&&(i.push(_r(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=bn(ii(i));try{r.from=pa(o,{r:_r(r.r),s:_r(r.s),recoveryParam:n})}catch(t){}r.hash=bn(t)}return r.type=null,r}(e);switch(e[0]){case 1:return function(t){const e=ai(t.slice(1));8!==e.length&&11!==e.length&&ha.throwArgumentError("invalid component count for transaction type: 1","payload",_r(t));const r={type:1,chainId:da(e[0]).toNumber(),nonce:da(e[1]).toNumber(),gasPrice:da(e[2]),gasLimit:da(e[3]),to:fa(e[4]),value:da(e[5]),data:e[6],accessList:ga(e[7])};return 8===e.length||(r.hash=bn(t),wa(r,e.slice(8),Aa)),r}(e);case 2:return function(t){const e=ai(t.slice(1));9!==e.length&&12!==e.length&&ha.throwArgumentError("invalid component count for transaction type: 2","payload",_r(t));const r=da(e[2]),n=da(e[3]),i={type:2,chainId:da(e[0]).toNumber(),nonce:da(e[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:da(e[4]),to:fa(e[5]),value:da(e[6]),data:e[7],accessList:ga(e[8])};return 9===e.length||(i.hash=bn(t),wa(i,e.slice(9),ba)),i}(e)}return ha.throwError(`unsupported transaction type: ${e[0]}`,yr.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:e[0]})}(t)}receiptLog(t){return Ta.check(this.formats.receiptLog,t)}receipt(t){const e=Ta.check(this.formats.receipt,t);if(null!=e.root)if(e.root.length<=4){const t=qr.from(e.root).toNumber();0===t||1===t?(null!=e.status&&e.status!==t&&Ea.throwArgumentError("alt-root-status/status mismatch","value",{root:e.root,status:e.status}),e.status=t,delete e.root):Ea.throwArgumentError("invalid alt-root-status","value.root",e.root)}else 66!==e.root.length&&Ea.throwArgumentError("invalid root hash","value.root",e.root);return null!=e.status&&(e.byzantium=!0),e}topics(t){return Array.isArray(t)?t.map(t=>this.topics(t)):null!=t?this.hash(t,!0):null}filter(t){return Ta.check(this.formats.filter,t)}filterLog(t){return Ta.check(this.formats.filterLog,t)}static check(t,e){const r={};for(const n in t)try{const i=t[n](e[n]);void 0!==i&&(r[n]=i)}catch(t){throw t.checkKey=n,t.checkValue=e[n],t}return r}static allowNull(t,e){return function(r){return null==r?e:t(r)}}static allowFalsish(t,e){return function(r){return r?t(r):e}}static arrayOf(t){return function(e){if(!Array.isArray(e))throw new Error("not an array");const r=[];return e.forEach(function(e){r.push(t(e))}),r}}}var Ia=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Na=new yr(Es);function ka(t){return null==t?"null":(32!==Sr(t)&&Na.throwArgumentError("invalid topic","topic",t),t.toLowerCase())}function Ma(t){for(t=t.slice();t.length>0&&null==t[t.length-1];)t.pop();return t.map(t=>{if(Array.isArray(t)){const e={};t.forEach(t=>{e[ka(t)]=!0});const r=Object.keys(e);return r.sort(),r.join("|")}return ka(t)}).join("&")}function _a(t){if("string"==typeof t){if(32===Sr(t=t.toLowerCase()))return"tx:"+t;if(-1===t.indexOf(":"))return t}else{if(Array.isArray(t))return"filter:*:"+Ma(t);if(nn.isForkEvent(t))throw Na.warn("not implemented"),new Error("not implemented");if(t&&"object"==typeof t)return"filter:"+(t.address||"*")+":"+Ma(t.topics||[])}throw new Error("invalid event - "+t)}function Sa(){return(new Date).getTime()}function Pa(t){return new Promise(e=>{setTimeout(e,t)})}const Ca=["block","network","pending","poll"];class xa{constructor(t,e,r){Jr(this,"tag",t),Jr(this,"listener",e),Jr(this,"once",r),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 t=this.tag.split(":");return"tx"!==t[0]?null:t[1]}get filter(){const t=this.tag.split(":");if("filter"!==t[0])return null;const e=t[1],r=""===(n=t[2])?[]:n.split(/&/g).map(t=>{if(""===t)return[];const e=t.split("|").map(t=>"null"===t?null:t);return 1===e.length?e[0]:e});var n;const i={};return r.length>0&&(i.topics=r),e&&"*"!==e&&(i.address=e),i}pollable(){return this.tag.indexOf(":")>=0||Ca.indexOf(this.tag)>=0}}const Oa={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 Ra(t){return Or(qr.from(t).toHexString(),32)}function Ba(t){return yn.encode(Ir([t,Pr(us(us(t)),0,4)]))}const Da=new RegExp("^(ipfs)://(.*)$","i"),La=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Da,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Ua(t,e){try{return Mn(Fa(t,e))}catch(t){}return null}function Fa(t,e){if("0x"===t)return null;const r=qr.from(Pr(t,e,e+32)).toNumber(),n=qr.from(Pr(t,r,r+32)).toNumber();return Pr(t,r+32,r+32+n)}function qa(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):Na.throwArgumentError("unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}function Ga(t){const e=Tr(t);if(e.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(e,32-e.length),r}function Ha(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}function za(t){const e=[];let r=0;for(let n=0;n<t.length;n++)e.push(null),r+=32;for(let n=0;n<t.length;n++){const i=Tr(t[n]);e[n]=Ga(r),e.push(Ga(i.length)),e.push(Ha(i)),r+=32+32*Math.ceil(i.length/32)}return Cr(e)}class ja{constructor(t,e,r,n){Jr(this,"provider",t),Jr(this,"name",r),Jr(this,"address",t.formatter.address(e)),Jr(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(t=>qr.from(t).eq(1)).catch(t=>{if(t.code===yr.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,t})),this._supportsEip2544}_fetch(t,e){return Ia(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:Cr([t,$n(this.name),e||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=Cr(["0x9061b923",za([(i=this.name,_r(Ir(Zn(i).map(t=>{if(t.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const e=new Uint8Array(t.length+1);return e.set(t,1),e[0]=e.length-1,e})))+"00"),r.data])]));try{let t=yield this.provider.call(r);return Tr(t).length%32==4&&Na.throwError("resolver threw error",yr.errors.CALL_EXCEPTION,{transaction:r,data:t}),n&&(t=Fa(t,0)),t}catch(t){if(t.code===yr.errors.CALL_EXCEPTION)return null;throw t}})}_fetchBytes(t,e){return Ia(this,void 0,void 0,function*(){const r=yield this._fetch(t,e);return null!=r?Fa(r,0):null})}_getAddress(t,e){const r=Oa[String(t)];if(null==r&&Na.throwError(`unsupported coin type: ${t}`,yr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`}),"eth"===r.ilk)return this.provider.formatter.address(e);const n=Tr(e);if(null!=r.p2pkh){const t=e.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return Ba(Ir([[r.p2pkh],"0x"+t[2]]))}}if(null!=r.p2sh){const t=e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return Ba(Ir([[r.p2sh],"0x"+t[2]]))}}if(null!=r.prefix){const t=n[1];let e=n[0];if(0===e?20!==t&&32!==t&&(e=-1):e=-1,e>=0&&n.length===2+t&&t>=1&&t<=75){const t=function(t){var e=function(t,e,r,n){for(var i=0,o=0,s=[],a=0;a<t.length;++a)for(i=i<<8|t[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(t);if(Array.isArray(e))return e;throw new Error(e)}(n.slice(2));return t.unshift(e),function(t,e,r){if(t.length+7+e.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(t){for(var e=1,r=0;r<t.length;++r){var n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=ws(e)^n>>5}for(e=ws(e),r=0;r<t.length;++r){var i=t.charCodeAt(r);e=ws(e)^31&i}return e}(t=t.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=t+"1",o=0;o<e.length;++o){var s=e[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=ws(n)^s,i+=gs.charAt(s)}for(o=0;o<6;++o)n=ws(n);for(n^=1,o=0;o<6;++o)i+=gs.charAt(n>>5*(5-o)&31);return i}(r.prefix,t)}}return null}getAddress(t){return Ia(this,void 0,void 0,function*(){if(null==t&&(t=60),60===t)try{const t=yield this._fetch("0x3b3b57de");return"0x"===t||"0x0000000000000000000000000000000000000000000000000000000000000000"===t?null:this.provider.formatter.callAddress(t)}catch(t){if(t.code===yr.errors.CALL_EXCEPTION)return null;throw t}const e=yield this._fetchBytes("0xf1cb7e06",Ra(t));if(null==e||"0x"===e)return null;const r=this._getAddress(t,e);return null==r&&Na.throwError("invalid or unsupported coin data",yr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`,coinType:t,data:e}),r})}getAvatar(){return Ia(this,void 0,void 0,function*(){const t=[{type:"name",content:this.name}];try{const e=yield this.getText("avatar");if(null==e)return null;for(let r=0;r<La.length;r++){const n=e.match(La[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return t.push({type:"url",content:e}),{linkage:t,url:e};case"data":return t.push({type:"data",content:e}),{linkage:t,url:e};case"ipfs":return t.push({type:"ipfs",content:e}),{linkage:t,url:qa(e)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";t.push({type:i,content:e});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=Or(qr.from(s[1]).toHexString(),32);if("erc721"===i){const e=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:Cr(["0x6352211e",u])}));if(o!==e)return null;t.push({type:"owner",content:e})}else if("erc1155"===i){const e=qr.from(yield this.provider.call({to:a,data:Cr(["0x00fdd58e",Or(o,32),u])}));if(e.isZero())return null;t.push({type:"balance",content:e.toString()})}const l={to:this.provider.formatter.address(s[0]),data:Cr([r,u])};let h=Ua(yield this.provider.call(l),0);if(null==h)return null;t.push({type:"metadata-url-base",content:h}),"erc1155"===i&&(h=h.replace("{id}",u.substring(2)),t.push({type:"metadata-url-expanded",content:h})),h.match(/^ipfs:/i)&&(h=qa(h)),t.push({type:"metadata-url",content:h});const c=yield ms(h);if(!c)return null;t.push({type:"metadata",content:JSON.stringify(c)});let f=c.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(Da))return null;t.push({type:"url-ipfs",content:f}),f=qa(f)}return t.push({type:"url",content:f}),{linkage:t,url:f}}}}}catch(t){}return null})}getContentHash(){return Ia(this,void 0,void 0,function*(){const t=yield this._fetchBytes("0xbc1c58d1");if(null==t||"0x"===t)return null;const e=t.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const t=parseInt(e[3],16);if(e[4].length===2*t)return"ipfs://"+yn.encode("0x"+e[1])}const r=t.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const t=parseInt(r[3],16);if(r[4].length===2*t)return"ipns://"+yn.encode("0x"+r[1])}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=t.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const t={"=":"","+":"-","/":"_"};return"sia://"+pn("0x"+i[1]).replace(/[=+\/]/g,e=>t[e])}return Na.throwError("invalid or unsupported content hash data",yr.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:t})})}getText(t){return Ia(this,void 0,void 0,function*(){let e=kn(t);e=Ir([Ra(64),Ra(e.length),e]),e.length%32!=0&&(e=Ir([e,Or("0x",32-t.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",_r(e));return null==r||"0x"===r?null:Mn(r)})}}let Qa=null,Ka=1;class Ja extends on{constructor(t){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Jr(this,"anyNetwork","any"===t),this.anyNetwork&&(t=this.detectNetwork()),t instanceof Promise)this._networkPromise=t,t.catch(t=>{}),this._ready().catch(t=>{});else{const e=Vr(new.target,"getNetwork")(t);e?(Jr(this,"_network",e),this.emit("network",e,null)):Na.throwArgumentError("invalid network","network",t)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Ia(this,void 0,void 0,function*(){if(null==this._network){let t=null;if(this._networkPromise)try{t=yield this._networkPromise}catch(t){}null==t&&(t=yield this.detectNetwork()),t||Na.throwError("no network detected",yr.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=t:Jr(this,"_network",t),this.emit("network",t,null))}return this._network})}get ready(){return ys(()=>this._ready().then(t=>t,t=>{if(t.code!==yr.errors.NETWORK_ERROR||"noNetwork"!==t.event)throw t}))}static getFormatter(){return null==Qa&&(Qa=new Ta),Qa}static getNetwork(t){return function(t){if(null==t)return null;if("number"==typeof t){for(const e in fn){const r=fn[e];if(r.chainId===t)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:t,name:"unknown"}}if("string"==typeof t){const e=fn[t];return null==e?null:{name:e.name,chainId:e.chainId,ensAddress:e.ensAddress,_defaultProvider:e._defaultProvider||null}}const e=fn[t.name];if(!e)return"number"!=typeof t.chainId&&sn.throwArgumentError("invalid network chainId","network",t),t;0!==t.chainId&&t.chainId!==e.chainId&&sn.throwArgumentError("network chainId mismatch","network",t);let r=t._defaultProvider||null;var n;return null==r&&e._defaultProvider&&(r=(n=e._defaultProvider)&&"function"==typeof n.renetwork?e._defaultProvider.renetwork(t):e._defaultProvider),{name:t.name,chainId:e.chainId,ensAddress:t.ensAddress||e.ensAddress||null,_defaultProvider:r}}(null==t?"homestead":t)}ccipReadFetch(t,e,r){return Ia(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=t.to.toLowerCase(),i=e.toLowerCase(),o=[];for(let t=0;t<r.length;t++){const e=r[t],s=e.replace("{sender}",n).replace("{data}",i),a=e.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield ms({url:s,errorPassThrough:!0},a,(t,e)=>(t.status=e.statusCode,t));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return Na.throwError(`response not found during CCIP fetch: ${l}`,yr.errors.SERVER_ERROR,{url:e,errorMessage:l});o.push(l)}return Na.throwError(`error encountered during CCIP fetch: ${o.map(t=>JSON.stringify(t)).join(", ")}`,yr.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(t){return Ia(this,void 0,void 0,function*(){if(yield this._ready(),t>0)for(;this._internalBlockNumber;){const e=this._internalBlockNumber;try{const r=yield e;if(Sa()-r.respTime<=t)return r.blockNumber;break}catch(t){if(this._internalBlockNumber===e)break}}const e=Sa(),r=Yr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(t=>null,t=>t)}).then(({blockNumber:t,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=Sa();return(t=qr.from(t).toNumber())<this._maxInternalBlockNumber&&(t=this._maxInternalBlockNumber),this._maxInternalBlockNumber=t,this._setFastBlockNumber(t),{blockNumber:t,reqTime:e,respTime:i}});return this._internalBlockNumber=r,r.catch(t=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return Ia(this,void 0,void 0,function*(){const t=Ka++,e=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(t){return void this.emit("error",t)}if(this._setFastBlockNumber(r),this.emit("poll",t,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)Na.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",Na.makeError("network block skew detected",yr.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let t=this._emitted.block+1;t<=r;t++)this.emit("block",t);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(t=>{if("block"===t)return;const e=this._emitted[t];"pending"!==e&&r-e>12&&delete this._emitted[t]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(t=>{switch(t.type){case"tx":{const r=t.hash;let n=this.getTransactionReceipt(r).then(t=>t&&null!=t.blockNumber?(this._emitted["t:"+r]=t.blockNumber,this.emit(r,t),null):null).catch(t=>{this.emit("error",t)});e.push(n);break}case"filter":if(!t._inflight){t._inflight=!0,-2===t._lastBlockNumber&&(t._lastBlockNumber=r-1);const n=t.filter;n.fromBlock=t._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(e=>{t._inflight=!1,0!==e.length&&e.forEach(e=>{e.blockNumber>t._lastBlockNumber&&(t._lastBlockNumber=e.blockNumber),this._emitted["b:"+e.blockHash]=e.blockNumber,this._emitted["t:"+e.transactionHash]=e.blockNumber,this.emit(n,e)})}).catch(e=>{this.emit("error",e),t._inflight=!1});e.push(o)}}}),this._lastBlockNumber=r,Promise.all(e).then(()=>{this.emit("didPoll",t)}).catch(t=>{this.emit("error",t)})}else this.emit("didPoll",t)})}resetEventsBlock(t){this._lastBlockNumber=t-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Ia(this,void 0,void 0,function*(){return Na.throwError("provider does not support network detection",yr.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return Ia(this,void 0,void 0,function*(){const t=yield this._ready(),e=yield this.detectNetwork();if(t.chainId!==e.chainId){if(this.anyNetwork)return this._network=e,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",e,t),yield Pa(0),this._network;const r=Na.makeError("underlying network changed",yr.errors.NETWORK_ERROR,{event:"changed",network:t,detectedNetwork:e});throw this.emit("error",r),r}return t})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(t=>{this._setFastBlockNumber(t)},t=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(t){t&&!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))):!t&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(t){if("number"!=typeof t||t<=0||parseInt(String(t))!=t)throw new Error("invalid polling interval");this._pollingInterval=t,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const t=Sa();return t-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=t,this._fastBlockNumberPromise=this.getBlockNumber().then(t=>((null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(t){null!=this._fastBlockNumber&&t<this._fastBlockNumber||(this._fastQueryDate=Sa(),(null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t,this._fastBlockNumberPromise=Promise.resolve(t)))}waitForTransaction(t,e,r){return Ia(this,void 0,void 0,function*(){return this._waitForTransaction(t,null==e?1:e,r||0,null)})}_waitForTransaction(t,e,r,n){return Ia(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(t);return(i?i.confirmations:0)>=e?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(t=>{t()}),!1)},l=t=>{t.confirmations<e||u()||i(t)};if(this.on(t,l),s.push(()=>{this.removeListener(t,l)}),n){let r=n.startBlock,i=null;const l=s=>Ia(this,void 0,void 0,function*(){a||(yield Pa(1e3),this.getTransactionCount(n.from).then(h=>Ia(this,void 0,void 0,function*(){if(!a){if(h<=n.nonce)r=s;else{{const e=yield this.getTransaction(t);if(e&&null!=e.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===t)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,e);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(Na.makeError("transaction was replaced",yr.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:t,receipt:r}))}}i++}}a||this.once("block",l)}}),t=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const t=setTimeout(()=>{u()||o(Na.makeError("timeout exceeded",yr.errors.TIMEOUT,{timeout:r}))},r);t.unref&&t.unref(),s.push(()=>{clearTimeout(t)})}})})}getBlockNumber(){return Ia(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield this.perform("getGasPrice",{});try{return qr.from(t)}catch(e){return Na.throwError("bad result from backend",yr.errors.SERVER_ERROR,{method:"getGasPrice",result:t,error:e})}})}getBalance(t,e){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Yr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getBalance",r);try{return qr.from(n)}catch(t){return Na.throwError("bad result from backend",yr.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:t})}})}getTransactionCount(t,e){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Yr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getTransactionCount",r);try{return qr.from(n).toNumber()}catch(t){return Na.throwError("bad result from backend",yr.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:t})}})}getCode(t,e){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Yr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getCode",r);try{return _r(n)}catch(t){return Na.throwError("bad result from backend",yr.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:t})}})}getStorageAt(t,e,r){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Yr({address:this._getAddress(t),blockTag:this._getBlockTag(r),position:Promise.resolve(e).then(t=>xr(t))}),i=yield this.perform("getStorageAt",n);try{return _r(i)}catch(t){return Na.throwError("bad result from backend",yr.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:t})}})}_wrapTransaction(t,e,r){if(null!=e&&32!==Sr(e))throw new Error("invalid response - sendTransaction");const n=t;return null!=e&&t.hash!==e&&Na.throwError("Transaction hash mismatch from Provider.sendTransaction.",yr.errors.UNKNOWN_ERROR,{expectedHash:t.hash,returnedHash:e}),n.wait=(e,n)=>Ia(this,void 0,void 0,function*(){let i;null==e&&(e=1),null==n&&(n=0),0!==e&&null!=r&&(i={data:t.data,from:t.from,nonce:t.nonce,to:t.to,value:t.value,startBlock:r});const o=yield this._waitForTransaction(t.hash,e,n,i);return null==o&&0===e?null:(this._emitted["t:"+t.hash]=o.blockNumber,0===o.status&&Na.throwError("transaction failed",yr.errors.CALL_EXCEPTION,{transactionHash:t.hash,transaction:t,receipt:o}),o)}),n}sendTransaction(t){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Promise.resolve(t).then(t=>_r(t)),r=this.formatter.transaction(t);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const t=yield this.perform("sendTransaction",{signedTransaction:e});return this._wrapTransaction(r,t,n)}catch(t){throw t.transaction=r,t.transactionHash=r.hash,t}})}_getTransactionRequest(t){return Ia(this,void 0,void 0,function*(){const e=yield t,r={};return["from","to"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?this._getAddress(t):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?qr.from(t):null))}),["type"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>null!=t?t:null))}),e.accessList&&(r.accessList=this.formatter.accessList(e.accessList)),["data"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?_r(t):null))}),this.formatter.transactionRequest(yield Yr(r))})}_getFilter(t){return Ia(this,void 0,void 0,function*(){t=yield t;const e={};return null!=t.address&&(e.address=this._getAddress(t.address)),["blockHash","topics"].forEach(r=>{null!=t[r]&&(e[r]=t[r])}),["fromBlock","toBlock"].forEach(r=>{null!=t[r]&&(e[r]=this._getBlockTag(t[r]))}),this.formatter.filter(yield Yr(e))})}_call(t,e,r){return Ia(this,void 0,void 0,function*(){r>=10&&Na.throwError("CCIP read exceeded maximum redirections",yr.errors.SERVER_ERROR,{redirects:r,transaction:t});const n=t.to,i=yield this.perform("call",{transaction:t,blockTag:e});if(r>=0&&"latest"===e&&null!=n&&"0x556f1830"===i.substring(0,10)&&Sr(i)%32==4)try{const o=Pr(i,4),s=Pr(o,0,32);qr.from(s).eq(n)||Na.throwError("CCIP Read sender did not match",yr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const a=[],u=qr.from(Pr(o,32,64)).toNumber(),l=qr.from(Pr(o,u,u+32)).toNumber(),h=Pr(o,u+32);for(let e=0;e<l;e++){const r=Ua(h,32*e);null==r&&Na.throwError("CCIP Read contained corrupt URL string",yr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i}),a.push(r)}const c=Fa(o,64);qr.from(Pr(o,100,128)).isZero()||Na.throwError("CCIP Read callback selector included junk",yr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const f=Pr(o,96,100),d=Fa(o,128),p=yield this.ccipReadFetch(t,c,a);null==p&&Na.throwError("CCIP Read disabled or provided no URLs",yr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const m={to:n,data:Cr([f,za([p,d])])};return this._call(m,e,r+1)}catch(t){if(t.code===yr.errors.SERVER_ERROR)throw t}try{return _r(i)}catch(r){return Na.throwError("bad result from backend",yr.errors.SERVER_ERROR,{method:"call",params:{transaction:t,blockTag:e},result:i,error:r})}})}call(t,e){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Yr({transaction:this._getTransactionRequest(t),blockTag:this._getBlockTag(e),ccipReadEnabled:Promise.resolve(t.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(t){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Yr({transaction:this._getTransactionRequest(t)}),r=yield this.perform("estimateGas",e);try{return qr.from(r)}catch(t){return Na.throwError("bad result from backend",yr.errors.SERVER_ERROR,{method:"estimateGas",params:e,result:r,error:t})}})}_getAddress(t){return Ia(this,void 0,void 0,function*(){"string"!=typeof(t=yield t)&&Na.throwArgumentError("invalid address or ENS name","name",t);const e=yield this.resolveName(t);return null==e&&Na.throwError("ENS name not configured",yr.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(t)})`}),e})}_getBlock(t,e){return Ia(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;let r=-128;const n={includeTransactions:!!e};if(kr(t,32))n.blockHash=t;else try{n.blockTag=yield this._getBlockTag(t),kr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(e){Na.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",t)}return ys(()=>Ia(this,void 0,void 0,function*(){const t=yield this.perform("getBlock",n);if(null==t)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(e){let e=null;for(let r=0;r<t.transactions.length;r++){const n=t.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==e&&(e=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let t=e-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}}const r=this.formatter.blockWithTransactions(t);return r.transactions=r.transactions.map(t=>this._wrapTransaction(t)),r}return this.formatter.block(t)}),{oncePoll:this})})}getBlock(t){return this._getBlock(t,!1)}getBlockWithTransactions(t){return this._getBlock(t,!0)}getTransaction(t){return Ia(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ys(()=>Ia(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",e);if(null==r)return null==this._emitted["t:"+t]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(t){return Ia(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ys(()=>Ia(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",e);if(null==r)return null==this._emitted["t:"+t]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return n}),{oncePoll:this})})}getLogs(t){return Ia(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Yr({filter:this._getFilter(t)}),r=yield this.perform("getLogs",e);return r.forEach(t=>{null==t.removed&&(t.removed=!1)}),Ta.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return Ia(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(t){return Ia(this,void 0,void 0,function*(){if("number"==typeof(t=yield t)&&t<0){t%1&&Na.throwArgumentError("invalid BlockTag","blockTag",t);let e=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return e+=t,e<0&&(e=0),this.formatter.blockTag(e)}return this.formatter.blockTag(t)})}getResolver(t){return Ia(this,void 0,void 0,function*(){let e=t;for(;;){if(""===e||"."===e)return null;if("eth"!==t&&"eth"===e)return null;const r=yield this._getResolver(e,"getResolver");if(null!=r){const n=new ja(this,r,t);return e===t||(yield n.supportsWildcard())?n:null}e=e.split(".").slice(1).join(".")}})}_getResolver(t,e){return Ia(this,void 0,void 0,function*(){null==e&&(e="ENS");const r=yield this.getNetwork();r.ensAddress||Na.throwError("network does not support ENS",yr.errors.UNSUPPORTED_OPERATION,{operation:e,network:r.name});try{const e=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+$n(t).substring(2)});return this.formatter.callAddress(e)}catch(t){}return null})}resolveName(t){return Ia(this,void 0,void 0,function*(){t=yield t;try{return Promise.resolve(this.formatter.address(t))}catch(e){if(kr(t))throw e}"string"!=typeof t&&Na.throwArgumentError("invalid ENS name","name",t);const e=yield this.getResolver(t);return e?yield e.getAddress():null})}lookupAddress(t){return Ia(this,void 0,void 0,function*(){t=yield t;const e=(t=this.formatter.address(t)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(e,"lookupAddress");if(null==r)return null;const n=Ua(yield this.call({to:r,data:"0x691f3431"+$n(e).substring(2)}),0);return(yield this.resolveName(n))!=t?null:n})}getAvatar(t){return Ia(this,void 0,void 0,function*(){let e=null;if(kr(t)){const r=this.formatter.address(t).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;e=new ja(this,n,r);try{const t=yield e.getAvatar();if(t)return t.url}catch(t){if(t.code!==yr.errors.CALL_EXCEPTION)throw t}try{const t=Ua(yield this.call({to:n,data:"0x691f3431"+$n(r).substring(2)}),0);e=yield this.getResolver(t)}catch(t){if(t.code!==yr.errors.CALL_EXCEPTION)throw t;return null}}else if(e=yield this.getResolver(t),!e)return null;const r=yield e.getAvatar();return null==r?null:r.url})}perform(t,e){return Na.throwError(t+" not implemented",yr.errors.NOT_IMPLEMENTED,{operation:t})}_startEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_stopEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_addEventListener(t,e,r){const n=new xa(_a(t),e,r);return this._events.push(n),this._startEvent(n),this}on(t,e){return this._addEventListener(t,e,!1)}once(t,e){return this._addEventListener(t,e,!0)}emit(t,...e){let r=!1,n=[],i=_a(t);return this._events=this._events.filter(t=>t.tag!==i||(setTimeout(()=>{t.listener.apply(this,e)},0),r=!0,!t.once||(n.push(t),!1))),n.forEach(t=>{this._stopEvent(t)}),r}listenerCount(t){if(!t)return this._events.length;let e=_a(t);return this._events.filter(t=>t.tag===e).length}listeners(t){if(null==t)return this._events.map(t=>t.listener);let e=_a(t);return this._events.filter(t=>t.tag===e).map(t=>t.listener)}off(t,e){if(null==e)return this.removeAllListeners(t);const r=[];let n=!1,i=_a(t);return this._events=this._events.filter(t=>t.tag!==i||t.listener!=e||!!n||(n=!0,r.push(t),!1)),r.forEach(t=>{this._stopEvent(t)}),this}removeAllListeners(t){let e=[];if(null==t)e=this._events,this._events=[];else{const r=_a(t);this._events=this._events.filter(t=>t.tag!==r||(e.push(t),!1))}return e.forEach(t=>{this._stopEvent(t)}),this}}var Va=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Ya=new yr(Es),Wa=["call","estimateGas"];function Xa(t,e){if(null==t)return null;if("string"==typeof t.message&&t.message.match("reverted")){const r=kr(t.data)?t.data:null;if(!e||r)return{message:t.message,data:r}}if("object"==typeof t){for(const r in t){const n=Xa(t[r],e);if(n)return n}return null}if("string"==typeof t)try{return Xa(JSON.parse(t),e)}catch(t){}return null}function Za(t,e,r){const n=r.transaction||r.signedTransaction;if("call"===t){const t=Xa(e,!0);if(t)return t.data;Ya.throwError("missing revert data in call exception; Transaction reverted without a reason string",yr.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:e})}if("estimateGas"===t){let r=Xa(e.body,!1);null==r&&(r=Xa(e,!1)),r&&Ya.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",yr.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:t,transaction:n,error:e})}let i=e.message;throw e.code===yr.errors.SERVER_ERROR&&e.error&&"string"==typeof e.error.message?i=e.error.message:"string"==typeof e.body?i=e.body:"string"==typeof e.responseText&&(i=e.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ya.throwError("insufficient funds for intrinsic transaction cost",yr.errors.INSUFFICIENT_FUNDS,{error:e,method:t,transaction:n}),i.match(/nonce (is )?too low/i)&&Ya.throwError("nonce has already been used",yr.errors.NONCE_EXPIRED,{error:e,method:t,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ya.throwError("replacement fee too low",yr.errors.REPLACEMENT_UNDERPRICED,{error:e,method:t,transaction:n}),i.match(/only replay-protected/i)&&Ya.throwError("legacy pre-eip-155 transactions not supported",yr.errors.UNSUPPORTED_OPERATION,{error:e,method:t,transaction:n}),Wa.indexOf(t)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Ya.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",yr.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,method:t,transaction:n}),e}function $a(t){return new Promise(function(e){setTimeout(e,t)})}function tu(t){if(t.error){const e=new Error(t.error.message);throw e.code=t.error.code,e.data=t.error.data,e}return t.result}function eu(t){return t?t.toLowerCase():t}const ru={};class nu extends I{constructor(t,e,r){if(super(),t!==ru)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Jr(this,"provider",e),null==r&&(r=0),"string"==typeof r?(Jr(this,"_address",this.provider.formatter.address(r)),Jr(this,"_index",null)):"number"==typeof r?(Jr(this,"_index",r),Jr(this,"_address",null)):Ya.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(t){return Ya.throwError("cannot alter JSON-RPC Signer connection",yr.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new iu(ru,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(t=>(t.length<=this._index&&Ya.throwError("unknown account #"+this._index,yr.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(t[this._index])))}sendUncheckedTransaction(t){t=Wr(t);const e=this.getAddress().then(t=>(t&&(t=t.toLowerCase()),t));if(null==t.gasLimit){const r=Wr(t);r.from=e,t.gasLimit=this.provider.estimateGas(r)}return null!=t.to&&(t.to=Promise.resolve(t.to).then(t=>Va(this,void 0,void 0,function*(){if(null==t)return null;const e=yield this.provider.resolveName(t);return null==e&&Ya.throwArgumentError("provided ENS name resolves to null","tx.to",t),e}))),Yr({tx:Yr(t),sender:e}).then(({tx:e,sender:r})=>{null!=e.from?e.from.toLowerCase()!==r&&Ya.throwArgumentError("from address mismatch","transaction",t):e.from=r;const n=this.provider.constructor.hexlifyTransaction(e,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(t=>t,t=>("string"==typeof t.message&&t.message.match(/user denied/i)&&Ya.throwError("user rejected transaction",yr.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:e}),Za("sendTransaction",t,n)))})}signTransaction(t){return Ya.throwError("signing transactions is unsupported",yr.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(t){return Va(this,void 0,void 0,function*(){const e=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(t);try{return yield ys(()=>Va(this,void 0,void 0,function*(){const t=yield this.provider.getTransaction(r);if(null!==t)return this.provider._wrapTransaction(t,r,e)}),{oncePoll:this.provider})}catch(t){throw t.transactionHash=r,t}})}signMessage(t){return Va(this,void 0,void 0,function*(){const e="string"==typeof t?kn(t):t,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[_r(e),r.toLowerCase()])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ya.throwError("user rejected signing",yr.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:t}),e}})}_legacySignMessage(t){return Va(this,void 0,void 0,function*(){const e="string"==typeof t?kn(t):t,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),_r(e)])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ya.throwError("user rejected signing",yr.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:t}),e}})}_signTypedData(t,e,r){return Va(this,void 0,void 0,function*(){const n=yield Mi.resolveNames(t,e,r,t=>this.provider.resolveName(t)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Mi.getPayload(n.domain,e,n.value))])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ya.throwError("user rejected signing",yr.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:e,value:n.value}}),t}})}unlock(t){return Va(this,void 0,void 0,function*(){const e=this.provider,r=yield this.getAddress();return e.send("personal_unlockAccount",[r.toLowerCase(),t,null])})}}class iu extends nu{sendTransaction(t){return this.sendUncheckedTransaction(t).then(t=>({hash:t,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:e=>this.provider.waitForTransaction(t,e)}))}}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 su extends Ja{constructor(t,e){let r=e;null==r&&(r=new Promise((t,e)=>{setTimeout(()=>{this.detectNetwork().then(e=>{t(e)},t=>{e(t)})},0)})),super(r),t||(t=Vr(this.constructor,"defaultUrl")()),Jr(this,"connection",Object.freeze("string"==typeof t?{url:t}:Wr(t))),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 Va(this,void 0,void 0,function*(){yield $a(0);let t=null;try{t=yield this.send("eth_chainId",[])}catch(e){try{t=yield this.send("net_version",[])}catch(t){}}if(null!=t){const e=Vr(this.constructor,"getNetwork");try{return e(qr.from(t).toNumber())}catch(e){return Ya.throwError("could not detect network",yr.errors.NETWORK_ERROR,{chainId:t,event:"invalidNetwork",serverError:e})}}return Ya.throwError("could not detect network",yr.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(t){return new nu(ru,this,t)}getUncheckedSigner(t){return this.getSigner(t).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(t=>t.map(t=>this.formatter.address(t)))}send(t,e){const r={method:t,params:e,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:tn(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(t)>=0;if(n&&this._cache[t])return this._cache[t];const i=ms(this.connection,JSON.stringify(r),tu).then(t=>(this.emit("debug",{action:"response",request:r,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",error:t,request:r,provider:this}),t});return n&&(this._cache[t]=i,setTimeout(()=>{this._cache[t]=null},0)),i}prepareRequest(t,e){switch(t){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[eu(e.address),e.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[eu(e.address),e.blockTag]];case"getCode":return["eth_getCode",[eu(e.address),e.blockTag]];case"getStorageAt":return["eth_getStorageAt",[eu(e.address),Or(e.position,32),e.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[e.signedTransaction]];case"getBlock":return e.blockTag?["eth_getBlockByNumber",[e.blockTag,!!e.includeTransactions]]:e.blockHash?["eth_getBlockByHash",[e.blockHash,!!e.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[e.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[e.transactionHash]];case"call":return["eth_call",[Vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0}),e.blockTag]];case"estimateGas":return["eth_estimateGas",[Vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0})]];case"getLogs":return e.filter&&null!=e.filter.address&&(e.filter.address=eu(e.filter.address)),["eth_getLogs",[e.filter]]}return null}perform(t,e){return Va(this,void 0,void 0,function*(){if("call"===t||"estimateGas"===t){const t=e.transaction;if(t&&null!=t.type&&qr.from(t.type).isZero()&&null==t.maxFeePerGas&&null==t.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((e=Wr(e)).transaction=Wr(t),delete e.transaction.type)}}const r=this.prepareRequest(t,e);null==r&&Ya.throwError(t+" not implemented",yr.errors.NOT_IMPLEMENTED,{operation:t});try{return yield this.send(r[0],r[1])}catch(r){return Za(t,r,e)}})}_startEvent(t){"pending"===t.tag&&this._startPending(),super._startEvent(t)}_startPending(){if(null!=this._pendingFilter)return;const t=this,e=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=e,e.then(function(r){return function n(){t.send("eth_getFilterChanges",[r]).then(function(r){if(t._pendingFilter!=e)return null;let n=Promise.resolve();return r.forEach(function(e){t._emitted["t:"+e.toLowerCase()]="pending",n=n.then(function(){return t.getTransaction(e).then(function(e){return t.emit("pending",e),null})})}),n.then(function(){return $a(1e3)})}).then(function(){if(t._pendingFilter==e)return setTimeout(function(){n()},0),null;t.send("eth_uninstallFilter",[r])}).catch(t=>{})}(),r}).catch(t=>{})}_stopEvent(t){"pending"===t.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(t)}static hexlifyTransaction(t,e){const r=Wr(ou);if(e)for(const t in e)e[t]&&(r[t]=!0);var n,i;i=r,(n=t)&&"object"==typeof n||Kr.throwArgumentError("invalid object","object",n),Object.keys(n).forEach(t=>{i[t]||Kr.throwArgumentError("invalid object key - "+t,"transaction:"+t,n)});const o={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(e){if(null==t[e])return;const r=xr(qr.from(t[e]));"gasLimit"===e&&(e="gas"),o[e]=r}),["from","to","data"].forEach(function(e){null!=t[e]&&(o[e]=_r(t[e]))}),t.accessList&&(o.accessList=ga(t.accessList)),o}}const au=new yr(Es);let uu=1;function lu(t,e){const r="Web3LegacyFetcher";return function(t,n){const i={method:t,params:n,id:uu++,jsonrpc:"2.0"};return new Promise((t,n)=>{this.emit("debug",{action:"request",fetcher:r,request:tn(i),provider:this}),e(i,(e,o)=>{if(e)return this.emit("debug",{action:"response",fetcher:r,error:e,request:i,provider:this}),n(e);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const t=new Error(o.error.message);return t.code=o.error.code,t.data=o.error.data,n(t)}t(o.result)})})}}class hu extends su{constructor(t,e){null==t&&au.throwArgumentError("missing provider","provider",t);let r=null,n=null,i=null;"function"==typeof t?(r="unknown:",n=t):(r=t.host||t.path||"",!r&&t.isMetaMask&&(r="metamask"),i=t,t.request?(""===r&&(r="eip-1193:"),n=function(t){return function(e,r){null==r&&(r=[]);const n={method:e,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:tn(n),provider:this}),t.request(n).then(t=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:t,provider:this}),t})}}(t)):t.sendAsync?n=lu(0,t.sendAsync.bind(t)):t.send?n=lu(0,t.send.bind(t)):au.throwArgumentError("unsupported provider","provider",t),r||(r="unknown:")),super(r,e),Jr(this,"jsonRpcFetchFunc",n),Jr(this,"provider",i)}send(t,e){return this.jsonRpcFetchFunc(t,e)}}function cu(t){return"string"==typeof t?new s.Wallet(t):"request"in t||"send"in t?new hu(t).getSigner():t}function fu(t){fu.enabled&&console.log(`[COW TRADING SDK] ${t}`)}new yr(Es),fu.enabled=!1;const du=1800,pu=50,mu={[_.MAINNET]:200,[_.ARBITRUM_ONE]:50,[_.BASE]:50,[_.GNOSIS_CHAIN]:50,[_.SEPOLIA]:50},yu={[Mt.EIP712]:Ft.EIP712,[Mt.ETHSIGN]:Ft.ETHSIGN},gu=BigInt(15e4),vu=(t,e)=>"bigint"==typeof e||"object"==typeof e&&null!==e&&"_isBigNumber"in e?e.toString():e,bu=s.constants.MaxUint256.toBigInt();class Au{constructor(t={}){this.options=void 0,this.hooksCache=new Map,this.options=t}getCowShedAccount(t,e){return this.getCowShedHooks(t,this.options?.factoryOptions).proxyOf(e)}signCalls({calls:t,signer:e,chainId:r,nonce:n=Au.getNonce(),deadline:i=bu,defaultGasLimit:o,signingScheme:s=c.EIP712}){try{const a=this,u=a.getCowShedHooks(r),l=e||a.options?.signer;if(!l)throw new Error("Signer is required");const h=cu(l);return Promise.resolve(h.getAddress()).then(function(e){const r=u.proxyOf(e);return Promise.resolve(u.signCalls(t,n,i,h,s)).then(function(s){const a=u.encodeExecuteHooksForFactory(t,n,i,e,s),l={to:u.getFactoryAddress(),data:a,value:BigInt(0)};return Promise.resolve(h.estimateGas(l).catch(t=>{const e=`Error estimating gas for the cow-shed call: ${JSON.stringify(l,vu,2)}. Review the factory call`;if(o)return fu(`${e}, using the default gas limit.`),o;throw new Error(`${e}, or provide the defaultGasLimit parameter.`,{cause:t})})).then(function(t){return{cowShedAccount:r,signedMulticall:l,gasLimit:BigInt(t.toString())}})})})}catch(t){return Promise.reject(t)}}getCowShedHooks(t,e){let r=this.hooksCache.get(t);return r||(r=new rr(t,e),this.hooksCache.set(t,r),r)}static getNonce(){return s.utils.formatBytes32String(Date.now().toString())}}const wu="Order";function Eu({from:t,networkCostsAmount:e="0"},r,n){const{sellAmount:i,buyAmount:o,sellToken:s,sellTokenDecimals:a,buyToken:u,buyTokenDecimals:l,kind:h,partiallyFillable:c=!1,slippageBps:f=pu,partnerFee:d,validFor:p}=r,m=r.receiver||t,y=r.validTo||Math.floor(Date.now()/1e3)+(p||du),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:h,feeAmount:e,appData:n,partiallyFillable:c},{afterSlippage:v}=Gt({orderParams:g,slippagePercentBps:f,partnerFeeBps:d?.bps,sellDecimals:a,buyDecimals:l});return{sellToken:s,buyToken:u,sellAmount:v.sellAmount.toString(),buyAmount:v.buyAmount.toString(),validTo:y,kind:h,partiallyFillable:c,appData:n,receiver:m,feeAmount:"0",sellTokenBalance:Ut.ERC20,buyTokenBalance:Nt.ERC20}}const Tu=function(t,e,r,n){try{return Promise.resolve(Xt.generateOrderId(t,{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance,validTo:ct,sellToken:x[t].address},{owner:"staging"===n?ut:at})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:e.sellAmount,fee:e.feeAmount});const n=Tu(t,function(t){const e=BigInt(t.buyAmount);return{...t,buyAmount:(e-BigInt(1)).toString()}}(e),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(t){return Promise.reject(t)}};function Iu(t,e){return{...t,quoteId:e.id,sellAmount:e.quote.sellAmount,buyAmount:e.quote.buyAmount}}function Nu(t){return t.sellToken.toLowerCase()===Z.toLowerCase()}function ku(t){return t+t*BigInt(20)/BigInt(100)}function Mu(t,e){const{costs:{networkFee:r,partnerFee:n}}=t;function i(t){return{sellAmount:e(t.sellAmount),buyAmount:e(t.buyAmount)}}return{...t,costs:{...t.costs,networkFee:{...r,amountInSellCurrency:e(r.amountInSellCurrency),amountInBuyCurrency:e(r.amountInBuyCurrency)},partnerFee:{...n,amount:e(n.amount)}},beforeNetworkCosts:i(t.beforeNetworkCosts),afterNetworkCosts:i(t.afterNetworkCosts),afterPartnerFees:i(t.afterPartnerFees),afterSlippage:i(t.afterSlippage)}}function _u({quoteParameters:t,orderParameters:e}){return{...t,sellToken:e.sellToken}}function Su(t,e){return{...e,sellToken:x[t].address,slippageBps:"number"==typeof e.slippageBps?e.slippageBps:mu[t]}}const Pu=function(t,e,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(t.getAddress()).then(function(i){const a={...r,...Su(n,r)},{quoteId:u}=a,l=function(t,e,r){return oe.connect(("staging"===r?ut:at)[t],e)}(n,t,a.env),h=Eu({from:i,networkCostsAmount:o},a,e);return Promise.resolve(Tu(n,h,s,a.env)).then(function(t){const r={...h,quoteId:u,appData:e,validTo:h.validTo.toString()};return Promise.resolve(l.estimateGas.createOrder(r,{value:h.sellAmount}).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),gu))).then(function(e){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:t,transaction:{data:n,gasLimit:"0x"+ku(e).toString(16),to:l.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(t){return Promise.reject(t)}},Cu=function(t,e,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(Pu(e,o,n,t.context.chainId,i)).then(function({orderId:r,transaction:n}){return fu("Uploading app-data"),Promise.resolve(t.uploadAppData(o,s)).then(function(){return fu("Sending on-chain order transaction"),Promise.resolve(e.sendTransaction(n)).then(function(t){return fu(`On-chain order transaction sent, txHash: ${t.hash}, order: ${r}`),{txHash:t.hash,orderId:r}})})})}catch(t){return Promise.reject(t)}},xu=function(t,e,r,n,i={}){try{let s;function o(i){if(s)return i;function o(i){const o=Eu({from:i,networkCostsAmount:a},n,r.appDataKeccak256);return fu("Signing order..."),Promise.resolve(function(){try{return u===Ft.PRESIGN?Promise.resolve({signature:i,signingScheme:Ft.PRESIGN}):Promise.resolve(Xt.signOrder(o,d,e)).then(function(t){return{signature:t.signature,signingScheme:yu[t.signingScheme]}})}catch(t){return Promise.reject(t)}}()).then(function({signature:e,signingScheme:r}){const n={...o,from:i,signature:e,signingScheme:r,quoteId:l,appData:f,appDataHash:c};return fu("Posting order..."),Promise.resolve(t.sendOrder(n)).then(function(t){return fu(`Order created, id: ${t}`),t})})}const{quoteId:l=null,owner:h}=n,{appDataKeccak256:c,fullAppData:f}=r,d=t.context.chainId;return h?o(h):Promise.resolve(e.getAddress()).then(o)}const{networkCostsAmount:a="0",signingScheme:u=Ft.EIP712}=i,l=function(){if(Nu(n)){const o=n.quoteId;if("number"==typeof o)return Promise.resolve(Cu(t,e,r,{...n,quoteId:o},i)).then(function({orderId:t}){return s=1,t});throw new Error("quoteId is required for EthFlow orders")}}();return Promise.resolve(l&&l.then?l.then(o):o(l))}catch(h){return Promise.reject(h)}},Ou=function(t){try{return Promise.resolve(k(t)).then(function(t){return{fullAppData:t,appDataKeccak256:E(T(t))}})}catch(t){return Promise.reject(t)}},Ru=function({slippageBps:t,appCode:e,orderClass:r,partnerFee:n},i){try{return Promise.resolve(Bu.generateAppDataDoc({appCode:e,metadata:{quote:{slippageBips:t},orderClass:{orderClass:r},partnerFee:n},...i})).then(function(t){return Promise.resolve(Ou(t)).then(function({fullAppData:e,appDataKeccak256:r}){return{doc:t,fullAppData:e,appDataKeccak256:r}})})}catch(t){return Promise.reject(t)}},Bu=new N,Du=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Lu=function(t,e,r){try{function n(n){return Promise.resolve(Uu(t,{chainId:t.chainId,appCode:t.appCode,account:n},e,r)).then(function(t){return{result:{...t.result,signer:i},orderBookApi:t.orderBookApi}})}const i=cu(t.signer),o=t.owner;return Promise.resolve(o?n(o):Promise.resolve(i.getAddress()).then(n))}catch(s){return Promise.reject(s)}},Uu=function(t,e,r,n){try{const{appCode:i,chainId:o,account:s}=e,a=Nu(t),u=a?{...t,...Su(o,t)}:t,{sellToken:l,sellTokenDecimals:h,buyToken:c,buyTokenDecimals:f,amount:d,kind:m,partnerFee:y,validFor:g=du,slippageBps:v=pu,env:b="prod"}=u;fu(`Swap ${d} ${l} for ${c} on chain ${o}`);const A=n||new It({chainId:o,env:b}),w=u.receiver||s,E="sell"===m;return fu("Building app data..."),Promise.resolve(Ru({slippageBps:v,orderClass:"market",appCode:i,partnerFee:y},r?.appData)).then(function(t){const{appDataKeccak256:e,fullAppData:n}=t,i={from:s,sellToken:l,buyToken:c,receiver:w,validFor:g,appData:n,appDataHash:e,priceQuality:Lt.OPTIMAL,signingScheme:Ft.EIP712,...a?Fu:{},...E?{kind:Rt.SELL,sellAmountBeforeFee:d}:{kind:Ot.BUY,buyAmountAfterFee:d},...r?.quoteRequest};return fu("Getting quote..."),Promise.resolve(A.getQuote(i)).then(function(e){const r=Gt({orderParams:e.quote,slippagePercentBps:v,partnerFeeBps:y?.bps,sellDecimals:h,buyDecimals:f}),n=Eu({from:s,networkCostsAmount:e.quote.feeAmount},Iu(u,e),t.appDataKeccak256);return Promise.resolve(function(t,e){try{return Promise.resolve(Xt.getDomain(t)).then(function(t){return{domain:t,primaryType:wu,types:{[wu]:p,EIP712Domain:Du},message:e}})}catch(t){return Promise.reject(t)}}(o,n)).then(function(i){return{result:{tradeParameters:u,amountsAndCosts:r,orderToSign:n,quoteResponse:e,appDataInfo:t,orderTypedData:i},orderBookApi:A}})})})}catch(t){return Promise.reject(t)}},Fu={signingScheme:Ft.EIP1271,onchainOrder:!0,verificationGasLimit:0},qu=function({orderBookApi:t,result:{signer:e,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{return Promise.resolve(xu(t,e,r,Iu(i,n),{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams}))}catch(t){return Promise.reject(t)}},Gu=function(t,e,r){try{return Promise.resolve(Lu(t,e,r)).then(function(t){return qu(t,e)})}catch(t){return Promise.reject(t)}},Hu=function(t,e,r){try{const{appCode:n,chainId:i,sellToken:o,buyToken:s,sellAmount:a,buyAmount:u,partnerFee:l,slippageBps:h=0,env:c="prod"}=t;fu(`Limit order ${a} ${o} for ${u} ${s} on chain ${i}`);const f=cu(t.signer),d=r||new It({chainId:i,env:c});return fu("Building app data..."),Promise.resolve(Ru({slippageBps:h,orderClass:"limit",appCode:n,partnerFee:l},e?.appData)).then(function(r){return xu(d,f,r,t,e?.additionalParams)})}catch(t){return Promise.reject(t)}},zu=function(t,e,r,n){try{const i=le.connect(r,t),o=nt[e],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),gu))).then(function(t){return{data:s,gasLimit:"0x"+ku(t).toString(16),to:o,value:"0"}})}catch(t){return Promise.reject(t)}};class ju{constructor(t,e={enableLogging:!1}){this.traderParams=void 0,this.options=void 0,this.traderParams=t,this.options=e,e.enableLogging&&(fu.enabled=!0)}setTraderParams(t){return this.traderParams={...this.traderParams,...t},this}getQuote(t,e){try{const r=this;return Promise.resolve(Lu(r.mergeParams(t),e,r.options.orderBookApi)).then(function(e){return{quoteResults:e.result,postSwapOrderFromQuote:r=>qu({...e,result:{...e.result,tradeParameters:_u({quoteParameters:e.result.tradeParameters,orderParameters:t})}},r)}})}catch(t){return Promise.reject(t)}}postSwapOrder(t,e){try{const r=this;return Promise.resolve(Gu(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postLimitOrder(t,e){try{const r=this;return Promise.resolve(Hu(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postSellNativeCurrencyOrder(t,e){try{const r=this;return Promise.resolve(Lu(r.mergeParams(t),e,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return Cu(r.orderBookApi,r.result.signer,r.result.appDataInfo,Iu(_u({quoteParameters:n,orderParameters:t}),i),e?.additionalParams)})}catch(t){return Promise.reject(t)}}getPreSignTransaction(t){try{const e=this.mergeParams(t),r=cu(e.signer);return Promise.resolve(zu(r,e.chainId,t.account,t.orderId))}catch(t){return Promise.reject(t)}}mergeParams(t){return{...t,chainId:t.chainId||this.traderParams.chainId,signer:t.signer||this.traderParams.signer,appCode:t.appCode||this.traderParams.appCode}}}export{J as ALL_SUPPORTED_CHAINS,K as ALL_SUPPORTED_CHAINS_MAP,V as ALL_SUPPORTED_CHAIN_IDS,ut as BARN_ETH_FLOW_ADDRESS,ht as BARN_ETH_FLOW_ADDRESSES,Nt as BuyTokenDestination,tt as COMPOSABLE_COW,st as COMPOSABLE_COW_CONTRACT_ADDRESS,ge as CONDITIONAL_ORDER_PARAMS_ABI,nt as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,it as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,et as COW_SHED_FACTORY,rt as COW_SHED_IMPLEMENTATION,qe as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,kt as CompetitionOrderStatus,Re as ConditionalOrder,Ue as ConditionalOrderFactory,M as CowError,Au as CowShedSdk,gt as DEFAULT_BACKOFF_OPTIONS,Xe as DEFAULT_CONDITIONAL_ORDER_REGISTRY,W as DEFAULT_COW_API_CONTEXT,ft as DEFAULT_IPFS_READ_URI,dt as DEFAULT_IPFS_WRITE_URI,vt as DEFAULT_LIMITER_OPTIONS,ve as DEFAULT_TOKEN_FORMATTER,je as DurationType,Y as ENVS_LIST,Z as ETH_ADDRESS,at as ETH_FLOW_ADDRESS,lt as ETH_FLOW_ADDRESSES,$ as EXTENSIBLE_FALLBACK_HANDLER,ot as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,Mt as EcdsaSigningScheme,He as MAX_FREQUENCY,Ge as MAX_UINT32,ct as MAX_VALID_TO_EPOCH,Le as Multiplexer,S as NATIVE_CURRENCY_ADDRESS,wt as ORDER_BOOK_PROD_CONFIG,Et as ORDER_BOOK_STAGING_CONFIG,wu as ORDER_PRIMARY_TYPE,_t as OnchainOrderData,It as OrderBookApi,mt as OrderBookApiError,St as OrderCancellationError,Pt as OrderClass,Ct as OrderKind,xt as OrderPostError,Ot as OrderQuoteSideKindBuy,Rt as OrderQuoteSideKindSell,Xt as OrderSigningUtils,Bt as OrderStatus,$t as PollResultCode,Dt as PriceEstimationError,Lt as PriceQuality,Zt as ProofLocation,Q as RAW_CHAINS_FILES_PATH,Jt as SUBGRAPH_PROD_CONFIG,Vt as SUBGRAPH_STAGING_CONFIG,Ut as SellTokenSource,Ft as SigningScheme,Qe as StartTimeValue,Yt as SubgraphApi,_ as SupportedChainId,P as TOKEN_LIST_IMAGES_PATH,Fe as TWAP_ADDRESS,ju as TradingSdk,Ve as Twap,x as WRAPPED_NATIVE_CURRENCIES,Ru as buildAppData,Tu as calculateUniqueOrderId,we as createSetDomainVerifierTx,Te as decodeParams,Ee as encodeParams,Ne as formatEpoch,_e as fromStructToOrder,Ou as generateAppDataFromDoc,he as getBlockInfo,ce as getDomainVerifier,Pu as getEthFlowTransaction,Se as getIsValidResult,Eu as getOrderToSign,zu as getPreSignTransaction,Uu as getQuote,Gt as getQuoteAmountsAndCosts,Lu as getQuoteWithSigner,Ae as isComposableCow,be as isExtensibleFallbackHandler,Ie as isValidAbi,Mu as mapQuoteAmountsAndCosts,O as nativeCurrencyTemplate,xu as postCoWProtocolTrade,Hu as postLimitOrder,Cu as postSellNativeCurrencyOrder,Gu as postSwapOrder,qu as postSwapOrderFromQuote,pt as request,Iu as swapParamsToLimitOrderParams,Ye as transformDataToStruct,We as transformStructToData};
28
+ `,Pt="https://api.thegraph.com/subgraphs/name/cowprotocol",Ct={[k.MAINNET]:Pt+"/cow",[k.GNOSIS_CHAIN]:Pt+"/cow-gc",[k.ARBITRUM_ONE]:null,[k.BASE]:null,[k.SEPOLIA]:null},xt={[k.MAINNET]:Pt+"/cow-staging",[k.GNOSIS_CHAIN]:Pt+"/cow-gc-staging",[k.ARBITRUM_ONE]:null,[k.BASE]:null,[k.SEPOLIA]:null};class Ot{constructor(t={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...S,...t}}getTotals(t={}){try{return Promise.resolve(this.runQuery(kt,void 0,t)).then(function(t){return t.totals[0]})}catch(t){return Promise.reject(t)}}getLastDaysVolume(t,e={}){try{return Promise.resolve(this.runQuery(_t,{days:t},e))}catch(t){return Promise.reject(t)}}getLastHoursVolume(t,e={}){try{return Promise.resolve(this.runQuery(St,{hours:t},e))}catch(t){return Promise.reject(t)}}runQuery(t,e=undefined,r={}){try{const i=this,{chainId:o,env:s}=i.getContextWithOverride(r),a=i.getEnvConfigs(s)[o];if(null===a)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+o);return Promise.resolve(function(r,i){try{var o=Promise.resolve(n(a,t,e))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(r){throw console.error(`[subgraph:${i.API_NAME}]`,r),new P(`Error running query: ${t}. Variables: ${JSON.stringify(e)}. API: ${a}. Inner Error: ${r}`)}))}catch(t){return Promise.reject(t)}}getContextWithOverride(t={}){return{...this.context,...t}}getEnvConfigs(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?Ct:xt}}const Rt=()=>import("./utils-faedc0ab.js");class Bt{static signOrder(t,e,r){try{return Promise.resolve(Rt()).then(function({signOrder:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellation(t,e,r){try{return Promise.resolve(Rt()).then(function({signOrderCancellation:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellations(t,e,r){try{return Promise.resolve(Rt()).then(function({signOrderCancellations:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomain(t){try{return Promise.resolve(Rt()).then(function({getDomain:e}){return e(t)})}catch(t){return Promise.reject(t)}}static generateOrderId(t,e,r){try{return Promise.resolve(Rt()).then(function({generateOrderId:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomainSeparator(t){try{return Promise.resolve(Rt()).then(function({getDomain:e}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:r}){return r.hashDomain(e(t))})})}catch(t){return Promise.reject(t)}}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"}]}}}var Dt,Lt;!function(t){t[t.PRIVATE=0]="PRIVATE",t[t.EMITTED=1]="EMITTED",t[t.SWARM=2]="SWARM",t[t.WAKU=3]="WAKU",t[t.RESERVED=4]="RESERVED",t[t.IPFS=5]="IPFS"}(Dt||(Dt={})),function(t){t.SUCCESS="SUCCESS",t.UNEXPECTED_ERROR="UNEXPECTED_ERROR",t.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",t.TRY_ON_BLOCK="TRY_ON_BLOCK",t.TRY_AT_EPOCH="TRY_AT_EPOCH",t.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(Lt||(Lt={}));const Ut=[{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"DeadlineElapsed",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"OnlyAdmin",type:"error"},{inputs:[],name:"OnlyAdminOrTrustedExecutorOrSelf",type:"error"},{inputs:[],name:"OnlySelf",type:"error"},{inputs:[],name:"OnlyTrustedExecutor",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"r",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"s",type:"bytes32"},{indexed:!1,internalType:"uint8",name:"v",type:"uint8"}],name:"RSV",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousExecutor",type:"address"},{indexed:!1,internalType:"address",name:"newExecutor",type:"address"}],name:"TrustedExecutorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[{internalType:"address",name:"resolver",type:"address"}],name:"claimWithResolver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",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:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"factory",type:"address"},{internalType:"bool",name:"claimResolver",type:"bool"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"nonce",type:"bytes32"}],name:"nonces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"nonce",type:"bytes32"}],name:"revokeNonce",outputs:[],stateMutability:"nonpayable",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[]"}],name:"trustedExecuteHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"trustedExecutor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"updateImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"updateTrustedExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Ft{static createInterface(){return new i.Interface(Ut)}static connect(t,e){return new o(t,Ut,e)}}Ft.abi=Ut;const qt=[{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 Gt{static createInterface(){return new i.Interface(qt)}static connect(t,e){return new o(t,qt,e)}}Gt.abi=qt;const Ht=[{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 zt{static createInterface(){return new i.Interface(Ht)}static connect(t,e){return new o(t,Ht,e)}}zt.abi=Ht;const jt=[{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 Qt{static createInterface(){return new i.Interface(jt)}static connect(t,e){return new o(t,jt,e)}}Qt.abi=jt;const Kt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class Vt{static createInterface(){return new i.Interface(Kt)}static connect(t,e){return new o(t,Kt,e)}}Vt.abi=Kt;const Jt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class Yt{static createInterface(){return new i.Interface(Jt)}static connect(t,e){return new o(t,Jt,e)}}Yt.abi=Jt;const Wt=function(t){try{return Promise.resolve(t.getBlock("latest")).then(function(t){return{blockNumber:t.number,blockTimestamp:t.timestamp}})}catch(t){return Promise.reject(t)}},Xt=function(t,e,r,n){try{const i=Vt.connect(j[r],n);return Promise.resolve(i.callStatic.domainVerifiers(t,e))}catch(t){return Promise.reject(t)}},Zt=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],$t=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],te=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],ee=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],re=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],ne=["tuple(address handler, bytes32 salt, bytes staticInput)"],ie=(t,e)=>`${e}@${t}`;function oe(t,e){return t===j[e]}function se(t,e){return t===Q[e]}function ae(t,e){return Vt.createInterface().encodeFunctionData("setDomainVerifier",[t,e])}function ue(t){return i.defaultAbiCoder.encode(ne,[t])}function le(t){const{handler:e,salt:r,staticInput:n}=i.defaultAbiCoder.decode(ne,t)[0];return{handler:e,salt:r,staticInput:n}}function he(t,e){try{i.defaultAbiCoder.encode(t,e)}catch(t){return!1}return!0}function ce(t){return new Date(1e3*t).toISOString()}function fe(t){if(Zt.includes(t))return l.ERC20;if($t.includes(t))return l.EXTERNAL;if(te.includes(t))return l.INTERNAL;throw new Error(`Unknown balance type: ${t}`)}function de(t){if(ee.includes(t))return h.SELL;if(re.includes(t))return h.BUY;throw new Error(`Unknown kind: ${t}`)}function pe(t){const{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:h,partiallyFillable:c,appData:f}=t;return{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:c,appData:f,validTo:Number(h),kind:de(u.toString()),sellTokenBalance:fe(s.toString()),buyTokenBalance:fe(o.toString())}}function me(t){return t.isValid}let ye,ge;function ve(){return ye||(ye=zt.createInterface()),ye}function be(t,e){return ge||(ge=zt.connect(Q[t],e)),ge}class Ae{constructor(t){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:e,salt:r=i.keccak256(i.randomBytes(32)),data:n,hasOffChainInput:o=!1}=t;if(!s.utils.isAddress(e))throw new Error(`Invalid handler: ${e}`);if(!s.utils.isHexString(r)||32!==s.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=e,this.salt=r,this.data=n,this.staticInput=this.transformDataToStruct(n),this.hasOffChainInput=o}get context(){}assertIsValid(){const t=this.isValid();if(!me(t))throw new Error(`Invalid order: ${t.reason}`)}get createCalldata(){this.assertIsValid();const t=this.context,e=ve(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(t){const n=t.factoryArgs?i.defaultAbiCoder.encode(t.factoryArgs.argsType,t.factoryArgs.args):"0x";return e.encodeFunctionData("createWithContext",[r,t.address,n,!0])}return e.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),ve().encodeFunctionData("remove",[this.id])}get id(){return i.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:a.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(t){return i.keccak256(ue(t))}get offChainInput(){return"0x"}encodeStaticInputHelper(t,e){return i.defaultAbiCoder.encode(t,[e])}poll(t){try{const e=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=t,s=be(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=e.isValid();return me(i)?Promise.resolve(e.pollValidate(t)).then(function(i){return i||Promise.resolve(e.isAuthorized(t)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,e.leaf,e.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(t,e,r){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(Bt.getDomain(t)).then(function(t){return n(t,r,e)})})}catch(t){return Promise.reject(t)}}(r,n,pe(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(t){return o?t:{result:Lt.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(e.handlePollFailedAlreadyPresent(r,i,t)).then(function(t){return t?(o=1,t):(o=1,{result:Lt.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:Lt.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${e.id} is not authorized for ${n} on chain ${r}`}})}):{result:Lt.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(t){return a(t)}return u&&u.then?u.then(void 0,a):u}(0,function(t){return{result:Lt.UNEXPECTED_ERROR,error:t}}))}catch(t){return Promise.reject(t)}}isAuthorized(t){const{chainId:e,owner:r,provider:n}=t;return be(e,n).callStatic.singleOrders(r,this.id)}cabinet(t){const{chainId:e,owner:r,provider:n}=t;return be(e,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(t,e,r,n){try{const{handler:o,salt:s,staticInput:a}=le(t);if(o!=e)throw new Error("HandlerMismatch");const[u]=i.defaultAbiCoder.decode(r,a);return n(u,s)}catch(t){throw"HandlerMismatch"===t.message?t:new Error("InvalidSerializedConditionalOrder")}}}const we=["address","bytes32","bytes"],Ee=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Te{constructor(t,e,r,n=Dt.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=t,this.location=n,e&&0===Object.keys(e).length)throw new Error("orders must have non-zero length");if(e&&!r||!e&&r)throw new Error("orders cannot have undefined root");for(const t in e)if(e.hasOwnProperty(t)){const r=e[t];if(!Te.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(e&&(this.orders=e,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(t){const{chain:e,orders:r,root:n,location:i}=JSON.parse(t,(t,e)=>{if("orders"===t&&"object"==typeof e&&null!==e){const t={};for(const r in e)if(e.hasOwnProperty(r)){const{orderType:n,...i}=e[r];if(!Te.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);t[r]=new(0,Te.orderTypeRegistry[n])(i)}return t}return"object"==typeof e&&null!==e&&e.hasOwnProperty("type")&&e.hasOwnProperty("hex")&&"BigNumber"===e.type?u.from(e):e}),o=new Te(e,r,n);return o.location=i,o}toJSON(){const t=this.getOrGenerateTree().root;return JSON.stringify({...this,root:t},(t,e)=>{if("tree"!==t){if("object"==typeof e&&null!==e&&"orderType"in e){const t=e;return{...t,orderType:t.orderType}}return e}})}add(t){t.assertIsValid(),this.orders[t.id]=t,this.reset()}remove(t){delete this.orders[t],this.reset()}update(t,e){const r=e(this.orders[t],this.ctx);delete this.orders[t],this.orders[r.id]=r,this.reset()}getById(t){return this.orders[t]}getByIndex(t){return this.orders[this.orderIds[t]]}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(t=>[...Object.values(t.leaf)]),we)),this.tree}static decodeFromJSON(t){return JSON.parse(t)}prepareProofStruct(t,e,r){try{const n=this;void 0===t&&(t=n.location);const o=function(){try{switch(t){case Dt.PRIVATE:return Promise.resolve("0x");case Dt.EMITTED:return Promise.resolve(n.encodeToABI(e));case Dt.SWARM:case Dt.WAKU:case Dt.IPFS:if(!r)throw new Error("Must provide an uploader function");return Promise.resolve(function(t,i){try{var o=Promise.resolve(r(n.encodeToJSON(e)))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(e){throw new Error(`Error uploading to decentralized storage ${t}: ${e}`)}));default:throw new Error("Unsupported location")}}catch(t){return Promise.reject(t)}};return Promise.resolve(o().then(e=>{try{return i.hexlify(i.arrayify(e)),n.location=t,{location:t,data:e}}catch(t){throw new Error("data returned by uploader is invalid")}}).catch(t=>{throw new Error(`Error preparing proof struct: ${t}`)}))}catch(t){return Promise.reject(t)}}static poll(t,e,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(t,e.params,r,e.proof))}const s=be(r,n);return Promise.resolve(i?Promise.resolve(i(t,e.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(t){return this.encodeToJSON(t)}dumpProofsAndParams(t){return this.getProofs(t)}getProofs(t){return[...this.getOrGenerateTree().entries()].map(([e,r])=>t&&t(r)||void 0===t?{idx:e,value:r}:void 0).reduce((t,e)=>{if(e){const r={handler:e.value[0],salt:e.value[1],staticInput:e.value[2]};t.push({proof:this.getOrGenerateTree().getProof(e.idx),params:r})}return t},[])}encodeToABI(t){return i.defaultAbiCoder.encode(Ee,[this.getProofs(t)])}encodeToJSON(t){return JSON.stringify(this.getProofs(t))}reset(){this.tree=void 0}static registerOrderType(t,e){Te.orderTypeRegistry[t]=e}static resetOrderTypeRegistry(){Te.orderTypeRegistry={}}}Te.orderTypeRegistry={};class Ie{constructor(t){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(t).reduce((t,[e,r])=>(t[e.toLowerCase()]=r,t),{})}fromParams(t){const{handler:e}=t,r=this.knownOrderTypes[e.toLocaleLowerCase()];if(r)return r(t)}}const Ne="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Me="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",ke=u.from(2).pow(32).sub(1),_e=u.from(31536e3),Se=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Pe,Ce;!function(t){t.AUTO="AUTO",t.LIMIT_DURATION="LIMIT_DURATION"}(Pe||(Pe={})),function(t){t.AT_MINING_TIME="AT_MINING_TIME",t.AT_EPOCH="AT_EPOCH"}(Ce||(Ce={}));const xe={startType:Ce.AT_MINING_TIME},Oe={durationType:Pe.AUTO};class Re extends Ae{constructor(t){const{handler:e,salt:r,data:n,hasOffChainInput:i}=t;if(e!==Ne)throw new Error(`InvalidHandler: Expected: ${Ne}, provided: ${e}`);super({handler:Ne,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(t,e){return new Re({handler:Ne,data:t,salt:e})}static fromParams(t){return Re.deserialize(ue(t))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Me,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const t=(()=>{const{sellToken:t,sellAmount:e,buyToken:r,buyAmount:n,startTime:i=xe,numberOfParts:o,timeBetweenParts:s,durationOfPart:u=Oe}=this.data;if(t==r)return"InvalidSameToken";if(t==a.AddressZero||r==a.AddressZero)return"InvalidToken";if(!e.gt(a.Zero))return"InvalidSellAmount";if(!n.gt(a.Zero))return"InvalidMinBuyAmount";if(i.startType===Ce.AT_EPOCH){const t=i.epoch;if(!t.gte(a.Zero)||!t.lt(ke))return"InvalidStartTime"}return o.gt(a.One)&&o.lte(ke)?s.gt(a.Zero)&&s.lte(_e)?u.durationType!==Pe.LIMIT_DURATION||u.duration.lte(s)?he(Se,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return t?{isValid:!1,reason:t}:{isValid:!0}}startTimestamp(t){try{const e=this,{startTime:r}=e.data;return r?.startType===Ce.AT_EPOCH?Promise.resolve(r.epoch.toNumber()):Promise.resolve(e.cabinet(t)).then(function(t){const e=i.defaultAbiCoder.decode(["uint256"],t)[0];if(e.gt(ke))throw new Error(`Cabinet epoch out of range: ${e.toString()}`);const r=e.toNumber();if(0===r)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return r})}catch(t){return Promise.reject(t)}}endTimestamp(t){const{numberOfParts:e,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===Pe.LIMIT_DURATION?t+e.sub(1).mul(r).add(n.duration).toNumber():t+e.mul(r).toNumber()}pollValidate(t){try{const e=this;return Promise.resolve(Wt(t.provider)).then(function(r){const{blockInfo:n=r}=t,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(e.startTimestamp(t)).then(function(t){if(t>i)return{result:Lt.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${ce(t)})`};const r=e.endTimestamp(t);return i>=r?{result:Lt.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${ce(r)})`}:void 0})}catch(t){return n(t)}return o&&o.then?o.then(void 0,n):o}(0,function(t){return t?.message?.includes("Cabinet is not set")?{result:Lt.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:Lt.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:Lt.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(t){return Promise.reject(t)}}handlePollFailedAlreadyPresent(t,e,r){try{const t=this;return Promise.resolve(Wt(r.provider)).then(function(e){const{blockInfo:n=e}=r,{blockTimestamp:i}=n,o=t.data.timeBetweenParts.toNumber(),{numberOfParts:s}=t.data;return Promise.resolve(t.startTimestamp(r)).then(function(t){if(i<t)return{result:Lt.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${t} (${ce(t)})`,error:void 0};const e=s.mul(o).add(t).toNumber();if(i>=e)return{result:Lt.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${e} (${ce(e)})`,error:void 0};const r=Math.floor((i-t)/o);if(r===s.toNumber()-1)return{result:Lt.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=t+(r+1)*o;return{result:Lt.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${ce(n)})`}})})}catch(t){return Promise.reject(t)}}serialize(){return ue(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Se,this.staticInput)}static deserialize(t){return super.deserializeHelper(t,Ne,Se,(t,e)=>new Re({handler:Ne,salt:e,data:De(t)}))}toString(){const{sellAmount:t,sellToken:e,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=xe,timeBetweenParts:s,durationOfPart:a=Oe,receiver:u,appData:l}=this.data,h=o.startType===Ce.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),c=a.durationType===Pe.AUTO?"AUTO":a.duration.toNumber(),f={sellAmount:t.toString(),sellToken:e,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:h,timeBetweenParts:s.toNumber(),durationOfPart:c,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(f)}`}transformDataToStruct(t){return Be(t)}transformStructToData(t){return De(t)}}function Be(t){const{sellAmount:e,buyAmount:r,numberOfParts:n,startTime:i=xe,timeBetweenParts:o,durationOfPart:s=Oe,...u}=t,{partSellAmount:l,minPartLimit:h}=n&&!n.isZero()?{partSellAmount:e.div(n),minPartLimit:r.div(n)}:{partSellAmount:a.Zero,minPartLimit:a.Zero};return{partSellAmount:l,minPartLimit:h,t0:i.startType===Ce.AT_MINING_TIME?a.Zero:i.epoch,n:n,t:o,span:s.durationType===Pe.AUTO?a.Zero:s.duration,...u}}function De(t){const{n:e,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:h}=t,c=s.isZero()?{durationType:Pe.AUTO}:{durationType:Pe.LIMIT_DURATION,duration:s},f=s.isZero()?{startType:Ce.AT_MINING_TIME}:{startType:Ce.AT_EPOCH,epoch:o};return{sellAmount:r.mul(e),buyAmount:n.mul(e),startTime:f,numberOfParts:e,timeBetweenParts:i,durationOfPart:c,sellToken:a,buyToken:u,receiver:l,appData:h}}const Le={[Ne]:t=>Re.fromParams(t)},Ue={EIP712Domain:[{type:"string",name:"name"},{type:"string",name:"version"},{type:"uint256",name:"chainId"},{type:"address",name:"verifyingContract"}]},Fe={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"}]};let qe,Ge;function He(){return qe||(qe=Ft.createInterface()),qe}function ze(){return Ge||(Ge=Gt.createInterface()),Ge}const je="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033";function Qe(t,e,r){if(!t.s){if(r instanceof Ke){if(!r.s)return void(r.o=Qe.bind(null,t,e));1&e&&(e=r.s),r=r.v}if(r&&r.then)return void r.then(Qe.bind(null,t,e),Qe.bind(null,t,2));t.s=e,t.v=r;const n=t.o;n&&n(t)}}const Ke=/*#__PURE__*/function(){function t(){}return t.prototype.then=function(e,r){const n=new t,i=this.s;if(i){const t=1&i?e:r;if(t){try{Qe(n,1,t(this.v))}catch(t){Qe(n,2,t)}return n}return this}return this.o=function(t){try{const i=t.v;1&t.s?Qe(n,1,e?e(i):i):r?Qe(n,1,r(i)):Qe(n,2,i)}catch(t){Qe(n,2,t)}},n},t}();class Ve{constructor(t,e){this.chainId=void 0,this.customOptions=void 0,this.chainId=t,this.customOptions=e}proxyOf(t){const e=y.encode(["address"],[t]),r=g(["bytes","bytes"],[this.proxyCreationCode(),y.encode(["address","address"],[this.getImplementationAddress(),t])]);return v(this.getFactoryAddress(),e,r)}encodeExecuteHooksForFactory(t,e,r,n,i){return ze().encodeFunctionData("executeHooks",[t,e,r,n,i])}signCalls(t,e,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:h}=o.infoToSign(t,e,r,a);return Promise.resolve(function(t,e,r,n,i){try{let o,s;function a(t){return o?t:b(A(u))}let u=null;const l=function(t,e){var r,n=-1;t:{for(var i=0;i<e.length;i++){var o=e[i][0];if(o){var s=o();if(s&&s.then)break t;if(s===t){n=i;break}}else n=i}if(-1!==n){do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then){r=!0;break t}var l=e[n][2];n++}while(l&&!l());return u}}const h=new Ke,c=Qe.bind(null,h,2);return(r?u.then(f):s.then(function r(s){for(;;){if(s===t){n=i;break}if(++i===e.length){if(-1!==n)break;return void Qe(h,1,u)}if(o=e[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,c)}else n=i}do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then)return void u.then(f).then(void 0,c);var l=e[n][2];n++}while(l&&!l());Qe(h,1,u)})).then(void 0,c),h;function f(t){for(;;){var r=e[n][2];if(!r||r())break;n++;for(var i=e[n][1];!i;)n++,i=e[n][1];if((t=i())&&t.then)return void t.then(f).then(void 0,c)}Qe(h,1,t)}}(t,[[function(){return c.EIP712},function(){if(!f(e))throw new Error("signer does not support signing typed data");return Promise.resolve(e._signTypedData(r,n,i)).then(function(t){u=t,s=1})}],[function(){return c.ETHSIGN},function(){return Promise.resolve(e.signMessage(w(d(r,n,i)))).then(function(t){u=t,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(h){return Promise.reject(h)}}(i,n,u,l,h))})}catch(t){return Promise.reject(t)}}infoToSign(t,e,r,n){const i={calls:t,nonce:e,deadline:r};return{domain:this.getDomain(n),types:Fe,message:i}}getDomain(t){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:t}}proxyCreationCode(){var t;return null!==(t=this.customOptions?.proxyCreationCode)&&void 0!==t?t:je}getFactoryAddress(){var t;return null!==(t=this.customOptions?.factoryAddress)&&void 0!==t?t:L}getImplementationAddress(){var t;return null!==(t=this.customOptions?.implementationAddress)&&void 0!==t?t:U}}const Je="Order";function Ye(t){Ye.enabled&&console.log(`[COW TRADING SDK] ${t}`)}Ye.enabled=!1;const We=1800,Xe=50,Ze={[ct.EIP712]:Tt.EIP712,[ct.ETHSIGN]:Tt.ETHSIGN},$e=BigInt(15e4);function tr({from:t,networkCostsAmount:e="0"},r,n){const{sellAmount:i,buyAmount:o,sellToken:s,sellTokenDecimals:a,buyToken:u,buyTokenDecimals:l,kind:h,partiallyFillable:c=!1,slippageBps:f=Xe,partnerFee:d,validFor:p}=r,m=r.receiver||t,y=r.validTo||Math.floor(Date.now()/1e3)+(p||We),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:h,feeAmount:e,appData:n,partiallyFillable:c},{afterSlippage:v}=Nt({orderParams:g,slippagePercentBps:f,partnerFeeBps:d?.bps,sellDecimals:a,buyDecimals:l});return{sellToken:s,buyToken:u,sellAmount:v.sellAmount.toString(),buyAmount:v.buyAmount.toString(),validTo:y,kind:h,partiallyFillable:c,appData:n,receiver:m,feeAmount:"0",sellTokenBalance:Et.ERC20,buyTokenBalance:lt.ERC20}}const er=function(t,e,r,n){try{return Promise.resolve(Bt.generateOrderId(t,{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance,validTo:X,sellToken:K[t]},{owner:("staging"===n?W:Y)[t]})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:e.sellAmount,fee:e.feeAmount});const n=er(t,function(t){const e=BigInt(t.buyAmount);return{...t,buyAmount:(e-BigInt(1)).toString()}}(e),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(t){return Promise.reject(t)}};var rr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function nr(t){var e={exports:{}};return t(e,e.exports),e.exports}var ir={__proto__:null,default:{}},or=nr(function(t){!function(t,e){function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function i(t,e,r){if(i.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=i:e.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:ir.Buffer}catch(t){}function s(t,e){var n=t.charCodeAt(e);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+t)}function a(t,e,r){var n=s(t,r);return r-1>=e&&(n|=s(t,r-1)<<4),n}function u(t,e,n,i){for(var o=0,s=0,a=Math.min(t.length,n),u=e;u<a;u++){var l=t.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(i.isBN=function(t){return t instanceof i||null!==t&&"object"==typeof t&&t.constructor.wordSize===i.wordSize&&Array.isArray(t.words)},i.max=function(t,e){return t.cmp(e)>0?t:e},i.min=function(t,e){return t.cmp(e)<0?t:e},i.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,n):(this._parseBase(t,e,i),"le"===n&&this._initArray(this.toArray(),e,n)))},i.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=t.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=t[i]|t[i-1]<<8|t[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<t.length;i+=3)this.words[o]|=(s=t[i]|t[i+1]<<8|t[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=a(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=a(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,h=r;h<a;h+=n)l=u(t,h,h+n,e),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var c=1;for(l=u(t,h,t.length,e),h=0;h<s;h++)c*=e;this.imuln(c),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},i.prototype._move=function(t){l(t,this)},i.prototype.clone=function(){var t=new i(null);return this.copy(t),t},i.prototype._expand=function(t){for(;this.length<t;)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")]=h}catch(t){i.prototype.inspect=h}else i.prototype.inspect=h;function h(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[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],d=[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 p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,h=67108863&a,c=Math.min(u,e.length-1),f=Math.max(0,u-t.length+1);f<=c;f++)l+=(s=(i=0|t.words[u-f|0])*(o=0|e.words[f])+h)/67108864|0,h=67108863&s;r.words[u]=0|h,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==o||s!==this.length-1?c[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=f[t],h=d[t];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modrn(h).toString(t);n=(p=p.idivn(h)).isZero()?m+n:c[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(t,e){return this.toArrayLike(o,t,e)}),i.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},i.prototype.toArrayLike=function(t,e,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r++]=255&s,r<t.length&&(t[r++]=s>>8&255),r<t.length&&(t[r++]=s>>16&255),6===o?(r<t.length&&(t[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<t.length)for(t[r++]=n;r<t.length;)t[r++]=0},i.prototype._toArrayLikeBE=function(t,e){for(var r=t.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r--]=255&s,r>=0&&(t[r--]=s>>8&255),r>=0&&(t[r--]=s>>16&255),6===o?(r>=0&&(t[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},i.prototype._countBits=Math.clz32?function(t){return 32-Math.clz32(t)}:function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},i.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},i.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},i.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).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(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},i.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},i.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},i.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},i.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this._strip()},i.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},i.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},i.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},i.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},i.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},i.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},i.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},i.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(t){return this.clone().inotn(t)},i.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+(0|n.words[o])+i),i=e>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+i),i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},i.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(t){return this.clone().isub(t)};var m=function(t,e,r){var n,i,o,s=t.words,a=e.words,u=r.words,l=0,h=0|s[0],c=8191&h,f=h>>>13,d=0|s[1],p=8191&d,m=d>>>13,y=0|s[2],g=8191&y,v=y>>>13,b=0|s[3],A=8191&b,w=b>>>13,E=0|s[4],T=8191&E,I=E>>>13,N=0|s[5],M=8191&N,k=N>>>13,_=0|s[6],S=8191&_,P=_>>>13,C=0|s[7],x=8191&C,O=C>>>13,R=0|s[8],B=8191&R,D=R>>>13,L=0|s[9],U=8191&L,F=L>>>13,q=0|a[0],G=8191&q,H=q>>>13,z=0|a[1],j=8191&z,Q=z>>>13,K=0|a[2],V=8191&K,J=K>>>13,Y=0|a[3],W=8191&Y,X=Y>>>13,Z=0|a[4],$=8191&Z,tt=Z>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,lt=at>>>13,ht=0|a[8],ct=8191&ht,ft=ht>>>13,dt=0|a[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(l+(n=Math.imul(c,G))|0)+((8191&(i=(i=Math.imul(c,H))+Math.imul(f,G)|0))<<13)|0;l=((o=Math.imul(f,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,G),i=(i=Math.imul(p,H))+Math.imul(m,G)|0,o=Math.imul(m,H);var gt=(l+(n=n+Math.imul(c,j)|0)|0)+((8191&(i=(i=i+Math.imul(c,Q)|0)+Math.imul(f,j)|0))<<13)|0;l=((o=o+Math.imul(f,Q)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(g,G),i=(i=Math.imul(g,H))+Math.imul(v,G)|0,o=Math.imul(v,H),n=n+Math.imul(p,j)|0,i=(i=i+Math.imul(p,Q)|0)+Math.imul(m,j)|0,o=o+Math.imul(m,Q)|0;var vt=(l+(n=n+Math.imul(c,V)|0)|0)+((8191&(i=(i=i+Math.imul(c,J)|0)+Math.imul(f,V)|0))<<13)|0;l=((o=o+Math.imul(f,J)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(A,G),i=(i=Math.imul(A,H))+Math.imul(w,G)|0,o=Math.imul(w,H),n=n+Math.imul(g,j)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(v,j)|0,o=o+Math.imul(v,Q)|0,n=n+Math.imul(p,V)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,J)|0;var bt=(l+(n=n+Math.imul(c,W)|0)|0)+((8191&(i=(i=i+Math.imul(c,X)|0)+Math.imul(f,W)|0))<<13)|0;l=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(T,G),i=(i=Math.imul(T,H))+Math.imul(I,G)|0,o=Math.imul(I,H),n=n+Math.imul(A,j)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(w,j)|0,o=o+Math.imul(w,Q)|0,n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(v,V)|0,o=o+Math.imul(v,J)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,X)|0;var At=(l+(n=n+Math.imul(c,$)|0)|0)+((8191&(i=(i=i+Math.imul(c,tt)|0)+Math.imul(f,$)|0))<<13)|0;l=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(M,G),i=(i=Math.imul(M,H))+Math.imul(k,G)|0,o=Math.imul(k,H),n=n+Math.imul(T,j)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(I,j)|0,o=o+Math.imul(I,Q)|0,n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,X)|0,n=n+Math.imul(p,$)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(l+(n=n+Math.imul(c,rt)|0)|0)+((8191&(i=(i=i+Math.imul(c,nt)|0)+Math.imul(f,rt)|0))<<13)|0;l=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(S,G),i=(i=Math.imul(S,H))+Math.imul(P,G)|0,o=Math.imul(P,H),n=n+Math.imul(M,j)|0,i=(i=i+Math.imul(M,Q)|0)+Math.imul(k,j)|0,o=o+Math.imul(k,Q)|0,n=n+Math.imul(T,V)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(I,V)|0,o=o+Math.imul(I,J)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var Et=(l+(n=n+Math.imul(c,ot)|0)|0)+((8191&(i=(i=i+Math.imul(c,st)|0)+Math.imul(f,ot)|0))<<13)|0;l=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,H))+Math.imul(O,G)|0,o=Math.imul(O,H),n=n+Math.imul(S,j)|0,i=(i=i+Math.imul(S,Q)|0)+Math.imul(P,j)|0,o=o+Math.imul(P,Q)|0,n=n+Math.imul(M,V)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(k,V)|0,o=o+Math.imul(k,J)|0,n=n+Math.imul(T,W)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(I,W)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0;var Tt=(l+(n=n+Math.imul(c,ut)|0)|0)+((8191&(i=(i=i+Math.imul(c,lt)|0)+Math.imul(f,ut)|0))<<13)|0;l=((o=o+Math.imul(f,lt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(B,G),i=(i=Math.imul(B,H))+Math.imul(D,G)|0,o=Math.imul(D,H),n=n+Math.imul(x,j)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(O,j)|0,o=o+Math.imul(O,Q)|0,n=n+Math.imul(S,V)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,J)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(k,W)|0,o=o+Math.imul(k,X)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,st)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,lt)|0;var It=(l+(n=n+Math.imul(c,ct)|0)|0)+((8191&(i=(i=i+Math.imul(c,ft)|0)+Math.imul(f,ct)|0))<<13)|0;l=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(U,G),i=(i=Math.imul(U,H))+Math.imul(F,G)|0,o=Math.imul(F,H),n=n+Math.imul(B,j)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,j)|0,o=o+Math.imul(D,Q)|0,n=n+Math.imul(x,V)|0,i=(i=i+Math.imul(x,J)|0)+Math.imul(O,V)|0,o=o+Math.imul(O,J)|0,n=n+Math.imul(S,W)|0,i=(i=i+Math.imul(S,X)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(k,$)|0,o=o+Math.imul(k,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(g,ut)|0,i=(i=i+Math.imul(g,lt)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,lt)|0,n=n+Math.imul(p,ct)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(m,ct)|0,o=o+Math.imul(m,ft)|0;var Nt=(l+(n=n+Math.imul(c,pt)|0)|0)+((8191&(i=(i=i+Math.imul(c,mt)|0)+Math.imul(f,pt)|0))<<13)|0;l=((o=o+Math.imul(f,mt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(U,j),i=(i=Math.imul(U,Q))+Math.imul(F,j)|0,o=Math.imul(F,Q),n=n+Math.imul(B,V)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(O,W)|0,o=o+Math.imul(O,X)|0,n=n+Math.imul(S,$)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(k,rt)|0,o=o+Math.imul(k,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,lt)|0)+Math.imul(w,ut)|0,o=o+Math.imul(w,lt)|0,n=n+Math.imul(g,ct)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(v,ct)|0,o=o+Math.imul(v,ft)|0;var Mt=(l+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;l=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(U,V),i=(i=Math.imul(U,J))+Math.imul(F,V)|0,o=Math.imul(F,J),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(x,$)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(S,rt)|0,i=(i=i+Math.imul(S,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,st)|0)+Math.imul(k,ot)|0,o=o+Math.imul(k,st)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,lt)|0)+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,n=n+Math.imul(A,ct)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(w,ct)|0,o=o+Math.imul(w,ft)|0;var kt=(l+(n=n+Math.imul(g,pt)|0)|0)+((8191&(i=(i=i+Math.imul(g,mt)|0)+Math.imul(v,pt)|0))<<13)|0;l=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(U,W),i=(i=Math.imul(U,X))+Math.imul(F,W)|0,o=Math.imul(F,X),n=n+Math.imul(B,$)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(S,ot)|0,i=(i=i+Math.imul(S,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,lt)|0)+Math.imul(k,ut)|0,o=o+Math.imul(k,lt)|0,n=n+Math.imul(T,ct)|0,i=(i=i+Math.imul(T,ft)|0)+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0;var _t=(l+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,mt)|0)+Math.imul(w,pt)|0))<<13)|0;l=((o=o+Math.imul(w,mt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(U,$),i=(i=Math.imul(U,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(S,ut)|0,i=(i=i+Math.imul(S,lt)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,n=n+Math.imul(M,ct)|0,i=(i=i+Math.imul(M,ft)|0)+Math.imul(k,ct)|0,o=o+Math.imul(k,ft)|0;var St=(l+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(I,pt)|0))<<13)|0;l=((o=o+Math.imul(I,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(U,rt),i=(i=Math.imul(U,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,st)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,st)|0,n=n+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,lt)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,lt)|0,n=n+Math.imul(S,ct)|0,i=(i=i+Math.imul(S,ft)|0)+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0;var Pt=(l+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,mt)|0)+Math.imul(k,pt)|0))<<13)|0;l=((o=o+Math.imul(k,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(U,ot),i=(i=Math.imul(U,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,lt)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,lt)|0,n=n+Math.imul(x,ct)|0,i=(i=i+Math.imul(x,ft)|0)+Math.imul(O,ct)|0,o=o+Math.imul(O,ft)|0;var Ct=(l+(n=n+Math.imul(S,pt)|0)|0)+((8191&(i=(i=i+Math.imul(S,mt)|0)+Math.imul(P,pt)|0))<<13)|0;l=((o=o+Math.imul(P,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(U,ut),i=(i=Math.imul(U,lt))+Math.imul(F,ut)|0,o=Math.imul(F,lt),n=n+Math.imul(B,ct)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(D,ct)|0,o=o+Math.imul(D,ft)|0;var xt=(l+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,mt)|0)+Math.imul(O,pt)|0))<<13)|0;l=((o=o+Math.imul(O,mt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(U,ct),i=(i=Math.imul(U,ft))+Math.imul(F,ct)|0,o=Math.imul(F,ft);var Ot=(l+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,mt)|0)+Math.imul(D,pt)|0))<<13)|0;l=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var Rt=(l+(n=Math.imul(U,pt))|0)+((8191&(i=(i=Math.imul(U,mt))+Math.imul(F,pt)|0))<<13)|0;return l=((o=Math.imul(F,mt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=yt,u[1]=gt,u[2]=vt,u[3]=bt,u[4]=At,u[5]=wt,u[6]=Et,u[7]=Tt,u[8]=It,u[9]=Nt,u[10]=Mt,u[11]=kt,u[12]=_t,u[13]=St,u[14]=Pt,u[15]=Ct,u[16]=xt,u[17]=Ot,u[18]=Rt,0!==l&&(u[19]=l,r.length++),r};function y(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,e.length-1),l=Math.max(0,o-t.length+1);l<=u;l++){var h=(0|t.words[o-l])*(0|e.words[l]),c=67108863&h;a=67108863&(c=c+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(c>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(t,e,r){return y(t,e,r)}Math.imul||(m=p),i.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?m(this,t,e):r<63?p(this,t,e):r<1024?y(this,t,e):g(this,t,e)},i.prototype.mul=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},i.prototype.mulf=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),g(this,t,e)},i.prototype.imul=function(t){return this.clone().mulTo(t,this)},i.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r("number"==typeof t),r(t<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*t,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),e?this.ineg():this},i.prototype.muln=function(t){return this.clone().imuln(t)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++)e[r]=t.words[r/26|0]>>>r%26&1;return e}(t);if(0===e.length)return new i(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var o=r.sqr();n<e.length;n++,o=o.sqr())0!==e[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o;this.words[e]=(0|this.words[e])-a<<n|s,s=a>>>26-n}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},i.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var h=0;for(l=this.length-1;l>=0&&(0!==h||l>=i);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&a}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},i.prototype.shln=function(t){return this.clone().ishln(t)},i.prototype.ushln=function(t){return this.clone().iushln(t)},i.prototype.shrn=function(t){return this.clone().ishrn(t)},i.prototype.ushrn=function(t){return this.clone().iushrn(t)},i.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return!(this.length<=n||!(this.words[n]&1<<e))},i.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==e&&n++,this.length=Math.min(n,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<<e),this._strip())},i.prototype.maskn=function(t){return this.clone().imaskn(t)},i.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},i.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},i.prototype.addn=function(t){return this.clone().iaddn(t)},i.prototype.subn=function(t){return this.clone().isubn(t)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(t,e,n){var i,o;this._expand(t.length+n);var s=0;for(i=0;i<t.length;i++){o=(0|this.words[i+n])+s;var a=(0|t.words[i])*e;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(t,e){var r,n=this.clone(),o=t,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==e){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var h=n.clone()._ishlnsubmul(o,1,u);0===h.negative&&(n=h,a&&(a.words[u]=1));for(var c=u-1;c>=0;c--){var f=67108864*(0|n.words[o.length+c])+(0|n.words[o.length+c-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(o,f,c);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,c),n.isZero()||(n.negative^=1);a&&(a.words[c]=f)}return a&&a._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(o=a.div.neg()),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(t)),{div:o,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new i(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new i(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new i(this.modrn(t.words[0]))}:this._wordDiv(t,e);var o,s,a},i.prototype.div=function(t){return this.divmod(t,"div",!1).div},i.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},i.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},i.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%t;return e?-i:i},i.prototype.modn=function(t){return this.modrn(t)},i.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/t|0,n=o%t}return this._strip(),e?this.ineg():this},i.prototype.divn=function(t){return this.clone().idivn(t)},i.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++l;for(var h=n.clone(),c=e.clone();!e.isZero();){for(var f=0,d=1;0==(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(h),s.isub(c)),o.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(h),u.isub(c)),a.iushrn(1),u.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(a),s.isub(u)):(n.isub(e),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,h=1;0==(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(e.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var c=0,f=1;0==(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(n.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),s.isub(a)):(n.isub(e),a.isub(s))}return(o=0===e.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(t),o},i.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},i.prototype.invm=function(t){return this.egcd(t).a.umod(t)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(t){return this.words[0]&t},i.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},i.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},i.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},i.prototype.gtn=function(t){return 1===this.cmpn(t)},i.prototype.gt=function(t){return 1===this.cmp(t)},i.prototype.gten=function(t){return this.cmpn(t)>=0},i.prototype.gte=function(t){return this.cmp(t)>=0},i.prototype.ltn=function(t){return-1===this.cmpn(t)},i.prototype.lt=function(t){return-1===this.cmp(t)},i.prototype.lten=function(t){return this.cmpn(t)<=0},i.prototype.lte=function(t){return this.cmp(t)<=0},i.prototype.eqn=function(t){return 0===this.cmpn(t)},i.prototype.eq=function(t){return 0===this.cmp(t)},i.red=function(t){return new I(t)},i.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(t){return this.red=t,this},i.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},i.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},i.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},i.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},i.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},i.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},i.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},i.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function T(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(t){if("string"==typeof t){var e=i._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function N(t){I.call(this,t),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)}b.prototype._tmp=function(){var t=new i(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},n(A,b),A.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}t.words[i-10]=o>>>=22,t.length-=0===o&&t.length>10?10:9},A.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];t.words[r]=67108863&(e+=977*n),e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(w,b),n(E,b),n(T,b),T.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},i._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new A;else if("p224"===t)e=new w;else if("p192"===t)e=new E;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new T}return v[t]=e,e},I.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},I.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},I.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(l(t,t.umod(this.m)._forceRed(this)),t)},I.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},I.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},I.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},I.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},I.prototype.isqr=function(t){return this.imul(t,t.clone())},I.prototype.sqr=function(t){return this.mul(t,t)},I.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new i(1)).iushrn(2);return this.pow(t,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new i(2*h*h).toRed(this);0!==this.pow(h,l).cmp(u);)h.redIAdd(u);for(var c=this.pow(h,o),f=this.pow(t,o.addn(1).iushrn(1)),d=this.pow(t,o),p=s;0!==d.cmp(a);){for(var m=d,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<p);var g=this.pow(c,new i(1).iushln(p-y-1));f=f.redMul(g),c=g.redSqr(),d=d.redMul(c),p=y}return f},I.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},I.prototype.pow=function(t,e){if(e.isZero())return new i(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var o=r[0],s=0,a=0,u=e.bitLength()%26;for(0===u&&(u=26),n=e.length-1;n>=0;n--){for(var l=e.words[n],h=u-1;h>=0;h--){var c=l>>h&1;o!==r[0]&&(o=this.sqr(o)),0!==c||0!==s?(s<<=1,s|=c,(4==++a||0===n&&0===h)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},I.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},I.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},i.mont=function(t){return new N(t)},n(N,I),N.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},N.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},N.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},N.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new i(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},N.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,rr)});let sr=!1,ar=!1;const ur={debug:1,default:2,info:2,warning:3,error:4,off:5};let lr=ur.default,hr=null;const cr=function(){try{const t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(e=>{try{if("test"!=="test".normalize(e))throw new Error("bad normalize")}catch(r){t.push(e)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(t){return t.message}return null}();var fr,dr;!function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"}(fr||(fr={})),function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"}(dr||(dr={}));const pr="0123456789abcdef";class mr{constructor(t){Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}_log(t,e){const r=t.toLowerCase();null==ur[r]&&this.throwArgumentError("invalid log level name","logLevel",t),lr>ur[r]||console.log.apply(console,e)}debug(...t){this._log(mr.levels.DEBUG,t)}info(...t){this._log(mr.levels.INFO,t)}warn(...t){this._log(mr.levels.WARNING,t)}makeError(t,e,r){if(ar)return this.makeError("censored error",e,{});e||(e=mr.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(t=>{const e=r[t];try{if(e instanceof Uint8Array){let r="";for(let t=0;t<e.length;t++)r+=pr[e[t]>>4],r+=pr[15&e[t]];n.push(t+"=Uint8Array(0x"+r+")")}else n.push(t+"="+JSON.stringify(e))}catch(e){n.push(t+"="+JSON.stringify(r[t].toString()))}}),n.push(`code=${e}`),n.push(`version=${this.version}`);const i=t;let o="";switch(e){case dr.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case dr.CALL_EXCEPTION:case dr.INSUFFICIENT_FUNDS:case dr.MISSING_NEW:case dr.NONCE_EXPIRED:case dr.REPLACEMENT_UNDERPRICED:case dr.TRANSACTION_REPLACED:case dr.UNPREDICTABLE_GAS_LIMIT:o=e}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(t+=" ("+n.join(", ")+")");const s=new Error(t);return s.reason=i,s.code=e,Object.keys(r).forEach(function(t){s[t]=r[t]}),s}throwError(t,e,r){throw this.makeError(t,e,r)}throwArgumentError(t,e,r){return this.throwError(t,mr.errors.INVALID_ARGUMENT,{argument:e,value:r})}assert(t,e,r,n){t||this.throwError(e,r,n)}assertArgument(t,e,r,n){t||this.throwArgumentError(e,r,n)}checkNormalize(t){cr&&this.throwError("platform missing String.prototype.normalize",mr.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:cr})}checkSafeUint53(t,e){"number"==typeof t&&(null==e&&(e="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(e,mr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(e,mr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,e,r){r=r?": "+r:"",t<e&&this.throwError("missing argument"+r,mr.errors.MISSING_ARGUMENT,{count:t,expectedCount:e}),t>e&&this.throwError("too many arguments"+r,mr.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:e})}checkNew(t,e){t!==Object&&null!=t||this.throwError("missing new",mr.errors.MISSING_NEW,{name:e.name})}checkAbstract(t,e){t===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",mr.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",mr.errors.MISSING_NEW,{name:e.name})}static globalLogger(){return hr||(hr=new mr("logger/5.7.0")),hr}static setCensorship(t,e){if(!t&&e&&this.globalLogger().throwError("cannot permanently disable censorship",mr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),sr){if(!t)return;this.globalLogger().throwError("error censorship permanent",mr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}ar=!!t,sr=!!e}static setLogLevel(t){const e=ur[t.toLowerCase()];null!=e?lr=e:mr.globalLogger().warn("invalid log level - "+t)}static from(t){return new mr(t)}}mr.errors=dr,mr.levels=fr;const yr=new mr("bytes/5.7.0");function gr(t){return!!t.toHexString}function vr(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return vr(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function br(t){return Nr(t)&&!(t.length%2)||wr(t)}function Ar(t){return"number"==typeof t&&t==t&&t%1==0}function wr(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if("string"==typeof t)return!1;if(!Ar(t.length)||t.length<0)return!1;for(let e=0;e<t.length;e++){const r=t[e];if(!Ar(r)||r<0||r>=256)return!1}return!0}function Er(t,e){if(e||(e={}),"number"==typeof t){yr.checkSafeUint53(t,"invalid arrayify value");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),vr(new Uint8Array(e))}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),gr(t)&&(t=t.toHexString()),Nr(t)){let r=t.substring(2);r.length%2&&("left"===e.hexPad?r="0"+r:"right"===e.hexPad?r+="0":yr.throwArgumentError("hex data is odd-length","value",t));const n=[];for(let t=0;t<r.length;t+=2)n.push(parseInt(r.substring(t,t+2),16));return vr(new Uint8Array(n))}return wr(t)?vr(new Uint8Array(t)):yr.throwArgumentError("invalid arrayify value","value",t)}function Tr(t){const e=t.map(t=>Er(t)),r=e.reduce((t,e)=>t+e.length,0),n=new Uint8Array(r);return e.reduce((t,e)=>(n.set(e,t),t+e.length),0),vr(n)}function Ir(t){let e=Er(t);if(0===e.length)return e;let r=0;for(;r<e.length&&0===e[r];)r++;return r&&(e=e.slice(r)),e}function Nr(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}const Mr="0123456789abcdef";function kr(t,e){if(e||(e={}),"number"==typeof t){yr.checkSafeUint53(t,"invalid hexlify value");let e="";for(;t;)e=Mr[15&t]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if("bigint"==typeof t)return(t=t.toString(16)).length%2?"0x0"+t:"0x"+t;if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),gr(t))return t.toHexString();if(Nr(t))return t.length%2&&("left"===e.hexPad?t="0x0"+t.substring(2):"right"===e.hexPad?t+="0":yr.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(wr(t)){let e="0x";for(let r=0;r<t.length;r++){let n=t[r];e+=Mr[(240&n)>>4]+Mr[15&n]}return e}return yr.throwArgumentError("invalid hexlify value","value",t)}function _r(t){if("string"!=typeof t)t=kr(t);else if(!Nr(t)||t.length%2)return null;return(t.length-2)/2}function Sr(t,e,r){return"string"!=typeof t?t=kr(t):(!Nr(t)||t.length%2)&&yr.throwArgumentError("invalid hexData","value",t),e=2+2*e,null!=r?"0x"+t.substring(e,2+2*r):"0x"+t.substring(e)}function Pr(t){let e="0x";return t.forEach(t=>{e+=kr(t).substring(2)}),e}function Cr(t){const e=function(t){"string"!=typeof t&&(t=kr(t)),Nr(t)||yr.throwArgumentError("invalid hex string","value",t),t=t.substring(2);let e=0;for(;e<t.length&&"0"===t[e];)e++;return"0x"+t.substring(e)}(kr(t,{hexPad:"left"}));return"0x"===e?"0x0":e}function xr(t,e){for("string"!=typeof t?t=kr(t):Nr(t)||yr.throwArgumentError("invalid hex string","value",t),t.length>2*e+2&&yr.throwArgumentError("value out of range","value",arguments[1]);t.length<2*e+2;)t="0x0"+t.substring(2);return t}function Or(t){const e={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(br(t)){let r=Er(t);64===r.length?(e.v=27+(r[32]>>7),r[32]&=127,e.r=kr(r.slice(0,32)),e.s=kr(r.slice(32,64))):65===r.length?(e.r=kr(r.slice(0,32)),e.s=kr(r.slice(32,64)),e.v=r[64]):yr.throwArgumentError("invalid signature string","signature",t),e.v<27&&(0===e.v||1===e.v?e.v+=27:yr.throwArgumentError("signature invalid v byte","signature",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(r[32]|=128),e._vs=kr(r.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,null!=e._vs){const r=function(t,e){(t=Er(t)).length>e&&yr.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(e);return r.set(t,e-t.length),vr(r)}(Er(e._vs),32);e._vs=kr(r);const n=r[0]>=128?1:0;null==e.recoveryParam?e.recoveryParam=n:e.recoveryParam!==n&&yr.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),r[0]&=127;const i=kr(r);null==e.s?e.s=i:e.s!==i&&yr.throwArgumentError("signature v mismatch _vs","signature",t)}null==e.recoveryParam?null==e.v?yr.throwArgumentError("signature missing v and recoveryParam","signature",t):e.recoveryParam=0===e.v||1===e.v?e.v:1-e.v%2:null==e.v?e.v=27+e.recoveryParam:e.recoveryParam!==(0===e.v||1===e.v?e.v:1-e.v%2)&&yr.throwArgumentError("signature recoveryParam mismatch v","signature",t),null!=e.r&&Nr(e.r)?e.r=xr(e.r,32):yr.throwArgumentError("signature missing or invalid r","signature",t),null!=e.s&&Nr(e.s)?e.s=xr(e.s,32):yr.throwArgumentError("signature missing or invalid s","signature",t);const r=Er(e.s);r[0]>=128&&yr.throwArgumentError("signature s out of range","signature",t),e.recoveryParam&&(r[0]|=128);const n=kr(r);e._vs&&(Nr(e._vs)||yr.throwArgumentError("signature invalid _vs","signature",t),e._vs=xr(e._vs,32)),null==e._vs?e._vs=n:e._vs!==n&&yr.throwArgumentError("signature _vs mismatch v and s","signature",t)}return e.yParityAndS=e._vs,e.compact=e.r+e.yParityAndS.substring(2),e}var Rr=or.BN;const Br=new mr("bignumber/5.7.0"),Dr={},Lr=9007199254740991;let Ur=!1;class Fr{constructor(t,e){t!==Dr&&Br.throwError("cannot call constructor directly; use BigNumber.from",mr.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return Gr(Hr(this).fromTwos(t))}toTwos(t){return Gr(Hr(this).toTwos(t))}abs(){return"-"===this._hex[0]?Fr.from(this._hex.substring(1)):this}add(t){return Gr(Hr(this).add(Hr(t)))}sub(t){return Gr(Hr(this).sub(Hr(t)))}div(t){return Fr.from(t).isZero()&&zr("division-by-zero","div"),Gr(Hr(this).div(Hr(t)))}mul(t){return Gr(Hr(this).mul(Hr(t)))}mod(t){const e=Hr(t);return e.isNeg()&&zr("division-by-zero","mod"),Gr(Hr(this).umod(e))}pow(t){const e=Hr(t);return e.isNeg()&&zr("negative-power","pow"),Gr(Hr(this).pow(e))}and(t){const e=Hr(t);return(this.isNegative()||e.isNeg())&&zr("unbound-bitwise-result","and"),Gr(Hr(this).and(e))}or(t){const e=Hr(t);return(this.isNegative()||e.isNeg())&&zr("unbound-bitwise-result","or"),Gr(Hr(this).or(e))}xor(t){const e=Hr(t);return(this.isNegative()||e.isNeg())&&zr("unbound-bitwise-result","xor"),Gr(Hr(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&zr("negative-width","mask"),Gr(Hr(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&zr("negative-width","shl"),Gr(Hr(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&zr("negative-width","shr"),Gr(Hr(this).shrn(t))}eq(t){return Hr(this).eq(Hr(t))}lt(t){return Hr(this).lt(Hr(t))}lte(t){return Hr(this).lte(Hr(t))}gt(t){return Hr(this).gt(Hr(t))}gte(t){return Hr(this).gte(Hr(t))}isNegative(){return"-"===this._hex[0]}isZero(){return Hr(this).isZero()}toNumber(){try{return Hr(this).toNumber()}catch(t){zr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return Br.throwError("this platform does not support BigInt",mr.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Ur||(Ur=!0,Br.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Br.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",mr.errors.UNEXPECTED_ARGUMENT,{})),Hr(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof Fr)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new Fr(Dr,qr(t)):t.match(/^-?[0-9]+$/)?new Fr(Dr,qr(new Rr(t))):Br.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&zr("underflow","BigNumber.from",t),(t>=Lr||t<=-Lr)&&zr("overflow","BigNumber.from",t),Fr.from(String(t));const e=t;if("bigint"==typeof e)return Fr.from(e.toString());if(wr(e))return Fr.from(kr(e));if(e)if(e.toHexString){const t=e.toHexString();if("string"==typeof t)return Fr.from(t)}else{let t=e._hex;if(null==t&&"BigNumber"===e.type&&(t=e.hex),"string"==typeof t&&(Nr(t)||"-"===t[0]&&Nr(t.substring(1))))return Fr.from(t)}return Br.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(t){return!(!t||!t._isBigNumber)}}function qr(t){if("string"!=typeof t)return qr(t.toString(16));if("-"===t[0])return"-"===(t=t.substring(1))[0]&&Br.throwArgumentError("invalid hex","value",t),"0x00"===(t=qr(t))?t:"-"+t;if("0x"!==t.substring(0,2)&&(t="0x"+t),"0x"===t)return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&"0x00"===t.substring(0,4);)t="0x"+t.substring(4);return t}function Gr(t){return Fr.from(qr(t))}function Hr(t){const e=Fr.from(t).toHexString();return new Rr("-"===e[0]?"-"+e.substring(3):e.substring(2),16)}function zr(t,e,r){const n={fault:t,operation:e};return null!=r&&(n.value=r),Br.throwError(t,mr.errors.NUMERIC_FAULT,n)}var jr=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Qr=new mr("properties/5.7.0");function Kr(t,e,r){Object.defineProperty(t,e,{enumerable:!0,value:r,writable:!1})}function Vr(t,e){for(let r=0;r<32;r++){if(t[e])return t[e];if(!t.prototype||"object"!=typeof t.prototype)break;t=Object.getPrototypeOf(t.prototype).constructor}return null}function Jr(t){return jr(this,void 0,void 0,function*(){const e=Object.keys(t).map(e=>Promise.resolve(t[e]).then(t=>({key:e,value:t})));return(yield Promise.all(e)).reduce((t,e)=>(t[e.key]=e.value,t),{})})}function Yr(t){const e={};for(const r in t)e[r]=t[r];return e}const Wr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Xr(t){if(null==t||Wr[typeof t])return!0;if(Array.isArray(t)||"object"==typeof t){if(!Object.isFrozen(t))return!1;const e=Object.keys(t);for(let r=0;r<e.length;r++){let n=null;try{n=t[e[r]]}catch(t){continue}if(!Xr(n))return!1}return!0}return Qr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function Zr(t){if(Xr(t))return t;if(Array.isArray(t))return Object.freeze(t.map(t=>$r(t)));if("object"==typeof t){const e={};for(const r in t){const n=t[r];void 0!==n&&Kr(e,r,$r(n))}return e}return Qr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function $r(t){return Zr(t)}class tn{constructor(t){for(const e in t)this[e]=$r(t[e])}}const en=new mr("abstract-provider/5.7.0");class rn extends tn{static isForkEvent(t){return!(!t||!t._isForkEvent)}}class nn{constructor(){en.checkAbstract(new.target,nn),Kr(this,"_isProvider",!0)}getFeeData(){return t=this,r=function*(){const{block:t,gasPrice:e}=yield Jr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(t=>null)});let r=null,n=null,i=null;return t&&t.baseFeePerGas&&(r=t.baseFeePerGas,i=Fr.from("1500000000"),n=t.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:e}},new((e=void 0)||(e=Promise))(function(n,i){function o(t){try{a(r.next(t))}catch(t){i(t)}}function s(t){try{a(r.throw(t))}catch(t){i(t)}}function a(t){var r;t.done?n(t.value):(r=t.value,r instanceof e?r:new e(function(t){t(r)})).then(o,s)}a((r=r.apply(t,[])).next())});var t,e,r}addListener(t,e){return this.on(t,e)}removeListener(t,e){return this.off(t,e)}static isProvider(t){return!(!t||!t._isProvider)}}const on=new mr("networks/5.7.1");function sn(t){const e=function(e,r){null==r&&(r={});const n=[];if(e.InfuraProvider&&"-"!==r.infura)try{n.push(new e.InfuraProvider(t,r.infura))}catch(t){}if(e.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new e.EtherscanProvider(t,r.etherscan))}catch(t){}if(e.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new e.AlchemyProvider(t,r.alchemy))}catch(t){}if(e.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new e.PocketProvider(t,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}}if(e.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new e.CloudflareProvider(t))}catch(t){}if(e.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new e.AnkrProvider(t,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}if(0===n.length)return null;if(e.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===t&&(i=2),new e.FallbackProvider(n,i)}return n[0]};return e.renetwork=function(t){return sn(t)},e}function an(t,e){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(t,e):null};return r.renetwork=function(e){return an(t,e)},r}const un={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:sn("homestead")},ln={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:sn("ropsten")},hn={chainId:63,name:"classicMordor",_defaultProvider:an("https://www.ethercluster.com/mordor","classicMordor")},cn={unspecified:{chainId:0,name:"unspecified"},homestead:un,mainnet:un,morden:{chainId:2,name:"morden"},ropsten:ln,testnet:ln,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:sn("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:sn("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:sn("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:sn("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:an("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:hn,classicTestnet:hn,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:an("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:sn("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:sn("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function fn(t){t=atob(t);const e=[];for(let r=0;r<t.length;r++)e.push(t.charCodeAt(r));return Er(e)}function dn(t){t=Er(t);let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}class pn{constructor(t){Kr(this,"alphabet",t),Kr(this,"base",t.length),Kr(this,"_alphabetMap",{}),Kr(this,"_leader",t.charAt(0));for(let e=0;e<t.length;e++)this._alphabetMap[t.charAt(e)]=e}encode(t){let e=Er(t);if(0===e.length)return"";let r=[0];for(let t=0;t<e.length;++t){let n=e[t];for(let t=0;t<r.length;++t)n+=r[t]<<8,r[t]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let t=0;0===e[t]&&t<e.length-1;++t)n+=this._leader;for(let t=r.length-1;t>=0;--t)n+=this.alphabet[r[t]];return n}decode(t){if("string"!=typeof t)throw new TypeError("Expected String");let e=[];if(0===t.length)return new Uint8Array(e);e.push(0);for(let r=0;r<t.length;r++){let n=this._alphabetMap[t[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let t=0;t<e.length;++t)i+=e[t]*this.base,e[t]=255&i,i>>=8;for(;i>0;)e.push(255&i),i>>=8}for(let r=0;t[r]===this._leader&&r<t.length-1;++r)e.push(0);return Er(new Uint8Array(e.reverse()))}}new pn("abcdefghijklmnopqrstuvwxyz234567");const mn=new pn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),yn=/*#__PURE__*/Fr.from(0);var gn=nr(function(t){!function(){var e="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=rr:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&t.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],h=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],c=[224,256,384,512],f=[128,256],d=["hex","buffer","arrayBuffer","array","digest"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var m=function(t,e,r){return function(n){return new P(t,e,t).update(n)[r]()}},y=function(t,e,r){return function(n,i){return new P(t,e,i).update(n)[r]()}},g=function(t,e,r){return function(e,n,i,o){return E["cshake"+t].update(e,n,i,o)[r]()}},v=function(t,e,r){return function(e,n,i,o){return E["kmac"+t].update(e,n,i,o)[r]()}},b=function(t,e,r,n){for(var i=0;i<d.length;++i){var o=d[i];t[o]=e(r,n,o)}return t},A=function(t,e){var r=m(t,e,"hex");return r.create=function(){return new P(t,e,t)},r.update=function(t){return r.create().update(t)},b(r,m,t,e)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:c,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:c,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(t,e){var r=y(t,e,"hex");return r.create=function(r){return new P(t,e,r)},r.update=function(t,e){return r.create(e).update(t)},b(r,y,t,e)}},{name:"cshake",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=g(t,0,"hex");return n.create=function(n,i,o){return i||o?new P(t,e,n).bytepad([i,o],r):E["shake"+t].create(n)},n.update=function(t,e,r,i){return n.create(e,r,i).update(t)},b(n,g,t,e)}},{name:"kmac",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=v(t,0,"hex");return n.create=function(n,i,o){return new C(t,e,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(t,e,r,i){return n.create(t,r,i).update(e)},b(n,v,t,e)}}],E={},T=[],I=0;I<w.length;++I)for(var N=w[I],M=N.bits,k=0;k<M.length;++k){var _=N.name+"_"+M[k];if(T.push(_),E[_]=N.createMethod(M[k],N.padding),"sha3"!==N.name){var S=N.name+M[k];T.push(S),E[S]=E[_]}}function P(t,e,r){this.blocks=[],this.s=[],this.padding=e,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function C(t,e,r){P.call(this,t,e,r)}P.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,h=t.length,c=this.blockCount,f=0,d=this.s;f<h;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<c+1;++i)a[i]=0;if(r)for(i=this.start;f<h&&i<u;++f)a[i>>2]|=t[f]<<l[3&i++];else for(i=this.start;f<h&&i<u;++f)(o=t.charCodeAt(f))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&t.charCodeAt(++f)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[c],i=0;i<c;++i)d[i]^=a[i];x(d),this.reset=!0}else this.start=i}return this},P.prototype.encode=function(t,e){var r=255&t,n=1,i=[r];for(r=255&(t>>=8);r>0;)i.unshift(r),r=255&(t>>=8),++n;return e?i.push(n):i.unshift(n),this.update(i),i.length},P.prototype.encodeString=function(t){var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}var i=0;if(r)i=t.length;else for(var o=0;o<t.length;++o){var a=t.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(t),i},P.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n<t.length;++n)r+=this.encodeString(t[n]);var i=[];return i.length=e-r%e,this.update(i),this},P.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,r=this.blockCount,n=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e<r+1;++e)t[e]=0;for(t[r-1]|=2147483648,e=0;e<r;++e)n[e]^=t[e];x(n)}},P.prototype.toString=P.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<e&&s<n;++o,++s)u+=a[(t=r[o])>>4&15]+a[15&t]+a[t>>12&15]+a[t>>8&15]+a[t>>20&15]+a[t>>16&15]+a[t>>28&15]+a[t>>24&15];s%e==0&&(x(r),o=0)}return i&&(u+=a[(t=r[o])>>4&15]+a[15&t],i>1&&(u+=a[t>>12&15]+a[t>>8&15]),i>2&&(u+=a[t>>20&15]+a[t>>16&15])),u},P.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(t);s<n;){for(o=0;o<e&&s<n;++o,++s)u[s]=r[o];s%e==0&&x(r)}return i&&(u[o]=r[o],t=t.slice(0,a)),t},P.prototype.buffer=P.prototype.arrayBuffer,P.prototype.digest=P.prototype.array=function(){this.finalize();for(var t,e,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[t=a<<2]=255&(e=n[s]),u[t+1]=e>>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;a%r==0&&x(n)}return o&&(u[t=a<<2]=255&(e=n[s]),o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u},(C.prototype=new P).finalize=function(){return this.encode(this.outputBits,!0),P.prototype.finalize.call(this)};var x=function(t){var e,r,n,i,o,s,a,u,l,c,f,d,p,m,y,g,v,b,A,w,E,T,I,N,M,k,_,S,P,C,x,O,R,B,D,L,U,F,q,G,H,z,j,Q,K,V,J,Y,W,X,Z,$,tt,et,rt,nt,it,ot,st,at,ut,lt,ht;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],u=t[4]^t[14]^t[24]^t[34]^t[44],l=t[5]^t[15]^t[25]^t[35]^t[45],c=t[6]^t[16]^t[26]^t[36]^t[46],f=t[7]^t[17]^t[27]^t[37]^t[47],r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^((a=t[3]^t[13]^t[23]^t[33]^t[43])<<1|(s=t[2]^t[12]^t[22]^t[32]^t[42])>>>31),t[0]^=e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(s<<1|a>>>31),t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,r=o^(l<<1|u>>>31),t[2]^=e=i^(u<<1|l>>>31),t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,r=a^(f<<1|c>>>31),t[4]^=e=s^(c<<1|f>>>31),t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,r=l^(p<<1|d>>>31),t[6]^=e=u^(d<<1|p>>>31),t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,r=f^(o<<1|i>>>31),t[8]^=e=c^(i<<1|o>>>31),t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,y=t[1],V=t[11]<<4|t[10]>>>28,J=t[10]<<4|t[11]>>>28,S=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,z=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,B=t[2]<<1|t[3]>>>31,D=t[3]<<1|t[2]>>>31,v=t[12]<<12|t[13]>>>20,Y=t[22]<<10|t[23]>>>22,W=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,x=t[32]<<13|t[33]>>>19,lt=t[42]<<2|t[43]>>>30,ht=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,L=t[14]<<6|t[15]>>>26,U=t[15]<<6|t[14]>>>26,A=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,O=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,N=t[6]<<28|t[7]>>>4,M=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,q=t[27]<<25|t[26]>>>7,w=t[36]<<21|t[37]>>>11,E=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,Q=t[8]<<27|t[9]>>>5,K=t[9]<<27|t[8]>>>5,k=t[18]<<20|t[19]>>>12,_=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,G=t[38]<<8|t[39]>>>24,H=t[39]<<8|t[38]>>>24,T=t[48]<<14|t[49]>>>18,I=t[49]<<14|t[48]>>>18,t[0]=(m=t[0])^~(g=t[13]<<12|t[12]>>>20)&(b=t[25]<<11|t[24]>>>21),t[1]=y^~v&A,t[10]=N^~k&S,t[11]=M^~_&P,t[20]=B^~L&F,t[21]=D^~U&q,t[30]=Q^~V&Y,t[31]=K^~J&W,t[40]=et^~nt&ot,t[41]=rt^~it&st,t[2]=g^~b&w,t[3]=v^~A&E,t[12]=k^~S&C,t[13]=_^~P&x,t[22]=L^~F&G,t[23]=U^~q&H,t[32]=V^~Y&X,t[33]=J^~W&Z,t[42]=nt^~ot&at,t[43]=it^~st&ut,t[4]=b^~w&T,t[5]=A^~E&I,t[14]=S^~C&O,t[15]=P^~x&R,t[24]=F^~G&z,t[25]=q^~H&j,t[34]=Y^~X&$,t[35]=W^~Z&tt,t[44]=ot^~at&lt,t[45]=st^~ut&ht,t[6]=w^~T&m,t[7]=E^~I&y,t[16]=C^~O&N,t[17]=x^~R&M,t[26]=G^~z&B,t[27]=H^~j&D,t[36]=X^~$&Q,t[37]=Z^~tt&K,t[46]=at^~lt&et,t[47]=ut^~ht&rt,t[8]=T^~m&g,t[9]=I^~y&v,t[18]=O^~N&k,t[19]=R^~M&_,t[28]=z^~B&L,t[29]=j^~D&U,t[38]=$^~Q&V,t[39]=tt^~K&J,t[48]=lt^~et&nt,t[49]=ht^~rt&it,t[0]^=h[n],t[1]^=h[n+1]};if(o)t.exports=E;else for(I=0;I<T.length;++I)n[T[I]]=E[T[I]]}()});function vn(t){return"0x"+gn.keccak_256(Er(t))}const bn=new mr("strings/5.7.0");var An,wn;function En(t,e,r,n,i){if(t===wn.BAD_PREFIX||t===wn.UNEXPECTED_CONTINUE){let t=0;for(let n=e+1;n<r.length&&r[n]>>6==2;n++)t++;return t}return t===wn.OVERRUN?r.length-e-1:0}!function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"}(An||(An={})),function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"}(wn||(wn={}));const Tn=Object.freeze({error:function(t,e,r,n,i){return bn.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,"bytes",r)},ignore:En,replace:function(t,e,r,n,i){return t===wn.OVERLONG?(n.push(i),0):(n.push(65533),En(t,e,r))}});function In(t,e){null==e&&(e=Tn.error),t=Er(t);const r=[];let n=0;for(;n<t.length;){const i=t[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=e(128==(192&i)?wn.UNEXPECTED_CONTINUE:wn.BAD_PREFIX,n-1,t,r);continue}o=3,s=65535}if(n-1+o>=t.length){n+=e(wn.OVERRUN,n-1,t,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=t[n];if(128!=(192&i)){n+=e(wn.MISSING_CONTINUE,n,t,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=e(wn.OUT_OF_RANGE,n-1-o,t,r,a):a>=55296&&a<=57343?n+=e(wn.UTF16_SURROGATE,n-1-o,t,r,a):a<=s?n+=e(wn.OVERLONG,n-1-o,t,r,a):r.push(a))}return r}function Nn(t,e=An.current){e!=An.current&&(bn.checkNormalize(),t=t.normalize(e));let r=[];for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){e++;const i=t.charCodeAt(e);if(e>=t.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Er(r)}function Mn(t,e){return In(t,e).map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t)))).join("")}function kn(t){return vn(Nn(t))}const _n="hash/5.7.0";function Sn(t,e){null==e&&(e=1);const r=[],n=r.forEach,i=function(t,e){n.call(t,function(t){e>0&&Array.isArray(t)?i(t,e-1):r.push(t)})};return i(t,e),r}function Pn(t){return 1&t?~t>>1:t>>1}function Cn(t,e){let r=Array(t);for(let n=0,i=-1;n<t;n++)r[n]=i+=1+e();return r}function xn(t,e){let r=Array(t);for(let n=0,i=0;n<t;n++)r[n]=i+=Pn(e());return r}function On(t,e){let r=Cn(t(),t),n=t(),i=Cn(n,t),o=function(t,e){let r=Array(t);for(let n=0;n<t;n++)r[n]=1+e();return r}(n,t);for(let t=0;t<n;t++)for(let e=0;e<o[t];e++)r.push(i[t]+e);return e?r.map(t=>e[t]):r}function Rn(t,e,r){let n=Array(t).fill(void 0).map(()=>[]);for(let i=0;i<e;i++)xn(t,r).forEach((t,e)=>n[e].push(t));return n}function Bn(t,e){let r=1+e(),n=e(),i=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(r)}return e}(e);return Sn(Rn(i.length,1+t,e).map((t,e)=>{const o=t[0],s=t.slice(1);return Array(i[e]).fill(void 0).map((t,e)=>{let i=e*n;return[o+e*r,s.map(t=>t+i)]})}))}function Dn(t,e){return Rn(1+e(),1+t,e).map(t=>[t[0],t.slice(1)])}const Ln=function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function r(){return t[e++]<<8|t[e++]}let n=r(),i=1,o=[0,1];for(let t=1;t<n;t++)o.push(i+=r());let s=r(),a=e;e+=s;let u=0,l=0;function h(){return 0==u&&(l=l<<8|t[e++],u=8),l>>--u&1}const c=Math.pow(2,31),f=c>>>1,d=f>>1,p=c-1;let m=0;for(let t=0;t<31;t++)m=m<<1|h();let y=[],g=0,v=c;for(;;){let t=Math.floor(((m-g+1)*i-1)/v),e=0,r=n;for(;r-e>1;){let n=e+r>>>1;t<o[n]?r=n:e=n}if(0==e)break;y.push(e);let s=g+Math.floor(v*o[e]/i),a=g+Math.floor(v*o[e+1]/i)-1;for(;0==((s^a)&f);)m=m<<1&p|h(),s=s<<1&p,a=a<<1&p|1;for(;s&~a&d;)m=m&f|m<<1&p>>>1|h(),s=s<<1^f,a=(a^f)<<1|f|1;g=s,v=1+a-s}let b=n-4;return y.map(e=>{switch(e-b){case 3:return b+65792+(t[a++]<<16|t[a++]<<8|t[a++]);case 2:return b+256+(t[a++]<<8|t[a++]);case 1:return b+t[a++];default:return e-1}})}(fn("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"))),Un=new Set(On(Ln)),Fn=new Set(On(Ln)),qn=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(Bn(r,t))}for(;;){let r=t()-1;if(r<0)break;e.push(Dn(r,t))}return function(t){const e={};for(let r=0;r<t.length;r++){const n=t[r];e[n[0]]=n[1]}return e}(Sn(e))}(Ln),Gn=function(t){let e=On(t).sort((t,e)=>t-e);return function r(){let n=[];for(;;){let i=On(t,e);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((t,e)=>e.set.size-t.set.size);let i=t(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(Ln),Hn=45,zn=95;function jn(t){return function(t,e=An.current){return In(Nn(t,e))}(t)}function Qn(t){return t.filter(t=>65039!=t)}function Kn(t){for(let e of t.split(".")){let t=jn(e);try{for(let e=t.lastIndexOf(zn)-1;e>=0;e--)if(t[e]!==zn)throw new Error("underscore only allowed at start");if(t.length>=4&&t.every(t=>t<128)&&t[2]===Hn&&t[3]===Hn)throw new Error("invalid label extension")}catch(t){throw new Error(`Invalid label "${e}": ${t.message}`)}}return t}function Vn(t,e){var r;let n,i,o=Gn,s=[],a=t.length;for(e&&(e.length=0);a;){let u=t[--a];if(o=null===(r=o.branches.find(t=>t.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==t[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),e&&e.push(...t.slice(a).reverse()),t.length=a)}return n}const Jn=new mr(_n),Yn=new Uint8Array(32);function Wn(t){if(0===t.length)throw new Error("invalid ENS name; empty component");return t}function Xn(t){const e=Nn(function(t){return Kn(function(t,e){let r=jn(t).reverse(),n=[];for(;r.length;){let t=Vn(r);if(t){n.push(...e(t));continue}let i=r.pop();if(Un.has(i)){n.push(i);continue}if(Fn.has(i))continue;let o=qn[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Kn(function(t){return t.normalize("NFC")}(String.fromCodePoint(...n)))}(t,Qn))}(t)),r=[];if(0===t.length)return r;let n=0;for(let t=0;t<e.length;t++)46===e[t]&&(r.push(Wn(e.slice(n,t))),n=t+1);if(n>=e.length)throw new Error("invalid ENS name; empty component");return r.push(Wn(e.slice(n))),r}function Zn(t){"string"!=typeof t&&Jn.throwArgumentError("invalid ENS name; not a string","name",t);let e=Yn;const r=Xn(t);for(;r.length;)e=vn(Tr([e,vn(r.pop())]));return kr(e)}Yn.fill(0);const $n=new mr("rlp/5.7.0");function ti(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function ei(t,e,r){let n=0;for(let i=0;i<r;i++)n=256*n+t[e+i];return n}function ri(t){if(Array.isArray(t)){let e=[];if(t.forEach(function(t){e=e.concat(ri(t))}),e.length<=55)return e.unshift(192+e.length),e;const r=ti(e.length);return r.unshift(247+r.length),r.concat(e)}br(t)||$n.throwArgumentError("RLP object must be BytesLike","object",t);const e=Array.prototype.slice.call(Er(t));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const r=ti(e.length);return r.unshift(183+r.length),r.concat(e)}function ni(t){return kr(ri(t))}function ii(t,e,r,n){const i=[];for(;r<e+1+n;){const o=oi(t,r);i.push(o.result),(r+=o.consumed)>e+1+n&&$n.throwError("child data too short",mr.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function oi(t,e){if(0===t.length&&$n.throwError("data too short",mr.errors.BUFFER_OVERRUN,{}),t[e]>=248){const r=t[e]-247;e+1+r>t.length&&$n.throwError("data short segment too short",mr.errors.BUFFER_OVERRUN,{});const n=ei(t,e+1,r);return e+1+r+n>t.length&&$n.throwError("data long segment too short",mr.errors.BUFFER_OVERRUN,{}),ii(t,e,e+1+r,r+n)}if(t[e]>=192){const r=t[e]-192;return e+1+r>t.length&&$n.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{}),ii(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;e+1+r>t.length&&$n.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{});const n=ei(t,e+1,r);return e+1+r+n>t.length&&$n.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:kr(t.slice(e+1+r,e+1+r+n))}}if(t[e]>=128){const r=t[e]-128;return e+1+r>t.length&&$n.throwError("data too short",mr.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:kr(t.slice(e+1,e+1+r))}}return{consumed:1,result:kr(t[e])}}function si(t){const e=Er(t),r=oi(e,0);return r.consumed!==e.length&&$n.throwArgumentError("invalid rlp data","data",t),r.result}const ai=new mr("address/5.7.0");function ui(t){Nr(t,20)||ai.throwArgumentError("invalid address","address",t);const e=(t=t.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=Er(vn(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const li={};for(let t=0;t<10;t++)li[String(t)]=String(t);for(let t=0;t<26;t++)li[String.fromCharCode(65+t)]=String(10+t);const hi=Math.floor(function(t){return Math.log10?Math.log10(t):Math.log(t)/Math.LN10}(9007199254740991));function ci(t){let e=null;if("string"!=typeof t&&ai.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==t.substring(0,2)&&(t="0x"+t),e=ui(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&ai.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map(t=>li[t]).join("");for(;e.length>=hi;){let t=e.substring(0,hi);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r="0"+r;return r}(t)&&ai.throwArgumentError("bad icap checksum","address",t),r=t.substring(4),e=new Rr(r,36).toString(16);e.length<40;)e="0"+e;e=ui("0x"+e)}else ai.throwArgumentError("invalid address","address",t);var r;return e}const fi=new mr(_n),di=new Uint8Array(32);di.fill(0);const pi=Fr.from(-1),mi=Fr.from(0),yi=Fr.from(1),gi=Fr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),vi=xr(yi.toHexString(),32),bi=xr(mi.toHexString(),32),Ai={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},wi=["name","version","chainId","verifyingContract","salt"];function Ei(t){return function(e){return"string"!=typeof e&&fi.throwArgumentError(`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const Ti={name:Ei("name"),version:Ei("version"),chainId:function(t){try{return Fr.from(t).toString()}catch(t){}return fi.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",t)},verifyingContract:function(t){try{return ci(t).toLowerCase()}catch(t){}return fi.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){try{const e=Er(t);if(32!==e.length)throw new Error("bad length");return kr(e)}catch(t){}return fi.throwArgumentError('invalid domain value "salt"',"domain.salt",t)}};function Ii(t){{const e=t.match(/^(u?)int(\d*)$/);if(e){const r=""===e[1],n=parseInt(e[2]||"256");(n%8!=0||n>256||e[2]&&e[2]!==String(n))&&fi.throwArgumentError("invalid numeric width","type",t);const i=gi.mask(r?n-1:n),o=r?i.add(yi).mul(pi):mi;return function(e){const r=Fr.from(e);return(r.lt(o)||r.gt(i))&&fi.throwArgumentError(`value out-of-bounds for ${t}`,"value",e),xr(r.toTwos(256).toHexString(),32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const r=parseInt(e[1]);return(0===r||r>32||e[1]!==String(r))&&fi.throwArgumentError("invalid bytes width","type",t),function(e){return Er(e).length!==r&&fi.throwArgumentError(`invalid length for ${t}`,"value",e),function(t){const e=Er(t),r=e.length%32;return r?Pr([e,di.slice(r)]):kr(e)}(e)}}}switch(t){case"address":return function(t){return xr(ci(t),32)};case"bool":return function(t){return t?vi:bi};case"bytes":return function(t){return vn(t)};case"string":return function(t){return kn(t)}}return null}function Ni(t,e){return`${t}(${e.map(({name:t,type:e})=>e+" "+t).join(",")})`}class Mi{constructor(t){Kr(this,"types",Object.freeze($r(t))),Kr(this,"_encoderCache",{}),Kr(this,"_types",{});const e={},r={},n={};Object.keys(t).forEach(t=>{e[t]={},r[t]=[],n[t]={}});for(const n in t){const i={};t[n].forEach(o=>{i[o.name]&&fi.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",t),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&fi.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",t),Ii(s)||(r[s]||fi.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",t),r[s].push(n),e[n][s]=!0)})}const i=Object.keys(r).filter(t=>0===r[t].length);0===i.length?fi.throwArgumentError("missing primary type","types",t):i.length>1&&fi.throwArgumentError(`ambiguous primary types or unused types: ${i.map(t=>JSON.stringify(t)).join(", ")}`,"types",t),Kr(this,"primaryType",i[0]),function i(o,s){s[o]&&fi.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",t),s[o]=!0,Object.keys(e[o]).forEach(t=>{r[t]&&(i(t,s),Object.keys(s).forEach(e=>{n[e][t]=!0}))}),delete s[o]}(this.primaryType,{});for(const e in n){const r=Object.keys(n[e]);r.sort(),this._types[e]=Ni(e,t[e])+r.map(e=>Ni(e,t[e])).join("")}}getEncoder(t){let e=this._encoderCache[t];return e||(e=this._encoderCache[t]=this._getEncoder(t)),e}_getEncoder(t){{const e=Ii(t);if(e)return e}const e=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(e){const t=e[1],r=this.getEncoder(t),n=parseInt(e[3]);return e=>{n>=0&&e.length!==n&&fi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e);let i=e.map(r);return this._types[t]&&(i=i.map(vn)),vn(Pr(i))}}const r=this.types[t];if(r){const e=kn(this._types[t]);return t=>{const n=r.map(({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this._types[r]?vn(n):n});return n.unshift(e),Pr(n)}}return fi.throwArgumentError(`unknown type: ${t}`,"type",t)}encodeType(t){const e=this._types[t];return e||fi.throwArgumentError(`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return vn(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(Ii(t))return r(t,e);const n=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const t=n[1],i=parseInt(n[3]);return i>=0&&e.length!==i&&fi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e),e.map(e=>this._visit(t,e,r))}const i=this.types[t];return i?i.reduce((t,{name:n,type:i})=>(t[n]=this._visit(i,e[n],r),t),{}):fi.throwArgumentError(`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new Mi(t)}static getPrimaryType(t){return Mi.from(t).primaryType}static hashStruct(t,e,r){return Mi.from(e).hashStruct(t,r)}static hashDomain(t){const e=[];for(const r in t){const n=Ai[r];n||fi.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",t),e.push({name:r,type:n})}return e.sort((t,e)=>wi.indexOf(t.name)-wi.indexOf(e.name)),Mi.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,r){return Pr(["0x1901",Mi.hashDomain(t),Mi.from(e).hash(r)])}static hash(t,e,r){return vn(Mi.encode(t,e,r))}static resolveNames(t,e,r,n){return i=this,s=function*(){t=Yr(t);const i={};t.verifyingContract&&!Nr(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const o=Mi.from(e);o.visit(r,(t,e)=>("address"!==t||Nr(e,20)||(i[e]="0x"),e));for(const t in i)i[t]=yield n(t);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),r=o.visit(r,(t,e)=>"address"===t&&i[e]?i[e]:e),{domain:t,value:r}},new((o=void 0)||(o=Promise))(function(t,e){function r(t){try{a(s.next(t))}catch(t){e(t)}}function n(t){try{a(s.throw(t))}catch(t){e(t)}}function a(e){var i;e.done?t(e.value):(i=e.value,i instanceof o?i:new o(function(t){t(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(t,e,r){Mi.hashDomain(t);const n={},i=[];wi.forEach(e=>{const r=t[e];null!=r&&(n[e]=Ti[e](r),i.push({name:e,type:Ai[e]}))});const o=Mi.from(e),s=Yr(e);return s.EIP712Domain?fi.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",e):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(t,e)=>{if(t.match(/^bytes(\d*)/))return kr(Er(e));if(t.match(/^u?int/))return Fr.from(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return"string"!=typeof e&&fi.throwArgumentError("invalid string","value",e),e}return fi.throwArgumentError("unsupported type","type",t)})}}}var ki=_i;function _i(t,e){if(!t)throw new Error(e||"Assertion failed")}function Si(t,e){return 55296==(64512&t.charCodeAt(e))&&!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1))}function Pi(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function Ci(t){return 1===t.length?"0"+t:t}function xi(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}_i.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var Oi={inherits:nr(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),toArray:function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)r.push(parseInt(t[i]+t[i+1],16))}else for(var n=0,i=0;i<t.length;i++){var o=t.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):Si(t,i)?(o=65536+((1023&o)<<10)+(1023&t.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<t.length;i++)r[i]=0|t[i];return r},toHex:function(t){for(var e="",r=0;r<t.length;r++)e+=Ci(t[r].toString(16));return e},htonl:Pi,toHex32:function(t,e){for(var r="",n=0;n<t.length;n++){var i=t[n];"little"===e&&(i=Pi(i)),r+=xi(i.toString(16))}return r},zero2:Ci,zero8:xi,join32:function(t,e,r,n){var i=r-e;ki(i%4==0);for(var o=new Array(i/4),s=0,a=e;s<o.length;s++,a+=4)o[s]=("big"===n?t[a]<<24|t[a+1]<<16|t[a+2]<<8|t[a+3]:t[a+3]<<24|t[a+2]<<16|t[a+1]<<8|t[a])>>>0;return o},split32:function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n<t.length;n++,i+=4){var o=t[n];"big"===e?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(t,e){return t>>>e|t<<32-e},rotl32:function(t,e){return t<<e|t>>>32-e},sum32:function(t,e){return t+e>>>0},sum32_3:function(t,e,r){return t+e+r>>>0},sum32_4:function(t,e,r,n){return t+e+r+n>>>0},sum32_5:function(t,e,r,n,i){return t+e+r+n+i>>>0},sum64:function(t,e,r,n){var i=n+t[e+1]>>>0;t[e]=(i<n?1:0)+r+t[e]>>>0,t[e+1]=i},sum64_hi:function(t,e,r,n){return(e+n>>>0<e?1:0)+t+r>>>0},sum64_lo:function(t,e,r,n){return e+n>>>0},sum64_4_hi:function(t,e,r,n,i,o,s,a){var u=0,l=e;return u+=(l=l+n>>>0)<e?1:0,u+=(l=l+o>>>0)<o?1:0,t+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(t,e,r,n,i,o,s,a){return e+n+o+a>>>0},sum64_5_hi:function(t,e,r,n,i,o,s,a,u,l){var h=0,c=e;return h+=(c=c+n>>>0)<e?1:0,h+=(c=c+o>>>0)<o?1:0,h+=(c=c+a>>>0)<a?1:0,t+r+i+s+u+(h+=(c=c+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(t,e,r,n,i,o,s,a,u,l){return e+n+o+a+l>>>0},rotr64_hi:function(t,e,r){return(e<<32-r|t>>>r)>>>0},rotr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0},shr64_hi:function(t,e,r){return t>>>r},shr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0}};function Ri(){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 Bi=Ri;Ri.prototype.update=function(t,e){if(t=Oi.toArray(t,e),this.pending=this.pending?this.pending.concat(t):t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=Oi.join32(t,0,t.length-r,this.endian);for(var n=0;n<t.length;n+=this._delta32)this._update(t,n,n+this._delta32)}return this},Ri.prototype.digest=function(t){return this.update(this._pad()),ki(null===this.pending),this._digest(t)},Ri.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,r=e-(t+this.padLength)%e,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(t<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=t>>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var Di={BlockHash:Bi},Li=Oi.rotr32;function Ui(t,e,r){return t&e^~t&r}function Fi(t,e,r){return t&e^t&r^e&r}var qi=Ui,Gi=Fi,Hi=Oi.rotl32,zi=Oi.sum32,ji=Oi.sum32_5,Qi=function(t,e,r,n){return 0===t?Ui(e,r,n):1===t||3===t?function(t,e,r){return t^e^r}(e,r,n):2===t?Fi(e,r,n):void 0},Ki=Di.BlockHash,Vi=[1518500249,1859775393,2400959708,3395469782];function Ji(){if(!(this instanceof Ji))return new Ji;Ki.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Oi.inherits(Ji,Ki);var Yi=Ji;Ji.blockSize=512,Ji.outSize=160,Ji.hmacStrength=80,Ji.padLength=64,Ji.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=Hi(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),h=ji(Hi(i,5),Qi(l,o,s,a),u,r[n],Vi[l]);u=a,a=s,s=Hi(o,30),o=i,i=h}this.h[0]=zi(this.h[0],i),this.h[1]=zi(this.h[1],o),this.h[2]=zi(this.h[2],s),this.h[3]=zi(this.h[3],a),this.h[4]=zi(this.h[4],u)},Ji.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"big"):Oi.split32(this.h,"big")};var Wi=Oi.sum32,Xi=Oi.sum32_4,Zi=Oi.sum32_5,$i=qi,to=Gi,eo=function(t){return Li(t,2)^Li(t,13)^Li(t,22)},ro=function(t){return Li(t,6)^Li(t,11)^Li(t,25)},no=function(t){return Li(t,7)^Li(t,18)^t>>>3},io=function(t){return Li(t,17)^Li(t,19)^t>>>10},oo=Di.BlockHash,so=[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 ao(){if(!(this instanceof ao))return new ao;oo.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=so,this.W=new Array(64)}Oi.inherits(ao,oo);var uo=ao;function lo(){if(!(this instanceof lo))return new lo;uo.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}ao.blockSize=512,ao.outSize=256,ao.hmacStrength=192,ao.padLength=64,ao.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=Xi(io(r[n-2]),r[n-7],no(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],h=this.h[6],c=this.h[7];for(ki(this.k.length===r.length),n=0;n<r.length;n++){var f=Zi(c,ro(u),$i(u,l,h),this.k[n],r[n]),d=Wi(eo(i),to(i,o,s));c=h,h=l,l=u,u=Wi(a,f),a=s,s=o,o=i,i=Wi(f,d)}this.h[0]=Wi(this.h[0],i),this.h[1]=Wi(this.h[1],o),this.h[2]=Wi(this.h[2],s),this.h[3]=Wi(this.h[3],a),this.h[4]=Wi(this.h[4],u),this.h[5]=Wi(this.h[5],l),this.h[6]=Wi(this.h[6],h),this.h[7]=Wi(this.h[7],c)},ao.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"big"):Oi.split32(this.h,"big")},Oi.inherits(lo,uo);var ho=lo;lo.blockSize=512,lo.outSize=224,lo.hmacStrength=192,lo.padLength=64,lo.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h.slice(0,7),"big"):Oi.split32(this.h.slice(0,7),"big")};var co=Oi.rotr64_hi,fo=Oi.rotr64_lo,po=Oi.shr64_hi,mo=Oi.shr64_lo,yo=Oi.sum64,go=Oi.sum64_hi,vo=Oi.sum64_lo,bo=Oi.sum64_4_hi,Ao=Oi.sum64_4_lo,wo=Oi.sum64_5_hi,Eo=Oi.sum64_5_lo,To=Di.BlockHash,Io=[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 No(){if(!(this instanceof No))return new No;To.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Io,this.W=new Array(160)}Oi.inherits(No,To);var Mo=No;function ko(t,e,r,n,i){var o=t&r^~t&i;return o<0&&(o+=4294967296),o}function _o(t,e,r,n,i,o){var s=e&n^~e&o;return s<0&&(s+=4294967296),s}function So(t,e,r,n,i){var o=t&r^t&i^r&i;return o<0&&(o+=4294967296),o}function Po(t,e,r,n,i,o){var s=e&n^e&o^n&o;return s<0&&(s+=4294967296),s}function Co(t,e){var r=co(t,e,28)^co(e,t,2)^co(e,t,7);return r<0&&(r+=4294967296),r}function xo(t,e){var r=fo(t,e,28)^fo(e,t,2)^fo(e,t,7);return r<0&&(r+=4294967296),r}function Oo(t,e){var r=co(t,e,14)^co(t,e,18)^co(e,t,9);return r<0&&(r+=4294967296),r}function Ro(t,e){var r=fo(t,e,14)^fo(t,e,18)^fo(e,t,9);return r<0&&(r+=4294967296),r}function Bo(t,e){var r=co(t,e,1)^co(t,e,8)^po(t,e,7);return r<0&&(r+=4294967296),r}function Do(t,e){var r=fo(t,e,1)^fo(t,e,8)^mo(t,e,7);return r<0&&(r+=4294967296),r}function Lo(t,e){var r=co(t,e,19)^co(e,t,29)^po(t,e,6);return r<0&&(r+=4294967296),r}function Uo(t,e){var r=fo(t,e,19)^fo(e,t,29)^mo(t,e,6);return r<0&&(r+=4294967296),r}function Fo(){if(!(this instanceof Fo))return new Fo;Mo.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}No.blockSize=1024,No.outSize=512,No.hmacStrength=192,No.padLength=128,No.prototype._prepareBlock=function(t,e){for(var r=this.W,n=0;n<32;n++)r[n]=t[e+n];for(;n<r.length;n+=2){var i=Lo(r[n-4],r[n-3]),o=Uo(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=Bo(r[n-30],r[n-29]),l=Do(r[n-30],r[n-29]),h=r[n-32],c=r[n-31];r[n]=bo(i,o,s,a,u,l,h,c),r[n+1]=Ao(i,o,s,a,u,l,h,c)}},No.prototype._update=function(t,e){this._prepareBlock(t,e);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],h=this.h[7],c=this.h[8],f=this.h[9],d=this.h[10],p=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],v=this.h[15];ki(this.k.length===r.length);for(var b=0;b<r.length;b+=2){var A=g,w=v,E=Oo(c,f),T=Ro(c,f),I=ko(c,0,d,0,m),N=_o(0,f,0,p,0,y),M=this.k[b],k=this.k[b+1],_=r[b],S=r[b+1],P=wo(A,w,E,T,I,N,M,k,_,S),C=Eo(A,w,E,T,I,N,M,k,_,S);A=Co(n,i),w=xo(n,i),E=So(n,0,o,0,a),T=Po(0,i,0,s,0,u);var x=go(A,w,E,T),O=vo(A,w,E,T);g=m,v=y,m=d,y=p,d=c,p=f,c=go(l,h,P,C),f=vo(h,h,P,C),l=a,h=u,a=o,u=s,o=n,s=i,n=go(P,C,x,O),i=vo(P,C,x,O)}yo(this.h,0,n,i),yo(this.h,2,o,s),yo(this.h,4,a,u),yo(this.h,6,l,h),yo(this.h,8,c,f),yo(this.h,10,d,p),yo(this.h,12,m,y),yo(this.h,14,g,v)},No.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"big"):Oi.split32(this.h,"big")},Oi.inherits(Fo,Mo);var qo=Fo;Fo.blockSize=1024,Fo.outSize=384,Fo.hmacStrength=192,Fo.padLength=128,Fo.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h.slice(0,12),"big"):Oi.split32(this.h.slice(0,12),"big")};var Go={sha1:Yi,sha224:ho,sha256:uo,sha384:qo,sha512:Mo},Ho=Oi.rotl32,zo=Oi.sum32,jo=Oi.sum32_3,Qo=Oi.sum32_4,Ko=Di.BlockHash;function Vo(){if(!(this instanceof Vo))return new Vo;Ko.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}Oi.inherits(Vo,Ko);var Jo=Vo;function Yo(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function Wo(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function Xo(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}Vo.blockSize=512,Vo.outSize=160,Vo.hmacStrength=192,Vo.padLength=64,Vo.prototype._update=function(t,e){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,h=o,c=s,f=0;f<80;f++){var d=zo(Ho(Qo(r,Yo(f,n,i,o),t[Zo[f]+e],Wo(f)),ts[f]),s);r=s,s=o,o=Ho(i,10),i=n,n=d,d=zo(Ho(Qo(a,Yo(79-f,u,l,h),t[$o[f]+e],Xo(f)),es[f]),c),a=c,c=h,h=Ho(l,10),l=u,u=d}d=jo(this.h[1],i,h),this.h[1]=jo(this.h[2],o,c),this.h[2]=jo(this.h[3],s,a),this.h[3]=jo(this.h[4],r,u),this.h[4]=jo(this.h[0],n,l),this.h[0]=d},Vo.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"little"):Oi.split32(this.h,"little")};var Zo=[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],$o=[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],ts=[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],es=[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],rs={ripemd160:Jo};function ns(t,e,r){if(!(this instanceof ns))return new ns(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(Oi.toArray(e,r))}var is=ns;ns.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),ki(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},ns.prototype.update=function(t,e){return this.inner.update(t,e),this},ns.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)};var os=nr(function(t,e){var r=e;r.utils=Oi,r.common=Di,r.sha=Go,r.ripemd=rs,r.hmac=is,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),ss=os;function as(t){return"0x"+ss.sha256().update(Er(t)).digest("hex")}new mr("sha2/5.7.0");var us=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};function ls(t,e){return us(this,void 0,void 0,function*(){null==e&&(e={});const r={method:e.method||"GET",headers:e.headers||{},body:e.body||void 0};if(!0!==e.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=e.fetchOptions){const t=e.fetchOptions;t.mode&&(r.mode=t.mode),t.cache&&(r.cache=t.cache),t.credentials&&(r.credentials=t.credentials),t.redirect&&(r.redirect=t.redirect),t.referrer&&(r.referrer=t.referrer)}const n=yield fetch(t,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((t,e)=>{o[e.toLowerCase()]=t}):n.headers.keys().forEach(t=>{o[t.toLowerCase()]=n.headers.get(t)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Er(new Uint8Array(i))}})}var hs=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const cs=new mr("web/5.7.1");function fs(t){return new Promise(e=>{setTimeout(e,t)})}function ds(t,e){if(null==t)return null;if("string"==typeof t)return t;if(br(t)){if(e&&("text"===e.split("/")[0]||"application/json"===e.split(";")[0].trim()))try{return Mn(t)}catch(t){}return kr(t)}return t}function ps(t,e,r){let n=null;if(null!=e){n=Nn(e);const r="string"==typeof t?{url:t}:Yr(t);r.headers?0!==Object.keys(r.headers).filter(t=>"content-type"===t.toLowerCase()).length||(r.headers=Yr(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},t=r}return function(t,e,r){const n="object"==typeof t&&null!=t.throttleLimit?t.throttleLimit:12;cs.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof t?t.throttleCallback:null,o="object"==typeof t&&"number"==typeof t.throttleSlotInterval?t.throttleSlotInterval:100;cs.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof t&&!!t.errorPassThrough,a={};let u=null;const l={method:"GET"};let h=!1,c=12e4;if("string"==typeof t)u=t;else if("object"==typeof t){if(null!=t&&null!=t.url||cs.throwArgumentError("missing URL","connection.url",t),u=t.url,"number"==typeof t.timeout&&t.timeout>0&&(c=t.timeout),t.headers)for(const e in t.headers)a[e.toLowerCase()]={key:e,value:String(t.headers[e])},["if-none-match","if-modified-since"].indexOf(e.toLowerCase())>=0&&(h=!0);l.allowGzip=!!t.allowGzip,null!=t.user&&null!=t.password&&("https:"!==u.substring(0,6)&&!0!==t.allowInsecureAuthentication&&cs.throwError("basic authentication requires a secure https url",mr.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:t.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+dn(Nn(t.user+":"+t.password))}),null!=t.skipFetchSetup&&(l.skipFetchSetup=!!t.skipFetchSetup),null!=t.fetchOptions&&(l.fetchOptions=Yr(t.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),d=u?u.match(f):null;if(d)try{const t={statusCode:200,statusMessage:"OK",headers:{"content-type":d[1]||"text/plain"},body:d[2]?fn(d[3]):(p=d[3],Nn(p.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16)))))};let e=t.body;return r&&(e=r(t.body,t)),Promise.resolve(e)}catch(t){cs.throwError("processing response error",mr.errors.SERVER_ERROR,{body:ds(d[1],d[2]),error:t,requestBody:null,requestMethod:"GET",url:u})}var p;e&&(l.method="POST",l.body=e,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(e.length)}));const m={};Object.keys(a).forEach(t=>{const e=a[t];m[e.key]=e.value}),l.headers=m;const y=function(){let t=null;return{promise:new Promise(function(e,r){c&&(t=setTimeout(()=>{null!=t&&(t=null,r(cs.makeError("timeout",mr.errors.TIMEOUT,{requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,timeout:c,url:u})))},c))}),cancel:function(){null!=t&&(clearTimeout(t),t=null)}}}(),g=function(){return hs(this,void 0,void 0,function*(){for(let t=0;t<n;t++){let e=null;try{if(e=yield ls(u,l),t<n)if(301===e.statusCode||302===e.statusCode){if("GET"===l.method&&(e.headers.location||"").match(/^https:/)){u=e.headers.location;continue}}else if(429===e.statusCode){let r=!0;if(i&&(r=yield i(t,u)),r){let r=0;const n=e.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,t))),yield fs(r);continue}}}catch(t){e=t.response,null==e&&(y.cancel(),cs.throwError("missing response",mr.errors.SERVER_ERROR,{requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,serverError:t,url:u}))}let a=e.body;if(h&&304===e.statusCode?a=null:!s&&(e.statusCode<200||e.statusCode>=300)&&(y.cancel(),cs.throwError("bad response",mr.errors.SERVER_ERROR,{status:e.statusCode,headers:e.headers,body:ds(a,e.headers?e.headers["content-type"]:null),requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const t=yield r(a,e);return y.cancel(),t}catch(r){if(r.throttleRetry&&t<n){let e=!0;if(i&&(e=yield i(t,u)),e){const e=o*parseInt(String(Math.random()*Math.pow(2,t)));yield fs(e);continue}}y.cancel(),cs.throwError("processing response error",mr.errors.SERVER_ERROR,{body:ds(a,e.headers?e.headers["content-type"]:null),error:r,requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return cs.throwError("failed response",mr.errors.SERVER_ERROR,{requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(t,n,(t,e)=>{let n=null;if(null!=t)try{n=JSON.parse(Mn(t))}catch(e){cs.throwError("invalid JSON",mr.errors.SERVER_ERROR,{body:t,error:e})}return r&&(n=r(n,e)),n})}function ms(t,e){return e||(e={}),null==(e=Yr(e)).floor&&(e.floor=0),null==e.ceiling&&(e.ceiling=1e4),null==e.interval&&(e.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);e.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},e.timeout));const a=e.retryLimit;let u=0;!function i(){return t().then(function(t){if(void 0!==t)s()&&r(t);else if(e.oncePoll)e.oncePoll.once("poll",i);else if(e.onceBlock)e.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let t=e.interval*parseInt(String(Math.random()*Math.pow(2,u)));t<e.floor&&(t=e.floor),t>e.ceiling&&(t=e.ceiling),setTimeout(i,t)}return null},function(t){s()&&n(t)})}()})}for(var ys="qpzry9x8gf2tvdw0s3jn54khce6mua7l",gs={},vs=0;vs<ys.length;vs++){var bs=ys.charAt(vs);if(void 0!==gs[bs])throw new TypeError(bs+" is ambiguous");gs[bs]=vs}function As(t){var e=t>>25;return(33554431&t)<<5^996825010&-(e>>0&1)^642813549&-(e>>1&1)^513874426&-(e>>2&1)^1027748829&-(e>>3&1)^705979059&-(e>>4&1)}const ws="providers/5.7.2";function Es(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var Ts=Is;function Is(t,e){if(!t)throw new Error(e||"Assertion failed")}Is.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var Ns=Es(function(t,e){var r=e;function n(t){return 1===t.length?"0"+t:t}function i(t){for(var e="",r=0;r<t.length;r++)e+=n(t[r].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"!=typeof t){for(var n=0;n<t.length;n++)r[n]=0|t[n];return r}if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n<t.length;n+=2)r.push(parseInt(t[n]+t[n+1],16));else for(n=0;n<t.length;n++){var i=t.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(t,e){return"hex"===e?i(t):t}}),Ms=Es(function(t,e){var r=e;r.assert=Ts,r.toArray=Ns.toArray,r.zero2=Ns.zero2,r.toHex=Ns.toHex,r.encode=Ns.encode,r.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var i=1<<e+1,o=t.clone(),s=0;s<n.length;s++){var a,u=o.andln(i-1);o.isOdd()?o.isubn(a=u>(i>>1)-1?(i>>1)-u:u):a=0,n[s]=a,o.iushrn(1)}return n},r.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n,i=0,o=0;t.cmpn(-i)>0||e.cmpn(-o)>0;){var s,a,u=t.andln(3)+i&3,l=e.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=t.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=e.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),t.iushrn(1),e.iushrn(1)}return r},r.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new or(t,"hex","le")}}),ks=Ms.getNAF,_s=Ms.getJSF,Ss=Ms.assert;function Ps(t,e){this.type=t,this.p=new or(e.p,16),this.red=e.prime?or.red(e.prime):or.mont(this.p),this.zero=new or(0).toRed(this.red),this.one=new or(1).toRed(this.red),this.two=new or(2).toRed(this.red),this.n=e.n&&new or(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.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 r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var Cs=Ps;function xs(t,e){this.curve=t,this.type=e,this.precomputed=null}Ps.prototype.point=function(){throw new Error("Not implemented")},Ps.prototype.validate=function(){throw new Error("Not implemented")},Ps.prototype._fixedNafMul=function(t,e){Ss(t.precomputed);var r=t._getDoubles(),n=ks(e,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),h=this.jpoint(null,null,null),c=i;c>0;c--){for(o=0;o<a.length;o++)(s=a[o])===c?h=h.mixedAdd(r.points[o]):s===-c&&(h=h.mixedAdd(r.points[o].neg()));l=l.add(h)}return l.toP()},Ps.prototype._wnafMul=function(t,e){for(var r=4,n=t._getNAFPoints(r),i=n.points,o=ks(e,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];Ss(0!==l),s="affine"===t.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===t.type?s.toP():s},Ps.prototype._wnafMulAdd=function(t,e,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,h=this._wnafT3,c=0;for(o=0;o<n;o++){var f=(a=e[o])._getNAFPoints(t);u[o]=f.wnd,l[o]=f.points}for(o=n-1;o>=1;o-=2){var d=o-1,p=o;if(1===u[d]&&1===u[p]){var m=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(m[1]=e[d].add(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].add(e[p].neg())):(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=_s(r[d],r[p]);for(c=Math.max(g[0].length,c),h[d]=new Array(c),h[p]=new Array(c),s=0;s<c;s++)h[d][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],h[p][s]=0,l[d]=m}else h[d]=ks(r[d],u[d],this._bitLength),h[p]=ks(r[p],u[p],this._bitLength),c=Math.max(h[d].length,c),c=Math.max(h[p].length,c)}var v=this.jpoint(null,null,null),b=this._wnafT4;for(o=c;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)b[s]=0|h[s][o],0!==b[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,v=v.dblp(A),o<0)break;for(s=0;s<n;s++){var E=b[s];0!==E&&(E>0?a=l[s][E-1>>1]:E<0&&(a=l[s][-E-1>>1].neg()),v="affine"===a.type?v.mixedAdd(a):v.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?v:v.toP()},Ps.BasePoint=xs,xs.prototype.eq=function(){throw new Error("Not implemented")},xs.prototype.validate=function(){return this.curve.validate(this)},Ps.prototype.decodePoint=function(t,e){t=Ms.toArray(t,e);var r=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*r)return 6===t[0]?Ss(t[t.length-1]%2==0):7===t[0]&&Ss(t[t.length-1]%2==1),this.point(t.slice(1,1+r),t.slice(1+r,1+2*r));if((2===t[0]||3===t[0])&&t.length-1===r)return this.pointFromX(t.slice(1,1+r),3===t[0]);throw new Error("Unknown point format")},xs.prototype.encodeCompressed=function(t){return this.encode(t,!0)},xs.prototype._encode=function(t){var e=this.curve.p.byteLength(),r=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",e))},xs.prototype.encode=function(t,e){return Ms.encode(this._encode(e),t)},xs.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},xs.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},xs.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)n=n.dbl();r.push(n)}return{step:t,points:r}},xs.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],r=(1<<t)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)e[i]=e[i-1].add(n);return{wnd:t,points:e}},xs.prototype._getBeta=function(){return null},xs.prototype.dblp=function(t){for(var e=this,r=0;r<t;r++)e=e.dbl();return e};var Os=Es(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),Rs=Ms.assert;function Bs(t){Cs.call(this,"short",t),this.a=new or(t.a,16).toRed(this.red),this.b=new or(t.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(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Os(Bs,Cs);var Ds=Bs;function Ls(t,e,r,n){Cs.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new or(e,16),this.y=new or(r,16),n&&(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 Us(t,e,r,n){Cs.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new or(0)):(this.x=new or(e,16),this.y=new or(r,16),this.z=new or(n,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}Bs.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new or(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new or(t.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?r=i[0]:Rs(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(e)))}return{beta:e,lambda:r,basis:t.basis?t.basis.map(function(t){return{a:new or(t.a,16),b:new or(t.b,16)}}):this._getEndoBasis(r)}}},Bs.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:or.mont(t),r=new or(2).toRed(e).redInvm(),n=r.redNeg(),i=new or(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},Bs.prototype._getEndoBasis=function(t){for(var e,r,n,i,o,s,a,u,l,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=t,f=this.n.clone(),d=new or(1),p=new or(0),m=new or(0),y=new or(1),g=0;0!==c.cmpn(0);){var v=f.div(c);u=f.sub(v.mul(c)),l=m.sub(v.mul(d));var b=y.sub(v.mul(p));if(!n&&u.cmp(h)<0)e=a.neg(),r=d,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,f=c,c=u,m=d,d=l,y=p,p=b}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=e,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},Bs.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:t.sub(s).sub(a),k2:u.add(l).neg()}},Bs.prototype.pointFromX=function(t,e){(t=new or(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(t,n)},Bs.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},Bs.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var s=this._endoSplit(e[o]),a=t[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),h=0;h<2*o;h++)n[h]=null,i[h]=null;return l},Os(Ls,Cs.BasePoint),Bs.prototype.point=function(t,e,r){return new Ls(this,t,e,r)},Bs.prototype.pointFromJSON=function(t,e){return Ls.fromJSON(this,t,e)},Ls.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var r=this.curve,n=function(t){return r.point(t.x.redMul(r.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(n)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(n)}}}return e}},Ls.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]},Ls.fromJSON=function(t,e,r){"string"==typeof e&&(e=JSON.parse(e));var n=t.point(e[0],e[1],r);if(!e[2])return n;function i(e){return t.point(e[0],e[1],r)}var o=e[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},Ls.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)+">"},Ls.prototype.isInfinity=function(){return this.inf},Ls.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Ls.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},Ls.prototype.getX=function(){return this.x.fromRed()},Ls.prototype.getY=function(){return this.y.fromRed()},Ls.prototype.mul=function(t){return t=new or(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},Ls.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},Ls.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},Ls.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},Ls.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},Ls.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Os(Us,Cs.BasePoint),Bs.prototype.jpoint=function(t,e,r){return new Us(this,t,e,r)},Us.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},Us.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Us.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),s=t.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),h=l.redMul(a),c=n.redMul(l),f=u.redSqr().redIAdd(h).redISub(c).redISub(c),d=u.redMul(c.redISub(f)).redISub(o.redMul(h)),p=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(f,d,p)},Us.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),h=r.redMul(u),c=a.redSqr().redIAdd(l).redISub(h).redISub(h),f=a.redMul(h.redISub(c)).redISub(i.redMul(l)),d=this.z.redMul(s);return this.curve.jpoint(c,f,d)},Us.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var r=this;for(e=0;e<t;e++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(e=0;e<t;e++){var h=o.redSqr(),c=l.redSqr(),f=c.redSqr(),d=h.redAdd(h).redIAdd(h).redIAdd(n.redMul(u)),p=o.redMul(c),m=d.redSqr().redISub(p.redAdd(p)),y=p.redISub(m),g=d.redMul(y);g=g.redIAdd(g).redISub(f);var v=l.redMul(a);e+1<t&&(u=u.redMul(f)),o=m,a=v,l=g}return this.curve.jpoint(o,l.redMul(i),a)},Us.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Us.prototype._zeroDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=u,e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.x.redSqr(),c=this.y.redSqr(),f=c.redSqr(),d=this.x.redAdd(c).redSqr().redISub(h).redISub(f);d=d.redIAdd(d);var p=h.redAdd(h).redIAdd(h),m=p.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),t=m.redISub(d).redISub(d),e=p.redMul(d.redISub(t)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(t,e,r)},Us.prototype._threeDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);t=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.z.redSqr(),c=this.y.redSqr(),f=this.x.redMul(c),d=this.x.redSub(h).redMul(this.x.redAdd(h));d=d.redAdd(d).redIAdd(d);var p=f.redIAdd(f),m=(p=p.redIAdd(p)).redAdd(p);t=d.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(c).redISub(h);var y=c.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),e=d.redMul(p.redISub(t)).redISub(y)}return this.curve.jpoint(t,e,r)},Us.prototype._dbl=function(){var t=this.curve.a,e=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=e.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),u=e.redAdd(e),l=(u=u.redIAdd(u)).redMul(s),h=a.redSqr().redISub(l.redAdd(l)),c=l.redISub(h),f=s.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=a.redMul(c).redISub(f),p=r.redAdd(r).redMul(n);return this.curve.jpoint(h,d,p)},Us.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr(),n=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),s=this.x.redAdd(e).redSqr().redISub(t).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),h=e.redMul(l);h=(h=h.redIAdd(h)).redIAdd(h);var c=this.x.redMul(a).redISub(h);c=(c=c.redIAdd(c)).redIAdd(c);var f=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(c,f,d)},Us.prototype.mul=function(t,e){return t=new or(t,e),this.curve._wnafMul(this,t)},Us.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),r=t.z.redSqr();if(0!==this.x.redMul(r).redISub(t.x.redMul(e)).cmpn(0))return!1;var n=e.redMul(this.z),i=r.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(n)).cmpn(0)},Us.prototype.eqXToP=function(t){var e=this.z.redSqr(),r=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(r))return!0;for(var n=t.clone(),i=this.curve.redN.redMul(e);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},Us.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)+">"},Us.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Fs=Es(function(t,e){var r=e;r.base=Cs,r.short=Ds,r.mont=null,r.edwards=null}),qs=Es(function(t,e){var r,n=e,i=Ms.assert;function o(t){this.curve="short"===t.type?new Fs.short(t):"edwards"===t.type?new Fs.edwards(t):new Fs.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(t,e){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var r=new o(e);return Object.defineProperty(n,t,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("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:ss.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("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:ss.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("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:ss.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("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:ss.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"]}),s("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:ss.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"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:ss.sha256,gRed:!1,g:["9"]}),s("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:ss.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(t){r=void 0}s("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:ss.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Gs(t){if(!(this instanceof Gs))return new Gs(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=Ns.toArray(t.entropy,t.entropyEnc||"hex"),r=Ns.toArray(t.nonce,t.nonceEnc||"hex"),n=Ns.toArray(t.pers,t.persEnc||"hex");Ts(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}var Hs=Gs;Gs.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);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(n),this._reseed=1,this.reseedInterval=281474976710656},Gs.prototype._hmac=function(){return new ss.hmac(this.hash,this.K)},Gs.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},Gs.prototype.reseed=function(t,e,r,n){"string"!=typeof e&&(n=r,r=e,e=null),t=Ns.toArray(t,e),r=Ns.toArray(r,n),Ts(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},Gs.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=Ns.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<t;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,t);return this._update(r),this._reseed++,Ns.encode(o,e)};var zs=Ms.assert;function js(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}var Qs=js;js.fromPublic=function(t,e,r){return e instanceof js?e:new js(t,{pub:e,pubEnc:r})},js.fromPrivate=function(t,e,r){return e instanceof js?e:new js(t,{priv:e,privEnc:r})},js.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.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"}},js.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},js.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},js.prototype._importPrivate=function(t,e){this.priv=new or(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},js.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?zs(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||zs(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},js.prototype.derive=function(t){return t.validate()||zs(t.validate(),"public point not validated"),t.mul(this.priv).getX()},js.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},js.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},js.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ks=Ms.assert;function Vs(t,e){if(t instanceof Vs)return t;this._importDER(t,e)||(Ks(t.r&&t.s,"Signature without r or s"),this.r=new or(t.r,16),this.s=new or(t.s,16),this.recoveryParam=void 0===t.recoveryParam?null:t.recoveryParam)}var Js=Vs;function Ys(){this.place=0}function Ws(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,s=e.place;o<n;o++,s++)i<<=8,i|=t[s],i>>>=0;return!(i<=127)&&(e.place=s,i)}function Xs(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e<r;)e++;return 0===e?t:t.slice(e)}function Zs(t,e){if(e<128)t.push(e);else{var r=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}Vs.prototype._importDER=function(t,e){t=Ms.toArray(t,e);var r=new Ys;if(48!==t[r.place++])return!1;var n=Ws(t,r);if(!1===n)return!1;if(n+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var i=Ws(t,r);if(!1===i)return!1;var o=t.slice(r.place,i+r.place);if(r.place+=i,2!==t[r.place++])return!1;var s=Ws(t,r);if(!1===s)return!1;if(t.length!==s+r.place)return!1;var a=t.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new or(o),this.s=new or(a),this.recoveryParam=null,!0},Vs.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=Xs(e),r=Xs(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Zs(n,e.length),(n=n.concat(e)).push(2),Zs(n,r.length);var i=n.concat(r),o=[48];return Zs(o,i.length),o=o.concat(i),Ms.encode(o,t)};var $s=function(){throw new Error("unsupported")},ta=Ms.assert;function ea(t){if(!(this instanceof ea))return new ea(t);"string"==typeof t&&(ta(Object.prototype.hasOwnProperty.call(qs,t),"Unknown curve "+t),t=qs[t]),t instanceof qs.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var ra=ea;ea.prototype.keyPair=function(t){return new Qs(this,t)},ea.prototype.keyFromPrivate=function(t,e){return Qs.fromPrivate(this,t,e)},ea.prototype.keyFromPublic=function(t,e){return Qs.fromPublic(this,t,e)},ea.prototype.genKeyPair=function(t){t||(t={});for(var e=new Hs({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||$s(),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new or(2));;){var i=new or(e.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},ea.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},ea.prototype.sign=function(t,e,r,n){"object"==typeof r&&(n=r,r=null),n||(n={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new or(t,16));for(var i=this.n.byteLength(),o=e.getPrivate().toArray("be",i),s=t.toArray("be",i),a=new Hs({hash:this.hash,entropy:o,nonce:s,pers:n.pers,persEnc:n.persEnc||"utf8"}),u=this.n.sub(new or(1)),l=0;;l++){var h=n.k?n.k(l):new or(a.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(u)>=0)){var c=this.g.mul(h);if(!c.isInfinity()){var f=c.getX(),d=f.umod(this.n);if(0!==d.cmpn(0)){var p=h.invm(this.n).mul(d.mul(e.getPrivate()).iadd(t));if(0!==(p=p.umod(this.n)).cmpn(0)){var m=(c.getY().isOdd()?1:0)|(0!==f.cmp(d)?2:0);return n.canonical&&p.cmp(this.nh)>0&&(p=this.n.sub(p),m^=1),new Js({r:d,s:p,recoveryParam:m})}}}}}},ea.prototype.verify=function(t,e,r,n){t=this._truncateToN(new or(t,16)),r=this.keyFromPublic(r,n);var i=(e=new Js(e,"hex")).r,o=e.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var s,a=o.invm(this.n),u=a.mul(t).umod(this.n),l=a.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,r.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(u,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},ea.prototype.recoverPubKey=function(t,e,r,n){ta((3&r)===r,"The recovery param is more than two bits"),e=new Js(e,n);var i=this.n,o=new or(t),s=e.r,a=e.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var h=e.r.invm(i),c=i.sub(o).mul(h).umod(i),f=a.mul(h).umod(i);return this.g.mulAdd(c,s,f)},ea.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new Js(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var na=Es(function(t,e){var r=e;r.version="6.5.4",r.utils=Ms,r.rand=function(){throw new Error("unsupported")},r.curve=Fs,r.curves=qs,r.ec=ra,r.eddsa=null}).ec;const ia=new mr("signing-key/5.7.0");let oa=null;function sa(){return oa||(oa=new na("secp256k1")),oa}class aa{constructor(t){Kr(this,"curve","secp256k1"),Kr(this,"privateKey",kr(t)),32!==_r(this.privateKey)&&ia.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const e=sa().keyFromPrivate(Er(this.privateKey));Kr(this,"publicKey","0x"+e.getPublic(!1,"hex")),Kr(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),Kr(this,"_isSigningKey",!0)}_addPoint(t){const e=sa().keyFromPublic(Er(this.publicKey)),r=sa().keyFromPublic(Er(t));return"0x"+e.pub.add(r.pub).encodeCompressed("hex")}signDigest(t){const e=sa().keyFromPrivate(Er(this.privateKey)),r=Er(t);32!==r.length&&ia.throwArgumentError("bad digest length","digest",t);const n=e.sign(r,{canonical:!0});return Or({recoveryParam:n.recoveryParam,r:xr("0x"+n.r.toString(16),32),s:xr("0x"+n.s.toString(16),32)})}computeSharedSecret(t){const e=sa().keyFromPrivate(Er(this.privateKey)),r=sa().keyFromPublic(Er(ua(t)));return xr("0x"+e.derive(r.getPublic()).toString(16),32)}static isSigningKey(t){return!(!t||!t._isSigningKey)}}function ua(t,e){const r=Er(t);if(32===r.length){const t=new aa(r);return e?"0x"+sa().keyFromPrivate(r).getPublic(!0,"hex"):t.publicKey}return 33===r.length?e?kr(r):"0x"+sa().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?e?"0x"+sa().keyFromPublic(r).getPublic(!0,"hex"):kr(r):ia.throwArgumentError("invalid public or private key","key","[REDACTED]")}const la=new mr("transactions/5.7.0");var ha;function ca(t){return"0x"===t?null:ci(t)}function fa(t){return"0x"===t?yn:Fr.from(t)}function da(t,e){return function(t){return ci(Sr(vn(Sr(ua(t),1)),12))}(function(t,e){const r=Or(e),n={r:Er(r.r),s:Er(r.s)};return"0x"+sa().recoverPubKey(Er(t),n,r.recoveryParam).encode("hex",!1)}(Er(t),e))}function pa(t,e){const r=Ir(Fr.from(t).toHexString());return r.length>32&&la.throwArgumentError("invalid length for "+e,"transaction:"+e,t),r}function ma(t,e){return{address:ci(t),storageKeys:(e||[]).map((e,r)=>(32!==_r(e)&&la.throwArgumentError("invalid access list storageKey",`accessList[${t}:${r}]`,e),e.toLowerCase()))}}function ya(t){if(Array.isArray(t))return t.map((t,e)=>Array.isArray(t)?(t.length>2&&la.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${e}]`,t),ma(t[0],t[1])):ma(t.address,t.storageKeys));const e=Object.keys(t).map(e=>{const r=t[e].reduce((t,e)=>(t[e]=!0,t),{});return ma(e,Object.keys(r).sort())});return e.sort((t,e)=>t.address.localeCompare(e.address)),e}function ga(t){return ya(t).map(t=>[t.address,t.storageKeys])}function va(t,e){if(null!=t.gasPrice){const e=Fr.from(t.gasPrice),r=Fr.from(t.maxFeePerGas||0);e.eq(r)||la.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:e,maxFeePerGas:r})}const r=[pa(t.chainId||0,"chainId"),pa(t.nonce||0,"nonce"),pa(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),pa(t.maxFeePerGas||0,"maxFeePerGas"),pa(t.gasLimit||0,"gasLimit"),null!=t.to?ci(t.to):"0x",pa(t.value||0,"value"),t.data||"0x",ga(t.accessList||[])];if(e){const t=Or(e);r.push(pa(t.recoveryParam,"recoveryParam")),r.push(Ir(t.r)),r.push(Ir(t.s))}return Pr(["0x02",ni(r)])}function ba(t,e){const r=[pa(t.chainId||0,"chainId"),pa(t.nonce||0,"nonce"),pa(t.gasPrice||0,"gasPrice"),pa(t.gasLimit||0,"gasLimit"),null!=t.to?ci(t.to):"0x",pa(t.value||0,"value"),t.data||"0x",ga(t.accessList||[])];if(e){const t=Or(e);r.push(pa(t.recoveryParam,"recoveryParam")),r.push(Ir(t.r)),r.push(Ir(t.s))}return Pr(["0x01",ni(r)])}function Aa(t,e,r){try{const r=fa(e[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");t.v=r}catch(t){la.throwArgumentError("invalid v for transaction type: 1","v",e[0])}t.r=xr(e[1],32),t.s=xr(e[2],32);try{const e=vn(r(t));t.from=da(e,{r:t.r,s:t.s,recoveryParam:t.v})}catch(t){}}!function(t){t[t.legacy=0]="legacy",t[t.eip2930=1]="eip2930",t[t.eip1559=2]="eip1559"}(ha||(ha={}));const wa=new mr(ws);class Ea{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const t={},e=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return t.transaction={hash:o,type:u,accessList:Ea.allowNull(this.accessList.bind(this),null),blockHash:Ea.allowNull(o,null),blockNumber:Ea.allowNull(a,null),transactionIndex:Ea.allowNull(a,null),confirmations:Ea.allowNull(a,null),from:e,gasPrice:Ea.allowNull(r),maxPriorityFeePerGas:Ea.allowNull(r),maxFeePerGas:Ea.allowNull(r),gasLimit:r,to:Ea.allowNull(e,null),value:r,nonce:a,data:i,r:Ea.allowNull(this.uint256),s:Ea.allowNull(this.uint256),v:Ea.allowNull(a),creates:Ea.allowNull(e,null),raw:Ea.allowNull(i)},t.transactionRequest={from:Ea.allowNull(e),nonce:Ea.allowNull(a),gasLimit:Ea.allowNull(r),gasPrice:Ea.allowNull(r),maxPriorityFeePerGas:Ea.allowNull(r),maxFeePerGas:Ea.allowNull(r),to:Ea.allowNull(e),value:Ea.allowNull(r),data:Ea.allowNull(t=>this.data(t,!0)),type:Ea.allowNull(a),accessList:Ea.allowNull(this.accessList.bind(this),null)},t.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:e,topics:Ea.arrayOf(o),data:i,logIndex:a,blockHash:o},t.receipt={to:Ea.allowNull(this.address,null),from:Ea.allowNull(this.address,null),contractAddress:Ea.allowNull(e,null),transactionIndex:a,root:Ea.allowNull(s),gasUsed:r,logsBloom:Ea.allowNull(i),blockHash:o,transactionHash:o,logs:Ea.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:Ea.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:Ea.allowNull(r),status:Ea.allowNull(a),type:u},t.block={hash:Ea.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:Ea.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:Ea.allowNull(e),extraData:i,transactions:Ea.allowNull(Ea.arrayOf(o)),baseFeePerGas:Ea.allowNull(r)},t.blockWithTransactions=Yr(t.block),t.blockWithTransactions.transactions=Ea.allowNull(Ea.arrayOf(this.transactionResponse.bind(this))),t.filter={fromBlock:Ea.allowNull(n,void 0),toBlock:Ea.allowNull(n,void 0),blockHash:Ea.allowNull(o,void 0),address:Ea.allowNull(e,void 0),topics:Ea.allowNull(this.topics.bind(this),void 0)},t.filterLog={blockNumber:Ea.allowNull(a),blockHash:Ea.allowNull(o),transactionIndex:a,removed:Ea.allowNull(this.boolean.bind(this)),address:e,data:Ea.allowFalsish(i,"0x"),topics:Ea.arrayOf(o),transactionHash:o,logIndex:a},t}accessList(t){return ya(t||[])}number(t){return"0x"===t?0:Fr.from(t).toNumber()}type(t){return"0x"===t||null==t?0:Fr.from(t).toNumber()}bigNumber(t){return Fr.from(t)}boolean(t){if("boolean"==typeof t)return t;if("string"==typeof t){if("true"===(t=t.toLowerCase()))return!0;if("false"===t)return!1}throw new Error("invalid boolean - "+t)}hex(t,e){return"string"==typeof t&&(e||"0x"===t.substring(0,2)||(t="0x"+t),Nr(t))?t.toLowerCase():wa.throwArgumentError("invalid hash","value",t)}data(t,e){const r=this.hex(t,e);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+t);return r}address(t){return ci(t)}callAddress(t){if(!Nr(t,32))return null;const e=ci(Sr(t,12));return"0x0000000000000000000000000000000000000000"===e?null:e}contractAddress(t){return function(t){let e=null;try{e=ci(t.from)}catch(e){ai.throwArgumentError("missing from address","transaction",t)}return ci(Sr(vn(ni([e,Ir(Er(Fr.from(t.nonce).toHexString()))])),12))}(t)}blockTag(t){if(null==t)return"latest";if("earliest"===t)return"0x0";switch(t){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return t}if("number"==typeof t||Nr(t))return Cr(t);throw new Error("invalid blockTag")}hash(t,e){const r=this.hex(t,e);return 32!==_r(r)?wa.throwArgumentError("invalid hash","value",t):r}difficulty(t){if(null==t)return null;const e=Fr.from(t);try{return e.toNumber()}catch(t){}return null}uint256(t){if(!Nr(t))throw new Error("invalid uint256");return xr(t,32)}_block(t,e){null!=t.author&&null==t.miner&&(t.miner=t.author);const r=null!=t._difficulty?t._difficulty:t.difficulty,n=Ea.check(e,t);return n._difficulty=null==r?null:Fr.from(r),n}block(t){return this._block(t,this.formats.block)}blockWithTransactions(t){return this._block(t,this.formats.blockWithTransactions)}transactionRequest(t){return Ea.check(this.formats.transactionRequest,t)}transactionResponse(t){null!=t.gas&&null==t.gasLimit&&(t.gasLimit=t.gas),t.to&&Fr.from(t.to).isZero()&&(t.to="0x0000000000000000000000000000000000000000"),null!=t.input&&null==t.data&&(t.data=t.input),null==t.to&&null==t.creates&&(t.creates=this.contractAddress(t)),1!==t.type&&2!==t.type||null!=t.accessList||(t.accessList=[]);const e=Ea.check(this.formats.transaction,t);if(null!=t.chainId){let r=t.chainId;Nr(r)&&(r=Fr.from(r).toNumber()),e.chainId=r}else{let r=t.networkId;null==r&&null==e.v&&(r=t.chainId),Nr(r)&&(r=Fr.from(r).toNumber()),"number"!=typeof r&&null!=e.v&&(r=(e.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),e.chainId=r}return e.blockHash&&"x"===e.blockHash.replace(/0/g,"")&&(e.blockHash=null),e}transaction(t){return function(t){const e=Er(t);if(e[0]>127)return function(t){const e=si(t);9!==e.length&&6!==e.length&&la.throwArgumentError("invalid raw transaction","rawTransaction",t);const r={nonce:fa(e[0]).toNumber(),gasPrice:fa(e[1]),gasLimit:fa(e[2]),to:ca(e[3]),value:fa(e[4]),data:e[5],chainId:0};if(6===e.length)return r;try{r.v=Fr.from(e[6]).toNumber()}catch(t){return r}if(r.r=xr(e[7],32),r.s=xr(e[8],32),Fr.from(r.r).isZero()&&Fr.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=e.slice(0,6);0!==r.chainId&&(i.push(kr(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=vn(ni(i));try{r.from=da(o,{r:kr(r.r),s:kr(r.s),recoveryParam:n})}catch(t){}r.hash=vn(t)}return r.type=null,r}(e);switch(e[0]){case 1:return function(t){const e=si(t.slice(1));8!==e.length&&11!==e.length&&la.throwArgumentError("invalid component count for transaction type: 1","payload",kr(t));const r={type:1,chainId:fa(e[0]).toNumber(),nonce:fa(e[1]).toNumber(),gasPrice:fa(e[2]),gasLimit:fa(e[3]),to:ca(e[4]),value:fa(e[5]),data:e[6],accessList:ya(e[7])};return 8===e.length||(r.hash=vn(t),Aa(r,e.slice(8),ba)),r}(e);case 2:return function(t){const e=si(t.slice(1));9!==e.length&&12!==e.length&&la.throwArgumentError("invalid component count for transaction type: 2","payload",kr(t));const r=fa(e[2]),n=fa(e[3]),i={type:2,chainId:fa(e[0]).toNumber(),nonce:fa(e[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:fa(e[4]),to:ca(e[5]),value:fa(e[6]),data:e[7],accessList:ya(e[8])};return 9===e.length||(i.hash=vn(t),Aa(i,e.slice(9),va)),i}(e)}return la.throwError(`unsupported transaction type: ${e[0]}`,mr.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:e[0]})}(t)}receiptLog(t){return Ea.check(this.formats.receiptLog,t)}receipt(t){const e=Ea.check(this.formats.receipt,t);if(null!=e.root)if(e.root.length<=4){const t=Fr.from(e.root).toNumber();0===t||1===t?(null!=e.status&&e.status!==t&&wa.throwArgumentError("alt-root-status/status mismatch","value",{root:e.root,status:e.status}),e.status=t,delete e.root):wa.throwArgumentError("invalid alt-root-status","value.root",e.root)}else 66!==e.root.length&&wa.throwArgumentError("invalid root hash","value.root",e.root);return null!=e.status&&(e.byzantium=!0),e}topics(t){return Array.isArray(t)?t.map(t=>this.topics(t)):null!=t?this.hash(t,!0):null}filter(t){return Ea.check(this.formats.filter,t)}filterLog(t){return Ea.check(this.formats.filterLog,t)}static check(t,e){const r={};for(const n in t)try{const i=t[n](e[n]);void 0!==i&&(r[n]=i)}catch(t){throw t.checkKey=n,t.checkValue=e[n],t}return r}static allowNull(t,e){return function(r){return null==r?e:t(r)}}static allowFalsish(t,e){return function(r){return r?t(r):e}}static arrayOf(t){return function(e){if(!Array.isArray(e))throw new Error("not an array");const r=[];return e.forEach(function(e){r.push(t(e))}),r}}}var Ta=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Ia=new mr(ws);function Na(t){return null==t?"null":(32!==_r(t)&&Ia.throwArgumentError("invalid topic","topic",t),t.toLowerCase())}function Ma(t){for(t=t.slice();t.length>0&&null==t[t.length-1];)t.pop();return t.map(t=>{if(Array.isArray(t)){const e={};t.forEach(t=>{e[Na(t)]=!0});const r=Object.keys(e);return r.sort(),r.join("|")}return Na(t)}).join("&")}function ka(t){if("string"==typeof t){if(32===_r(t=t.toLowerCase()))return"tx:"+t;if(-1===t.indexOf(":"))return t}else{if(Array.isArray(t))return"filter:*:"+Ma(t);if(rn.isForkEvent(t))throw Ia.warn("not implemented"),new Error("not implemented");if(t&&"object"==typeof t)return"filter:"+(t.address||"*")+":"+Ma(t.topics||[])}throw new Error("invalid event - "+t)}function _a(){return(new Date).getTime()}function Sa(t){return new Promise(e=>{setTimeout(e,t)})}const Pa=["block","network","pending","poll"];class Ca{constructor(t,e,r){Kr(this,"tag",t),Kr(this,"listener",e),Kr(this,"once",r),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 t=this.tag.split(":");return"tx"!==t[0]?null:t[1]}get filter(){const t=this.tag.split(":");if("filter"!==t[0])return null;const e=t[1],r=""===(n=t[2])?[]:n.split(/&/g).map(t=>{if(""===t)return[];const e=t.split("|").map(t=>"null"===t?null:t);return 1===e.length?e[0]:e});var n;const i={};return r.length>0&&(i.topics=r),e&&"*"!==e&&(i.address=e),i}pollable(){return this.tag.indexOf(":")>=0||Pa.indexOf(this.tag)>=0}}const xa={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 Oa(t){return xr(Fr.from(t).toHexString(),32)}function Ra(t){return mn.encode(Tr([t,Sr(as(as(t)),0,4)]))}const Ba=new RegExp("^(ipfs)://(.*)$","i"),Da=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Ba,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function La(t,e){try{return Mn(Ua(t,e))}catch(t){}return null}function Ua(t,e){if("0x"===t)return null;const r=Fr.from(Sr(t,e,e+32)).toNumber(),n=Fr.from(Sr(t,r,r+32)).toNumber();return Sr(t,r+32,r+32+n)}function Fa(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):Ia.throwArgumentError("unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}function qa(t){const e=Er(t);if(e.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(e,32-e.length),r}function Ga(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}function Ha(t){const e=[];let r=0;for(let n=0;n<t.length;n++)e.push(null),r+=32;for(let n=0;n<t.length;n++){const i=Er(t[n]);e[n]=qa(r),e.push(qa(i.length)),e.push(Ga(i)),r+=32+32*Math.ceil(i.length/32)}return Pr(e)}class za{constructor(t,e,r,n){Kr(this,"provider",t),Kr(this,"name",r),Kr(this,"address",t.formatter.address(e)),Kr(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(t=>Fr.from(t).eq(1)).catch(t=>{if(t.code===mr.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,t})),this._supportsEip2544}_fetch(t,e){return Ta(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:Pr([t,Zn(this.name),e||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=Pr(["0x9061b923",Ha([(i=this.name,kr(Tr(Xn(i).map(t=>{if(t.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const e=new Uint8Array(t.length+1);return e.set(t,1),e[0]=e.length-1,e})))+"00"),r.data])]));try{let t=yield this.provider.call(r);return Er(t).length%32==4&&Ia.throwError("resolver threw error",mr.errors.CALL_EXCEPTION,{transaction:r,data:t}),n&&(t=Ua(t,0)),t}catch(t){if(t.code===mr.errors.CALL_EXCEPTION)return null;throw t}})}_fetchBytes(t,e){return Ta(this,void 0,void 0,function*(){const r=yield this._fetch(t,e);return null!=r?Ua(r,0):null})}_getAddress(t,e){const r=xa[String(t)];if(null==r&&Ia.throwError(`unsupported coin type: ${t}`,mr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`}),"eth"===r.ilk)return this.provider.formatter.address(e);const n=Er(e);if(null!=r.p2pkh){const t=e.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return Ra(Tr([[r.p2pkh],"0x"+t[2]]))}}if(null!=r.p2sh){const t=e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return Ra(Tr([[r.p2sh],"0x"+t[2]]))}}if(null!=r.prefix){const t=n[1];let e=n[0];if(0===e?20!==t&&32!==t&&(e=-1):e=-1,e>=0&&n.length===2+t&&t>=1&&t<=75){const t=function(t){var e=function(t,e,r,n){for(var i=0,o=0,s=[],a=0;a<t.length;++a)for(i=i<<8|t[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(t);if(Array.isArray(e))return e;throw new Error(e)}(n.slice(2));return t.unshift(e),function(t,e,r){if(t.length+7+e.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(t){for(var e=1,r=0;r<t.length;++r){var n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=As(e)^n>>5}for(e=As(e),r=0;r<t.length;++r){var i=t.charCodeAt(r);e=As(e)^31&i}return e}(t=t.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=t+"1",o=0;o<e.length;++o){var s=e[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=As(n)^s,i+=ys.charAt(s)}for(o=0;o<6;++o)n=As(n);for(n^=1,o=0;o<6;++o)i+=ys.charAt(n>>5*(5-o)&31);return i}(r.prefix,t)}}return null}getAddress(t){return Ta(this,void 0,void 0,function*(){if(null==t&&(t=60),60===t)try{const t=yield this._fetch("0x3b3b57de");return"0x"===t||"0x0000000000000000000000000000000000000000000000000000000000000000"===t?null:this.provider.formatter.callAddress(t)}catch(t){if(t.code===mr.errors.CALL_EXCEPTION)return null;throw t}const e=yield this._fetchBytes("0xf1cb7e06",Oa(t));if(null==e||"0x"===e)return null;const r=this._getAddress(t,e);return null==r&&Ia.throwError("invalid or unsupported coin data",mr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`,coinType:t,data:e}),r})}getAvatar(){return Ta(this,void 0,void 0,function*(){const t=[{type:"name",content:this.name}];try{const e=yield this.getText("avatar");if(null==e)return null;for(let r=0;r<Da.length;r++){const n=e.match(Da[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return t.push({type:"url",content:e}),{linkage:t,url:e};case"data":return t.push({type:"data",content:e}),{linkage:t,url:e};case"ipfs":return t.push({type:"ipfs",content:e}),{linkage:t,url:Fa(e)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";t.push({type:i,content:e});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=xr(Fr.from(s[1]).toHexString(),32);if("erc721"===i){const e=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:Pr(["0x6352211e",u])}));if(o!==e)return null;t.push({type:"owner",content:e})}else if("erc1155"===i){const e=Fr.from(yield this.provider.call({to:a,data:Pr(["0x00fdd58e",xr(o,32),u])}));if(e.isZero())return null;t.push({type:"balance",content:e.toString()})}const l={to:this.provider.formatter.address(s[0]),data:Pr([r,u])};let h=La(yield this.provider.call(l),0);if(null==h)return null;t.push({type:"metadata-url-base",content:h}),"erc1155"===i&&(h=h.replace("{id}",u.substring(2)),t.push({type:"metadata-url-expanded",content:h})),h.match(/^ipfs:/i)&&(h=Fa(h)),t.push({type:"metadata-url",content:h});const c=yield ps(h);if(!c)return null;t.push({type:"metadata",content:JSON.stringify(c)});let f=c.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(Ba))return null;t.push({type:"url-ipfs",content:f}),f=Fa(f)}return t.push({type:"url",content:f}),{linkage:t,url:f}}}}}catch(t){}return null})}getContentHash(){return Ta(this,void 0,void 0,function*(){const t=yield this._fetchBytes("0xbc1c58d1");if(null==t||"0x"===t)return null;const e=t.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const t=parseInt(e[3],16);if(e[4].length===2*t)return"ipfs://"+mn.encode("0x"+e[1])}const r=t.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const t=parseInt(r[3],16);if(r[4].length===2*t)return"ipns://"+mn.encode("0x"+r[1])}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=t.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const t={"=":"","+":"-","/":"_"};return"sia://"+dn("0x"+i[1]).replace(/[=+\/]/g,e=>t[e])}return Ia.throwError("invalid or unsupported content hash data",mr.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:t})})}getText(t){return Ta(this,void 0,void 0,function*(){let e=Nn(t);e=Tr([Oa(64),Oa(e.length),e]),e.length%32!=0&&(e=Tr([e,xr("0x",32-t.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",kr(e));return null==r||"0x"===r?null:Mn(r)})}}let ja=null,Qa=1;class Ka extends nn{constructor(t){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Kr(this,"anyNetwork","any"===t),this.anyNetwork&&(t=this.detectNetwork()),t instanceof Promise)this._networkPromise=t,t.catch(t=>{}),this._ready().catch(t=>{});else{const e=Vr(new.target,"getNetwork")(t);e?(Kr(this,"_network",e),this.emit("network",e,null)):Ia.throwArgumentError("invalid network","network",t)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Ta(this,void 0,void 0,function*(){if(null==this._network){let t=null;if(this._networkPromise)try{t=yield this._networkPromise}catch(t){}null==t&&(t=yield this.detectNetwork()),t||Ia.throwError("no network detected",mr.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=t:Kr(this,"_network",t),this.emit("network",t,null))}return this._network})}get ready(){return ms(()=>this._ready().then(t=>t,t=>{if(t.code!==mr.errors.NETWORK_ERROR||"noNetwork"!==t.event)throw t}))}static getFormatter(){return null==ja&&(ja=new Ea),ja}static getNetwork(t){return function(t){if(null==t)return null;if("number"==typeof t){for(const e in cn){const r=cn[e];if(r.chainId===t)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:t,name:"unknown"}}if("string"==typeof t){const e=cn[t];return null==e?null:{name:e.name,chainId:e.chainId,ensAddress:e.ensAddress,_defaultProvider:e._defaultProvider||null}}const e=cn[t.name];if(!e)return"number"!=typeof t.chainId&&on.throwArgumentError("invalid network chainId","network",t),t;0!==t.chainId&&t.chainId!==e.chainId&&on.throwArgumentError("network chainId mismatch","network",t);let r=t._defaultProvider||null;var n;return null==r&&e._defaultProvider&&(r=(n=e._defaultProvider)&&"function"==typeof n.renetwork?e._defaultProvider.renetwork(t):e._defaultProvider),{name:t.name,chainId:e.chainId,ensAddress:t.ensAddress||e.ensAddress||null,_defaultProvider:r}}(null==t?"homestead":t)}ccipReadFetch(t,e,r){return Ta(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=t.to.toLowerCase(),i=e.toLowerCase(),o=[];for(let t=0;t<r.length;t++){const e=r[t],s=e.replace("{sender}",n).replace("{data}",i),a=e.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield ps({url:s,errorPassThrough:!0},a,(t,e)=>(t.status=e.statusCode,t));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return Ia.throwError(`response not found during CCIP fetch: ${l}`,mr.errors.SERVER_ERROR,{url:e,errorMessage:l});o.push(l)}return Ia.throwError(`error encountered during CCIP fetch: ${o.map(t=>JSON.stringify(t)).join(", ")}`,mr.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(t){return Ta(this,void 0,void 0,function*(){if(yield this._ready(),t>0)for(;this._internalBlockNumber;){const e=this._internalBlockNumber;try{const r=yield e;if(_a()-r.respTime<=t)return r.blockNumber;break}catch(t){if(this._internalBlockNumber===e)break}}const e=_a(),r=Jr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(t=>null,t=>t)}).then(({blockNumber:t,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=_a();return(t=Fr.from(t).toNumber())<this._maxInternalBlockNumber&&(t=this._maxInternalBlockNumber),this._maxInternalBlockNumber=t,this._setFastBlockNumber(t),{blockNumber:t,reqTime:e,respTime:i}});return this._internalBlockNumber=r,r.catch(t=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return Ta(this,void 0,void 0,function*(){const t=Qa++,e=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(t){return void this.emit("error",t)}if(this._setFastBlockNumber(r),this.emit("poll",t,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)Ia.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",Ia.makeError("network block skew detected",mr.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let t=this._emitted.block+1;t<=r;t++)this.emit("block",t);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(t=>{if("block"===t)return;const e=this._emitted[t];"pending"!==e&&r-e>12&&delete this._emitted[t]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(t=>{switch(t.type){case"tx":{const r=t.hash;let n=this.getTransactionReceipt(r).then(t=>t&&null!=t.blockNumber?(this._emitted["t:"+r]=t.blockNumber,this.emit(r,t),null):null).catch(t=>{this.emit("error",t)});e.push(n);break}case"filter":if(!t._inflight){t._inflight=!0,-2===t._lastBlockNumber&&(t._lastBlockNumber=r-1);const n=t.filter;n.fromBlock=t._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(e=>{t._inflight=!1,0!==e.length&&e.forEach(e=>{e.blockNumber>t._lastBlockNumber&&(t._lastBlockNumber=e.blockNumber),this._emitted["b:"+e.blockHash]=e.blockNumber,this._emitted["t:"+e.transactionHash]=e.blockNumber,this.emit(n,e)})}).catch(e=>{this.emit("error",e),t._inflight=!1});e.push(o)}}}),this._lastBlockNumber=r,Promise.all(e).then(()=>{this.emit("didPoll",t)}).catch(t=>{this.emit("error",t)})}else this.emit("didPoll",t)})}resetEventsBlock(t){this._lastBlockNumber=t-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Ta(this,void 0,void 0,function*(){return Ia.throwError("provider does not support network detection",mr.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return Ta(this,void 0,void 0,function*(){const t=yield this._ready(),e=yield this.detectNetwork();if(t.chainId!==e.chainId){if(this.anyNetwork)return this._network=e,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",e,t),yield Sa(0),this._network;const r=Ia.makeError("underlying network changed",mr.errors.NETWORK_ERROR,{event:"changed",network:t,detectedNetwork:e});throw this.emit("error",r),r}return t})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(t=>{this._setFastBlockNumber(t)},t=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(t){t&&!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))):!t&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(t){if("number"!=typeof t||t<=0||parseInt(String(t))!=t)throw new Error("invalid polling interval");this._pollingInterval=t,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const t=_a();return t-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=t,this._fastBlockNumberPromise=this.getBlockNumber().then(t=>((null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(t){null!=this._fastBlockNumber&&t<this._fastBlockNumber||(this._fastQueryDate=_a(),(null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t,this._fastBlockNumberPromise=Promise.resolve(t)))}waitForTransaction(t,e,r){return Ta(this,void 0,void 0,function*(){return this._waitForTransaction(t,null==e?1:e,r||0,null)})}_waitForTransaction(t,e,r,n){return Ta(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(t);return(i?i.confirmations:0)>=e?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(t=>{t()}),!1)},l=t=>{t.confirmations<e||u()||i(t)};if(this.on(t,l),s.push(()=>{this.removeListener(t,l)}),n){let r=n.startBlock,i=null;const l=s=>Ta(this,void 0,void 0,function*(){a||(yield Sa(1e3),this.getTransactionCount(n.from).then(h=>Ta(this,void 0,void 0,function*(){if(!a){if(h<=n.nonce)r=s;else{{const e=yield this.getTransaction(t);if(e&&null!=e.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===t)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,e);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(Ia.makeError("transaction was replaced",mr.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:t,receipt:r}))}}i++}}a||this.once("block",l)}}),t=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const t=setTimeout(()=>{u()||o(Ia.makeError("timeout exceeded",mr.errors.TIMEOUT,{timeout:r}))},r);t.unref&&t.unref(),s.push(()=>{clearTimeout(t)})}})})}getBlockNumber(){return Ta(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield this.perform("getGasPrice",{});try{return Fr.from(t)}catch(e){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getGasPrice",result:t,error:e})}})}getBalance(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getBalance",r);try{return Fr.from(n)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:t})}})}getTransactionCount(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getTransactionCount",r);try{return Fr.from(n).toNumber()}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:t})}})}getCode(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getCode",r);try{return kr(n)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:t})}})}getStorageAt(t,e,r){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(r),position:Promise.resolve(e).then(t=>Cr(t))}),i=yield this.perform("getStorageAt",n);try{return kr(i)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:t})}})}_wrapTransaction(t,e,r){if(null!=e&&32!==_r(e))throw new Error("invalid response - sendTransaction");const n=t;return null!=e&&t.hash!==e&&Ia.throwError("Transaction hash mismatch from Provider.sendTransaction.",mr.errors.UNKNOWN_ERROR,{expectedHash:t.hash,returnedHash:e}),n.wait=(e,n)=>Ta(this,void 0,void 0,function*(){let i;null==e&&(e=1),null==n&&(n=0),0!==e&&null!=r&&(i={data:t.data,from:t.from,nonce:t.nonce,to:t.to,value:t.value,startBlock:r});const o=yield this._waitForTransaction(t.hash,e,n,i);return null==o&&0===e?null:(this._emitted["t:"+t.hash]=o.blockNumber,0===o.status&&Ia.throwError("transaction failed",mr.errors.CALL_EXCEPTION,{transactionHash:t.hash,transaction:t,receipt:o}),o)}),n}sendTransaction(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Promise.resolve(t).then(t=>kr(t)),r=this.formatter.transaction(t);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const t=yield this.perform("sendTransaction",{signedTransaction:e});return this._wrapTransaction(r,t,n)}catch(t){throw t.transaction=r,t.transactionHash=r.hash,t}})}_getTransactionRequest(t){return Ta(this,void 0,void 0,function*(){const e=yield t,r={};return["from","to"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?this._getAddress(t):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?Fr.from(t):null))}),["type"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>null!=t?t:null))}),e.accessList&&(r.accessList=this.formatter.accessList(e.accessList)),["data"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?kr(t):null))}),this.formatter.transactionRequest(yield Jr(r))})}_getFilter(t){return Ta(this,void 0,void 0,function*(){t=yield t;const e={};return null!=t.address&&(e.address=this._getAddress(t.address)),["blockHash","topics"].forEach(r=>{null!=t[r]&&(e[r]=t[r])}),["fromBlock","toBlock"].forEach(r=>{null!=t[r]&&(e[r]=this._getBlockTag(t[r]))}),this.formatter.filter(yield Jr(e))})}_call(t,e,r){return Ta(this,void 0,void 0,function*(){r>=10&&Ia.throwError("CCIP read exceeded maximum redirections",mr.errors.SERVER_ERROR,{redirects:r,transaction:t});const n=t.to,i=yield this.perform("call",{transaction:t,blockTag:e});if(r>=0&&"latest"===e&&null!=n&&"0x556f1830"===i.substring(0,10)&&_r(i)%32==4)try{const o=Sr(i,4),s=Sr(o,0,32);Fr.from(s).eq(n)||Ia.throwError("CCIP Read sender did not match",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const a=[],u=Fr.from(Sr(o,32,64)).toNumber(),l=Fr.from(Sr(o,u,u+32)).toNumber(),h=Sr(o,u+32);for(let e=0;e<l;e++){const r=La(h,32*e);null==r&&Ia.throwError("CCIP Read contained corrupt URL string",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i}),a.push(r)}const c=Ua(o,64);Fr.from(Sr(o,100,128)).isZero()||Ia.throwError("CCIP Read callback selector included junk",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const f=Sr(o,96,100),d=Ua(o,128),p=yield this.ccipReadFetch(t,c,a);null==p&&Ia.throwError("CCIP Read disabled or provided no URLs",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const m={to:n,data:Pr([f,Ha([p,d])])};return this._call(m,e,r+1)}catch(t){if(t.code===mr.errors.SERVER_ERROR)throw t}try{return kr(i)}catch(r){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"call",params:{transaction:t,blockTag:e},result:i,error:r})}})}call(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({transaction:this._getTransactionRequest(t),blockTag:this._getBlockTag(e),ccipReadEnabled:Promise.resolve(t.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Jr({transaction:this._getTransactionRequest(t)}),r=yield this.perform("estimateGas",e);try{return Fr.from(r)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"estimateGas",params:e,result:r,error:t})}})}_getAddress(t){return Ta(this,void 0,void 0,function*(){"string"!=typeof(t=yield t)&&Ia.throwArgumentError("invalid address or ENS name","name",t);const e=yield this.resolveName(t);return null==e&&Ia.throwError("ENS name not configured",mr.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(t)})`}),e})}_getBlock(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;let r=-128;const n={includeTransactions:!!e};if(Nr(t,32))n.blockHash=t;else try{n.blockTag=yield this._getBlockTag(t),Nr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(e){Ia.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",t)}return ms(()=>Ta(this,void 0,void 0,function*(){const t=yield this.perform("getBlock",n);if(null==t)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(e){let e=null;for(let r=0;r<t.transactions.length;r++){const n=t.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==e&&(e=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let t=e-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}}const r=this.formatter.blockWithTransactions(t);return r.transactions=r.transactions.map(t=>this._wrapTransaction(t)),r}return this.formatter.block(t)}),{oncePoll:this})})}getBlock(t){return this._getBlock(t,!1)}getBlockWithTransactions(t){return this._getBlock(t,!0)}getTransaction(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ms(()=>Ta(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",e);if(null==r)return null==this._emitted["t:"+t]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ms(()=>Ta(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",e);if(null==r)return null==this._emitted["t:"+t]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return n}),{oncePoll:this})})}getLogs(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Jr({filter:this._getFilter(t)}),r=yield this.perform("getLogs",e);return r.forEach(t=>{null==t.removed&&(t.removed=!1)}),Ea.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return Ta(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(t){return Ta(this,void 0,void 0,function*(){if("number"==typeof(t=yield t)&&t<0){t%1&&Ia.throwArgumentError("invalid BlockTag","blockTag",t);let e=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return e+=t,e<0&&(e=0),this.formatter.blockTag(e)}return this.formatter.blockTag(t)})}getResolver(t){return Ta(this,void 0,void 0,function*(){let e=t;for(;;){if(""===e||"."===e)return null;if("eth"!==t&&"eth"===e)return null;const r=yield this._getResolver(e,"getResolver");if(null!=r){const n=new za(this,r,t);return e===t||(yield n.supportsWildcard())?n:null}e=e.split(".").slice(1).join(".")}})}_getResolver(t,e){return Ta(this,void 0,void 0,function*(){null==e&&(e="ENS");const r=yield this.getNetwork();r.ensAddress||Ia.throwError("network does not support ENS",mr.errors.UNSUPPORTED_OPERATION,{operation:e,network:r.name});try{const e=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+Zn(t).substring(2)});return this.formatter.callAddress(e)}catch(t){}return null})}resolveName(t){return Ta(this,void 0,void 0,function*(){t=yield t;try{return Promise.resolve(this.formatter.address(t))}catch(e){if(Nr(t))throw e}"string"!=typeof t&&Ia.throwArgumentError("invalid ENS name","name",t);const e=yield this.getResolver(t);return e?yield e.getAddress():null})}lookupAddress(t){return Ta(this,void 0,void 0,function*(){t=yield t;const e=(t=this.formatter.address(t)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(e,"lookupAddress");if(null==r)return null;const n=La(yield this.call({to:r,data:"0x691f3431"+Zn(e).substring(2)}),0);return(yield this.resolveName(n))!=t?null:n})}getAvatar(t){return Ta(this,void 0,void 0,function*(){let e=null;if(Nr(t)){const r=this.formatter.address(t).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;e=new za(this,n,r);try{const t=yield e.getAvatar();if(t)return t.url}catch(t){if(t.code!==mr.errors.CALL_EXCEPTION)throw t}try{const t=La(yield this.call({to:n,data:"0x691f3431"+Zn(r).substring(2)}),0);e=yield this.getResolver(t)}catch(t){if(t.code!==mr.errors.CALL_EXCEPTION)throw t;return null}}else if(e=yield this.getResolver(t),!e)return null;const r=yield e.getAvatar();return null==r?null:r.url})}perform(t,e){return Ia.throwError(t+" not implemented",mr.errors.NOT_IMPLEMENTED,{operation:t})}_startEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_stopEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_addEventListener(t,e,r){const n=new Ca(ka(t),e,r);return this._events.push(n),this._startEvent(n),this}on(t,e){return this._addEventListener(t,e,!1)}once(t,e){return this._addEventListener(t,e,!0)}emit(t,...e){let r=!1,n=[],i=ka(t);return this._events=this._events.filter(t=>t.tag!==i||(setTimeout(()=>{t.listener.apply(this,e)},0),r=!0,!t.once||(n.push(t),!1))),n.forEach(t=>{this._stopEvent(t)}),r}listenerCount(t){if(!t)return this._events.length;let e=ka(t);return this._events.filter(t=>t.tag===e).length}listeners(t){if(null==t)return this._events.map(t=>t.listener);let e=ka(t);return this._events.filter(t=>t.tag===e).map(t=>t.listener)}off(t,e){if(null==e)return this.removeAllListeners(t);const r=[];let n=!1,i=ka(t);return this._events=this._events.filter(t=>t.tag!==i||t.listener!=e||!!n||(n=!0,r.push(t),!1)),r.forEach(t=>{this._stopEvent(t)}),this}removeAllListeners(t){let e=[];if(null==t)e=this._events,this._events=[];else{const r=ka(t);this._events=this._events.filter(t=>t.tag!==r||(e.push(t),!1))}return e.forEach(t=>{this._stopEvent(t)}),this}}var Va=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Ja=new mr(ws),Ya=["call","estimateGas"];function Wa(t,e){if(null==t)return null;if("string"==typeof t.message&&t.message.match("reverted")){const r=Nr(t.data)?t.data:null;if(!e||r)return{message:t.message,data:r}}if("object"==typeof t){for(const r in t){const n=Wa(t[r],e);if(n)return n}return null}if("string"==typeof t)try{return Wa(JSON.parse(t),e)}catch(t){}return null}function Xa(t,e,r){const n=r.transaction||r.signedTransaction;if("call"===t){const t=Wa(e,!0);if(t)return t.data;Ja.throwError("missing revert data in call exception; Transaction reverted without a reason string",mr.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:e})}if("estimateGas"===t){let r=Wa(e.body,!1);null==r&&(r=Wa(e,!1)),r&&Ja.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",mr.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:t,transaction:n,error:e})}let i=e.message;throw e.code===mr.errors.SERVER_ERROR&&e.error&&"string"==typeof e.error.message?i=e.error.message:"string"==typeof e.body?i=e.body:"string"==typeof e.responseText&&(i=e.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ja.throwError("insufficient funds for intrinsic transaction cost",mr.errors.INSUFFICIENT_FUNDS,{error:e,method:t,transaction:n}),i.match(/nonce (is )?too low/i)&&Ja.throwError("nonce has already been used",mr.errors.NONCE_EXPIRED,{error:e,method:t,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ja.throwError("replacement fee too low",mr.errors.REPLACEMENT_UNDERPRICED,{error:e,method:t,transaction:n}),i.match(/only replay-protected/i)&&Ja.throwError("legacy pre-eip-155 transactions not supported",mr.errors.UNSUPPORTED_OPERATION,{error:e,method:t,transaction:n}),Ya.indexOf(t)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Ja.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",mr.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,method:t,transaction:n}),e}function Za(t){return new Promise(function(e){setTimeout(e,t)})}function $a(t){if(t.error){const e=new Error(t.error.message);throw e.code=t.error.code,e.data=t.error.data,e}return t.result}function tu(t){return t?t.toLowerCase():t}const eu={};class ru extends I{constructor(t,e,r){if(super(),t!==eu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Kr(this,"provider",e),null==r&&(r=0),"string"==typeof r?(Kr(this,"_address",this.provider.formatter.address(r)),Kr(this,"_index",null)):"number"==typeof r?(Kr(this,"_index",r),Kr(this,"_address",null)):Ja.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(t){return Ja.throwError("cannot alter JSON-RPC Signer connection",mr.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new nu(eu,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(t=>(t.length<=this._index&&Ja.throwError("unknown account #"+this._index,mr.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(t[this._index])))}sendUncheckedTransaction(t){t=Yr(t);const e=this.getAddress().then(t=>(t&&(t=t.toLowerCase()),t));if(null==t.gasLimit){const r=Yr(t);r.from=e,t.gasLimit=this.provider.estimateGas(r)}return null!=t.to&&(t.to=Promise.resolve(t.to).then(t=>Va(this,void 0,void 0,function*(){if(null==t)return null;const e=yield this.provider.resolveName(t);return null==e&&Ja.throwArgumentError("provided ENS name resolves to null","tx.to",t),e}))),Jr({tx:Jr(t),sender:e}).then(({tx:e,sender:r})=>{null!=e.from?e.from.toLowerCase()!==r&&Ja.throwArgumentError("from address mismatch","transaction",t):e.from=r;const n=this.provider.constructor.hexlifyTransaction(e,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(t=>t,t=>("string"==typeof t.message&&t.message.match(/user denied/i)&&Ja.throwError("user rejected transaction",mr.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:e}),Xa("sendTransaction",t,n)))})}signTransaction(t){return Ja.throwError("signing transactions is unsupported",mr.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(t){return Va(this,void 0,void 0,function*(){const e=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(t);try{return yield ms(()=>Va(this,void 0,void 0,function*(){const t=yield this.provider.getTransaction(r);if(null!==t)return this.provider._wrapTransaction(t,r,e)}),{oncePoll:this.provider})}catch(t){throw t.transactionHash=r,t}})}signMessage(t){return Va(this,void 0,void 0,function*(){const e="string"==typeof t?Nn(t):t,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[kr(e),r.toLowerCase()])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ja.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:t}),e}})}_legacySignMessage(t){return Va(this,void 0,void 0,function*(){const e="string"==typeof t?Nn(t):t,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),kr(e)])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ja.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:t}),e}})}_signTypedData(t,e,r){return Va(this,void 0,void 0,function*(){const n=yield Mi.resolveNames(t,e,r,t=>this.provider.resolveName(t)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Mi.getPayload(n.domain,e,n.value))])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ja.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:e,value:n.value}}),t}})}unlock(t){return Va(this,void 0,void 0,function*(){const e=this.provider,r=yield this.getAddress();return e.send("personal_unlockAccount",[r.toLowerCase(),t,null])})}}class nu extends ru{sendTransaction(t){return this.sendUncheckedTransaction(t).then(t=>({hash:t,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:e=>this.provider.waitForTransaction(t,e)}))}}const iu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class ou extends Ka{constructor(t,e){let r=e;null==r&&(r=new Promise((t,e)=>{setTimeout(()=>{this.detectNetwork().then(e=>{t(e)},t=>{e(t)})},0)})),super(r),t||(t=Vr(this.constructor,"defaultUrl")()),Kr(this,"connection",Object.freeze("string"==typeof t?{url:t}:Yr(t))),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 Va(this,void 0,void 0,function*(){yield Za(0);let t=null;try{t=yield this.send("eth_chainId",[])}catch(e){try{t=yield this.send("net_version",[])}catch(t){}}if(null!=t){const e=Vr(this.constructor,"getNetwork");try{return e(Fr.from(t).toNumber())}catch(e){return Ja.throwError("could not detect network",mr.errors.NETWORK_ERROR,{chainId:t,event:"invalidNetwork",serverError:e})}}return Ja.throwError("could not detect network",mr.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(t){return new ru(eu,this,t)}getUncheckedSigner(t){return this.getSigner(t).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(t=>t.map(t=>this.formatter.address(t)))}send(t,e){const r={method:t,params:e,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:$r(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(t)>=0;if(n&&this._cache[t])return this._cache[t];const i=ps(this.connection,JSON.stringify(r),$a).then(t=>(this.emit("debug",{action:"response",request:r,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",error:t,request:r,provider:this}),t});return n&&(this._cache[t]=i,setTimeout(()=>{this._cache[t]=null},0)),i}prepareRequest(t,e){switch(t){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[tu(e.address),e.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[tu(e.address),e.blockTag]];case"getCode":return["eth_getCode",[tu(e.address),e.blockTag]];case"getStorageAt":return["eth_getStorageAt",[tu(e.address),xr(e.position,32),e.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[e.signedTransaction]];case"getBlock":return e.blockTag?["eth_getBlockByNumber",[e.blockTag,!!e.includeTransactions]]:e.blockHash?["eth_getBlockByHash",[e.blockHash,!!e.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[e.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[e.transactionHash]];case"call":return["eth_call",[Vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0}),e.blockTag]];case"estimateGas":return["eth_estimateGas",[Vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0})]];case"getLogs":return e.filter&&null!=e.filter.address&&(e.filter.address=tu(e.filter.address)),["eth_getLogs",[e.filter]]}return null}perform(t,e){return Va(this,void 0,void 0,function*(){if("call"===t||"estimateGas"===t){const t=e.transaction;if(t&&null!=t.type&&Fr.from(t.type).isZero()&&null==t.maxFeePerGas&&null==t.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((e=Yr(e)).transaction=Yr(t),delete e.transaction.type)}}const r=this.prepareRequest(t,e);null==r&&Ja.throwError(t+" not implemented",mr.errors.NOT_IMPLEMENTED,{operation:t});try{return yield this.send(r[0],r[1])}catch(r){return Xa(t,r,e)}})}_startEvent(t){"pending"===t.tag&&this._startPending(),super._startEvent(t)}_startPending(){if(null!=this._pendingFilter)return;const t=this,e=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=e,e.then(function(r){return function n(){t.send("eth_getFilterChanges",[r]).then(function(r){if(t._pendingFilter!=e)return null;let n=Promise.resolve();return r.forEach(function(e){t._emitted["t:"+e.toLowerCase()]="pending",n=n.then(function(){return t.getTransaction(e).then(function(e){return t.emit("pending",e),null})})}),n.then(function(){return Za(1e3)})}).then(function(){if(t._pendingFilter==e)return setTimeout(function(){n()},0),null;t.send("eth_uninstallFilter",[r])}).catch(t=>{})}(),r}).catch(t=>{})}_stopEvent(t){"pending"===t.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(t)}static hexlifyTransaction(t,e){const r=Yr(iu);if(e)for(const t in e)e[t]&&(r[t]=!0);var n,i;i=r,(n=t)&&"object"==typeof n||Qr.throwArgumentError("invalid object","object",n),Object.keys(n).forEach(t=>{i[t]||Qr.throwArgumentError("invalid object key - "+t,"transaction:"+t,n)});const o={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(e){if(null==t[e])return;const r=Cr(Fr.from(t[e]));"gasLimit"===e&&(e="gas"),o[e]=r}),["from","to","data"].forEach(function(e){null!=t[e]&&(o[e]=kr(t[e]))}),t.accessList&&(o.accessList=ya(t.accessList)),o}}const su=new mr(ws);let au=1;function uu(t,e){const r="Web3LegacyFetcher";return function(t,n){const i={method:t,params:n,id:au++,jsonrpc:"2.0"};return new Promise((t,n)=>{this.emit("debug",{action:"request",fetcher:r,request:$r(i),provider:this}),e(i,(e,o)=>{if(e)return this.emit("debug",{action:"response",fetcher:r,error:e,request:i,provider:this}),n(e);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const t=new Error(o.error.message);return t.code=o.error.code,t.data=o.error.data,n(t)}t(o.result)})})}}class lu extends ou{constructor(t,e){null==t&&su.throwArgumentError("missing provider","provider",t);let r=null,n=null,i=null;"function"==typeof t?(r="unknown:",n=t):(r=t.host||t.path||"",!r&&t.isMetaMask&&(r="metamask"),i=t,t.request?(""===r&&(r="eip-1193:"),n=function(t){return function(e,r){null==r&&(r=[]);const n={method:e,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:$r(n),provider:this}),t.request(n).then(t=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:t,provider:this}),t})}}(t)):t.sendAsync?n=uu(0,t.sendAsync.bind(t)):t.send?n=uu(0,t.send.bind(t)):su.throwArgumentError("unsupported provider","provider",t),r||(r="unknown:")),super(r,e),Kr(this,"jsonRpcFetchFunc",n),Kr(this,"provider",i)}send(t,e){return this.jsonRpcFetchFunc(t,e)}}function hu(t,e){return{...t,quoteId:e.id,sellAmount:e.quote.sellAmount,buyAmount:e.quote.buyAmount}}function cu(t){return t.sellToken.toLowerCase()===R.toLowerCase()}function fu(t){return"string"==typeof t?new s.Wallet(t):"request"in t||"send"in t?new lu(t).getSigner():t}function du(t){return t+t*BigInt(20)/BigInt(100)}function pu(t,e){const{costs:{networkFee:r,partnerFee:n}}=t;function i(t){return{sellAmount:e(t.sellAmount),buyAmount:e(t.buyAmount)}}return{...t,costs:{...t.costs,networkFee:{...r,amountInSellCurrency:e(r.amountInSellCurrency),amountInBuyCurrency:e(r.amountInBuyCurrency)},partnerFee:{...n,amount:e(n.amount)}},beforeNetworkCosts:i(t.beforeNetworkCosts),afterNetworkCosts:i(t.afterNetworkCosts),afterPartnerFees:i(t.afterPartnerFees),afterSlippage:i(t.afterSlippage)}}function mu({quoteParameters:t,orderParameters:e}){return{...t,sellToken:e.sellToken}}new mr(ws);const yu=function(t,e,r,n,i="0",o){try{return Promise.resolve(t.getAddress()).then(function(s){const a={...r,sellToken:K[n]},{quoteId:u}=a,l=function(t,e,r){return Qt.connect(("staging"===r?W:Y)[t],e)}(n,t,a.env),h=tr({from:s,networkCostsAmount:i},a,e);return Promise.resolve(er(n,h,o,a.env)).then(function(t){const r={...h,quoteId:u,appData:e,validTo:h.validTo.toString()};return Promise.resolve(l.estimateGas.createOrder(r,{value:h.sellAmount}).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),$e))).then(function(e){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:t,transaction:{data:n,gasLimit:"0x"+du(e).toString(16),to:l.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(t){return Promise.reject(t)}},gu=function(t,e,r,n,i="0",o){try{const{appDataKeccak256:s,fullAppData:a}=r;return Promise.resolve(yu(e,s,n,t.context.chainId,i,o)).then(function({orderId:r,transaction:n}){return Ye("Uploading app-data"),Promise.resolve(t.uploadAppData(s,a)).then(function(){return Ye("Sending on-chain order transaction"),Promise.resolve(e.sendTransaction(n)).then(function(t){return Ye(`On-chain order transaction sent, txHash: ${t.hash}, order: ${r}`),{txHash:t.hash,orderId:r}})})})}catch(t){return Promise.reject(t)}},vu=function(t,e,r,n,i="0",o){try{let a;function s(s){if(a)return s;const{quoteId:u=null}=n,{appDataKeccak256:l,fullAppData:h}=r,c=t.context.chainId;return Promise.resolve(e.getAddress()).then(function(s){const a=tr({from:s,networkCostsAmount:i},n,r.appDataKeccak256);return Ye("Signing order..."),Promise.resolve(function(){try{return o===Tt.PRESIGN?Promise.resolve({signature:s,signingScheme:Tt.PRESIGN}):Promise.resolve(Bt.signOrder(a,c,e)).then(function(t){return{signature:t.signature,signingScheme:Ze[t.signingScheme]}})}catch(t){return Promise.reject(t)}}()).then(function({signature:e,signingScheme:r}){const n={...a,from:s,signature:e,signingScheme:r,quoteId:u,appData:h,appDataHash:l};return Ye("Posting order..."),Promise.resolve(t.sendOrder(n)).then(function(t){return Ye(`Order created, id: ${t}`),t})})})}void 0===o&&(o=Tt.EIP712);const u=function(){if(cu(n)){const o=n.quoteId;if("number"==typeof o)return Promise.resolve(gu(t,e,r,{...n,quoteId:o},i)).then(function({orderId:t}){return a=1,t});throw new Error("quoteId is required for EthFlow orders")}}();return Promise.resolve(u&&u.then?u.then(s):s(u))}catch(l){return Promise.reject(l)}},bu=function(t){try{return Promise.resolve(N(t)).then(function(t){return{fullAppData:t,appDataKeccak256:E(T(t))}})}catch(t){return Promise.reject(t)}},Au=function({slippageBps:t,appCode:e,orderClass:r,partnerFee:n},i){try{const o=new M;return Promise.resolve(o.generateAppDataDoc({appCode:e,metadata:{quote:{slippageBips:t},orderClass:{orderClass:r},partnerFee:n},...i})).then(function(t){return Promise.resolve(bu(t)).then(function({fullAppData:e,appDataKeccak256:r}){return{doc:t,fullAppData:e,appDataKeccak256:r}})})}catch(t){return Promise.reject(t)}},wu=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Eu=function(t,e,r){try{const n=fu(t.signer),i=t.appCode,o=t.chainId;return Promise.resolve(n.getAddress()).then(function(s){return Promise.resolve(Tu(t,{chainId:o,appCode:i,account:s},e,r)).then(function(t){return{result:{...t.result,signer:n},orderBookApi:t.orderBookApi}})})}catch(t){return Promise.reject(t)}},Tu=function(t,e,r,n){try{const{appCode:i,chainId:o,account:s}=e,a=cu(t),u=a?{...t,sellToken:K[o]}:t,{sellToken:l,sellTokenDecimals:h,buyToken:c,buyTokenDecimals:f,amount:d,kind:m,partnerFee:y,validFor:g=We,slippageBps:v=Xe,env:b="prod"}=u;Ye(`Swap ${d} ${l} for ${c} on chain ${o}`);const A=n||new ut({chainId:o,env:b}),w=u.receiver||s,E="sell"===m;return Ye("Building app data..."),Promise.resolve(Au({slippageBps:v,orderClass:"market",appCode:i,partnerFee:y},r?.appData)).then(function(t){const{appDataKeccak256:e,fullAppData:n}=t,i={from:s,sellToken:l,buyToken:c,receiver:w,validFor:g,appData:n,appDataHash:e,priceQuality:wt.OPTIMAL,signingScheme:Tt.EIP712,...a?Iu:{},...E?{kind:vt.SELL,sellAmountBeforeFee:d}:{kind:gt.BUY,buyAmountAfterFee:d},...r?.quoteRequest};return Ye("Getting quote..."),Promise.resolve(A.getQuote(i)).then(function(e){const r=Nt({orderParams:e.quote,slippagePercentBps:v,partnerFeeBps:y?.bps,sellDecimals:h,buyDecimals:f}),n=tr({from:s,networkCostsAmount:e.quote.feeAmount},hu(u,e),t.appDataKeccak256);return Promise.resolve(function(t,e){try{return Promise.resolve(Bt.getDomain(t)).then(function(t){return{domain:t,primaryType:Je,types:{[Je]:p,EIP712Domain:wu},message:e}})}catch(t){return Promise.reject(t)}}(o,n)).then(function(i){return{result:{tradeParameters:u,amountsAndCosts:r,orderToSign:n,quoteResponse:e,appDataInfo:t,orderTypedData:i},orderBookApi:A}})})})}catch(t){return Promise.reject(t)}},Iu={signingScheme:Tt.EIP1271,onchainOrder:!0,verificationGasLimit:0},Nu=function({orderBookApi:t,result:{signer:e,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{return Promise.resolve(vu(t,e,r,hu(i,n),n.quote.feeAmount,o?.quoteRequest?.signingScheme))}catch(t){return Promise.reject(t)}},Mu=function(t,e,r){try{return Promise.resolve(Eu(t,e,r)).then(function(t){return Nu(t,e)})}catch(t){return Promise.reject(t)}},ku=function(t,e,r){try{const{appCode:n,chainId:i,sellToken:o,buyToken:s,sellAmount:a,buyAmount:u,partnerFee:l,slippageBps:h=0,env:c="prod"}=t;Ye(`Limit order ${a} ${o} for ${u} ${s} on chain ${i}`);const f=fu(t.signer),d=r||new ut({chainId:i,env:c});return Ye("Building app data..."),Promise.resolve(Au({slippageBps:h,orderClass:"limit",appCode:n,partnerFee:l},e?.appData)).then(function(e){return vu(d,f,e,t)})}catch(t){return Promise.reject(t)}},_u=function(t,e,r,n){try{const i=Yt.connect(r,t),o=H[e],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),$e))).then(function(t){return{data:s,gasLimit:"0x"+du(t).toString(16),to:o,value:"0"}})}catch(t){return Promise.reject(t)}};class Su{constructor(t,e={enableLogging:!1}){this.traderParams=void 0,this.options=void 0,this.traderParams=t,this.options=e,e.enableLogging&&(Ye.enabled=!0)}getQuote(t,e){try{const r=this;return Promise.resolve(Eu(r.mergeParams(t),e,r.options.orderBookApi)).then(function(e){return{quoteResults:e.result,postSwapOrderFromQuote:()=>Nu({...e,result:{...e.result,tradeParameters:mu({quoteParameters:e.result.tradeParameters,orderParameters:t})}})}})}catch(t){return Promise.reject(t)}}postSwapOrder(t,e){try{const r=this;return Promise.resolve(Mu(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postLimitOrder(t,e){try{const r=this;return Promise.resolve(ku(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postSellNativeCurrencyOrder(t,e){try{const r=this;return Promise.resolve(Eu(r.mergeParams(t),e,r.options.orderBookApi)).then(function(e){const{tradeParameters:r,quoteResponse:n}=e.result;return gu(e.orderBookApi,e.result.signer,e.result.appDataInfo,hu(mu({quoteParameters:r,orderParameters:t}),n))})}catch(t){return Promise.reject(t)}}getPreSignTransaction(t){try{const e=this,r=fu(e.traderParams.signer);return Promise.resolve(_u(r,e.traderParams.chainId,t.account,t.orderId))}catch(t){return Promise.reject(t)}}mergeParams(t){return{...t,...this.traderParams}}}export{F as ALL_SUPPORTED_CHAIN_IDS,J as BARN_ETH_FLOW_ADDRESS,W as BARN_ETH_FLOW_ADDRESSES,lt as BuyTokenDestination,D as COMPOSABLE_COW,Q as COMPOSABLE_COW_CONTRACT_ADDRESS,ne as CONDITIONAL_ORDER_PARAMS_ABI,H as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,z as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,Fe as COW_SHED_712_TYPES,L as COW_SHED_FACTORY,U as COW_SHED_IMPLEMENTATION,je as COW_SHED_PROXY_INIT_CODE,Me as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,ht as CompetitionOrderStatus,Ae as ConditionalOrder,Ie as ConditionalOrderFactory,P as CowError,Ve as CowShedHooks,et as DEFAULT_BACKOFF_OPTIONS,Le as DEFAULT_CONDITIONAL_ORDER_REGISTRY,S as DEFAULT_COW_API_CONTEXT,x as DEFAULT_IPFS_READ_URI,O as DEFAULT_IPFS_WRITE_URI,rt as DEFAULT_LIMITER_OPTIONS,ie as DEFAULT_TOKEN_FORMATTER,Ue as DOMAIN_TYPE,Pe as DurationType,_ as ENVS_LIST,R as ETH_ADDRESS,V as ETH_FLOW_ADDRESS,Y as ETH_FLOW_ADDRESSES,B as EXTENSIBLE_FALLBACK_HANDLER,j as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,ct as EcdsaSigningScheme,_e as MAX_FREQUENCY,ke as MAX_UINT32,X as MAX_VALID_TO_EPOCH,Te as Multiplexer,ot as ORDER_BOOK_PROD_CONFIG,st as ORDER_BOOK_STAGING_CONFIG,Je as ORDER_PRIMARY_TYPE,ft as OnchainOrderData,ut as OrderBookApi,$ as OrderBookApiError,dt as OrderCancellationError,pt as OrderClass,mt as OrderKind,yt as OrderPostError,gt as OrderQuoteSideKindBuy,vt as OrderQuoteSideKindSell,Bt as OrderSigningUtils,bt as OrderStatus,Lt as PollResultCode,At as PriceEstimationError,wt as PriceQuality,Dt as ProofLocation,Ct as SUBGRAPH_PROD_CONFIG,xt as SUBGRAPH_STAGING_CONFIG,Et as SellTokenSource,Tt as SigningScheme,Ce as StartTimeValue,Ot as SubgraphApi,k as SupportedChainId,Ne as TWAP_ADDRESS,Su as TradingSdk,Re as Twap,K as WRAPPED_NATIVE_CURRENCIES,Au as buildAppData,er as calculateUniqueOrderId,ae as createSetDomainVerifierTx,le as decodeParams,ue as encodeParams,ce as formatEpoch,pe as fromStructToOrder,bu as generateAppDataFromDoc,Wt as getBlockInfo,ze as getCoWShedFactoryInterface,He as getCoWShedInterface,Xt as getDomainVerifier,yu as getEthFlowTransaction,me as getIsValidResult,tr as getOrderToSign,_u as getPreSignTransaction,Tu as getQuote,Nt as getQuoteAmountsAndCosts,Eu as getQuoteWithSigner,se as isComposableCow,oe as isExtensibleFallbackHandler,he as isValidAbi,C as logPrefix,G as mapAddressToSupportedNetworks,pu as mapQuoteAmountsAndCosts,q as mapSupportedNetworks,vu as postCoWProtocolTrade,ku as postLimitOrder,gu as postSellNativeCurrencyOrder,Mu as postSwapOrder,Nu as postSwapOrderFromQuote,Z as request,hu as swapParamsToLimitOrderParams,Be as transformDataToStruct,De as transformStructToData};
29
29
  //# sourceMappingURL=index.module.js.map