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