@cowprotocol/cow-sdk 5.6.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- export{A as ALL_SUPPORTED_CHAIN_IDS,B as BUY_ETH_ADDRESS,q as BuyTokenDestination,f as COMPOSABLE_COW,n as COMPOSABLE_COW_CONTRACT_ADDRESS,W as CONDITIONAL_ORDER_PARAMS_ABI,a as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,j as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,al as COW_SHED_712_TYPES,g as COW_SHED_FACTORY,h as COW_SHED_IMPLEMENTATION,ap as COW_SHED_PROXY_INIT_CODE,ac as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,r as CompetitionOrderStatus,a7 as ConditionalOrder,a9 as ConditionalOrderFactory,C as CowError,am as CowShedHooks,J as DEFAULT_BACKOFF_OPTIONS,aa as DEFAULT_CONDITIONAL_ORDER_REGISTRY,D as DEFAULT_COW_API_CONTEXT,c as DEFAULT_IPFS_READ_URI,d as DEFAULT_IPFS_WRITE_URI,K as DEFAULT_LIMITER_OPTIONS,X as DEFAULT_TOKEN_FORMATTER,ak as DOMAIN_TYPE,af as DurationType,b as ENVS_LIST,e as EXTENSIBLE_FALLBACK_HANDLER,k as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,E as EcdsaSigningScheme,ae as MAX_FREQUENCY,ad as MAX_UINT32,a8 as Multiplexer,O as ORDER_BOOK_PROD_CONFIG,o as ORDER_BOOK_STAGING_CONFIG,s as OnchainOrderData,p as OrderBookApi,I as OrderBookApiError,t as OrderCancellationError,u as OrderClass,v as OrderKind,w as OrderPostError,x as OrderQuoteSideKindBuy,y as OrderQuoteSideKindSell,T as OrderSigningUtils,z as OrderStatus,V as PollResultCode,P as PriceEstimationError,F as PriceQuality,U as ProofLocation,N as SUBGRAPH_PROD_CONFIG,Q as SUBGRAPH_STAGING_CONFIG,G as SellTokenSource,H as SigningScheme,ag as StartTimeValue,R as SubgraphApi,S as SupportedChainId,ab as TWAP_ADDRESS,ah as Twap,a0 as createSetDomainVerifierTx,a2 as decodeParams,a1 as encodeParams,a5 as formatEpoch,a6 as fromStructToOrder,a4 as getBlockInfo,ao as getCoWShedFactoryInterface,an as getCoWShedInterface,$ as getDomainVerifier,M as getQuoteAmountsAndCosts,Z as isComposableCow,Y as isExtensibleFallbackHandler,a3 as isValidAbi,l as logPrefix,i as mapAddressToSupportedNetworks,m as mapSupportedNetworks,L as request,ai as transformDataToStruct,aj as transformStructToData}from"./index-34e37377.js";import"cross-fetch/polyfill";import"limiter";import"exponential-backoff";import"graphql-request";import"ethers";import"@cowprotocol/contracts";import"@openzeppelin/merkle-tree";import"ethers/lib/utils";
1
+ export{A as ALL_SUPPORTED_CHAIN_IDS,B as BUY_ETH_ADDRESS,q as BuyTokenDestination,f as COMPOSABLE_COW,n as COMPOSABLE_COW_CONTRACT_ADDRESS,W as CONDITIONAL_ORDER_PARAMS_ABI,a as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,j as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,al as COW_SHED_712_TYPES,g as COW_SHED_FACTORY,h as COW_SHED_IMPLEMENTATION,ap as COW_SHED_PROXY_INIT_CODE,ac as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,r as CompetitionOrderStatus,a7 as ConditionalOrder,a9 as ConditionalOrderFactory,C as CowError,am as CowShedHooks,J as DEFAULT_BACKOFF_OPTIONS,aa as DEFAULT_CONDITIONAL_ORDER_REGISTRY,D as DEFAULT_COW_API_CONTEXT,c as DEFAULT_IPFS_READ_URI,d as DEFAULT_IPFS_WRITE_URI,K as DEFAULT_LIMITER_OPTIONS,X as DEFAULT_TOKEN_FORMATTER,ak as DOMAIN_TYPE,af as DurationType,b as ENVS_LIST,e as EXTENSIBLE_FALLBACK_HANDLER,k as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,E as EcdsaSigningScheme,ae as MAX_FREQUENCY,ad as MAX_UINT32,a8 as Multiplexer,O as ORDER_BOOK_PROD_CONFIG,o as ORDER_BOOK_STAGING_CONFIG,s as OnchainOrderData,p as OrderBookApi,I as OrderBookApiError,t as OrderCancellationError,u as OrderClass,v as OrderKind,w as OrderPostError,x as OrderQuoteSideKindBuy,y as OrderQuoteSideKindSell,T as OrderSigningUtils,z as OrderStatus,V as PollResultCode,P as PriceEstimationError,F as PriceQuality,U as ProofLocation,N as SUBGRAPH_PROD_CONFIG,Q as SUBGRAPH_STAGING_CONFIG,G as SellTokenSource,H as SigningScheme,ag as StartTimeValue,R as SubgraphApi,S as SupportedChainId,ab as TWAP_ADDRESS,ah as Twap,a0 as createSetDomainVerifierTx,a2 as decodeParams,a1 as encodeParams,a5 as formatEpoch,a6 as fromStructToOrder,a4 as getBlockInfo,ao as getCoWShedFactoryInterface,an as getCoWShedInterface,$ as getDomainVerifier,M as getQuoteAmountsAndCosts,Z as isComposableCow,Y as isExtensibleFallbackHandler,a3 as isValidAbi,l as logPrefix,i as mapAddressToSupportedNetworks,m as mapSupportedNetworks,L as request,ai as transformDataToStruct,aj as transformStructToData}from"./index-5ea4bd62.js";import"cross-fetch/polyfill";import"limiter";import"exponential-backoff";import"graphql-request";import"ethers";import"@cowprotocol/contracts";import"@openzeppelin/merkle-tree";import"ethers/lib/utils";
2
2
  //# sourceMappingURL=index.modern.mjs.map
@@ -1,4 +1,4 @@
1
- import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{gql as n,request as r}from"graphql-request";import{utils as a,Contract as i,ethers as s,constants as o,BigNumber as u}from"ethers";import{OrderBalance as p,OrderKind as d,SigningScheme as l,isTypedDataSigner as y,hashTypedData as c}from"@cowprotocol/contracts";import{StandardMerkleTree as f}from"@openzeppelin/merkle-tree";import{defaultAbiCoder as m,solidityKeccak256 as b,getCreate2Address as T,joinSignature as h,splitSignature as I,arrayify as v}from"ethers/lib/utils";var E;!function(e){e[e.MAINNET=1]="MAINNET",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.SEPOLIA=11155111]="SEPOLIA"}(E||(E={}));const A=["prod","staging"],O={env:"prod",chainId:E.MAINNET};class g extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}const P="cow-sdk:",S="https://gnosis.mypinata.cloud/ipfs",N="https://api.pinata.cloud",w="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",C="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",_="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",R="0x00E989b87700514118Fa55326CD1cCE82faebEF6",D="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",x=Object.values(E).filter(e=>"number"==typeof e);function M(e){return x.reduce((t,n)=>({...t,[n]:"function"==typeof e?e(n):e}),{})}function U(e){return M(e)}const k=U("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),L=U("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),F=U(C),B=U(_),V=function(e,{path:n,query:r,method:a,body:i},s,o){try{const u={Accept:"application/json","Content-Type":"application/json"},p=`${e}${n}${r?"?"+r:""}`,d={method:a,body:(()=>{if(i)return"string"==typeof i?i:JSON.stringify(i)})(),headers:u};return Promise.resolve(t(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(p,d)).then(function(e){return Promise.resolve(j(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new G(e,t))})})})}catch(e){return Promise.reject(e)}},o))}catch(e){return Promise.reject(e)}};class G extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const $=[408,425,429,500,502,503,504],H={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof G)||$.includes(e.response.status)},W={tokensPerInterval:5,interval:"second"},j=function(e){try{let t;const n=function(){if(204!==e.status)return function(n,r){try{var a=function(){const n=e.headers.get("Content-Type");return function(){if(n)return n.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return r(e)}return a&&a.then?a.then(void 0,r):a}(0,function(e){console.error(e)})}();return Promise.resolve(n&&n.then?n.then(function(e){return t?e:void 0}):t?n:void 0)}catch(e){return Promise.reject(e)}};function Y(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:n}=t,r=e.onchainUser||e.owner,a=w;return{...e,validTo:n,owner:r,sellToken:a}}(function(e){const{executedFeeAmount:t,executedSurplusFee:n}=e,r=BigInt(t||"0"),a=BigInt(n||"0"),i=String(r+a);return{...e,totalFee:i}}(e))}const z={[E.MAINNET]:"https://api.cow.fi/mainnet",[E.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[E.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[E.SEPOLIA]:"https://api.cow.fi/sepolia"},Z={[E.MAINNET]:"https://barn.api.cow.fi/mainnet",[E.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[E.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[E.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function K(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return void 0!==r&&(t[n]=r),t},{})}class Q{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...O,...t},this.rateLimiter=new e(t.limiterOpts||W)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new g("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new g("Must specify either owner or orderId"));const n=new URLSearchParams(K(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:n},t)}getOrders({owner:e,offset:t=0,limit:n=1e3},r={}){const a=new URLSearchParams(K({offset:t.toString(),limit:n.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:a},r).then(e=>e.map(Y))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(Y))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>Y(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:n}=this.getContextWithOverride(t),r=A.filter(e=>e!==n);let a=0;const i=n=>{const s=r[a];return n instanceof G&&404===n.response.status&&s?(a++,this.getOrder(e,{...t,env:s}).catch(i)):Promise.reject(n)};return this.getOrder(e,{...t,env:n}).catch(i)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,n={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},n)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:n,env:r}=this.getContextWithOverride(t);return this.getApiBaseUrls(r)[n]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?z:Z}fetch(t,n={}){const{chainId:r,env:a,backoffOpts:i}=this.getContextWithOverride(n),s=this.getApiBaseUrls(a)[r],o=i||H,u=n.limiterOpts?new e(n.limiterOpts):this.rateLimiter;return V(s,t,u,o)}}var X,q,J,ee,te,ne,re,ae,ie,se,oe,ue,pe,de,le;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(X||(X={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(q||(q={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(J||(J={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(ee||(ee={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(te||(te={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(ne||(ne={})),function(e){e.BUY="buy",e.SELL="sell"}(re||(re={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(ae||(ae={})),function(e){e.BUY="buy"}(ie||(ie={})),function(e){e.SELL="sell"}(se||(se={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(oe||(oe={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(ue||(ue={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(pe||(pe={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(de||(de={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(le||(le={}));const ye=BigInt(1e4);function ce(e){var t;const{orderParams:n,sellDecimals:r,buyDecimals:a,slippagePercentBps:i}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,o=n.kind===re.SELL,u=fe(n.feeAmount,r),p=fe(n.sellAmount,r),d=fe(n.buyAmount,a),l=d.num/p.num,y=fe(p.big+u.big,r),c=fe(l*y.num,a),f=s>0?(o?c.big:p.big)*BigInt(s)/ye:BigInt(0),m=o?{sellAmount:y.big,buyAmount:d.big-f}:{sellAmount:y.big+f,buyAmount:d.big},b=e=>e*BigInt(i)/ye,T=o?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-b(m.buyAmount)}:{sellAmount:m.sellAmount+b(m.sellAmount),buyAmount:m.buyAmount};return{isSell:o,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:fe(l*u.num,a).big},partnerFee:{amount:f,bps:s}},beforeNetworkCosts:{sellAmount:p.big,buyAmount:c.big},afterNetworkCosts:{sellAmount:y.big,buyAmount:d.big},afterPartnerFees:m,afterSlippage:T}}function fe(e,t){if("number"==typeof e){const n=e*10**t,r=n.toFixed();return{big:BigInt(r.includes("e")?n:r),num:e}}const n=BigInt(e);return{big:n,num:Number(n)/10**t}}const me=n`
1
+ import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{gql as n,request as r}from"graphql-request";import{utils as a,Contract as i,ethers as s,constants as o,BigNumber as u}from"ethers";import{OrderBalance as p,OrderKind as d,SigningScheme as l,isTypedDataSigner as y,hashTypedData as c}from"@cowprotocol/contracts";import{StandardMerkleTree as f}from"@openzeppelin/merkle-tree";import{defaultAbiCoder as m,solidityKeccak256 as b,getCreate2Address as T,joinSignature as h,splitSignature as I,arrayify as v}from"ethers/lib/utils";var E;!function(e){e[e.MAINNET=1]="MAINNET",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.BASE=8453]="BASE",e[e.SEPOLIA=11155111]="SEPOLIA"}(E||(E={}));const A=["prod","staging"],O={env:"prod",chainId:E.MAINNET};class g extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}const P="cow-sdk:",S="https://gnosis.mypinata.cloud/ipfs",N="https://api.pinata.cloud",w="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",C="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",_="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",R="0x00E989b87700514118Fa55326CD1cCE82faebEF6",D="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",x=Object.values(E).filter(e=>"number"==typeof e);function M(e){return x.reduce((t,n)=>({...t,[n]:"function"==typeof e?e(n):e}),{})}function U(e){return M(e)}const k=U("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),L=U("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),F=U(C),B=U(_),V=function(e,{path:n,query:r,method:a,body:i},s,o){try{const u={Accept:"application/json","Content-Type":"application/json"},p=`${e}${n}${r?"?"+r:""}`,d={method:a,body:(()=>{if(i)return"string"==typeof i?i:JSON.stringify(i)})(),headers:u};return Promise.resolve(t(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(p,d)).then(function(e){return Promise.resolve(j(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new G(e,t))})})})}catch(e){return Promise.reject(e)}},o))}catch(e){return Promise.reject(e)}};class G extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const $=[408,425,429,500,502,503,504],H={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof G)||$.includes(e.response.status)},W={tokensPerInterval:5,interval:"second"},j=function(e){try{let t;const n=function(){if(204!==e.status)return function(n,r){try{var a=function(){const n=e.headers.get("Content-Type");return function(){if(n)return n.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return r(e)}return a&&a.then?a.then(void 0,r):a}(0,function(e){console.error(e)})}();return Promise.resolve(n&&n.then?n.then(function(e){return t?e:void 0}):t?n:void 0)}catch(e){return Promise.reject(e)}};function Y(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:n}=t,r=e.onchainUser||e.owner,a=w;return{...e,validTo:n,owner:r,sellToken:a}}(function(e){const{executedFeeAmount:t,executedSurplusFee:n}=e,r=BigInt(t||"0"),a=BigInt(n||"0"),i=String(r+a);return{...e,totalFee:i}}(e))}const z={[E.MAINNET]:"https://api.cow.fi/mainnet",[E.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[E.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[E.BASE]:"https://api.cow.fi/base",[E.SEPOLIA]:"https://api.cow.fi/sepolia"},Z={[E.MAINNET]:"https://barn.api.cow.fi/mainnet",[E.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[E.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[E.BASE]:"https://barn.api.cow.fi/base",[E.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function K(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return void 0!==r&&(t[n]=r),t},{})}class Q{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...O,...t},this.rateLimiter=new e(t.limiterOpts||W)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new g("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new g("Must specify either owner or orderId"));const n=new URLSearchParams(K(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:n},t)}getOrders({owner:e,offset:t=0,limit:n=1e3},r={}){const a=new URLSearchParams(K({offset:t.toString(),limit:n.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:a},r).then(e=>e.map(Y))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(Y))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>Y(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:n}=this.getContextWithOverride(t),r=A.filter(e=>e!==n);let a=0;const i=n=>{const s=r[a];return n instanceof G&&404===n.response.status&&s?(a++,this.getOrder(e,{...t,env:s}).catch(i)):Promise.reject(n)};return this.getOrder(e,{...t,env:n}).catch(i)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,n={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},n)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:n,env:r}=this.getContextWithOverride(t);return this.getApiBaseUrls(r)[n]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?z:Z}fetch(t,n={}){const{chainId:r,env:a,backoffOpts:i}=this.getContextWithOverride(n),s=this.getApiBaseUrls(a)[r],o=i||H,u=n.limiterOpts?new e(n.limiterOpts):this.rateLimiter;return V(s,t,u,o)}}var X,q,J,ee,te,ne,re,ae,ie,se,oe,ue,pe,de,le;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(X||(X={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(q||(q={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(J||(J={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(ee||(ee={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(te||(te={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(ne||(ne={})),function(e){e.BUY="buy",e.SELL="sell"}(re||(re={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(ae||(ae={})),function(e){e.BUY="buy"}(ie||(ie={})),function(e){e.SELL="sell"}(se||(se={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(oe||(oe={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(ue||(ue={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(pe||(pe={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(de||(de={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(le||(le={}));const ye=BigInt(1e4);function ce(e){var t;const{orderParams:n,sellDecimals:r,buyDecimals:a,slippagePercentBps:i}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,o=n.kind===re.SELL,u=fe(n.feeAmount,r),p=fe(n.sellAmount,r),d=fe(n.buyAmount,a),l=d.num/p.num,y=fe(p.big+u.big,r),c=fe(l*y.num,a),f=s>0?(o?c.big:p.big)*BigInt(s)/ye:BigInt(0),m=o?{sellAmount:y.big,buyAmount:d.big-f}:{sellAmount:y.big+f,buyAmount:d.big},b=e=>e*BigInt(i)/ye,T=o?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-b(m.buyAmount)}:{sellAmount:m.sellAmount+b(m.sellAmount),buyAmount:m.buyAmount};return{isSell:o,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:fe(l*u.num,a).big},partnerFee:{amount:f,bps:s}},beforeNetworkCosts:{sellAmount:p.big,buyAmount:c.big},afterNetworkCosts:{sellAmount:y.big,buyAmount:d.big},afterPartnerFees:m,afterSlippage:T}}function fe(e,t){if("number"==typeof e){const n=e*10**t,r=n.toFixed();return{big:BigInt(r.includes("e")?n:r),num:e}}const n=BigInt(e);return{big:n,num:Number(n)/10**t}}const me=n`
2
2
  query Totals {
3
3
  totals {
4
4
  tokens
@@ -25,5 +25,5 @@ import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOf
25
25
  volumeUsd
26
26
  }
27
27
  }
28
- `,he="https://api.thegraph.com/subgraphs/name/cowprotocol",Ie={[E.MAINNET]:he+"/cow",[E.GNOSIS_CHAIN]:he+"/cow-gc",[E.ARBITRUM_ONE]:null,[E.SEPOLIA]:null},ve={[E.MAINNET]:he+"/cow-staging",[E.GNOSIS_CHAIN]:he+"/cow-gc-staging",[E.ARBITRUM_ONE]:null,[E.SEPOLIA]:null};class Ee{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...O,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(me,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(be,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(Te,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,n={}){try{const a=this,{chainId:i,env:s}=a.getContextWithOverride(n),o=a.getEnvConfigs(s)[i];if(null===o)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(n,a){try{var i=Promise.resolve(r(o,e,t))}catch(e){return a(e)}return i&&i.then?i.then(void 0,a):i}(0,function(n){throw console.error(`[subgraph:${a.API_NAME}]`,n),new g(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${o}. Inner Error: ${n}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?Ie:ve}}const Ae=()=>import("./utils-84d812ae.js");class Oe{static signOrder(e,t,n){try{return Promise.resolve(Ae()).then(function({signOrder:r}){return r(e,t,n)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,n){try{return Promise.resolve(Ae()).then(function({signOrderCancellation:r}){return r(e,t,n)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,n){try{return Promise.resolve(Ae()).then(function({signOrderCancellations:r}){return r(e,t,n)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Ae()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Ae()).then(function({getDomain:t}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:n}){return n.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}var ge,Pe;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(ge||(ge={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(Pe||(Pe={}));const Se=[{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 Ne{static createInterface(){return new a.Interface(Se)}static connect(e,t){return new i(e,Se,t)}}Ne.abi=Se;const we=[{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 Ce{static createInterface(){return new a.Interface(we)}static connect(e,t){return new i(e,we,t)}}Ce.abi=we;const _e=[{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 Re{static createInterface(){return new a.Interface(_e)}static connect(e,t){return new i(e,_e,t)}}Re.abi=_e;const De=[{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 xe{static createInterface(){return new a.Interface(De)}static connect(e,t){return new i(e,De,t)}}xe.abi=De;const Me=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},Ue=function(e,t,n,r){try{const a=xe.connect(F[n],r);return Promise.resolve(a.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},ke=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],Le=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],Fe=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],Be=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],Ve=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],Ge=["tuple(address handler, bytes32 salt, bytes staticInput)"],$e=(e,t)=>`${t}@${e}`;function He(e,t){return e===F[t]}function We(e,t){return e===B[t]}function je(e,t){return xe.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function Ye(e){return a.defaultAbiCoder.encode(Ge,[e])}function ze(e){const{handler:t,salt:n,staticInput:r}=a.defaultAbiCoder.decode(Ge,e)[0];return{handler:t,salt:n,staticInput:r}}function Ze(e,t){try{a.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}function Ke(e){return new Date(1e3*e).toISOString()}function Qe(e){if(ke.includes(e))return p.ERC20;if(Le.includes(e))return p.EXTERNAL;if(Fe.includes(e))return p.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Xe(e){if(Be.includes(e))return d.SELL;if(Ve.includes(e))return d.BUY;throw new Error(`Unknown kind: ${e}`)}function qe(e){const{sellToken:t,sellAmount:n,buyToken:r,buyAmount:a,buyTokenBalance:i,sellTokenBalance:s,feeAmount:o,kind:u,receiver:p,validTo:d,partiallyFillable:l,appData:y}=e;return{sellToken:t,sellAmount:n,buyToken:r,buyAmount:a,feeAmount:o,receiver:p,partiallyFillable:l,appData:y,validTo:Number(d),kind:Xe(u.toString()),sellTokenBalance:Qe(s.toString()),buyTokenBalance:Qe(i.toString())}}let Je,et;function tt(){return Je||(Je=Re.createInterface()),Je}function nt(e,t){return et||(et=Re.connect(B[e],t)),et}class rt{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:n=a.keccak256(a.randomBytes(32)),data:r,hasOffChainInput:i=!1}=e;if(!s.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!s.utils.isHexString(n)||32!==s.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=r,this.staticInput=this.transformDataToStruct(r),this.hasOffChainInput=i}get context(){}assertIsValid(){const e=this.isValid();if(!e.isValid)throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=tt(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const r=e.factoryArgs?a.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[n,e.address,r,!0])}return t.encodeFunctionData("create",[n,!0])}get removeCalldata(){return this.assertIsValid(),tt().encodeFunctionData("remove",[this.id])}get id(){return a.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:o.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return a.keccak256(Ye(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return a.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:n,owner:r,provider:a,orderBookApi:i}=e,s=nt(n,a);return Promise.resolve(function(a,o){try{var u=function(){const a=t.isValid();return a.isValid?Promise.resolve(t.pollValidate(e)).then(function(a){return a||Promise.resolve(t.isAuthorized(e)).then(function(a){return a?Promise.resolve(s.getTradeableOrderWithSignature(r,t.leaf,t.offChainInput,[])).then(function([a,s]){return Promise.resolve(function(e,t,n){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:r}){return Promise.resolve(Oe.getDomain(e)).then(function(e){return r(e,n,t)})})}catch(e){return Promise.reject(e)}}(n,r,qe(a))).then(function(n){return Promise.resolve(i.getOrder(n).then(()=>!0).catch(()=>!1)).then(function(r){let i;function o(e){return i?e:{result:Pe.SUCCESS,order:a,signature:s}}const u=function(){if(r)return Promise.resolve(t.handlePollFailedAlreadyPresent(n,a,e)).then(function(e){return e?(i=1,e):(i=1,{result:Pe.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(o):o(u)})})}):{result:Pe.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${r} on chain ${n}`}})}):{result:Pe.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${a.reason}`}}()}catch(e){return o(e)}return u&&u.then?u.then(void 0,o):u}(0,function(e){return{result:Pe.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:n,provider:r}=e;return nt(t,r).callStatic.singleOrders(n,this.id)}cabinet(e){const{chainId:t,owner:n,provider:r}=e;return nt(t,r).callStatic.cabinet(n,this.ctx)}static deserializeHelper(e,t,n,r){try{const{handler:i,salt:s,staticInput:o}=ze(e);if(i!=t)throw new Error("HandlerMismatch");const[u]=a.defaultAbiCoder.decode(n,o);return r(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const at=["address","bytes32","bytes"],it=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class st{constructor(e,t,n,r=ge.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=r,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!n||!t&&n)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const n=t[e];if(!st.orderTypeRegistry.hasOwnProperty(n.orderType))throw new Error(`Unknown order type: ${n.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==n))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:n,root:r,location:a}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const n in t)if(t.hasOwnProperty(n)){const{orderType:r,...a}=t[n];if(!st.orderTypeRegistry.hasOwnProperty(r))throw new Error(`Unknown order type: ${r}`);e[n]=new(0,st.orderTypeRegistry[r])(a)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?u.from(t):t}),i=new st(t,n,r);return i.location=a,i}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const n=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[n.id]=n,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=f.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),at)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,n){try{const r=this;void 0===e&&(e=r.location);const i=function(){try{switch(e){case ge.PRIVATE:return Promise.resolve("0x");case ge.EMITTED:return Promise.resolve(r.encodeToABI(t));case ge.SWARM:case ge.WAKU:case ge.IPFS:if(!n)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,a){try{var i=Promise.resolve(n(r.encodeToJSON(t)))}catch(e){return a(e)}return i&&i.then?i.then(void 0,a):i}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(i().then(t=>{try{return a.hexlify(a.arrayify(t)),r.location=e,{location:e,data:t}}catch(e){throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,n,r,a){try{function i(n){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,n,t.proof))}const s=nt(n,r);return Promise.resolve(a?Promise.resolve(a(e,t.params)).then(i):i("0x"))}catch(o){return Promise.reject(o)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,n])=>e&&e(n)||void 0===e?{idx:t,value:n}:void 0).reduce((e,t)=>{if(t){const n={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:n})}return e},[])}encodeToABI(e){return a.defaultAbiCoder.encode(it,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){st.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){st.orderTypeRegistry={}}}st.orderTypeRegistry={};class ot{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=e}fromParams(e){const{handler:t}=e,n=this.knownOrderTypes[t];if(n)return n(e)}}const ut="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",pt="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",dt=u.from(2).pow(32).sub(1),lt=u.from(31536e3),yt=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var ct,ft;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(ct||(ct={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(ft||(ft={}));const mt={startType:ft.AT_MINING_TIME},bt={durationType:ct.AUTO};class Tt extends rt{constructor(e){const{handler:t,salt:n,data:r,hasOffChainInput:a}=e;if(t!==ut)throw new Error(`InvalidHandler: Expected: ${ut}, provided: ${t}`);super({handler:ut,salt:n,data:r,hasOffChainInput:a}),this.isSingleOrder=!0}static fromData(e,t){return new Tt({handler:ut,data:e,salt:t})}static fromParams(e){return Tt.deserialize(Ye(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:pt,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:r,startTime:a=mt,numberOfParts:i,timeBetweenParts:s,durationOfPart:u=bt}=this.data;if(e==n)return"InvalidSameToken";if(e==o.AddressZero||n==o.AddressZero)return"InvalidToken";if(!t.gt(o.Zero))return"InvalidSellAmount";if(!r.gt(o.Zero))return"InvalidMinBuyAmount";if(a.startType===ft.AT_EPOCH){const e=a.epoch;if(!e.gte(o.Zero)||!e.lt(dt))return"InvalidStartTime"}return i.gt(o.One)&&i.lte(dt)?s.gt(o.Zero)&&s.lte(lt)?u.durationType!==ct.LIMIT_DURATION||u.duration.lte(s)?Ze(yt,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:n}=t.data;return n?.startType===ft.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=a.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(dt))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const n=t.toNumber();if(0===n)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return n})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:n,durationOfPart:r}=this.data;return r&&r.durationType===ct.LIMIT_DURATION?e+t.sub(1).mul(n).add(r.duration).toNumber():e+t.mul(n).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(Me(e.provider)).then(function(n){const{blockInfo:r=n}=e,{blockTimestamp:a}=r;return function(n,r){try{var i=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>a)return{result:Pe.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Ke(e)})`};const n=t.endTimestamp(e);return a>=n?{result:Pe.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${n} (${Ke(n)})`}:void 0})}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){return e?.message?.includes("Cabinet is not set")?{result:Pe.DONT_TRY_AGAIN,reason:`${e?.message}. User likely removed the order.`}:e?.message?.includes("Cabinet epoch out of range")?{result:Pe.DONT_TRY_AGAIN,reason:`${e?.message}`}:{result:Pe.UNEXPECTED_ERROR,reason:`Unexpected error: ${e.message}`,error:e}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,n){try{const e=this;return Promise.resolve(Me(n.provider)).then(function(t){const{blockInfo:r=t}=n,{blockTimestamp:a}=r,i=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(n)).then(function(e){if(a<e)return{result:Pe.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Ke(e)})`,error:void 0};const t=s.mul(i).add(e).toNumber();if(a>=t)return{result:Pe.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Ke(t)})`,error:void 0};const n=Math.floor((a-e)/i);if(n===s.toNumber()-1)return{result:Pe.DONT_TRY_AGAIN,reason:`Current active TWAP part (${n+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const r=e+(n+1)*i;return{result:Pe.TRY_AT_EPOCH,epoch:r,reason:`Current active TWAP part (${n+1}/${s}) is already in the Order Book. TWAP part ${n+2} doesn't start until ${r} (${Ke(r)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return Ye(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(yt,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,ut,yt,(e,t)=>new Tt({handler:ut,salt:t,data:It(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:n,buyToken:r,numberOfParts:a,startTime:i=mt,timeBetweenParts:s,durationOfPart:o=bt,receiver:u,appData:p}=this.data,d=i.startType===ft.AT_MINING_TIME?"AT_MINING_TIME":i.epoch.toNumber(),l=o.durationType===ct.AUTO?"AUTO":o.duration.toNumber(),y={sellAmount:e.toString(),sellToken:t,buyAmount:n.toString(),buyToken:r,numberOfParts:a.toString(),startTime:d,timeBetweenParts:s.toNumber(),durationOfPart:l,receiver:u,appData:p};return`${this.orderType} (${this.id}): ${JSON.stringify(y)}`}transformDataToStruct(e){return ht(e)}transformStructToData(e){return It(e)}}function ht(e){const{sellAmount:t,buyAmount:n,numberOfParts:r,startTime:a=mt,timeBetweenParts:i,durationOfPart:s=bt,...u}=e,{partSellAmount:p,minPartLimit:d}=r&&!r.isZero()?{partSellAmount:t.div(r),minPartLimit:n.div(r)}:{partSellAmount:o.Zero,minPartLimit:o.Zero};return{partSellAmount:p,minPartLimit:d,t0:a.startType===ft.AT_MINING_TIME?o.Zero:a.epoch,n:r,t:i,span:s.durationType===ct.AUTO?o.Zero:s.duration,...u}}function It(e){const{n:t,partSellAmount:n,minPartLimit:r,t:a,t0:i,span:s,...o}=e,u=s.isZero()?{durationType:ct.AUTO}:{durationType:ct.LIMIT_DURATION,duration:s},p=s.isZero()?{startType:ft.AT_MINING_TIME}:{startType:ft.AT_EPOCH,epoch:i};return{sellAmount:n.mul(t),buyAmount:r.mul(t),startTime:p,numberOfParts:t,timeBetweenParts:a,durationOfPart:u,...o}}const vt={[ut]:e=>Tt.fromParams(e)},Et={EIP712Domain:[{type:"string",name:"name"},{type:"string",name:"version"},{type:"uint256",name:"chainId"},{type:"address",name:"verifyingContract"}]},At={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"}]},Ot="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033";let gt,Pt;function St(){return gt||(gt=Ne.createInterface()),gt}function Nt(){return Pt||(Pt=Ce.createInterface()),Pt}function wt(e,t,n){if(!e.s){if(n instanceof Ct){if(!n.s)return void(n.o=wt.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(wt.bind(null,e,t),wt.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}const Ct=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,n){const r=new e,a=this.s;if(a){const e=1&a?t:n;if(e){try{wt(r,1,e(this.v))}catch(e){wt(r,2,e)}return r}return this}return this.o=function(e){try{const a=e.v;1&e.s?wt(r,1,t?t(a):a):n?wt(r,1,n(a)):wt(r,2,a)}catch(e){wt(r,2,e)}},r},e}();class _t{constructor(e,t){this.chainId=void 0,this.customOptions=void 0,this.chainId=e,this.customOptions=t}proxyOf(e){const t=m.encode(["address"],[e]),n=b(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return T(this.getFactoryAddress(),t,n)}encodeExecuteHooksForFactory(e,t,n,r,a){return Nt().encodeFunctionData("executeHooks",[e,t,n,r,a])}signCalls(e,t,n,r,a){try{const i=this;return Promise.resolve(r.getAddress()).then(function(s){const o=i.proxyOf(s),{domain:u,types:p,message:d}=i.infoToSign(e,t,n,o);return Promise.resolve(function(e,t,n,r,a){try{let i,s;function o(e){return i?e:h(I(u))}let u=null;const p=function(e,t){var n,r=-1;e:{for(var a=0;a<t.length;a++){var i=t[a][0];if(i){var s=i();if(s&&s.then)break e;if(s===e){r=a;break}}else r=a}if(-1!==r){do{for(var o=t[r][1];!o;)r++,o=t[r][1];var u=o();if(u&&u.then){n=!0;break e}var p=t[r][2];r++}while(p&&!p());return u}}const d=new Ct,l=wt.bind(null,d,2);return(n?u.then(y):s.then(function n(s){for(;;){if(s===e){r=a;break}if(++a===t.length){if(-1!==r)break;return void wt(d,1,u)}if(i=t[a][0]){if((s=i())&&s.then)return void s.then(n).then(void 0,l)}else r=a}do{for(var o=t[r][1];!o;)r++,o=t[r][1];var u=o();if(u&&u.then)return void u.then(y).then(void 0,l);var p=t[r][2];r++}while(p&&!p());wt(d,1,u)})).then(void 0,l),d;function y(e){for(;;){var n=t[r][2];if(!n||n())break;r++;for(var a=t[r][1];!a;)r++,a=t[r][1];if((e=a())&&e.then)return void e.then(y).then(void 0,l)}wt(d,1,e)}}(e,[[function(){return l.EIP712},function(){if(!y(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(n,r,a)).then(function(e){u=e,s=1})}],[function(){return l.ETHSIGN},function(){return Promise.resolve(t.signMessage(v(c(n,r,a)))).then(function(e){u=e,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(p&&p.then?p.then(o):o(p))}catch(d){return Promise.reject(d)}}(a,r,u,p,d))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,n,r){const a={calls:e,nonce:t,deadline:n};return{domain:this.getDomain(r),types:At,message:a}}getDomain(e){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:Ot}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:R}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:D}}export{x as ALL_SUPPORTED_CHAIN_IDS,w as BUY_ETH_ADDRESS,X as BuyTokenDestination,_ as COMPOSABLE_COW,B as COMPOSABLE_COW_CONTRACT_ADDRESS,Ge as CONDITIONAL_ORDER_PARAMS_ABI,k as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,L as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,At as COW_SHED_712_TYPES,R as COW_SHED_FACTORY,D as COW_SHED_IMPLEMENTATION,Ot as COW_SHED_PROXY_INIT_CODE,pt as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,q as CompetitionOrderStatus,rt as ConditionalOrder,ot as ConditionalOrderFactory,g as CowError,_t as CowShedHooks,H as DEFAULT_BACKOFF_OPTIONS,vt as DEFAULT_CONDITIONAL_ORDER_REGISTRY,O as DEFAULT_COW_API_CONTEXT,S as DEFAULT_IPFS_READ_URI,N as DEFAULT_IPFS_WRITE_URI,W as DEFAULT_LIMITER_OPTIONS,$e as DEFAULT_TOKEN_FORMATTER,Et as DOMAIN_TYPE,ct as DurationType,A as ENVS_LIST,C as EXTENSIBLE_FALLBACK_HANDLER,F as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,J as EcdsaSigningScheme,lt as MAX_FREQUENCY,dt as MAX_UINT32,st as Multiplexer,z as ORDER_BOOK_PROD_CONFIG,Z as ORDER_BOOK_STAGING_CONFIG,ee as OnchainOrderData,Q as OrderBookApi,G as OrderBookApiError,te as OrderCancellationError,ne as OrderClass,re as OrderKind,ae as OrderPostError,ie as OrderQuoteSideKindBuy,se as OrderQuoteSideKindSell,Oe as OrderSigningUtils,oe as OrderStatus,Pe as PollResultCode,ue as PriceEstimationError,pe as PriceQuality,ge as ProofLocation,Ie as SUBGRAPH_PROD_CONFIG,ve as SUBGRAPH_STAGING_CONFIG,de as SellTokenSource,le as SigningScheme,ft as StartTimeValue,Ee as SubgraphApi,E as SupportedChainId,ut as TWAP_ADDRESS,Tt as Twap,je as createSetDomainVerifierTx,ze as decodeParams,Ye as encodeParams,Ke as formatEpoch,qe as fromStructToOrder,Me as getBlockInfo,Nt as getCoWShedFactoryInterface,St as getCoWShedInterface,Ue as getDomainVerifier,ce as getQuoteAmountsAndCosts,We as isComposableCow,He as isExtensibleFallbackHandler,Ze as isValidAbi,P as logPrefix,U as mapAddressToSupportedNetworks,M as mapSupportedNetworks,V as request,ht as transformDataToStruct,It as transformStructToData};
28
+ `,he="https://api.thegraph.com/subgraphs/name/cowprotocol",Ie={[E.MAINNET]:he+"/cow",[E.GNOSIS_CHAIN]:he+"/cow-gc",[E.ARBITRUM_ONE]:null,[E.BASE]:null,[E.SEPOLIA]:null},ve={[E.MAINNET]:he+"/cow-staging",[E.GNOSIS_CHAIN]:he+"/cow-gc-staging",[E.ARBITRUM_ONE]:null,[E.BASE]:null,[E.SEPOLIA]:null};class Ee{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...O,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(me,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(be,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(Te,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,n={}){try{const a=this,{chainId:i,env:s}=a.getContextWithOverride(n),o=a.getEnvConfigs(s)[i];if(null===o)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(n,a){try{var i=Promise.resolve(r(o,e,t))}catch(e){return a(e)}return i&&i.then?i.then(void 0,a):i}(0,function(n){throw console.error(`[subgraph:${a.API_NAME}]`,n),new g(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${o}. Inner Error: ${n}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?Ie:ve}}const Ae=()=>import("./utils-67d54330.js");class Oe{static signOrder(e,t,n){try{return Promise.resolve(Ae()).then(function({signOrder:r}){return r(e,t,n)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,n){try{return Promise.resolve(Ae()).then(function({signOrderCancellation:r}){return r(e,t,n)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,n){try{return Promise.resolve(Ae()).then(function({signOrderCancellations:r}){return r(e,t,n)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Ae()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Ae()).then(function({getDomain:t}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:n}){return n.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}var ge,Pe;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(ge||(ge={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(Pe||(Pe={}));const Se=[{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 Ne{static createInterface(){return new a.Interface(Se)}static connect(e,t){return new i(e,Se,t)}}Ne.abi=Se;const we=[{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 Ce{static createInterface(){return new a.Interface(we)}static connect(e,t){return new i(e,we,t)}}Ce.abi=we;const _e=[{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 Re{static createInterface(){return new a.Interface(_e)}static connect(e,t){return new i(e,_e,t)}}Re.abi=_e;const De=[{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 xe{static createInterface(){return new a.Interface(De)}static connect(e,t){return new i(e,De,t)}}xe.abi=De;const Me=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},Ue=function(e,t,n,r){try{const a=xe.connect(F[n],r);return Promise.resolve(a.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},ke=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],Le=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],Fe=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],Be=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],Ve=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],Ge=["tuple(address handler, bytes32 salt, bytes staticInput)"],$e=(e,t)=>`${t}@${e}`;function He(e,t){return e===F[t]}function We(e,t){return e===B[t]}function je(e,t){return xe.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function Ye(e){return a.defaultAbiCoder.encode(Ge,[e])}function ze(e){const{handler:t,salt:n,staticInput:r}=a.defaultAbiCoder.decode(Ge,e)[0];return{handler:t,salt:n,staticInput:r}}function Ze(e,t){try{a.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}function Ke(e){return new Date(1e3*e).toISOString()}function Qe(e){if(ke.includes(e))return p.ERC20;if(Le.includes(e))return p.EXTERNAL;if(Fe.includes(e))return p.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Xe(e){if(Be.includes(e))return d.SELL;if(Ve.includes(e))return d.BUY;throw new Error(`Unknown kind: ${e}`)}function qe(e){const{sellToken:t,sellAmount:n,buyToken:r,buyAmount:a,buyTokenBalance:i,sellTokenBalance:s,feeAmount:o,kind:u,receiver:p,validTo:d,partiallyFillable:l,appData:y}=e;return{sellToken:t,sellAmount:n,buyToken:r,buyAmount:a,feeAmount:o,receiver:p,partiallyFillable:l,appData:y,validTo:Number(d),kind:Xe(u.toString()),sellTokenBalance:Qe(s.toString()),buyTokenBalance:Qe(i.toString())}}let Je,et;function tt(){return Je||(Je=Re.createInterface()),Je}function nt(e,t){return et||(et=Re.connect(B[e],t)),et}class rt{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:n=a.keccak256(a.randomBytes(32)),data:r,hasOffChainInput:i=!1}=e;if(!s.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!s.utils.isHexString(n)||32!==s.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=r,this.staticInput=this.transformDataToStruct(r),this.hasOffChainInput=i}get context(){}assertIsValid(){const e=this.isValid();if(!e.isValid)throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=tt(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const r=e.factoryArgs?a.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[n,e.address,r,!0])}return t.encodeFunctionData("create",[n,!0])}get removeCalldata(){return this.assertIsValid(),tt().encodeFunctionData("remove",[this.id])}get id(){return a.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:o.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return a.keccak256(Ye(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return a.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:n,owner:r,provider:a,orderBookApi:i}=e,s=nt(n,a);return Promise.resolve(function(a,o){try{var u=function(){const a=t.isValid();return a.isValid?Promise.resolve(t.pollValidate(e)).then(function(a){return a||Promise.resolve(t.isAuthorized(e)).then(function(a){return a?Promise.resolve(s.getTradeableOrderWithSignature(r,t.leaf,t.offChainInput,[])).then(function([a,s]){return Promise.resolve(function(e,t,n){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:r}){return Promise.resolve(Oe.getDomain(e)).then(function(e){return r(e,n,t)})})}catch(e){return Promise.reject(e)}}(n,r,qe(a))).then(function(n){return Promise.resolve(i.getOrder(n).then(()=>!0).catch(()=>!1)).then(function(r){let i;function o(e){return i?e:{result:Pe.SUCCESS,order:a,signature:s}}const u=function(){if(r)return Promise.resolve(t.handlePollFailedAlreadyPresent(n,a,e)).then(function(e){return e?(i=1,e):(i=1,{result:Pe.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(o):o(u)})})}):{result:Pe.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${r} on chain ${n}`}})}):{result:Pe.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${a.reason}`}}()}catch(e){return o(e)}return u&&u.then?u.then(void 0,o):u}(0,function(e){return{result:Pe.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:n,provider:r}=e;return nt(t,r).callStatic.singleOrders(n,this.id)}cabinet(e){const{chainId:t,owner:n,provider:r}=e;return nt(t,r).callStatic.cabinet(n,this.ctx)}static deserializeHelper(e,t,n,r){try{const{handler:i,salt:s,staticInput:o}=ze(e);if(i!=t)throw new Error("HandlerMismatch");const[u]=a.defaultAbiCoder.decode(n,o);return r(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const at=["address","bytes32","bytes"],it=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class st{constructor(e,t,n,r=ge.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=r,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!n||!t&&n)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const n=t[e];if(!st.orderTypeRegistry.hasOwnProperty(n.orderType))throw new Error(`Unknown order type: ${n.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==n))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:n,root:r,location:a}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const n in t)if(t.hasOwnProperty(n)){const{orderType:r,...a}=t[n];if(!st.orderTypeRegistry.hasOwnProperty(r))throw new Error(`Unknown order type: ${r}`);e[n]=new(0,st.orderTypeRegistry[r])(a)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?u.from(t):t}),i=new st(t,n,r);return i.location=a,i}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const n=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[n.id]=n,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=f.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),at)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,n){try{const r=this;void 0===e&&(e=r.location);const i=function(){try{switch(e){case ge.PRIVATE:return Promise.resolve("0x");case ge.EMITTED:return Promise.resolve(r.encodeToABI(t));case ge.SWARM:case ge.WAKU:case ge.IPFS:if(!n)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,a){try{var i=Promise.resolve(n(r.encodeToJSON(t)))}catch(e){return a(e)}return i&&i.then?i.then(void 0,a):i}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(i().then(t=>{try{return a.hexlify(a.arrayify(t)),r.location=e,{location:e,data:t}}catch(e){throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,n,r,a){try{function i(n){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,n,t.proof))}const s=nt(n,r);return Promise.resolve(a?Promise.resolve(a(e,t.params)).then(i):i("0x"))}catch(o){return Promise.reject(o)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,n])=>e&&e(n)||void 0===e?{idx:t,value:n}:void 0).reduce((e,t)=>{if(t){const n={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:n})}return e},[])}encodeToABI(e){return a.defaultAbiCoder.encode(it,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){st.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){st.orderTypeRegistry={}}}st.orderTypeRegistry={};class ot{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=e}fromParams(e){const{handler:t}=e,n=this.knownOrderTypes[t];if(n)return n(e)}}const ut="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",pt="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",dt=u.from(2).pow(32).sub(1),lt=u.from(31536e3),yt=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var ct,ft;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(ct||(ct={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(ft||(ft={}));const mt={startType:ft.AT_MINING_TIME},bt={durationType:ct.AUTO};class Tt extends rt{constructor(e){const{handler:t,salt:n,data:r,hasOffChainInput:a}=e;if(t!==ut)throw new Error(`InvalidHandler: Expected: ${ut}, provided: ${t}`);super({handler:ut,salt:n,data:r,hasOffChainInput:a}),this.isSingleOrder=!0}static fromData(e,t){return new Tt({handler:ut,data:e,salt:t})}static fromParams(e){return Tt.deserialize(Ye(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:pt,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:r,startTime:a=mt,numberOfParts:i,timeBetweenParts:s,durationOfPart:u=bt}=this.data;if(e==n)return"InvalidSameToken";if(e==o.AddressZero||n==o.AddressZero)return"InvalidToken";if(!t.gt(o.Zero))return"InvalidSellAmount";if(!r.gt(o.Zero))return"InvalidMinBuyAmount";if(a.startType===ft.AT_EPOCH){const e=a.epoch;if(!e.gte(o.Zero)||!e.lt(dt))return"InvalidStartTime"}return i.gt(o.One)&&i.lte(dt)?s.gt(o.Zero)&&s.lte(lt)?u.durationType!==ct.LIMIT_DURATION||u.duration.lte(s)?Ze(yt,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:n}=t.data;return n?.startType===ft.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=a.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(dt))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const n=t.toNumber();if(0===n)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return n})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:n,durationOfPart:r}=this.data;return r&&r.durationType===ct.LIMIT_DURATION?e+t.sub(1).mul(n).add(r.duration).toNumber():e+t.mul(n).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(Me(e.provider)).then(function(n){const{blockInfo:r=n}=e,{blockTimestamp:a}=r;return function(n,r){try{var i=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>a)return{result:Pe.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Ke(e)})`};const n=t.endTimestamp(e);return a>=n?{result:Pe.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${n} (${Ke(n)})`}:void 0})}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){return e?.message?.includes("Cabinet is not set")?{result:Pe.DONT_TRY_AGAIN,reason:`${e?.message}. User likely removed the order.`}:e?.message?.includes("Cabinet epoch out of range")?{result:Pe.DONT_TRY_AGAIN,reason:`${e?.message}`}:{result:Pe.UNEXPECTED_ERROR,reason:`Unexpected error: ${e.message}`,error:e}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,n){try{const e=this;return Promise.resolve(Me(n.provider)).then(function(t){const{blockInfo:r=t}=n,{blockTimestamp:a}=r,i=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(n)).then(function(e){if(a<e)return{result:Pe.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Ke(e)})`,error:void 0};const t=s.mul(i).add(e).toNumber();if(a>=t)return{result:Pe.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Ke(t)})`,error:void 0};const n=Math.floor((a-e)/i);if(n===s.toNumber()-1)return{result:Pe.DONT_TRY_AGAIN,reason:`Current active TWAP part (${n+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const r=e+(n+1)*i;return{result:Pe.TRY_AT_EPOCH,epoch:r,reason:`Current active TWAP part (${n+1}/${s}) is already in the Order Book. TWAP part ${n+2} doesn't start until ${r} (${Ke(r)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return Ye(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(yt,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,ut,yt,(e,t)=>new Tt({handler:ut,salt:t,data:It(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:n,buyToken:r,numberOfParts:a,startTime:i=mt,timeBetweenParts:s,durationOfPart:o=bt,receiver:u,appData:p}=this.data,d=i.startType===ft.AT_MINING_TIME?"AT_MINING_TIME":i.epoch.toNumber(),l=o.durationType===ct.AUTO?"AUTO":o.duration.toNumber(),y={sellAmount:e.toString(),sellToken:t,buyAmount:n.toString(),buyToken:r,numberOfParts:a.toString(),startTime:d,timeBetweenParts:s.toNumber(),durationOfPart:l,receiver:u,appData:p};return`${this.orderType} (${this.id}): ${JSON.stringify(y)}`}transformDataToStruct(e){return ht(e)}transformStructToData(e){return It(e)}}function ht(e){const{sellAmount:t,buyAmount:n,numberOfParts:r,startTime:a=mt,timeBetweenParts:i,durationOfPart:s=bt,...u}=e,{partSellAmount:p,minPartLimit:d}=r&&!r.isZero()?{partSellAmount:t.div(r),minPartLimit:n.div(r)}:{partSellAmount:o.Zero,minPartLimit:o.Zero};return{partSellAmount:p,minPartLimit:d,t0:a.startType===ft.AT_MINING_TIME?o.Zero:a.epoch,n:r,t:i,span:s.durationType===ct.AUTO?o.Zero:s.duration,...u}}function It(e){const{n:t,partSellAmount:n,minPartLimit:r,t:a,t0:i,span:s,...o}=e,u=s.isZero()?{durationType:ct.AUTO}:{durationType:ct.LIMIT_DURATION,duration:s},p=s.isZero()?{startType:ft.AT_MINING_TIME}:{startType:ft.AT_EPOCH,epoch:i};return{sellAmount:n.mul(t),buyAmount:r.mul(t),startTime:p,numberOfParts:t,timeBetweenParts:a,durationOfPart:u,...o}}const vt={[ut]:e=>Tt.fromParams(e)},Et={EIP712Domain:[{type:"string",name:"name"},{type:"string",name:"version"},{type:"uint256",name:"chainId"},{type:"address",name:"verifyingContract"}]},At={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"}]},Ot="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033";let gt,Pt;function St(){return gt||(gt=Ne.createInterface()),gt}function Nt(){return Pt||(Pt=Ce.createInterface()),Pt}function wt(e,t,n){if(!e.s){if(n instanceof Ct){if(!n.s)return void(n.o=wt.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(wt.bind(null,e,t),wt.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}const Ct=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,n){const r=new e,a=this.s;if(a){const e=1&a?t:n;if(e){try{wt(r,1,e(this.v))}catch(e){wt(r,2,e)}return r}return this}return this.o=function(e){try{const a=e.v;1&e.s?wt(r,1,t?t(a):a):n?wt(r,1,n(a)):wt(r,2,a)}catch(e){wt(r,2,e)}},r},e}();class _t{constructor(e,t){this.chainId=void 0,this.customOptions=void 0,this.chainId=e,this.customOptions=t}proxyOf(e){const t=m.encode(["address"],[e]),n=b(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return T(this.getFactoryAddress(),t,n)}encodeExecuteHooksForFactory(e,t,n,r,a){return Nt().encodeFunctionData("executeHooks",[e,t,n,r,a])}signCalls(e,t,n,r,a){try{const i=this;return Promise.resolve(r.getAddress()).then(function(s){const o=i.proxyOf(s),{domain:u,types:p,message:d}=i.infoToSign(e,t,n,o);return Promise.resolve(function(e,t,n,r,a){try{let i,s;function o(e){return i?e:h(I(u))}let u=null;const p=function(e,t){var n,r=-1;e:{for(var a=0;a<t.length;a++){var i=t[a][0];if(i){var s=i();if(s&&s.then)break e;if(s===e){r=a;break}}else r=a}if(-1!==r){do{for(var o=t[r][1];!o;)r++,o=t[r][1];var u=o();if(u&&u.then){n=!0;break e}var p=t[r][2];r++}while(p&&!p());return u}}const d=new Ct,l=wt.bind(null,d,2);return(n?u.then(y):s.then(function n(s){for(;;){if(s===e){r=a;break}if(++a===t.length){if(-1!==r)break;return void wt(d,1,u)}if(i=t[a][0]){if((s=i())&&s.then)return void s.then(n).then(void 0,l)}else r=a}do{for(var o=t[r][1];!o;)r++,o=t[r][1];var u=o();if(u&&u.then)return void u.then(y).then(void 0,l);var p=t[r][2];r++}while(p&&!p());wt(d,1,u)})).then(void 0,l),d;function y(e){for(;;){var n=t[r][2];if(!n||n())break;r++;for(var a=t[r][1];!a;)r++,a=t[r][1];if((e=a())&&e.then)return void e.then(y).then(void 0,l)}wt(d,1,e)}}(e,[[function(){return l.EIP712},function(){if(!y(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(n,r,a)).then(function(e){u=e,s=1})}],[function(){return l.ETHSIGN},function(){return Promise.resolve(t.signMessage(v(c(n,r,a)))).then(function(e){u=e,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(p&&p.then?p.then(o):o(p))}catch(d){return Promise.reject(d)}}(a,r,u,p,d))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,n,r){const a={calls:e,nonce:t,deadline:n};return{domain:this.getDomain(r),types:At,message:a}}getDomain(e){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:Ot}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:R}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:D}}export{x as ALL_SUPPORTED_CHAIN_IDS,w as BUY_ETH_ADDRESS,X as BuyTokenDestination,_ as COMPOSABLE_COW,B as COMPOSABLE_COW_CONTRACT_ADDRESS,Ge as CONDITIONAL_ORDER_PARAMS_ABI,k as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,L as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,At as COW_SHED_712_TYPES,R as COW_SHED_FACTORY,D as COW_SHED_IMPLEMENTATION,Ot as COW_SHED_PROXY_INIT_CODE,pt as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,q as CompetitionOrderStatus,rt as ConditionalOrder,ot as ConditionalOrderFactory,g as CowError,_t as CowShedHooks,H as DEFAULT_BACKOFF_OPTIONS,vt as DEFAULT_CONDITIONAL_ORDER_REGISTRY,O as DEFAULT_COW_API_CONTEXT,S as DEFAULT_IPFS_READ_URI,N as DEFAULT_IPFS_WRITE_URI,W as DEFAULT_LIMITER_OPTIONS,$e as DEFAULT_TOKEN_FORMATTER,Et as DOMAIN_TYPE,ct as DurationType,A as ENVS_LIST,C as EXTENSIBLE_FALLBACK_HANDLER,F as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,J as EcdsaSigningScheme,lt as MAX_FREQUENCY,dt as MAX_UINT32,st as Multiplexer,z as ORDER_BOOK_PROD_CONFIG,Z as ORDER_BOOK_STAGING_CONFIG,ee as OnchainOrderData,Q as OrderBookApi,G as OrderBookApiError,te as OrderCancellationError,ne as OrderClass,re as OrderKind,ae as OrderPostError,ie as OrderQuoteSideKindBuy,se as OrderQuoteSideKindSell,Oe as OrderSigningUtils,oe as OrderStatus,Pe as PollResultCode,ue as PriceEstimationError,pe as PriceQuality,ge as ProofLocation,Ie as SUBGRAPH_PROD_CONFIG,ve as SUBGRAPH_STAGING_CONFIG,de as SellTokenSource,le as SigningScheme,ft as StartTimeValue,Ee as SubgraphApi,E as SupportedChainId,ut as TWAP_ADDRESS,Tt as Twap,je as createSetDomainVerifierTx,ze as decodeParams,Ye as encodeParams,Ke as formatEpoch,qe as fromStructToOrder,Me as getBlockInfo,Nt as getCoWShedFactoryInterface,St as getCoWShedInterface,Ue as getDomainVerifier,ce as getQuoteAmountsAndCosts,We as isComposableCow,He as isExtensibleFallbackHandler,Ze as isValidAbi,P as logPrefix,U as mapAddressToSupportedNetworks,M as mapSupportedNetworks,V as request,ht as transformDataToStruct,It as transformStructToData};
29
29
  //# sourceMappingURL=index.module.js.map