UNPKG

equation-sdk

Version:

🛠 An SDK for building applications on top of Equation.

1 lines • 65.6 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("ethers"),n=e(require("decimal.js")),i=require("lodash"),a=e(i),r=e(require("dayjs")),u=require("ethers/lib/utils"),s=e(require("axios"));require("qs");var o,p=require("@ethersproject/constants"),d=e(require("tiny-invariant"));function c(){c=function(){return t};var e,t={},n=Object.prototype,i=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},r="function"==typeof Symbol?Symbol:{},u=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function d(e,t,n,i){var r=Object.create((t&&t.prototype instanceof x?t:x).prototype),u=new R(i||[]);return a(r,"_invoke",{value:k(e,n,u)}),r}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=d;var y="suspendedStart",m="executing",f="completed",v={};function x(){}function T(){}function b(){}var h={};p(h,u,(function(){return this}));var g=Object.getPrototypeOf,P=g&&g(g(D([])));P&&P!==n&&i.call(P,u)&&(h=P);var w=b.prototype=x.prototype=Object.create(h);function _(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function M(e,t){function n(a,r,u,s){var o=l(e[a],e,r);if("throw"!==o.type){var p=o.arg,d=p.value;return d&&"object"==typeof d&&i.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,u,s)}),(function(e){n("throw",e,u,s)})):t.resolve(d).then((function(e){p.value=e,u(p)}),(function(e){return n("throw",e,u,s)}))}s(o.arg)}var r;a(this,"_invoke",{value:function(e,i){function a(){return new t((function(t,a){n(e,i,t,a)}))}return r=r?r.then(a,a):a()}})}function k(t,n,i){var a=y;return function(r,u){if(a===m)throw new Error("Generator is already running");if(a===f){if("throw"===r)throw u;return{value:e,done:!0}}for(i.method=r,i.arg=u;;){var s=i.delegate;if(s){var o=L(s,i);if(o){if(o===v)continue;return o}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(a===y)throw a=f,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);a=m;var p=l(t,n,i);if("normal"===p.type){if(a=i.done?f:"suspendedYield",p.arg===v)continue;return{value:p.arg,done:i.done}}"throw"===p.type&&(a=f,i.method="throw",i.arg=p.arg)}}}function L(t,n){var i=n.method,a=t.iterator[i];if(a===e)return n.delegate=null,"throw"===i&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==i&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+i+"' method")),v;var r=l(a,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var u=r.arg;return u?u.done?(n[t.resultName]=u.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):u:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function I(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function q(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function R(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(I,this),this.reset(!0)}function D(t){if(t||""===t){var n=t[u];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,r=function n(){for(;++a<t.length;)if(i.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return r.next=r}}throw new TypeError(typeof t+" is not iterable")}return T.prototype=b,a(w,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:T,configurable:!0}),T.displayName=p(b,o,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===T||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,p(e,o,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},_(M.prototype),p(M.prototype,s,(function(){return this})),t.AsyncIterator=M,t.async=function(e,n,i,a,r){void 0===r&&(r=Promise);var u=new M(d(e,n,i,a),r);return t.isGeneratorFunction(n)?u:u.next().then((function(e){return e.done?e.value:u.next()}))},_(w),p(w,o,"Generator"),p(w,u,(function(){return this})),p(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var i in t)n.push(i);return n.reverse(),function e(){for(;n.length;){var i=n.pop();if(i in t)return e.value=i,e.done=!1,e}return e.done=!0,e}},t.values=D,R.prototype={constructor:R,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(q),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(i,a){return s.type="throw",s.arg=t,n.next=i,a&&(n.method="next",n.arg=e),!!a}for(var r=this.tryEntries.length-1;r>=0;--r){var u=this.tryEntries[r],s=u.completion;if("root"===u.tryLoc)return a("end");if(u.tryLoc<=this.prev){var o=i.call(u,"catchLoc"),p=i.call(u,"finallyLoc");if(o&&p){if(this.prev<u.catchLoc)return a(u.catchLoc,!0);if(this.prev<u.finallyLoc)return a(u.finallyLoc)}else if(o){if(this.prev<u.catchLoc)return a(u.catchLoc,!0)}else{if(!p)throw new Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return a(u.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&i.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var r=a;break}}r&&("break"===e||"continue"===e)&&r.tryLoc<=t&&t<=r.finallyLoc&&(r=null);var u=r?r.completion:{};return u.type=e,u.arg=t,r?(this.method="next",this.next=r.finallyLoc,v):this.complete(u)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),q(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var a=i.arg;q(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:D(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}function l(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}function y(e,t,n,i,a,r,u){try{var s=e[r](u),o=s.value}catch(e){return void n(e)}s.done?t(o):Promise.resolve(o).then(i,a)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(i,a){var r=e.apply(t,n);function u(e){y(r,i,a,u,s,"next",e)}function s(e){y(r,i,a,u,s,"throw",e)}u(void 0)}))}}function f(){return(f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}!function(e){e[e.LONG=1]="LONG",e[e.SHORT=2]="SHORT"}(o||(o={}));var v,x=function(e){return e===o.LONG?o.SHORT:o.LONG};!function(e){e.Created="CREATED",e.Executed="EXECUTED",e.Cancelled="CANCELLED"}(v||(v={}));var T="79228162514264337593543950336",b="0x46bE3DfFDcfbBe3A393d2d66Ee33F28375fc29F5",h="0x6889a9bE8bf089B961811122Ed2813041eC06355",g=function(){function e(){var e;globalThis.ethereum=(null==globalThis?void 0:globalThis.ethereum)||{},this.supportedProviderList={okx:null==globalThis?void 0:globalThis.okxwallet,bybit:null==globalThis?void 0:globalThis.bybitWallet,bitkeep:null==globalThis||null==(e=globalThis.bitkeep)?void 0:e.ethereum,injected:globalThis.ethereum,privateKey:"privateKey"}}var n=e.prototype;return n.getProvider=function(){return globalThis.ethereum},n.connect=function(){var e=m(c().mark((function e(n,i){var a,r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===i&&(i=null),(a=Object.keys(this.supportedProviderList).join(",")).includes(n)){e.next=4;break}throw new Error("Provider not supported,only support "+a+" now");case 4:if(this.supportedProviderList[n]){e.next=6;break}throw new Error("No "+n+" provider found");case 6:if("privateKey"!==n||!i){e.next=11;break}return r=new t.ethers.providers.JsonRpcProvider("https://arbitrum-sepolia.blockpi.network/v1/rpc/public"),e.abrupt("return",new t.ethers.Wallet(i,r));case 11:return e.abrupt("return",new t.ethers.providers.Web3Provider(this.supportedProviderList[n]).getSigner());case 12:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),e}();function P(e,t){try{return e()}catch(e){return t}}function w(e,t,i){try{return new n(e).mul(new n(10).pow(i)).div(new n(10).pow(t)).mul(new n(2).pow(96)).toFixed(0)}catch(e){return"0"}}var _=[{inputs:[{internalType:"contract IERC20",name:"_usd",type:"address"},{internalType:"contract Router",name:"_router",type:"address"},{internalType:"contract IMarketManager",name:"_marketManager",type:"address"},{internalType:"uint256",name:"_minExecutionFee",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"AddressInsufficientBalance",type:"error"},{inputs:[{internalType:"uint256",name:"expiredAt",type:"uint256"}],name:"Expired",type:"error"},{inputs:[],name:"FailedInnerCall",type:"error"},{inputs:[],name:"Forbidden",type:"error"},{inputs:[{internalType:"uint256",name:"available",type:"uint256"},{internalType:"uint256",name:"required",type:"uint256"}],name:"InsufficientExecutionFee",type:"error"},{inputs:[{internalType:"uint256",name:"available",type:"uint256"},{internalType:"uint256",name:"required",type:"uint256"}],name:"InvalidExecutionFee",type:"error"},{inputs:[{internalType:"uint128",name:"margin",type:"uint128"},{internalType:"uint128",name:"acceptableMinMargin",type:"uint128"}],name:"InvalidMargin",type:"error"},{inputs:[{internalType:"Side",name:"side",type:"uint8"}],name:"InvalidSide",type:"error"},{inputs:[{internalType:"uint160",name:"tradePriceX96",type:"uint160"},{internalType:"uint160",name:"acceptableTradePriceX96",type:"uint160"}],name:"InvalidTradePrice",type:"error"},{inputs:[{internalType:"contract IMarketDescriptor",name:"market",type:"address"},{internalType:"address",name:"account",type:"address"}],name:"LiquidityNotFound",type:"error"},{inputs:[{internalType:"contract IMarketDescriptor",name:"market",type:"address"},{internalType:"address",name:"account",type:"address"},{internalType:"Side",name:"side",type:"uint8"}],name:"PositionNotFound",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[{internalType:"uint8",name:"bits",type:"uint8"},{internalType:"uint256",name:"value",type:"uint256"}],name:"SafeCastOverflowedUintDowncast",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"SafeERC20FailedOperation",type:"error"},{inputs:[{internalType:"uint256",name:"earliest",type:"uint256"}],name:"TooEarly",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousGov",type:"address"},{indexed:!0,internalType:"address",name:"newGov",type:"address"}],name:"ChangeGovStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"DecreaseLiquidityPositionCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"contract IMarketDescriptor",name:"market",type:"address"},{indexed:!1,internalType:"uint128",name:"marginDelta",type:"uint128"},{indexed:!1,internalType:"uint256",name:"liquidityDelta",type:"uint256"},{indexed:!1,internalType:"uint256",name:"acceptableMinMargin",type:"uint256"},{indexed:!1,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"executionFee",type:"uint256"},{indexed:!0,internalType:"uint128",name:"index",type:"uint128"}],name:"DecreaseLiquidityPositionCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"DecreaseLiquidityPositionExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"DecreasePositionCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"contract IMarketDescriptor",name:"market",type:"address"},{indexed:!1,internalType:"Side",name:"side",type:"uint8"},{indexed:!1,internalType:"uint128",name:"marginDelta",type:"uint128"},{indexed:!1,internalType:"uint128",name:"sizeDelta",type:"uint128"},{indexed:!1,internalType:"uint160",name:"acceptableTradePriceX96",type:"uint160"},{indexed:!1,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"executionFee",type:"uint256"},{indexed:!0,internalType:"uint128",name:"index",type:"uint128"}],name:"DecreasePositionCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"DecreasePositionExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"minBlockDelayExecutor",type:"uint32"},{indexed:!1,internalType:"uint32",name:"minTimeDelayPublic",type:"uint32"},{indexed:!1,internalType:"uint32",name:"maxTimeDelay",type:"uint32"}],name:"DelayValuesUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousGov",type:"address"},{indexed:!0,internalType:"address",name:"newGov",type:"address"}],name:"GovChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"IncreaseLiquidityPositionCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"contract IMarketDescriptor",name:"market",type:"address"},{indexed:!1,internalType:"uint128",name:"marginDelta",type:"uint128"},{indexed:!1,internalType:"uint256",name:"liquidityDelta",type:"uint256"},{indexed:!1,internalType:"uint256",name:"acceptableMinMargin",type:"uint256"},{indexed:!1,internalType:"uint256",name:"executionFee",type:"uint256"},{indexed:!0,internalType:"uint128",name:"index",type:"uint128"}],name:"IncreaseLiquidityPositionCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"IncreaseLiquidityPositionExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"IncreasePositionCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"contract IMarketDescriptor",name:"market",type:"address"},{indexed:!1,internalType:"Side",name:"side",type:"uint8"},{indexed:!1,internalType:"uint128",name:"marginDelta",type:"uint128"},{indexed:!1,internalType:"uint128",name:"sizeDelta",type:"uint128"},{indexed:!1,internalType:"uint160",name:"acceptableTradePriceX96",type:"uint160"},{indexed:!1,internalType:"uint256",name:"executionFee",type:"uint256"},{indexed:!0,internalType:"uint128",name:"index",type:"uint128"}],name:"IncreasePositionCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint128",name:"index",type:"uint128"},{indexed:!1,internalType:"address payable",name:"executionFeeReceiver",type:"address"}],name:"IncreasePositionExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"minExecutionFee",type:"uint256"}],name:"MinExecutionFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"bool",name:"active",type:"bool"}],name:"PositionExecutorUpdated",type:"event"},{inputs:[],name:"acceptGov",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"cancelDecreaseLiquidityPosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"cancelDecreasePosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"cancelIncreaseLiquidityPosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"cancelIncreasePosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newGov",type:"address"}],name:"changeGov",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor[]",name:"markets",type:"address[]"},{internalType:"address",name:"receiver",type:"address"}],name:"createCloseLiquidityPositionsBatch",outputs:[{internalType:"uint128[]",name:"indices",type:"uint128[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IMarketDescriptor",name:"market",type:"address"},{internalType:"Side",name:"side",type:"uint8"}],internalType:"struct IPositionRouter.ClosePositionParameter[]",name:"parameters",type:"tuple[]"},{internalType:"address",name:"receiver",type:"address"}],name:"createClosePositionsBatch",outputs:[{internalType:"uint128[]",name:"indices",type:"uint128[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"},{internalType:"uint128",name:"_acceptableMinMargin",type:"uint128"},{internalType:"address",name:"_receiver",type:"address"}],name:"createDecreaseLiquidityPosition",outputs:[{internalType:"uint128",name:"index",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"Side",name:"_side",type:"uint8"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_sizeDelta",type:"uint128"},{internalType:"uint160",name:"_acceptableTradePriceX96",type:"uint160"},{internalType:"address",name:"_receiver",type:"address"}],name:"createDecreasePosition",outputs:[{internalType:"uint128",name:"index",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"},{internalType:"uint128",name:"_acceptableMinMargin",type:"uint128"}],name:"createIncreaseLiquidityPosition",outputs:[{internalType:"uint128",name:"index",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"Side",name:"_side",type:"uint8"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_sizeDelta",type:"uint128"},{internalType:"uint160",name:"_acceptableTradePriceX96",type:"uint160"}],name:"createIncreasePosition",outputs:[{internalType:"uint128",name:"index",type:"uint128"}],stateMutability:"payable",type:"function"},{inputs:[],name:"decreaseLiquidityPositionIndex",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"decreaseLiquidityPositionIndexNext",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint128",name:"",type:"uint128"}],name:"decreaseLiquidityPositionRequests",outputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract IMarketDescriptor",name:"market",type:"address"},{internalType:"uint128",name:"marginDelta",type:"uint128"},{internalType:"uint128",name:"liquidityDelta",type:"uint128"},{internalType:"uint128",name:"acceptableMinMargin",type:"uint128"},{internalType:"uint256",name:"executionFee",type:"uint256"},{internalType:"uint96",name:"blockNumber",type:"uint96"},{internalType:"uint64",name:"blockTime",type:"uint64"},{internalType:"address",name:"receiver",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"decreasePositionIndex",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"decreasePositionIndexNext",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint128",name:"",type:"uint128"}],name:"decreasePositionRequests",outputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract IMarketDescriptor",name:"market",type:"address"},{internalType:"Side",name:"side",type:"uint8"},{internalType:"uint128",name:"marginDelta",type:"uint128"},{internalType:"uint128",name:"sizeDelta",type:"uint128"},{internalType:"uint160",name:"acceptableTradePriceX96",type:"uint160"},{internalType:"uint256",name:"executionFee",type:"uint256"},{internalType:"uint96",name:"blockNumber",type:"uint96"},{internalType:"uint64",name:"blockTime",type:"uint64"},{internalType:"address",name:"receiver",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"},{internalType:"address",name:"_receiver",type:"address"}],name:"executeDecreaseLiquidationFundPosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeDecreaseLiquidityPosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_endIndex",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeDecreaseLiquidityPositions",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeDecreasePosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_endIndex",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeDecreasePositions",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"}],name:"executeIncreaseLiquidationFundPosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeIncreaseLiquidityPosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_endIndex",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeIncreaseLiquidityPositions",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_index",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeIncreasePosition",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint128",name:"_endIndex",type:"uint128"},{internalType:"address payable",name:"_executionFeeReceiver",type:"address"}],name:"executeIncreasePositions",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"executionGasLimit",outputs:[{internalType:"uint160",name:"",type:"uint160"}],stateMutability:"view",type:"function"},{inputs:[],name:"gov",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"increaseLiquidityPositionIndex",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"increaseLiquidityPositionIndexNext",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint128",name:"",type:"uint128"}],name:"increaseLiquidityPositionRequests",outputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract IMarketDescriptor",name:"market",type:"address"},{internalType:"uint128",name:"marginDelta",type:"uint128"},{internalType:"uint128",name:"liquidityDelta",type:"uint128"},{internalType:"uint128",name:"acceptableMinMargin",type:"uint128"},{internalType:"uint256",name:"executionFee",type:"uint256"},{internalType:"uint96",name:"blockNumber",type:"uint96"},{internalType:"uint64",name:"blockTime",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"increasePositionIndex",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"increasePositionIndexNext",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint128",name:"",type:"uint128"}],name:"increasePositionRequests",outputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract IMarketDescriptor",name:"market",type:"address"},{internalType:"Side",name:"side",type:"uint8"},{internalType:"uint128",name:"marginDelta",type:"uint128"},{internalType:"uint128",name:"sizeDelta",type:"uint128"},{internalType:"uint160",name:"acceptableTradePriceX96",type:"uint160"},{internalType:"uint256",name:"executionFee",type:"uint256"},{internalType:"uint96",name:"blockNumber",type:"uint96"},{internalType:"uint64",name:"blockTime",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"marketManager",outputs:[{internalType:"contract IMarketManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxTimeDelay",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"minBlockDelayExecutor",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"minExecutionFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"minTimeDelayPublic",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingGov",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"positionExecutors",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"router",outputs:[{internalType:"contract Router",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_minBlockDelayExecutor",type:"uint32"},{internalType:"uint32",name:"_minTimeDelayPublic",type:"uint32"},{internalType:"uint32",name:"_maxTimeDelay",type:"uint32"}],name:"updateDelayValues",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint160",name:"_executionGasLimit",type:"uint160"}],name:"updateExecutionGasLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_minExecutionFee",type:"uint256"}],name:"updateMinExecutionFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_account",type:"address"},{internalType:"bool",name:"_active",type:"bool"}],name:"updatePositionExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"usd",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"}],M=[{inputs:[{internalType:"contract IEFC",name:"_EFC",type:"address"},{internalType:"contract IMarketManager",name:"_marketManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"AddressInsufficientBalance",type:"error"},{inputs:[],name:"CallerUnauthorized",type:"error"},{inputs:[],name:"FailedInnerCall",type:"error"},{inputs:[],name:"Forbidden",type:"error"},{inputs:[{internalType:"address",name:"liquidator",type:"address"}],name:"LiquidatorAlreadyRegistered",type:"error"},{inputs:[{internalType:"address",name:"liquidator",type:"address"}],name:"LiquidatorNotRegistered",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"expectedOwner",type:"address"}],name:"OwnerMismatch",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"plugin",type:"address"}],name:"PluginAlreadyApproved",type:"error"},{inputs:[{internalType:"address",name:"plugin",type:"address"}],name:"PluginAlreadyRegistered",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"plugin",type:"address"}],name:"PluginNotApproved",type:"error"},{inputs:[{internalType:"address",name:"plugin",type:"address"}],name:"PluginNotRegistered",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"SafeERC20FailedOperation",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousGov",type:"address"},{indexed:!0,internalType:"address",name:"newGov",type:"address"}],name:"ChangeGovStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousGov",type:"address"},{indexed:!0,internalType:"address",name:"newGov",type:"address"}],name:"GovChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"liquidator",type:"address"}],name:"LiquidatorRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"liquidator",type:"address"}],name:"LiquidatorUnregistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"plugin",type:"address"}],name:"PluginApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"plugin",type:"address"}],name:"PluginRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"plugin",type:"address"}],name:"PluginRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"plugin",type:"address"}],name:"PluginUnregistered",type:"event"},{inputs:[],name:"EFC",outputs:[{internalType:"contract IEFC",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"acceptGov",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_plugin",type:"address"}],name:"approvePlugin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newGov",type:"address"}],name:"changeGov",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"gov",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_account",type:"address"},{internalType:"address",name:"_plugin",type:"address"}],name:"isPluginApproved",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_liquidator",type:"address"}],name:"isRegisteredLiquidator",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"marketManager",outputs:[{internalType:"contract IMarketManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingGov",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"Side",name:"_side",type:"uint8"},{internalType:"uint128",name:"_sizeDelta",type:"uint128"},{internalType:"address",name:"_receiver",type:"address"}],name:"pluginClosePositionByLiquidator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"uint256",name:"_referralToken",type:"uint256"},{internalType:"address",name:"_receiver",type:"address"}],name:"pluginCollectReferralFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"},{internalType:"address",name:"_receiver",type:"address"}],name:"pluginDecreaseLiquidationFundPosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"},{internalType:"address",name:"_receiver",type:"address"}],name:"pluginDecreaseLiquidityPosition",outputs:[{internalType:"uint128",name:"marginAfter",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"Side",name:"_side",type:"uint8"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_sizeDelta",type:"uint128"},{internalType:"address",name:"_receiver",type:"address"}],name:"pluginDecreasePosition",outputs:[{internalType:"uint160",name:"tradePriceX96",type:"uint160"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"}],name:"pluginIncreaseLiquidationFundPosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_liquidityDelta",type:"uint128"}],name:"pluginIncreaseLiquidityPosition",outputs:[{internalType:"uint128",name:"marginAfter",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"Side",name:"_side",type:"uint8"},{internalType:"uint128",name:"_marginDelta",type:"uint128"},{internalType:"uint128",name:"_sizeDelta",type:"uint128"}],name:"pluginIncreasePosition",outputs:[{internalType:"uint160",name:"tradePriceX96",type:"uint160"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"address",name:"_feeReceiver",type:"address"}],name:"pluginLiquidateLiquidityPosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"},{internalType:"address",name:"_account",type:"address"},{internalType:"Side",name:"_side",type:"uint8"},{internalType:"address",name:"_feeReceiver",type:"address"}],name:"pluginLiquidatePosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IMarketDescriptor",name:"_market",type:"address"}],name:"pluginSampleAndAdjustFundingRate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"_token",type:"address"},{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"pluginTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC721",name:"_token",type:"address"},{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"pluginTransferNFT",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_liquidator",type:"address"}],name:"registerLiquidator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_plugin",type:"address"}],name:"registerPlugin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"plugin",type:"address"}],name:"registeredPlugins",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_plugin",type:"address"}],name:"revokePlugin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_liquidator",type:"address"}],name:"unregisterLiquidator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_plugin",type:"address"}],name:"unregisterPlugin",outputs:[],stateMutability:"nonpayable",type:"function"}],k=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{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"},{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"}],L=function(e,n,i){return e&&n?new t.ethers.Contract(e,n,i):null},I=function(){function e(){}return e.toBigIntForPriceX96=function(e,t){return t===o.LONG?BigInt(U(e,0,n.ROUND_CEIL)):BigInt(U(e,0,n.ROUND_DOWN))},e.computePriceByPremiumRateX96=function(e,t){return S(D(1,X(e,T)),t)},e.computeCurrentVertexIndex=function(e,t){return C(e)?0:a.findIndex(t,(function(t){return E(t.size,e)}))},e.computePriceX96=function(e,i,a){return t.BigNumber.from(new n(e).mul(new n(10).pow(a)).div(new n(10).pow(i)).mul(new n(2).pow(96)).toFixed(0)).toString()},e.calculatePrice=function(e,t,i){return new n(e.toString()).div(new n(2).pow(96)).mul(new n(10).pow(t)).div(new n(10).pow(i)).toFixed()},e.flipSide=function(e){return e===o.LONG?o.SHORT:o.LONG},e.formatFromX96=function(e){return new n(String(e)).div(T).toFixed()},e.parseToX96=function(e){return new n(String(e)).mul(T).toFixed()},e.solveQuadraticEquation=function(e,t,i){var a=z(S(t,t),S(4,S(e,i)));if(C(a))return X(-t,S(2,e));var r=X(D(-t,new n(a).sqrt()),S(2,e)),u=X(z(-t,new n(a).sqrt()),S(2,e));return n.max(r,u).toFixed()},e}();function q(e,t,i){if(e&&t&&i){var a=e.marketConfig.priceConfig,u=a.liquidationVertexIndex,s=a.maxPriceImpactLiquidity,p=a.vertices,d=e.marketConfig.feeRateConfig,c=d.referralDiscountRate,l=d.tradingFeeRate,y=e.marketConfig.baseConfig,m=y.liquidationExecutionFee,v=y.liquidationFeeRatePerPosition,x=y.liquidationFeeRatePerLiquidityPosition,T=y.maxLeveragePerPosition,b=y.maxLeveragePerLiquidityPosition,h=y.minMarginPerLiquidityPosition,g=y.minMarginPerPosition,w=e.address.toLowerCase(),_=f({},e.globalLiquidityPosition,{tokenVertices:p}),M=e.globalPosition,k=M.longSize,L=M.shortSize,q=M.lastAdjustFundingRateTime,z=S(Math.max(k,L),2),F=e.globalFundingRateSample,E=F.sampleCount,N=F.cumulativePremiumRateX96,O=new Date(q).getTime(),B=r(O).isSame(r(),"hours"),G={lastAdjustFundingRateTime:B?O/1e3:r().set("minute",5).set("seconds",0).unix().toString(),sampleCount:B?E:"0",cumulativePremiumRateX96:B?N:"0"},A=e.priceState,j=A.premiumRateX96,K=A.pendingVertexIndex,H=A.liquidationBufferNetSizes,Y=A.indexPriceUsedX96,J=A.priceVertices.map((function(e,t){return{id:e.id,premiumRateX96:e.premiumRateX96,premiumRate:W(p[t].premiumRate),size:e.size}})),Q=f({},e.priceState,{maxPriceImpactLiquidity:s,premiumRateX96:j,pendingVertexIndex:K,liquidationVertexIndex:u,currentVertexIndex:I.computeCurrentVertexIndex(_.netSize,J),priceVertices:J,liquidationBufferNetSizes:H,indexPriceUsedX96:Y,indexPriceX96:null==i?void 0:i.indexPriceX96}),Z=P((function(){var e,t=D(null==_?void 0:_.netSize,null==_?void 0:_.liquidationBufferNetSize),a=U(S(t=(null==_?void 0:_.side)===o.LONG?R(e=t)?new n(e).neg().toString():"0":t,null==i?void 0:i.indexPrice),6);return C(null==_?void 0:_.liquidity)?"0":X(a,null==_?void 0:_.liquidity)}),"0");return f({},t,i,{index_price:null==i?void 0:i.indexPrice,index_price_x96:null==i?void 0:i.indexPriceX96,market_price:null==i?void 0:i.marketPrice,market_price_x96:null==i?void 0:i.marketPriceX96,max_index_price:null==i?void 0:i.maxIndexPrice,max_index_price_x96:null==i?void 0:i.maxIndexPriceX96,max_market_price:null==i?void 0:i.maxMarketPrice,max_market_price_x96:null==i?void 0:i.maxMarketPriceX96,min_index_price:null==i?void 0:i.minIndexPrice,min_index_price_x96:null==i?void 0:i.minIndexPriceX96,min_market_price:null==i?void 0:i.minMarketPrice,min_market_price_x96:null==i?void 0:i.minMarketPriceX96,baseSymbol:e.symbol,address:w,id:w,balanceRate:Z,price:null==i?void 0:i.marketPrice,tradingFeeRate:W(l),maxPriceImpactLiquidity:s,positions:z,priceChange:null==t?void 0:t.priceChangeRate,marketPrice:null==i?void 0:i.marketPrice,indexPrice:null==i?void 0:i.indexPrice,globalPosition:f({},e.globalPosition),globalLiquidityPosition:_,sample:G,priceState:Q,maxPriceX96:null==i?void 0:i.maxIndexPriceX96,referralDiscountRate:W(c),longSize:k,shortSize:L,liquidationExecutionFee:V(m,6),liquidationFeeRatePerPosition:W(v),liquidationFeeRatePerLiquidityPosition:W(x),maxLeveragePerPosition:T,maxLeveragePerLiquidityPosition:b,minMarginPerLiquidityPosition:V(h,6),minMarginPerPosition:V(g,6),globalUnrealizedLossMetrics:e.globalUnrealizedLossMetrics})}}function R(e){return!isNaN(parseFloat(String(e)))}function D(e,t){return R(e)&&R(t)?new n(e).plus(t).toString():"0"}function z(e,t){return R(e)&&R(t)?new n(e).minus(t).toString():"0"}function S(e,t){return R(e)&&R(t)?new n(e).mul(t).toString():"0"}function X(e,t){return R(e)&&R(t)?new n(e).div(t).toString():"0"}function F(e,t){return!(!R(e)||!R(t))&&new n(e).greaterThan(t)}function E(e,t){return!(!R(e)||!R(t))&&new n(e).greaterThanOrEqualTo(t)}function N(e,t){return!(!R(e)||!R(t))&&new n(e).lessThan(t)}function C(e){if(void 0===e)return!1;try{return new n(e).isZero()}catch(e){return!1}}function O(e){if(void 0===e)return!1;if(!R(e))return!1;try{return new n(e).greaterThan(0)}catch(e){return!1}}function B(e,t,i,a,r){return void 0===a&&(a=n.ROUND_DOWN),void 0===r&&(r=0),R(e)&&R(t)&&R(i)?new n(e).mul(t).div(i).toFixed(r,a):"0"}function G(e,t,n,i){var a=e*t/n;return i&&e*t%n!==0n&&(a+=1n),a}function U(e,t,i){void 0===t&&(t=6),void 0===i&&(i=n.ROUND_DOWN);try{return new n(e).toFixed(t,i)}catch(t){return String(e||"-")}}function A(e,i){if(!R(e))return"0";try{return new n(t.ethers.utils.parseUnits(U(e,i),i).toString()).toFixed()}catch(e){return"0"}}function V(e,i){if(!R(e))return"0";try{return new n(t.ethers.utils.formatUnits(U(e,0),i).toString()).toFixed()}catch(e){return"0"}}function j(e){var t=e;if(!t)return t;if("object"==typeof e)if(e instanceof Array)t=e.map(j);else for(var n in t={},e)e.hasOwnProperty(n)&&(t[n.replace(/(_\w)/g,(function(e){return e[1].toUpperCase()}))]=j(e[n]));return t}var W=function(e){return void 0===e&&(e=""),e?X(e,1e8):"0"};function K(e,t){return{minPrice:S(e,z(1,X(t,100))),maxPrice:S(e,D(1,X(t,100)))}}var H=1n<<96n,Y=1n<<152n,J=function(){function e(){}return e.calculateMarketPrice=function(e,t,i,a,r,u,s){if(void 0===s&&(s=6),C(t.liquidity))return"0";var o=BigInt(A(e,18)),p=BigInt(r),d=f({},t,{netSize:BigInt(A(t.netSize,18)),liquidationBufferNetSize:BigInt(A(t.liquidationBufferNetSize,18)),liquidity:BigInt(A(t.liquidity,6))}),c=f({},i,{premiumRateX96:BigInt(i.premiumRateX96),priceVertices:i.priceVertices.map((function(e){return{premiumRateX96:BigInt(e.premiumRateX96),size:BigInt(A(e.size,18))}})),liquidationBufferNetSizes:i.liquidationBufferNetSizes.map((function(e){return BigInt(A(e,18))})),indexPriceX96:BigInt(r),basisIndexPriceX96:BigInt(i.basisIndexPriceX96)}),l={maxPriceImpactLiquidity:BigInt(i.maxPriceImpactLiquidity),liquidationVertexIndex:i.liquidationVertexIndex,vertices:t.tokenVertices.map((function(e){return{balanceRate:BigInt(e.balanceRate),premiumRate:BigInt(e.premiumRate)}}))},y=this.updatePriceState({priceState:c,globalLiquidityPosition:d},l,{side:a,sizeDelta:o,indexPriceX96:p,liquidationVertexIndex:i.liquidationVertexIndex,liquidation:!1});return function(e,t,i){try{return new n(e.toString()).div(new n(2).pow(96)).mul(new n(10).pow(t)).div(new n(10).pow(i)).toFixed()}catch(e){return"0"}}(String(null==y?void 0:y.tradePriceX96),u,s)},e.updatePriceState=function(e,t,n){var a=i.cloneDeep(e.globalLiquidityPosition),r=e.priceState,u=i.cloneDeep(r),s=0==(a.netSize|a.liquidationBufferNetSize);s&&(u.basisIndexPriceX96=n.indexPriceX96);var p=n.side==a.side&&!s,d=this._updatePriceState(a,r,u,n,p),c=d.tradePriceX96TimesSizeTotal,l=d.sizeLeft,y=d.totalBufferUsed;if(p?(u.pendingVertexIndex>u.currentVertexIndex&&this.changePriceVertex(e,t,n.indexPriceX96,u.currentVertexIndex,9),a.netSize-=n.sizeDelta-l-y,a.liquidationBufferNetSize-=y):(a.side=x(n.side),a.netSize+=n.sizeDelta-y,a.liquidationBufferNetSize+=y),l>0n){a.side=x(a.side),u.basisIndexPriceX96=n.indexPriceX96;var m=n.sizeDelta;n.sizeDelta=l;var f=this._updatePriceState(a,r,u,n,!1),v=f.tradePriceX96TimesSizeTotal,T=f.totalBufferUsed;if(0n===c||0n===v)return 0n;n.sizeDelta=m,c+=v,a.netSize=l-T,a.liquidationBufferNetSize=T}return c<0n?{tradePriceX96:-1n,priceStateCache:r,globalLiquidityPositionCache:e.globalLiquidityPosition}:{tradePriceX96:n.side===o.LONG?G(c,1n,n.sizeDelta,!0):c/n.sizeDelta,priceStateCache:u,globalLiquidityPositionCache:a}},e._updatePriceState=function(e,t,n,i,a){var r=i.sizeDelta,u={side:i.side,sizeLeft:r,indexPriceX96:i.indexPriceX96,basisIndexPriceX96:n.basisIndexPriceX96,improveBalance:a,from:{size:0n,premiumRateX96:0n},current:{size:e.netSize,premiumRateX96:n.premiumRateX96},to:{size:0n,premiumRat