@bancor/carbon-sdk
Advanced tools
Comparing version 0.0.33-DEV to 0.0.34-DEV
@@ -180,2 +180,6 @@ import { Signer } from "ethers"; | ||
readonly inputs: readonly []; | ||
readonly name: "UnsetDelegator"; | ||
readonly type: "error"; | ||
}, { | ||
readonly inputs: readonly []; | ||
readonly name: "ZeroLiquidityProvided"; | ||
@@ -182,0 +186,0 @@ readonly type: "error"; |
@@ -8,10 +8,6 @@ import { Signer } from "ethers"; | ||
readonly internalType: "bool"; | ||
readonly name: "newUseGlobalJson"; | ||
readonly name: "newUseGlobalURI"; | ||
readonly type: "bool"; | ||
}, { | ||
readonly internalType: "string"; | ||
readonly name: "newGlobalURI"; | ||
readonly type: "string"; | ||
}, { | ||
readonly internalType: "string"; | ||
readonly name: "newBaseURI"; | ||
@@ -323,12 +319,2 @@ readonly type: "string"; | ||
readonly inputs: readonly [{ | ||
readonly internalType: "string"; | ||
readonly name: "newGlobalURI"; | ||
readonly type: "string"; | ||
}]; | ||
readonly name: "setGlobalURI"; | ||
readonly outputs: readonly []; | ||
readonly stateMutability: "nonpayable"; | ||
readonly type: "function"; | ||
}, { | ||
readonly inputs: readonly [{ | ||
readonly internalType: "bytes4"; | ||
@@ -335,0 +321,0 @@ readonly name: "interfaceId"; |
@@ -23,3 +23,2 @@ import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; | ||
"setCarbonController(address)": FunctionFragment; | ||
"setGlobalURI(string)": FunctionFragment; | ||
"supportsInterface(bytes4)": FunctionFragment; | ||
@@ -35,3 +34,3 @@ "symbol()": FunctionFragment; | ||
}; | ||
getFunction(nameOrSignatureOrTopic: "approve" | "balanceOf" | "burn" | "getApproved" | "isApprovedForAll" | "mint" | "name" | "owner" | "ownerOf" | "renounceOwnership" | "safeTransferFrom(address,address,uint256)" | "safeTransferFrom(address,address,uint256,bytes)" | "setApprovalForAll" | "setBaseExtension" | "setBaseURI" | "setCarbonController" | "setGlobalURI" | "supportsInterface" | "symbol" | "tokenByIndex" | "tokenOfOwnerByIndex" | "tokenURI" | "totalSupply" | "transferFrom" | "transferOwnership" | "useGlobalURI"): FunctionFragment; | ||
getFunction(nameOrSignatureOrTopic: "approve" | "balanceOf" | "burn" | "getApproved" | "isApprovedForAll" | "mint" | "name" | "owner" | "ownerOf" | "renounceOwnership" | "safeTransferFrom(address,address,uint256)" | "safeTransferFrom(address,address,uint256,bytes)" | "setApprovalForAll" | "setBaseExtension" | "setBaseURI" | "setCarbonController" | "supportsInterface" | "symbol" | "tokenByIndex" | "tokenOfOwnerByIndex" | "tokenURI" | "totalSupply" | "transferFrom" | "transferOwnership" | "useGlobalURI"): FunctionFragment; | ||
encodeFunctionData(functionFragment: "approve", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string; | ||
@@ -62,3 +61,2 @@ encodeFunctionData(functionFragment: "balanceOf", values: [PromiseOrValue<string>]): string; | ||
encodeFunctionData(functionFragment: "setCarbonController", values: [PromiseOrValue<string>]): string; | ||
encodeFunctionData(functionFragment: "setGlobalURI", values: [PromiseOrValue<string>]): string; | ||
encodeFunctionData(functionFragment: "supportsInterface", values: [PromiseOrValue<BytesLike>]): string; | ||
@@ -93,3 +91,2 @@ encodeFunctionData(functionFragment: "symbol", values?: undefined): string; | ||
decodeFunctionResult(functionFragment: "setCarbonController", data: BytesLike): Result; | ||
decodeFunctionResult(functionFragment: "setGlobalURI", data: BytesLike): Result; | ||
decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; | ||
@@ -208,5 +205,2 @@ decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; | ||
}): Promise<ContractTransaction>; | ||
setGlobalURI(newGlobalURI: PromiseOrValue<string>, overrides?: Overrides & { | ||
from?: PromiseOrValue<string>; | ||
}): Promise<ContractTransaction>; | ||
supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>; | ||
@@ -264,5 +258,2 @@ symbol(overrides?: CallOverrides): Promise<[string]>; | ||
}): Promise<ContractTransaction>; | ||
setGlobalURI(newGlobalURI: PromiseOrValue<string>, overrides?: Overrides & { | ||
from?: PromiseOrValue<string>; | ||
}): Promise<ContractTransaction>; | ||
supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>; | ||
@@ -300,3 +291,2 @@ symbol(overrides?: CallOverrides): Promise<string>; | ||
setCarbonController(carbonController: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>; | ||
setGlobalURI(newGlobalURI: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>; | ||
supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>; | ||
@@ -359,5 +349,2 @@ symbol(overrides?: CallOverrides): Promise<string>; | ||
}): Promise<BigNumber>; | ||
setGlobalURI(newGlobalURI: PromiseOrValue<string>, overrides?: Overrides & { | ||
from?: PromiseOrValue<string>; | ||
}): Promise<BigNumber>; | ||
supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>; | ||
@@ -416,5 +403,2 @@ symbol(overrides?: CallOverrides): Promise<BigNumber>; | ||
}): Promise<PopulatedTransaction>; | ||
setGlobalURI(newGlobalURI: PromiseOrValue<string>, overrides?: Overrides & { | ||
from?: PromiseOrValue<string>; | ||
}): Promise<PopulatedTransaction>; | ||
supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>; | ||
@@ -421,0 +405,0 @@ symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>; |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@ethersproject/providers"),require("@ethersproject/bignumber"),require("decimal.js"),require("ethers"),require("@ethersproject/units")):"function"==typeof define&&define.amd?define(["@ethersproject/providers","@ethersproject/bignumber","decimal.js","ethers","@ethersproject/units"],t):(e||self).carbonSdk=t(e.providers,e.bignumber,e.Decimal,e.ethers,e.units)}(this,function(e,t,n,a,r){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=/*#__PURE__*/i(n);function u(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,"symbol"==typeof(r=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(a.key))?r:String(r),a)}var r}function s(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},p.apply(this,arguments)}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(e,t){return e.localeCompare(t)},c=function(e){if(2!==e.length)throw new Error("Invalid number of tokens: expected 2, got "+e.length);if(e[0]===e[1])throw new Error("Cannot create key for identical tokens: "+e[0])},m=function(e,t){return c([e,t]),[e,t].sort(l)},f=function(e,t){return c([e,t]),e+"-"+t},b=function(e,t,n,a,r,i){for(var o,u=d(a.entries());!(o=u()).done;)for(var s=o.value[1],p=0;p<s.length;p++)if(s[p].id===e){if(s[p][0===t?"order0":"order1"]=n,r.set(e.toString(),s[p]),0===i.size)return;var y=[s[p].token0,s[p].token1];0===t&&y.reverse();var l,c=f(y[0],y[1]),m=i.get(c);return void(m?m[s[p].id.toString()]=n:(console.warn("Should not be here, modified order is supposed to already be cached"),i.set(c,((l={})[s[p].id.toString()]=n,l))))}},T=/*#__PURE__*/function(){function e(e){this._pairToStrategies=void 0,this._strategyById=void 0,this._fetcher=void 0,this._cachedOrders=void 0,this._fetcher=e,this._pairToStrategies=new Map,this._strategyById=new Map,this._cachedOrders=new Map}var t=e.prototype;return t.init=function(){try{var e=this;return Promise.resolve(function(e){try{return Promise.resolve(e.getAllTokenPairs()).then(function(t){return Promise.resolve(e.getStrategiesByTokenPairs(t)).then(function(e){for(var n=new Map,a=0;a<t.length;a++){var r=t[a],i=e[a],o=m(r[0],r[1]);n.set(o,i)}return n})})}catch(e){return Promise.reject(e)}}(e._fetcher)).then(function(t){e._pairToStrategies=t,e._fetcher.onStrategyCreated(function(t){return function(e,t,n,a){if(!n.has(e.id.toString())){n.set(e.id.toString(),e);var r=m(e.token0,e.token1);if(t.has(r)?t.get(r).push(e):t.set(r,[e]),0!==a.size)for(var i=[e.token0,e.token1],o=0,u=[i,i.reverse()];o<u.length;o++){var s,p=u[o],y=f(p[0],p[1]),d=p[0]===e.token0?e.order1:e.order0,l=a.get(y);l?l[e.id.toString()]=d:a.set(y,((s={})[e.id.toString()]=d,s))}}}(t,e._pairToStrategies,e._strategyById,e._cachedOrders)}),e._fetcher.onStrategyUpdated(function(t){return function(e,t,n,a){b(e.id,0,e.order0,t,n,a),b(e.id,1,e.order1,t,n,a)}(t,e._pairToStrategies,e._strategyById,e._cachedOrders)});for(var n,a=d(e._pairToStrategies.values());!(n=a()).done;){var r=n.value;if(r&&r.length>0)for(var i=0;i<r.length;i++)e._strategyById.set(r[i].id.toString(),r[i])}})}catch(e){return Promise.reject(e)}},t.getOrders=function(e,t,n){var a;if(void 0===n&&(n=!1),0===this._pairToStrategies.size)return console.warn("getOrders was called when no strategies are cached, did you call init?"),{};0===this._cachedOrders.size&&function(e,t){t.clear();for(var n,a=d(e.values());!(n=a()).done;){var r=n.value;if(r.length>0){for(var i=r[0].token0,o=r[0].token1,u={},s={},p=0;p<r.length;p++)r[p].token0===i?(u[r[p].id.toString()]=r[p].order0,s[r[p].id.toString()]=r[p].order1):(u[r[p].id.toString()]=r[p].order1,s[r[p].id.toString()]=r[p].order0);t.set(f(i,o),s),t.set(f(o,i),u)}}}(this._pairToStrategies,this._cachedOrders);var r=f(e,t),i=null!=(a=this._cachedOrders.get(r))?a:{};if(n)return i;var o=Object.entries(i).filter(function(e){return e[1].y.gt(0)});return Object.fromEntries(o)},t.getStrategyById=function(e){return this._strategyById.get(e.toString())},s(e,[{key:"pairs",get:function(){return Array.from(this._pairToStrategies.keys())}}]),e}();o.default.set({precision:50,rounding:o.default.ROUND_HALF_DOWN,toExpNeg:-30,toExpPos:30});var g=Math.pow(2,32),h=new o.default(10),v=function(e,t){return h.pow(e-t)},w="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE".toLowerCase(),k=function(e){return e.toLowerCase()===w},_=function(e,n,a){var r=p({},a);return k(e)&&(r.value=n.reduce(function(e,t){return e.add(t.amount)},t.BigNumber.from(0))),r},S=/*#__PURE__*/function(){function e(e){this._prefix=void 0,this._prefix="[SDK]["+e+"]:"}var t=e.prototype;return t.log=function(){var e;(e=console).log.apply(e,[this._prefix].concat([].slice.call(arguments)))},t.debug=function(){var e;(e=console).log.apply(e,[this._prefix].concat([].slice.call(arguments)))},e}(),P=new S("Composer.ts"),B=/*#__PURE__*/function(){function e(e){this._contracts=void 0,this._contracts=e}var t=e.prototype;return t.tradeByTargetAmount=function(e,t,n,a,r,i){P.debug("tradeByTargetAmount called",arguments);var o=_(e,n,i);return P.debug("tradeByTargetAmount overrides",o),this._contracts.carbonController.populateTransaction.tradeByTargetAmount(e,t,n,a,r,o)},t.tradeBySourceAmount=function(e,t,n,a,r,i){P.debug("tradeBySourceAmount called",arguments);var o=_(e,n,i);return P.debug("tradeBySourceAmount overrides",o),this._contracts.carbonController.populateTransaction.tradeBySourceAmount(e,t,n,a,r,o)},t.createStrategy=function(e,t,n,a,r){P.debug("createStrategy called",arguments);var i=p({},r);return k(e)?i.value=n.y:k(t)&&(i.value=a.y),P.debug("createStrategy overrides",i),this._contracts.carbonController.populateTransaction.createStrategy(e,t,[n,a],i)},t.transferVoucherOwnership=function(e,t){return this._contracts.voucher.populateTransaction.transferOwnership(e,t)},e}(),M=[{inputs:[],name:"AccessDenied",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"admin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"DeadlineExpired",type:"error"},{inputs:[],name:"GreaterThanMaxInput",type:"error"},{inputs:[],name:"IdenticalAddresses",type:"error"},{inputs:[],name:"InsufficientCapacity",type:"error"},{inputs:[],name:"InvalidFee",type:"error"},{inputs:[],name:"InvalidIndices",type:"error"},{inputs:[],name:"InvalidStrategyId",type:"error"},{inputs:[],name:"InvalidTradeActionAmount",type:"error"},{inputs:[],name:"LowerThanMinReturn",type:"error"},{inputs:[],name:"NativeAmountMismatch",type:"error"},{inputs:[],name:"NoIdsProvided",type:"error"},{inputs:[],name:"OutDated",type:"error"},{inputs:[],name:"Overflow",type:"error"},{inputs:[],name:"PoolAlreadyExists",type:"error"},{inputs:[],name:"PoolDoesNotExists",type:"error"},{inputs:[],name:"StrategyDoesNotExist",type:"error"},{inputs:[],name:"TokensMismatch",type:"error"},{inputs:[],name:"UnknownDelegator",type:"error"},{inputs:[],name:"UnnecessaryNativeTokenReceived",type:"error"},{inputs:[],name:"ZeroLiquidityProvided",type:"error"},{inputs:[],name:"ZeroValue",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"poolId",type:"uint256"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order0",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order1",type:"tuple"}],name:"StrategyCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order0",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order1",type:"tuple"}],name:"StrategyDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order0",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order1",type:"tuple"}],name:"StrategyUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"trader",type:"address"},{indexed:!0,internalType:"address",name:"sourceToken",type:"address"},{indexed:!0,internalType:"address",name:"targetToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sourceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"targetAmount",type:"uint256"},{indexed:!1,internalType:"uint128",name:"tradingFeeAmount",type:"uint128"},{indexed:!1,internalType:"bool",name:"byTargetAmount",type:"bool"}],name:"TokensTraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"prevFeePPM",type:"uint32"},{indexed:!1,internalType:"uint32",name:"newFeePPM",type:"uint32"}],name:"TradingFeePPMUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"accumulatedFees",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"controllerType",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],name:"createPool",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pool",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],name:"createStrategy",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"}],name:"deleteStrategy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"uint256",name:"index",type:"uint256"}],name:"getRoleMember",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleMemberCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pairs",outputs:[{internalType:"address[2][]",name:"",type:"address[2][]"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],name:"pool",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pool",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"postUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"roleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[],name:"roleEmergencyStopper",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"newTradingFeePPM",type:"uint32"}],name:"setTradingFeePPM",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"strategiesByIds",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pair",name:"pair",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],internalType:"struct Strategy[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"},{internalType:"uint256",name:"startIndex",type:"uint256"},{internalType:"uint256",name:"endIndex",type:"uint256"}],name:"strategiesByPool",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pair",name:"pair",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],internalType:"struct Strategy[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],name:"strategiesByPoolCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"strategy",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pair",name:"pair",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],internalType:"struct Strategy",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint128",name:"minReturn",type:"uint128"}],name:"tradeBySourceAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint128",name:"maxInput",type:"uint128"}],name:"tradeByTargetAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"}],name:"tradeSourceAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"}],name:"tradeTargetAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"tradingFeePPM",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"currentOrders",type:"tuple[2]"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"newOrders",type:"tuple[2]"}],name:"updateStrategy",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"address",name:"newOwner",type:"address"}],name:"updateStrategyOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"logic",type:"address"},{internalType:"address",name:"initAdmin",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],stateMutability:"payable",type:"constructor"}],x=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(M)},e.connect=function(e,t){return new a.Contract(e,M,t)},e}();x.abi=M;var A=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"}],I=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(A)},e.connect=function(e,t){return new a.Contract(e,A,t)},e}();I.abi=A;var D=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_disable",type:"bool"}],name:"disableTransfers",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"version",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"standard",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_token",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],name:"withdrawTokens",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function"},{constant:!1,inputs:[],name:"acceptOwnership",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],name:"issue",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_amount",type:"uint256"}],name:"destroy",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"transfersEnabled",outputs:[{name:"",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"newOwner",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"",type:"address"},{name:"",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,type:"function"},{inputs:[{name:"_name",type:"string"},{name:"_symbol",type:"string"},{name:"_decimals",type:"uint8"}],payable:!1,type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,name:"_token",type:"address"}],name:"NewSmartToken",type:"event"},{anonymous:!1,inputs:[{indexed:!1,name:"_amount",type:"uint256"}],name:"Issuance",type:"event"},{anonymous:!1,inputs:[{indexed:!1,name:"_amount",type:"uint256"}],name:"Destruction",type:"event"},{anonymous:!1,inputs:[{indexed:!1,name:"_prevOwner",type:"address"},{indexed:!1,name:"_newOwner",type:"address"}],name:"OwnerUpdate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}],R=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(D)},e.connect=function(e,t){return new a.Contract(e,D,t)},e}();R.abi=D;var O=[{inputs:[{internalType:"bool",name:"newUseGlobalJson",type:"bool"},{internalType:"string",name:"newGlobalURI",type:"string"},{internalType:"string",name:"newBaseURI",type:"string"},{internalType:"string",name:"newBaseExtension",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessDenied",type:"error"},{inputs:[],name:"CarbonControllerNotSet",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint256",name:"strategyId",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newBaseExtension",type:"string"}],name:"setBaseExtension",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newBaseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract CarbonController",name:"carbonController",type:"address"}],name:"setCarbonController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newGlobalURI",type:"string"}],name:"setGlobalURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"newUseGlobalURI",type:"bool"}],name:"useGlobalURI",outputs:[],stateMutability:"nonpayable",type:"function"}],C=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(O)},e.connect=function(e,t){return new a.Contract(e,O,t)},e}();C.abi=O;var j=/*#__PURE__*/function(){function e(e){this._provider=void 0,this._carbonController=void 0,this._multiCall=void 0,this._voucher=void 0,this._provider=e}return e.prototype.token=function(e){return R.connect(e,this._provider)},s(e,[{key:"carbonController",get:function(){return this._carbonController||(this._carbonController=x.connect("0x4aa24bE5828C24e90e16de4203373a55170f009b",this._provider)),this._carbonController}},{key:"multicall",get:function(){return this._multiCall||(this._multiCall=I.connect("0x5ba1e12693dc8f9c48aad8770482f4739beed696",this._provider)),this._multiCall}},{key:"voucher",get:function(){return this._voucher||(this._voucher=C.connect("0x2aaD5E2868771112c1897Cb12cDaDE53b616daf4",this._provider)),this._voucher}}]),e}(),E=new S("Reader.ts"),q=function(e){return{id:e[0],token0:e[2][0],token1:e[2][1],order0:{y:e[3][0][0],z:e[3][0][1],A:e[3][0][2],B:e[3][0][3]},order1:{y:e[3][1][0],z:e[3][1][1],A:e[3][1][2],B:e[3][1][3]}}},N=/*#__PURE__*/function(){function e(e){var t=this;this._contracts=void 0,this.getDecimalsByAddress=function(e){try{return k(e)?Promise.resolve(18):Promise.resolve(t._contracts.token(e).decimals())}catch(e){return Promise.reject(e)}},this._contracts=e}var t=e.prototype;return t.multicall=function(e,t){return function(e,t,n){return Promise.resolve(function(a,r){try{var i=(o=e.map(function(e){return{target:e.contractAddress.toLocaleLowerCase(),callData:e.interface.encodeFunctionData(e.methodName,e.methodParameters)}}),Promise.resolve(t.tryAggregate(!1,o,{blockTag:n})).then(function(t){return t.map(function(t,n){return t.success?e[n].interface.decodeFunctionResult(e[n].methodName,t.returnData):[]})}))}catch(e){return}var o;return i&&i.then?i.then(void 0,function(){}):i}())}(e,this._contracts.multicall,t)},t.getStrategyById=function(e){try{return Promise.resolve(this._contracts.carbonController.strategy(e)).then(q)}catch(e){return Promise.reject(e)}},t.getStrategiesByIds=function(e){try{return Promise.resolve(this._contracts.carbonController.strategiesByIds(e)).then(function(e){return e.map(function(e){return q(e)})})}catch(e){return Promise.reject(e)}},t.getAllTokenPairs=function(){return this._contracts.carbonController.pairs()},t.getStrategiesByTokenPair=function(e,t){try{return Promise.resolve(this._contracts.carbonController.strategiesByPool(e,t,0,0)).then(function(e){return e.map(function(e){return q(e)})})}catch(e){return Promise.reject(e)}},t.getStrategiesByTokenPairs=function(e){try{var t=this;return Promise.resolve(t.multicall(e.map(function(e){return{contractAddress:t._contracts.carbonController.address,interface:t._contracts.carbonController.interface,methodName:"strategiesByPool",methodParameters:[e[0],e[1],0,0]}}))).then(function(e){return e&&0!==e.length?e.map(function(e){return e[0].map(function(e){return q(e)})}):[]})}catch(e){return Promise.reject(e)}},t.getUserStrategyIds=function(e){try{var t=this;return e?Promise.resolve(t._contracts.voucher.balanceOf(e)).then(function(n){var a=Array.from(Array(n.toNumber()),function(n,a){return{contractAddress:t._contracts.voucher.address,interface:t._contracts.voucher.interface,methodName:"tokenOfOwnerByIndex",methodParameters:[e,a]}});return Promise.resolve(t.multicall(a)).then(function(e){return e?e.map(function(e){return e[0]}):[]})}):Promise.resolve([])}catch(e){return Promise.reject(e)}},t.onStrategyCreated=function(e){return this._contracts.carbonController.on("StrategyCreated",function(t,n,a,r,i,o){var u=i.y,s=i.z,p=i.A,y=i.B,d=o.y,l=o.z,c=o.A,m=o.B;E.debug("StrategyCreated fired with",arguments);var f={id:t,token0:a,token1:r,order0:{y:u,z:s,A:p,B:y},order1:{y:d,z:l,A:c,B:m}};E.debug("StrategyCreated parsed strategy:",f),e(f)})},t.onStrategyUpdated=function(e){return this._contracts.carbonController.on("StrategyUpdated",function(t,n,a,r,i,o){var u=i.y,s=i.z,p=i.A,y=i.B,d=o.y,l=o.z,c=o.A,m=o.B;E.debug("StrategyUpdated fired with",arguments);var f={id:t,token0:a,token1:r,order0:{y:u,z:s,A:p,B:y},order1:{y:d,z:l,A:c,B:m}};E.debug("StrategyUpdated parsed strategy:",f),e(f)})},e}(),z=/*#__PURE__*/function(){function e(e){this._reader=void 0,this._composer=void 0;var t=new j(e);this._reader=new N(t),this._composer=new B(t)}return s(e,[{key:"reader",get:function(){return this._reader}},{key:"composer",get:function(){return this._composer}}]),e}(),U=function(e,t){var n=e.output.mul(t.input),a=t.output.mul(e.input),r=n.lt(a),i=n.gt(a),o=!r&&!i;return+(r||o&&e.output.lt(t.output))-+(i||o&&e.output.gt(t.output))},F=function(e,t){return U(t,e)},L=t.BigNumber.from(0),H=t.BigNumber.from(2).pow(128).sub(1),G=function(e,t){var n=e,a=t.y,r=t.z,i=t.A,o=t.B,u=r.mul(g),s=a.mul(i).add(r.mul(o)),p=s.sub(n.mul(i)),y=function(e,t,n){return e.mul(t).add(n).sub(1).div(n)}(n.mul(u),u,s.mul(p));return y.lt(L)?H:y},W=function(e,t){var n=function(e,t){var n=e,a=t.z,r=t.A,i=t.B,o=t.y.mul(r).add(a.mul(i)),u=o.mul(n).div(g),s=u.mul(r).add(a.mul(a).mul(g)),p=function(e,t,n){return e.mul(t).div(n)}(o,u,s);return p.gt(H)?L:p}(e,t),a=n.lt(t.y)?n:t.y;return{input:G(a,t),output:a}},Z=function(e,t){var n=e.lt(t.y)?e:t.y;return{input:n,output:G(n,t)}},J=function(e,n,a,r,i){for(var o,u=[],s=d(Object.keys(n).map(function(t){return{id:t,rate:r(e,n[t])}}).sort(function(e,t){return i(e.rate,t.rate)}));!(o=s()).done;){var p=o.value,y=p.id,l=p.rate;if(!e.gt(l.input)){if(e.eq(l.input)){a(l)&&u.push({id:t.BigNumber.from(y),input:l.input,output:l.output});break}var c={input:e,output:r(e,n[y]).output};a(c)&&u.push({id:t.BigNumber.from(y),input:c.input,output:c.output});break}a(l)&&(u.push({id:t.BigNumber.from(y),input:l.input,output:l.output}),e=e.sub(l.input))}return u},K=function(e,t,n){return void 0===n&&(n=function(e){return!0}),J(e,t,n,W,U)},V=function(e,t,n){return void 0===n&&(n=function(e){return!0}),J(e,t,n,Z,F)},$=/*#__PURE__*/function(){function e(){this._cachedDecimals=void 0,this._cachedDecimals=new Map}return e.init=function(t){e._fetcher=t,e.getInstance().cachedDecimals.clear()},e.getInstance=function(){if(!e._instance){if(!e._fetcher)throw new Error("Decimals has not been initialized with a fetcher function");e._instance=new e}return e._instance},e.prototype.fetchDecimals=function(t){try{var n=this,a=n._cachedDecimals.get(t);return void 0!==a?Promise.resolve(a):Promise.resolve(e._fetcher(t)).then(function(e){return n._cachedDecimals.set(t,a=e),a})}catch(e){return Promise.reject(e)}},s(e,[{key:"cachedDecimals",get:function(){return this._cachedDecimals}}]),e}();$._instance=void 0,$._fetcher=void 0;var Q=function(e){try{var t=arguments;X.debug("formatStrategy called",t);var n=e.id,a=e.token0,r=e.token1,i=e.order0,o=e.order1,u=$.getInstance();return Promise.resolve(u.fetchDecimals(a)).then(function(e){return Promise.resolve(u.fetchDecimals(r)).then(function(t){var u=ee(o.lowestRate,e,t),s=ee(o.highestRate,e,t),p=te(i.highestRate,t,e),y=te(i.lowestRate,t,e),d=re(i.liquidity,e),l=re(o.liquidity,t);return X.debug("formatStrategy info:",{id:n,token0:a,token1:r,order0:i,order1:o,decimals0:e,decimals1:t,baseToken:a,quoteToken:r,buyPriceLow:u,buyPriceHigh:s,buyBudget:l,sellPriceLow:p,sellPriceHigh:y,sellBudget:d}),{id:n,baseToken:a,quoteToken:r,buyPriceLow:u,buyPriceHigh:s,buyBudget:l,sellPriceLow:p,sellPriceHigh:y,sellBudget:d}})})}catch(e){return Promise.reject(e)}},X=new S("friendlyUtils.ts");function Y(e,t,n,a,r,i,u,s){if(X.debug("buildStrategyObject called",arguments),new o.default(n).isNegative()||new o.default(a).isNegative()||new o.default(i).isNegative()||new o.default(u).isNegative())throw new Error("prices cannot be negative");if(new o.default(n).gt(a)||new o.default(i).gt(u))throw new Error("low price must be lower than or equal to high price");if(new o.default(r).isNegative()||new o.default(s).isNegative())throw new Error("budgets cannot be negative");var p=ne(e.decimals,t.decimals,n,a,r,i,u,s),y=p.order0,d=p.order1;return X.debug("buildStrategyObject info:",{token0:e.address,token1:t.address,order0:y,order1:d}),{token0:e.address,token1:t.address,order0:y,order1:d}}function ee(e,t,n){return new o.default(e).times(v(t,n)).toFixed()}function te(e,t,n){return 0==+e?"0":new o.default(1).div(e).times(v(n,t)).toFixed()}function ne(e,t,n,a,r,i,o,u){X.debug("createOrders called",arguments);var s=ae(u,e),p=te(o,t,e),y=te(i,t,e),d=ae(r,t),l=ee(n,t,e),c=ee(a,t,e),m={liquidity:s,lowestRate:p,highestRate:y,marginalRate:y},f={liquidity:d,lowestRate:l,highestRate:c,marginalRate:c};return X.debug("createOrders info:",{order0:m,order1:f}),{order0:m,order1:f}}function ae(e,t){var n,a,i,o=(a=t,-1!==(i=(n=e).indexOf("."))?n.slice(0,i+a+1):n);return r.parseUnits(o,t).toString()}function re(e,t){var n=r.formatUnits(e,t);return new o.default(n).toFixed()}var ie=function(e){return e.sqrt().mul(g)},oe=function(e){return e.div(g).pow(2)},ue=function(e){var n=t.BigNumber.from(new o.default(e.liquidity).toFixed()),a=t.BigNumber.from(ie(new o.default(e.lowestRate)).floor().toFixed()),r=t.BigNumber.from(ie(new o.default(e.highestRate)).floor().toFixed()),i=t.BigNumber.from(ie(new o.default(e.marginalRate)).floor().toFixed());if(!(r.gte(i)&&i.gt(a)||r.eq(i)&&i.eq(a)))throw new Error("Invalid order: max must be greater than or equal to mid, and mid must be greater than min \n - or the three should be equal (highestRate: "+e.highestRate+", \n marginalRate: "+e.marginalRate+", lowestRate: "+e.lowestRate+")");var u=r.sub(a);return{y:n,z:u.isZero()?n:n.mul(u).div(i.sub(a)),A:u,B:a}},se=function(e){var t=new o.default(e.y.toString()),n=new o.default(e.z.toString()),a=new o.default(e.A.toString()),r=new o.default(e.B.toString()),i=t.eq(n)?new o.default(1):t.div(n);return{liquidity:t.toString(),lowestRate:oe(r).toString(),highestRate:oe(r.add(a)).toString(),marginalRate:oe(r.add(a.mul(i))).toString()}},pe=function(e){return{token0:e.token0,token1:e.token1,order0:ue(e.order0),order1:ue(e.order1)}},ye=function(e){return{id:e.id,token0:e.token0,token1:e.token1,order0:se(e.order0),order1:se(e.order1)}};function de(e){return e.reduce(function(e,t){return o.default.min(e,t.lowestRate)},new o.default(Infinity))}function le(e){return e.reduce(function(e,t){return o.default.max(e,t.highestRate)},new o.default(-Infinity))}function ce(e,t){return e.reduce(function(e,n){return e.add(function(e,t){if(t.lte(e.lowestRate))return new o.default(e.liquidity);if(t.gte(e.marginalRate))return new o.default(0);var n=new o.default(e.liquidity),a=new o.default(e.lowestRate).sqrt(),r=new o.default(e.marginalRate).sqrt();return n.sub(n.mul(t.sqrt().sub(a)).div(r.sub(a)))}(n,t))},new o.default(0))}var me=new S("index.ts"),fe=/*#__PURE__*/function(){function n(t,n){this._api=void 0,this._cache=void 0,me.debug("SDK class constructor called with",arguments);var a=new e.StaticJsonRpcProvider(t,1);this._api=new z(a),$.init(null!=n?n:this._api.reader.getDecimalsByAddress)}var a=n.prototype;return a.startDataSync=function(){try{var e=this;return me.debug("startDataSync called"),e._cache?(me.debug("startDataSync was already called before"),Promise.resolve()):(e._cache=new T(e._api.reader),Promise.resolve(e._cache.init()).then(function(){}))}catch(e){return Promise.reject(e)}},a.hasLiquidityByPair=function(e,t){if(me.debug("hasLiquidityByPair called",arguments),!this._cache)throw me.log("hasLiquidityByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var n=this._cache.getOrders(e,t);return me.debug("hasLiquidityByPair info:",{orders:n}),Object.keys(n).length>0},a.getLiquidityByPair=function(e,n){try{var a=arguments,r=this;if(me.debug("getLiquidityByPair called",a),!r._cache)throw me.log("getLiquidityByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var i=r._cache.getOrders(e,n),o=Object.values(i).reduce(function(e,t){return e.add(t.y)},t.BigNumber.from(0));return Promise.resolve($.getInstance().fetchDecimals(n)).then(function(e){var t=re(o,e);return me.debug("getLiquidityByPair info:",{orders:i,liquidityWei:o,targetToken:n,decimals:e,liquidity:t}),t})}catch(e){return Promise.reject(e)}},a.getUserStrategies=function(e){try{var t=arguments,n=this;if(me.debug("getUserStrategies called",t),!n._cache)throw me.log("getUserStrategies called before startDataSync"),new Error("startDataSync must be called prior to this action");return Promise.resolve(n._api.reader.getUserStrategyIds(e)).then(function(e){var t=e.map(function(e){var t;return null==(t=n._cache)?void 0:t.getStrategyById(e)}).filter(function(e){return!!e}),a=t.map(ye);return Promise.resolve(Promise.all(a.map(function(e){try{return Promise.resolve(Q(e))}catch(e){return Promise.reject(e)}}))).then(function(n){return me.debug("getUserStrategies info:",{ids:e,encodedStrategies:t,decodedStrategies:a,strategies:n}),n})})}catch(e){return Promise.reject(e)}},a.getTradeData=function(e,n,a,r,i){try{var u=arguments,s=this;if(me.debug("getTradeData called",u),!s._cache)throw me.log("getTradeData called before startDataSync"),new Error("startDataSync must be called prior to this action");var p=$.getInstance();return Promise.resolve(p.fetchDecimals(e)).then(function(u){return Promise.resolve(p.fetchDecimals(n)).then(function(p){var y,d=s._cache.getOrders(e,n),l=t.BigNumber.from(ae(a,r?p:u));y=r?V(l,d,i):K(l,d,i);var c=[],m=[],f=t.BigNumber.from(0),b=t.BigNumber.from(0);y.forEach(function(e){c.push({strategyId:e.id,amount:e.input}),m.push({id:e.id,sourceAmount:re(r?e.output:e.input,u),targetAmount:re(r?e.input:e.output,p)}),b=b.add(e.input),f=f.add(e.output)});var T,g=r?f:b,h=r?b:f;if(g.isZero()||h.isZero())T={tradeActions:c,actionsTokenRes:m,totalSourceAmount:"0",totalTargetAmount:"0",effectiveRate:"0"};else{var w=new o.default(h.toString()).div(g.toString()).times(v(u,p)).toString();T={tradeActions:c,actionsTokenRes:m,totalSourceAmount:re(g,u),totalTargetAmount:re(h,p),effectiveRate:w}}return me.debug("getTradeData info:",{sourceDecimals:u,targetDecimals:p,orders:d,amount:a,amountWei:l,actionsWei:y,res:T}),T})})}catch(e){return Promise.reject(e)}},a.composeTradeByTargetTransaction=function(e,t,n,a,r,i){try{var o=arguments,u=this;return me.debug("composeTradeByTargetTransaction called",o),Promise.resolve($.getInstance().fetchDecimals(e)).then(function(o){return u._api.composer.tradeByTargetAmount(e,t,n,a,ae(r,o),i)})}catch(e){return Promise.reject(e)}},a.composeTradeBySourceTransaction=function(e,t,n,a,r,i){try{var o=arguments,u=this;return me.debug("composeTradeBySourceTransaction called",o),Promise.resolve($.getInstance().fetchDecimals(t)).then(function(o){return u._api.composer.tradeBySourceAmount(e,t,n,a,ae(r,o),i)})}catch(e){return Promise.reject(e)}},a.createBuySellStrategy=function(e,t,n,a,r,i,o,u,s){me.debug("createBuySellStrategy called",arguments);var p=Y(e,t,n,a,r,i,o,u),y=pe(p);return me.debug("createBuySellStrategy info:",{strategy:p,encStrategy:y}),this._api.composer.createStrategy(y.token0,y.token1,y.order0,y.order1,s)},a.getRateLiquidityDepthByPair=function(e,t,n){try{var a=arguments,r=this;if(me.debug("getRateLiquidityDepthByPair called",a),!r._cache)throw me.log("getRateLiquidityDepthByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var i=Object.values(r._cache.getOrders(e,t)).map(se),u=$.getInstance();return Promise.resolve(u.fetchDecimals(e)).then(function(e){return Promise.resolve(u.fetchDecimals(t)).then(function(t){var a=ee(n,t,e),r=ce(i,new o.default(a)).toFixed(0),u=re(r,t);return me.debug("getRateLiquidityDepthByPair info:",{orders:i,depthWei:r,targetDecimals:t,depthInTargetDecimals:u}),u})})}catch(e){return Promise.reject(e)}},a.getMinRateByPair=function(e,t){try{var n=arguments,a=this;if(me.debug("getMinRateByPair called",n),!a._cache)throw me.log("getMinRateByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var r=Object.values(a._cache.getOrders(e,t)).map(se),i=de(r).toString(),o=$.getInstance();return Promise.resolve(o.fetchDecimals(e)).then(function(e){return Promise.resolve(o.fetchDecimals(t)).then(function(t){var n=ee(i,e,t);return me.debug("getMinRateByPair info:",{orders:r,minRate:i,sourceDecimals:e,targetDecimals:t,normalizedRate:n}),n})})}catch(e){return Promise.reject(e)}},a.getMaxRateByPair=function(e,t){try{var n=arguments,a=this;if(me.debug("getMaxRateByPair called",n),!a._cache)throw me.log("getMaxRateByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var r=Object.values(a._cache.getOrders(e,t)).map(se),i=le(r).toString(),o=$.getInstance();return Promise.resolve(o.fetchDecimals(e)).then(function(e){return Promise.resolve(o.fetchDecimals(t)).then(function(t){var n=ee(i,e,t);return me.debug("getMaxRateByPair info:",{orders:r,maxRate:i,sourceDecimals:e,targetDecimals:t,normalizedRate:n}),n})})}catch(e){return Promise.reject(e)}},s(n,[{key:"isInitialized",get:function(){return void 0!==this._cache}},{key:"pairs",get:function(){if(me.debug("pairs called"),!this._cache)throw me.log("pairs called before startDataSync"),new Error("startDataSync must be called prior to this action");return this._cache.pairs}}]),n}();return fe}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@ethersproject/providers"),require("@ethersproject/bignumber"),require("decimal.js"),require("ethers"),require("@ethersproject/units")):"function"==typeof define&&define.amd?define(["@ethersproject/providers","@ethersproject/bignumber","decimal.js","ethers","@ethersproject/units"],t):(e||self).carbonSdk=t(e.providers,e.bignumber,e.Decimal,e.ethers,e.units)}(this,function(e,t,n,a,r){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=/*#__PURE__*/i(n);function u(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,"symbol"==typeof(r=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(a.key))?r:String(r),a)}var r}function s(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},p.apply(this,arguments)}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(e,t){return e.localeCompare(t)},c=function(e){if(2!==e.length)throw new Error("Invalid number of tokens: expected 2, got "+e.length);if(e[0]===e[1])throw new Error("Cannot create key for identical tokens: "+e[0])},m=function(e,t){return c([e,t]),[e,t].sort(l)},f=function(e,t){return c([e,t]),e+"-"+t},b=function(e,t,n,a,r,i){for(var o,u=d(a.entries());!(o=u()).done;)for(var s=o.value[1],p=0;p<s.length;p++)if(s[p].id===e){if(s[p][0===t?"order0":"order1"]=n,r.set(e.toString(),s[p]),0===i.size)return;var y=[s[p].token0,s[p].token1];0===t&&y.reverse();var l,c=f(y[0],y[1]),m=i.get(c);return void(m?m[s[p].id.toString()]=n:(console.warn("Should not be here, modified order is supposed to already be cached"),i.set(c,((l={})[s[p].id.toString()]=n,l))))}},T=/*#__PURE__*/function(){function e(e){this._pairToStrategies=void 0,this._strategyById=void 0,this._fetcher=void 0,this._cachedOrders=void 0,this._fetcher=e,this._pairToStrategies=new Map,this._strategyById=new Map,this._cachedOrders=new Map}var t=e.prototype;return t.init=function(){try{var e=this;return Promise.resolve(function(e){try{return Promise.resolve(e.getAllTokenPairs()).then(function(t){return Promise.resolve(e.getStrategiesByTokenPairs(t)).then(function(e){for(var n=new Map,a=0;a<t.length;a++){var r=t[a],i=e[a],o=m(r[0],r[1]);n.set(o,i)}return n})})}catch(e){return Promise.reject(e)}}(e._fetcher)).then(function(t){e._pairToStrategies=t,e._fetcher.onStrategyCreated(function(t){return function(e,t,n,a){if(!n.has(e.id.toString())){n.set(e.id.toString(),e);var r=m(e.token0,e.token1);if(t.has(r)?t.get(r).push(e):t.set(r,[e]),0!==a.size)for(var i=[e.token0,e.token1],o=0,u=[i,i.reverse()];o<u.length;o++){var s,p=u[o],y=f(p[0],p[1]),d=p[0]===e.token0?e.order1:e.order0,l=a.get(y);l?l[e.id.toString()]=d:a.set(y,((s={})[e.id.toString()]=d,s))}}}(t,e._pairToStrategies,e._strategyById,e._cachedOrders)}),e._fetcher.onStrategyUpdated(function(t){return function(e,t,n,a){b(e.id,0,e.order0,t,n,a),b(e.id,1,e.order1,t,n,a)}(t,e._pairToStrategies,e._strategyById,e._cachedOrders)});for(var n,a=d(e._pairToStrategies.values());!(n=a()).done;){var r=n.value;if(r&&r.length>0)for(var i=0;i<r.length;i++)e._strategyById.set(r[i].id.toString(),r[i])}})}catch(e){return Promise.reject(e)}},t.getOrders=function(e,t,n){var a;if(void 0===n&&(n=!1),0===this._pairToStrategies.size)return console.warn("getOrders was called when no strategies are cached, did you call init?"),{};0===this._cachedOrders.size&&function(e,t){t.clear();for(var n,a=d(e.values());!(n=a()).done;){var r=n.value;if(r.length>0){for(var i=r[0].token0,o=r[0].token1,u={},s={},p=0;p<r.length;p++)r[p].token0===i?(u[r[p].id.toString()]=r[p].order0,s[r[p].id.toString()]=r[p].order1):(u[r[p].id.toString()]=r[p].order1,s[r[p].id.toString()]=r[p].order0);t.set(f(i,o),s),t.set(f(o,i),u)}}}(this._pairToStrategies,this._cachedOrders);var r=f(e,t),i=null!=(a=this._cachedOrders.get(r))?a:{};if(n)return i;var o=Object.entries(i).filter(function(e){return e[1].y.gt(0)});return Object.fromEntries(o)},t.getStrategyById=function(e){return this._strategyById.get(e.toString())},s(e,[{key:"pairs",get:function(){return Array.from(this._pairToStrategies.keys())}}]),e}();o.default.set({precision:50,rounding:o.default.ROUND_HALF_DOWN,toExpNeg:-30,toExpPos:30});var g=Math.pow(2,32),h=new o.default(10),v=function(e,t){return h.pow(e-t)},w="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE".toLowerCase(),k=function(e){return e.toLowerCase()===w},_=function(e,n,a){var r=p({},a);return k(e)&&(r.value=n.reduce(function(e,t){return e.add(t.amount)},t.BigNumber.from(0))),r},S=/*#__PURE__*/function(){function e(e){this._prefix=void 0,this._prefix="[SDK]["+e+"]:"}var t=e.prototype;return t.log=function(){var e;(e=console).log.apply(e,[this._prefix].concat([].slice.call(arguments)))},t.debug=function(){var e;(e=console).log.apply(e,[this._prefix].concat([].slice.call(arguments)))},e}(),B=new S("Composer.ts"),P=/*#__PURE__*/function(){function e(e){this._contracts=void 0,this._contracts=e}var t=e.prototype;return t.tradeByTargetAmount=function(e,t,n,a,r,i){B.debug("tradeByTargetAmount called",arguments);var o=_(e,n,i);return B.debug("tradeByTargetAmount overrides",o),this._contracts.carbonController.populateTransaction.tradeByTargetAmount(e,t,n,a,r,o)},t.tradeBySourceAmount=function(e,t,n,a,r,i){B.debug("tradeBySourceAmount called",arguments);var o=_(e,n,i);return B.debug("tradeBySourceAmount overrides",o),this._contracts.carbonController.populateTransaction.tradeBySourceAmount(e,t,n,a,r,o)},t.createStrategy=function(e,t,n,a,r){B.debug("createStrategy called",arguments);var i=p({},r);return k(e)?i.value=n.y:k(t)&&(i.value=a.y),B.debug("createStrategy overrides",i),this._contracts.carbonController.populateTransaction.createStrategy(e,t,[n,a],i)},t.transferVoucherOwnership=function(e,t){return this._contracts.voucher.populateTransaction.transferOwnership(e,t)},e}(),x=[{inputs:[],name:"AccessDenied",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"admin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"DeadlineExpired",type:"error"},{inputs:[],name:"GreaterThanMaxInput",type:"error"},{inputs:[],name:"IdenticalAddresses",type:"error"},{inputs:[],name:"InsufficientCapacity",type:"error"},{inputs:[],name:"InvalidFee",type:"error"},{inputs:[],name:"InvalidIndices",type:"error"},{inputs:[],name:"InvalidStrategyId",type:"error"},{inputs:[],name:"InvalidTradeActionAmount",type:"error"},{inputs:[],name:"LowerThanMinReturn",type:"error"},{inputs:[],name:"NativeAmountMismatch",type:"error"},{inputs:[],name:"NoIdsProvided",type:"error"},{inputs:[],name:"OutDated",type:"error"},{inputs:[],name:"Overflow",type:"error"},{inputs:[],name:"PoolAlreadyExists",type:"error"},{inputs:[],name:"PoolDoesNotExists",type:"error"},{inputs:[],name:"StrategyDoesNotExist",type:"error"},{inputs:[],name:"TokensMismatch",type:"error"},{inputs:[],name:"UnknownDelegator",type:"error"},{inputs:[],name:"UnnecessaryNativeTokenReceived",type:"error"},{inputs:[],name:"UnsetDelegator",type:"error"},{inputs:[],name:"ZeroLiquidityProvided",type:"error"},{inputs:[],name:"ZeroValue",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"poolId",type:"uint256"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order0",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order1",type:"tuple"}],name:"StrategyCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order0",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order1",type:"tuple"}],name:"StrategyDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"contract Token",name:"token0",type:"address"},{indexed:!0,internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order0",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],indexed:!1,internalType:"struct Order",name:"order1",type:"tuple"}],name:"StrategyUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"trader",type:"address"},{indexed:!0,internalType:"address",name:"sourceToken",type:"address"},{indexed:!0,internalType:"address",name:"targetToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sourceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"targetAmount",type:"uint256"},{indexed:!1,internalType:"uint128",name:"tradingFeeAmount",type:"uint128"},{indexed:!1,internalType:"bool",name:"byTargetAmount",type:"bool"}],name:"TokensTraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"prevFeePPM",type:"uint32"},{indexed:!1,internalType:"uint32",name:"newFeePPM",type:"uint32"}],name:"TradingFeePPMUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"accumulatedFees",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"controllerType",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],name:"createPool",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pool",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],name:"createStrategy",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"}],name:"deleteStrategy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"uint256",name:"index",type:"uint256"}],name:"getRoleMember",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleMemberCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pairs",outputs:[{internalType:"address[2][]",name:"",type:"address[2][]"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],name:"pool",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pool",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"postUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"roleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[],name:"roleEmergencyStopper",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"newTradingFeePPM",type:"uint32"}],name:"setTradingFeePPM",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"strategiesByIds",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pair",name:"pair",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],internalType:"struct Strategy[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"},{internalType:"uint256",name:"startIndex",type:"uint256"},{internalType:"uint256",name:"endIndex",type:"uint256"}],name:"strategiesByPool",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pair",name:"pair",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],internalType:"struct Strategy[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],name:"strategiesByPoolCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"strategy",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract Token",name:"token0",type:"address"},{internalType:"contract Token",name:"token1",type:"address"}],internalType:"struct Pair",name:"pair",type:"tuple"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"orders",type:"tuple[2]"}],internalType:"struct Strategy",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint128",name:"minReturn",type:"uint128"}],name:"tradeBySourceAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint128",name:"maxInput",type:"uint128"}],name:"tradeByTargetAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"}],name:"tradeSourceAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Token",name:"sourceToken",type:"address"},{internalType:"contract Token",name:"targetToken",type:"address"},{components:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"uint128",name:"amount",type:"uint128"}],internalType:"struct TradeAction[]",name:"tradeActions",type:"tuple[]"}],name:"tradeTargetAmount",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"tradingFeePPM",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"currentOrders",type:"tuple[2]"},{components:[{internalType:"uint128",name:"y",type:"uint128"},{internalType:"uint128",name:"z",type:"uint128"},{internalType:"uint64",name:"A",type:"uint64"},{internalType:"uint64",name:"B",type:"uint64"}],internalType:"struct Order[2]",name:"newOrders",type:"tuple[2]"}],name:"updateStrategy",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"},{internalType:"address",name:"newOwner",type:"address"}],name:"updateStrategyOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"logic",type:"address"},{internalType:"address",name:"initAdmin",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],stateMutability:"payable",type:"constructor"}],A=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(x)},e.connect=function(e,t){return new a.Contract(e,x,t)},e}();A.abi=x;var M=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"}],I=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(M)},e.connect=function(e,t){return new a.Contract(e,M,t)},e}();I.abi=M;var D=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"success",type:"bool"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_disable",type:"bool"}],name:"disableTransfers",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"success",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"version",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"standard",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_token",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],name:"withdrawTokens",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function"},{constant:!1,inputs:[],name:"acceptOwnership",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],name:"issue",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_amount",type:"uint256"}],name:"destroy",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"success",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"transfersEnabled",outputs:[{name:"",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"newOwner",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"",type:"address"},{name:"",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"_newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,type:"function"},{inputs:[{name:"_name",type:"string"},{name:"_symbol",type:"string"},{name:"_decimals",type:"uint8"}],payable:!1,type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,name:"_token",type:"address"}],name:"NewSmartToken",type:"event"},{anonymous:!1,inputs:[{indexed:!1,name:"_amount",type:"uint256"}],name:"Issuance",type:"event"},{anonymous:!1,inputs:[{indexed:!1,name:"_amount",type:"uint256"}],name:"Destruction",type:"event"},{anonymous:!1,inputs:[{indexed:!1,name:"_prevOwner",type:"address"},{indexed:!1,name:"_newOwner",type:"address"}],name:"OwnerUpdate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_spender",type:"address"},{indexed:!1,name:"_value",type:"uint256"}],name:"Approval",type:"event"}],O=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(D)},e.connect=function(e,t){return new a.Contract(e,D,t)},e}();O.abi=D;var R=[{inputs:[{internalType:"bool",name:"newUseGlobalURI",type:"bool"},{internalType:"string",name:"newBaseURI",type:"string"},{internalType:"string",name:"newBaseExtension",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessDenied",type:"error"},{inputs:[],name:"CarbonControllerNotSet",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"strategyId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"provider",type:"address"},{internalType:"uint256",name:"strategyId",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newBaseExtension",type:"string"}],name:"setBaseExtension",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newBaseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract CarbonController",name:"carbonController",type:"address"}],name:"setCarbonController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"newUseGlobalURI",type:"bool"}],name:"useGlobalURI",outputs:[],stateMutability:"nonpayable",type:"function"}],C=/*#__PURE__*/function(){function e(){}return e.createInterface=function(){return new a.utils.Interface(R)},e.connect=function(e,t){return new a.Contract(e,R,t)},e}();C.abi=R;var j=/*#__PURE__*/function(){function e(e){this._provider=void 0,this._carbonController=void 0,this._multiCall=void 0,this._voucher=void 0,this._provider=e}return e.prototype.token=function(e){return O.connect(e,this._provider)},s(e,[{key:"carbonController",get:function(){return this._carbonController||(this._carbonController=A.connect("0x483309B60A7f5A097aE09Cf5811773431a9E8d1B",this._provider)),this._carbonController}},{key:"multicall",get:function(){return this._multiCall||(this._multiCall=I.connect("0x5ba1e12693dc8f9c48aad8770482f4739beed696",this._provider)),this._multiCall}},{key:"voucher",get:function(){return this._voucher||(this._voucher=C.connect("0x2fB666c75ec98462852c66D4981e1B3a0E668593",this._provider)),this._voucher}}]),e}(),E=new S("Reader.ts"),q=function(e){return{id:e[0],token0:e[2][0],token1:e[2][1],order0:{y:e[3][0][0],z:e[3][0][1],A:e[3][0][2],B:e[3][0][3]},order1:{y:e[3][1][0],z:e[3][1][1],A:e[3][1][2],B:e[3][1][3]}}},N=/*#__PURE__*/function(){function e(e){var t=this;this._contracts=void 0,this.getDecimalsByAddress=function(e){try{return k(e)?Promise.resolve(18):Promise.resolve(t._contracts.token(e).decimals())}catch(e){return Promise.reject(e)}},this._contracts=e}var t=e.prototype;return t.multicall=function(e,t){return function(e,t,n){return Promise.resolve(function(a,r){try{var i=(o=e.map(function(e){return{target:e.contractAddress.toLocaleLowerCase(),callData:e.interface.encodeFunctionData(e.methodName,e.methodParameters)}}),Promise.resolve(t.tryAggregate(!1,o,{blockTag:n})).then(function(t){return t.map(function(t,n){return t.success?e[n].interface.decodeFunctionResult(e[n].methodName,t.returnData):[]})}))}catch(e){return}var o;return i&&i.then?i.then(void 0,function(){}):i}())}(e,this._contracts.multicall,t)},t.getStrategyById=function(e){try{return Promise.resolve(this._contracts.carbonController.strategy(e)).then(q)}catch(e){return Promise.reject(e)}},t.getStrategiesByIds=function(e){try{return Promise.resolve(this._contracts.carbonController.strategiesByIds(e)).then(function(e){return e.map(function(e){return q(e)})})}catch(e){return Promise.reject(e)}},t.getAllTokenPairs=function(){return this._contracts.carbonController.pairs()},t.getStrategiesByTokenPair=function(e,t){try{return Promise.resolve(this._contracts.carbonController.strategiesByPool(e,t,0,0)).then(function(e){return e.map(function(e){return q(e)})})}catch(e){return Promise.reject(e)}},t.getStrategiesByTokenPairs=function(e){try{var t=this;return Promise.resolve(t.multicall(e.map(function(e){return{contractAddress:t._contracts.carbonController.address,interface:t._contracts.carbonController.interface,methodName:"strategiesByPool",methodParameters:[e[0],e[1],0,0]}}))).then(function(e){return e&&0!==e.length?e.map(function(e){return e[0].map(function(e){return q(e)})}):[]})}catch(e){return Promise.reject(e)}},t.getUserStrategyIds=function(e){try{var t=this;return e?Promise.resolve(t._contracts.voucher.balanceOf(e)).then(function(n){var a=Array.from(Array(n.toNumber()),function(n,a){return{contractAddress:t._contracts.voucher.address,interface:t._contracts.voucher.interface,methodName:"tokenOfOwnerByIndex",methodParameters:[e,a]}});return Promise.resolve(t.multicall(a)).then(function(e){return e?e.map(function(e){return e[0]}):[]})}):Promise.resolve([])}catch(e){return Promise.reject(e)}},t.onStrategyCreated=function(e){return this._contracts.carbonController.on("StrategyCreated",function(t,n,a,r,i,o){var u=i.y,s=i.z,p=i.A,y=i.B,d=o.y,l=o.z,c=o.A,m=o.B;E.debug("StrategyCreated fired with",arguments);var f={id:t,token0:a,token1:r,order0:{y:u,z:s,A:p,B:y},order1:{y:d,z:l,A:c,B:m}};E.debug("StrategyCreated parsed strategy:",f),e(f)})},t.onStrategyUpdated=function(e){return this._contracts.carbonController.on("StrategyUpdated",function(t,n,a,r,i,o){var u=i.y,s=i.z,p=i.A,y=i.B,d=o.y,l=o.z,c=o.A,m=o.B;E.debug("StrategyUpdated fired with",arguments);var f={id:t,token0:a,token1:r,order0:{y:u,z:s,A:p,B:y},order1:{y:d,z:l,A:c,B:m}};E.debug("StrategyUpdated parsed strategy:",f),e(f)})},e}(),z=/*#__PURE__*/function(){function e(e){this._reader=void 0,this._composer=void 0;var t=new j(e);this._reader=new N(t),this._composer=new P(t)}return s(e,[{key:"reader",get:function(){return this._reader}},{key:"composer",get:function(){return this._composer}}]),e}(),U=function(e,t){var n=e.output.mul(t.input),a=t.output.mul(e.input),r=n.lt(a),i=n.gt(a),o=!r&&!i;return+(r||o&&e.output.lt(t.output))-+(i||o&&e.output.gt(t.output))},F=function(e,t){return U(t,e)},L=t.BigNumber.from(0),H=t.BigNumber.from(2).pow(128).sub(1),G=function(e,t){var n=e,a=t.y,r=t.z,i=t.A,o=t.B,u=r.mul(g),s=a.mul(i).add(r.mul(o)),p=s.sub(n.mul(i)),y=function(e,t,n){return e.mul(t).add(n).sub(1).div(n)}(n.mul(u),u,s.mul(p));return y.lt(L)?H:y},W=function(e,t){var n=function(e,t){var n=e,a=t.z,r=t.A,i=t.B,o=t.y.mul(r).add(a.mul(i)),u=o.mul(n).div(g),s=u.mul(r).add(a.mul(a).mul(g)),p=function(e,t,n){return e.mul(t).div(n)}(o,u,s);return p.gt(H)?L:p}(e,t),a=n.lt(t.y)?n:t.y;return{input:G(a,t),output:a}},Z=function(e,t){var n=e.lt(t.y)?e:t.y;return{input:n,output:G(n,t)}},K=function(e,n,a,r,i){for(var o,u=[],s=d(Object.keys(n).map(function(t){return{id:t,rate:r(e,n[t])}}).sort(function(e,t){return i(e.rate,t.rate)}));!(o=s()).done;){var p=o.value,y=p.id,l=p.rate;if(!e.gt(l.input)){if(e.eq(l.input)){a(l)&&u.push({id:t.BigNumber.from(y),input:l.input,output:l.output});break}var c={input:e,output:r(e,n[y]).output};a(c)&&u.push({id:t.BigNumber.from(y),input:c.input,output:c.output});break}a(l)&&(u.push({id:t.BigNumber.from(y),input:l.input,output:l.output}),e=e.sub(l.input))}return u},V=function(e,t,n){return void 0===n&&(n=function(e){return!0}),K(e,t,n,W,U)},J=function(e,t,n){return void 0===n&&(n=function(e){return!0}),K(e,t,n,Z,F)},$=/*#__PURE__*/function(){function e(){this._cachedDecimals=void 0,this._cachedDecimals=new Map}return e.init=function(t){e._fetcher=t,e.getInstance().cachedDecimals.clear()},e.getInstance=function(){if(!e._instance){if(!e._fetcher)throw new Error("Decimals has not been initialized with a fetcher function");e._instance=new e}return e._instance},e.prototype.fetchDecimals=function(t){try{var n=this,a=n._cachedDecimals.get(t);return void 0!==a?Promise.resolve(a):Promise.resolve(e._fetcher(t)).then(function(e){return n._cachedDecimals.set(t,a=e),a})}catch(e){return Promise.reject(e)}},s(e,[{key:"cachedDecimals",get:function(){return this._cachedDecimals}}]),e}();$._instance=void 0,$._fetcher=void 0;var Q=function(e){try{var t=arguments;X.debug("formatStrategy called",t);var n=e.id,a=e.token0,r=e.token1,i=e.order0,o=e.order1,u=$.getInstance();return Promise.resolve(u.fetchDecimals(a)).then(function(e){return Promise.resolve(u.fetchDecimals(r)).then(function(t){var u=ee(o.lowestRate,e,t),s=ee(o.highestRate,e,t),p=te(i.highestRate,t,e),y=te(i.lowestRate,t,e),d=re(i.liquidity,e),l=re(o.liquidity,t);return X.debug("formatStrategy info:",{id:n,token0:a,token1:r,order0:i,order1:o,decimals0:e,decimals1:t,baseToken:a,quoteToken:r,buyPriceLow:u,buyPriceHigh:s,buyBudget:l,sellPriceLow:p,sellPriceHigh:y,sellBudget:d}),{id:n,baseToken:a,quoteToken:r,buyPriceLow:u,buyPriceHigh:s,buyBudget:l,sellPriceLow:p,sellPriceHigh:y,sellBudget:d}})})}catch(e){return Promise.reject(e)}},X=new S("friendlyUtils.ts");function Y(e,t,n,a,r,i,u,s){if(X.debug("buildStrategyObject called",arguments),new o.default(n).isNegative()||new o.default(a).isNegative()||new o.default(i).isNegative()||new o.default(u).isNegative())throw new Error("prices cannot be negative");if(new o.default(n).gt(a)||new o.default(i).gt(u))throw new Error("low price must be lower than or equal to high price");if(new o.default(r).isNegative()||new o.default(s).isNegative())throw new Error("budgets cannot be negative");var p=ne(e.decimals,t.decimals,n,a,r,i,u,s),y=p.order0,d=p.order1;return X.debug("buildStrategyObject info:",{token0:e.address,token1:t.address,order0:y,order1:d}),{token0:e.address,token1:t.address,order0:y,order1:d}}function ee(e,t,n){return new o.default(e).times(v(t,n)).toFixed()}function te(e,t,n){return 0==+e?"0":new o.default(1).div(e).times(v(n,t)).toFixed()}function ne(e,t,n,a,r,i,o,u){X.debug("createOrders called",arguments);var s=ae(u,e),p=te(o,t,e),y=te(i,t,e),d=ae(r,t),l=ee(n,t,e),c=ee(a,t,e),m={liquidity:s,lowestRate:p,highestRate:y,marginalRate:y},f={liquidity:d,lowestRate:l,highestRate:c,marginalRate:c};return X.debug("createOrders info:",{order0:m,order1:f}),{order0:m,order1:f}}function ae(e,t){var n,a,i,o=(a=t,-1!==(i=(n=e).indexOf("."))?n.slice(0,i+a+1):n);return r.parseUnits(o,t).toString()}function re(e,t){var n=r.formatUnits(e,t);return new o.default(n).toFixed()}var ie=function(e){return e.sqrt().mul(g)},oe=function(e){return e.div(g).pow(2)},ue=function(e){var n=t.BigNumber.from(new o.default(e.liquidity).toFixed()),a=t.BigNumber.from(ie(new o.default(e.lowestRate)).floor().toFixed()),r=t.BigNumber.from(ie(new o.default(e.highestRate)).floor().toFixed()),i=t.BigNumber.from(ie(new o.default(e.marginalRate)).floor().toFixed());if(!(r.gte(i)&&i.gt(a)||r.eq(i)&&i.eq(a)))throw new Error("Invalid order: max must be greater than or equal to mid, and mid must be greater than min \n - or the three should be equal (highestRate: "+e.highestRate+", \n marginalRate: "+e.marginalRate+", lowestRate: "+e.lowestRate+")");var u=r.sub(a);return{y:n,z:u.isZero()?n:n.mul(u).div(i.sub(a)),A:u,B:a}},se=function(e){var t=new o.default(e.y.toString()),n=new o.default(e.z.toString()),a=new o.default(e.A.toString()),r=new o.default(e.B.toString()),i=t.eq(n)?new o.default(1):t.div(n);return{liquidity:t.toString(),lowestRate:oe(r).toString(),highestRate:oe(r.add(a)).toString(),marginalRate:oe(r.add(a.mul(i))).toString()}},pe=function(e){return{token0:e.token0,token1:e.token1,order0:ue(e.order0),order1:ue(e.order1)}},ye=function(e){return{id:e.id,token0:e.token0,token1:e.token1,order0:se(e.order0),order1:se(e.order1)}};function de(e){return e.reduce(function(e,t){return o.default.min(e,t.lowestRate)},new o.default(Infinity))}function le(e){return e.reduce(function(e,t){return o.default.max(e,t.highestRate)},new o.default(-Infinity))}function ce(e,t){return e.reduce(function(e,n){return e.add(function(e,t){if(t.lte(e.lowestRate))return new o.default(e.liquidity);if(t.gte(e.marginalRate))return new o.default(0);var n=new o.default(e.liquidity),a=new o.default(e.lowestRate).sqrt(),r=new o.default(e.marginalRate).sqrt();return n.sub(n.mul(t.sqrt().sub(a)).div(r.sub(a)))}(n,t))},new o.default(0))}var me=new S("index.ts"),fe=/*#__PURE__*/function(){function n(t,n){this._api=void 0,this._cache=void 0,me.debug("SDK class constructor called with",arguments);var a=new e.StaticJsonRpcProvider(t,1);this._api=new z(a),$.init(null!=n?n:this._api.reader.getDecimalsByAddress)}var a=n.prototype;return a.startDataSync=function(){try{var e=this;return me.debug("startDataSync called"),e._cache?(me.debug("startDataSync was already called before"),Promise.resolve()):(e._cache=new T(e._api.reader),Promise.resolve(e._cache.init()).then(function(){}))}catch(e){return Promise.reject(e)}},a.hasLiquidityByPair=function(e,t){if(me.debug("hasLiquidityByPair called",arguments),!this._cache)throw me.log("hasLiquidityByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var n=this._cache.getOrders(e,t);return me.debug("hasLiquidityByPair info:",{orders:n}),Object.keys(n).length>0},a.getLiquidityByPair=function(e,n){try{var a=arguments,r=this;if(me.debug("getLiquidityByPair called",a),!r._cache)throw me.log("getLiquidityByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var i=r._cache.getOrders(e,n),o=Object.values(i).reduce(function(e,t){return e.add(t.y)},t.BigNumber.from(0));return Promise.resolve($.getInstance().fetchDecimals(n)).then(function(e){var t=re(o,e);return me.debug("getLiquidityByPair info:",{orders:i,liquidityWei:o,targetToken:n,decimals:e,liquidity:t}),t})}catch(e){return Promise.reject(e)}},a.getUserStrategies=function(e){try{var t=arguments,n=this;if(me.debug("getUserStrategies called",t),!n._cache)throw me.log("getUserStrategies called before startDataSync"),new Error("startDataSync must be called prior to this action");return Promise.resolve(n._api.reader.getUserStrategyIds(e)).then(function(e){var t=e.map(function(e){var t;return null==(t=n._cache)?void 0:t.getStrategyById(e)}).filter(function(e){return!!e}),a=t.map(ye);return Promise.resolve(Promise.all(a.map(function(e){try{return Promise.resolve(Q(e))}catch(e){return Promise.reject(e)}}))).then(function(n){return me.debug("getUserStrategies info:",{ids:e,encodedStrategies:t,decodedStrategies:a,strategies:n}),n})})}catch(e){return Promise.reject(e)}},a.getTradeData=function(e,n,a,r,i){try{var u=arguments,s=this;if(me.debug("getTradeData called",u),!s._cache)throw me.log("getTradeData called before startDataSync"),new Error("startDataSync must be called prior to this action");var p=$.getInstance();return Promise.resolve(p.fetchDecimals(e)).then(function(u){return Promise.resolve(p.fetchDecimals(n)).then(function(p){var y,d=s._cache.getOrders(e,n),l=t.BigNumber.from(ae(a,r?p:u));y=r?J(l,d,i):V(l,d,i);var c=[],m=[],f=t.BigNumber.from(0),b=t.BigNumber.from(0);y.forEach(function(e){c.push({strategyId:e.id,amount:e.input}),m.push({id:e.id,sourceAmount:re(r?e.output:e.input,u),targetAmount:re(r?e.input:e.output,p)}),b=b.add(e.input),f=f.add(e.output)});var T,g=r?f:b,h=r?b:f;if(g.isZero()||h.isZero())T={tradeActions:c,actionsTokenRes:m,totalSourceAmount:"0",totalTargetAmount:"0",effectiveRate:"0"};else{var w=new o.default(h.toString()).div(g.toString()).times(v(u,p)).toString();T={tradeActions:c,actionsTokenRes:m,totalSourceAmount:re(g,u),totalTargetAmount:re(h,p),effectiveRate:w}}return me.debug("getTradeData info:",{sourceDecimals:u,targetDecimals:p,orders:d,amount:a,amountWei:l,actionsWei:y,res:T}),T})})}catch(e){return Promise.reject(e)}},a.composeTradeByTargetTransaction=function(e,t,n,a,r,i){try{var o=arguments,u=this;return me.debug("composeTradeByTargetTransaction called",o),Promise.resolve($.getInstance().fetchDecimals(e)).then(function(o){return u._api.composer.tradeByTargetAmount(e,t,n,a,ae(r,o),i)})}catch(e){return Promise.reject(e)}},a.composeTradeBySourceTransaction=function(e,t,n,a,r,i){try{var o=arguments,u=this;return me.debug("composeTradeBySourceTransaction called",o),Promise.resolve($.getInstance().fetchDecimals(t)).then(function(o){return u._api.composer.tradeBySourceAmount(e,t,n,a,ae(r,o),i)})}catch(e){return Promise.reject(e)}},a.createBuySellStrategy=function(e,t,n,a,r,i,o,u,s){me.debug("createBuySellStrategy called",arguments);var p=Y(e,t,n,a,r,i,o,u),y=pe(p);return me.debug("createBuySellStrategy info:",{strategy:p,encStrategy:y}),this._api.composer.createStrategy(y.token0,y.token1,y.order0,y.order1,s)},a.getRateLiquidityDepthByPair=function(e,t,n){try{var a=arguments,r=this;if(me.debug("getRateLiquidityDepthByPair called",a),!r._cache)throw me.log("getRateLiquidityDepthByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var i=Object.values(r._cache.getOrders(e,t)).map(se),u=$.getInstance();return Promise.resolve(u.fetchDecimals(e)).then(function(e){return Promise.resolve(u.fetchDecimals(t)).then(function(t){var a=ee(n,t,e),r=ce(i,new o.default(a)).toFixed(0),u=re(r,t);return me.debug("getRateLiquidityDepthByPair info:",{orders:i,depthWei:r,targetDecimals:t,depthInTargetDecimals:u}),u})})}catch(e){return Promise.reject(e)}},a.getMinRateByPair=function(e,t){try{var n=arguments,a=this;if(me.debug("getMinRateByPair called",n),!a._cache)throw me.log("getMinRateByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var r=Object.values(a._cache.getOrders(e,t)).map(se),i=de(r).toString(),o=$.getInstance();return Promise.resolve(o.fetchDecimals(e)).then(function(e){return Promise.resolve(o.fetchDecimals(t)).then(function(t){var n=ee(i,e,t);return me.debug("getMinRateByPair info:",{orders:r,minRate:i,sourceDecimals:e,targetDecimals:t,normalizedRate:n}),n})})}catch(e){return Promise.reject(e)}},a.getMaxRateByPair=function(e,t){try{var n=arguments,a=this;if(me.debug("getMaxRateByPair called",n),!a._cache)throw me.log("getMaxRateByPair called before startDataSync"),new Error("startDataSync must be called prior to this action");var r=Object.values(a._cache.getOrders(e,t)).map(se),i=le(r).toString(),o=$.getInstance();return Promise.resolve(o.fetchDecimals(e)).then(function(e){return Promise.resolve(o.fetchDecimals(t)).then(function(t){var n=ee(i,e,t);return me.debug("getMaxRateByPair info:",{orders:r,maxRate:i,sourceDecimals:e,targetDecimals:t,normalizedRate:n}),n})})}catch(e){return Promise.reject(e)}},s(n,[{key:"isInitialized",get:function(){return void 0!==this._cache}},{key:"pairs",get:function(){if(me.debug("pairs called"),!this._cache)throw me.log("pairs called before startDataSync"),new Error("startDataSync must be called prior to this action");return this._cache.pairs}}]),n}();return fe}); | ||
//# sourceMappingURL=sdk.umd.js.map |
@@ -5,3 +5,3 @@ { | ||
"source": "src/index.ts", | ||
"version": "0.0.33-DEV", | ||
"version": "0.0.34-DEV", | ||
"description": "The SDK is a READ-ONLY tool, intended to facilitate working with Carbon contracts. It's a convenient wrapper around our matching algorithm, allowing programs and users get a ready to use transaction data that will allow them to manage strategies and fulfill trades", | ||
@@ -8,0 +8,0 @@ "main": "dist/sdk.umd.js", |
{ | ||
"address": "0x4aa24bE5828C24e90e16de4203373a55170f009b", | ||
"address": "0x483309B60A7f5A097aE09Cf5811773431a9E8d1B", | ||
"abi": [ | ||
@@ -226,2 +226,7 @@ { | ||
"inputs": [], | ||
"name": "UnsetDelegator", | ||
"type": "error" | ||
}, | ||
{ | ||
"inputs": [], | ||
"name": "ZeroLiquidityProvided", | ||
@@ -228,0 +233,0 @@ "type": "error" |
{ | ||
"address": "0x2aaD5E2868771112c1897Cb12cDaDE53b616daf4", | ||
"address": "0x2fB666c75ec98462852c66D4981e1B3a0E668593", | ||
"abi": [ | ||
@@ -8,3 +8,3 @@ { | ||
"internalType": "bool", | ||
"name": "newUseGlobalJson", | ||
"name": "newUseGlobalURI", | ||
"type": "bool" | ||
@@ -14,7 +14,2 @@ }, | ||
"internalType": "string", | ||
"name": "newGlobalURI", | ||
"type": "string" | ||
}, | ||
{ | ||
"internalType": "string", | ||
"name": "newBaseURI", | ||
@@ -415,15 +410,2 @@ "type": "string" | ||
{ | ||
"internalType": "string", | ||
"name": "newGlobalURI", | ||
"type": "string" | ||
} | ||
], | ||
"name": "setGlobalURI", | ||
"outputs": [], | ||
"stateMutability": "nonpayable", | ||
"type": "function" | ||
}, | ||
{ | ||
"inputs": [ | ||
{ | ||
"internalType": "bytes4", | ||
@@ -430,0 +412,0 @@ "name": "interfaceId", |
export const config = { | ||
carbonControllerAddress: '0x4aa24bE5828C24e90e16de4203373a55170f009b', | ||
carbonControllerAddress: '0x483309B60A7f5A097aE09Cf5811773431a9E8d1B', | ||
multiCallAddress: '0x5ba1e12693dc8f9c48aad8770482f4739beed696', | ||
voucherAddress: '0x2aaD5E2868771112c1897Cb12cDaDE53b616daf4', | ||
voucherAddress: '0x2fB666c75ec98462852c66D4981e1B3a0E668593', | ||
}; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2056556
36518