Socket
Socket
Sign inDemoInstall

@uniswap/v3-sdk

Package Overview
Dependencies
Maintainers
8
Versions
89
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uniswap/v3-sdk - npm Package Compare versions

Comparing version 1.0.0-alpha.5 to 1.0.0-alpha.6

dist/utils/fullMath.d.ts

4

dist/constants.d.ts

@@ -12,3 +12,3 @@ export declare const FACTORY_ADDRESS = "0x1F98431c8aD98523631AE4a59f267346ea31F984";

};
export declare const MAX_TICK = 887272;
export declare const MIN_TICK: number;
export declare function MIN_TICK(tickSpacing: number): number;
export declare function MAX_TICK(tickSpacing: number): number;
export * from './pool';
export * from './position';
export * from './route';
export * from './trade';
export * from './tick';
export * from './tickList';
export * from './trade';

@@ -11,2 +11,3 @@ import { BigintIsh, ChainId, Price, Token, TokenAmount } from '@uniswap/sdk-core';

readonly liquidity: JSBI;
readonly tickCurrent: number;
readonly ticks: TickList;

@@ -23,5 +24,6 @@ private _token0Price?;

* @param liquidity the current value of in range liquidity
* @param tickCurrent the current tick of the pool
* @param ticks the current state of the pool ticks
*/
constructor(tokenA: Token, tokenB: Token, fee: FeeAmount, sqrtRatioX96: BigintIsh, liquidity: BigintIsh, ticks: TickList);
constructor(tokenA: Token, tokenB: Token, fee: FeeAmount, sqrtRatioX96: BigintIsh, liquidity: BigintIsh, tickCurrent: number, ticks: TickList);
/**

@@ -51,3 +53,4 @@ * Returns true if the token is either token0 or token1

getInputAmount(outputAmount: TokenAmount): [TokenAmount, Pool];
private swap;
get tickSpacing(): number;
}
import JSBI from 'jsbi';
import { BigintIsh } from '@uniswap/sdk-core';
interface TickConstructorArgs {
feeGrowthOutside0X128: BigintIsh;
feeGrowthOutside1X128: BigintIsh;
feeGrowthOutside0X128?: BigintIsh;
feeGrowthOutside1X128?: BigintIsh;
index: number;

@@ -12,4 +12,4 @@ liquidityGross: BigintIsh;

readonly index: number;
readonly feeGrowthOutside0X128: JSBI;
readonly feeGrowthOutside1X128: JSBI;
readonly feeGrowthOutside0X128: JSBI | undefined;
readonly feeGrowthOutside1X128: JSBI | undefined;
readonly liquidityGross: JSBI;

@@ -16,0 +16,0 @@ readonly liquidityNet: JSBI;

import { Tick } from './tick';
export interface ListNode<T> {
value: T;
right?: ListNode<T>;
left?: ListNode<T>;
}
interface TickListConstructorArgs {
ticks?: Tick[];
current?: Tick;
}
export declare class TickList {
head?: ListNode<Tick>;
tail?: ListNode<Tick>;
constructor({ ticks }: TickListConstructorArgs);
private insertUnsorted;
insert(tick: Tick): void;
dequeue(): Tick | void;
pop(): Tick | void;
get values(): Tick[];
readonly tickSpacing: number;
readonly ticks: Tick[];
constructor(ticks: Tick[], tickSpacing?: number);
isBelowSmallest(tick: number): boolean;
isAtOrAboveLargest(tick: number): boolean;
getTick(index: number): Tick;
private binarySearch;
nextInitializedTick(tick: number, lte: boolean): Tick;
nextInitializedTickWithinOneWord(tick: number, lte: boolean): [number, boolean];
}
export {};
import JSBI from 'jsbi';
export declare const NEGATIVE_ONE: JSBI;
export declare const ZERO: JSBI;

@@ -3,0 +4,0 @@ export declare const ONE: JSBI;

import JSBI from 'jsbi';
import { BigintIsh } from '@uniswap/sdk-core';
/**
* Returns the sqrt ratio as a Q64.96 corresponding to a given ratio of amount1 and amount0
* @param amount1 the numerator amount, i.e. amount of token1
* @param amount0 the denominator amount, i.en amount of token0
*/
export declare function encodeSqrtRatioX96(amount1: BigintIsh, amount0: BigintIsh): JSBI;

@@ -7,8 +7,29 @@ import JSBI from 'jsbi';

private constructor();
/**
* The minimum tick that can be used on any pool.
*/
static MIN_TICK: number;
/**
* The maximum tick that can be used on any pool.
*/
static MAX_TICK: number;
/**
* The sqrt ratio corresponding to the minimum tick that could be used on any pool.
*/
static MIN_SQRT_RATIO: JSBI;
/**
* The sqrt ratio corresponding to the maximum tick that could be used on any pool.
*/
static MAX_SQRT_RATIO: JSBI;
/**
* Returns the sqrt ratio as a Q64.96 for the given tick. The sqrt ratio is computed as sqrt(1.0001)^tick
* @param tick the tick for which to compute the sqrt ratio
*/
static getSqrtRatioAtTick(tick: number): JSBI;
/**
* Returns the tick corresponding to a given sqrt ratio, s.t. #getSqrtRatioAtTick(tick) <= sqrtRatioX96
* and #getSqrtRatioAtTick(tick + 1) > sqrtRatioX96
* @param sqrtRatioX96 the sqrt ratio as a Q64.96 for which to compute the tick
*/
static getTickAtSqrtRatio(sqrtRatioX96: JSBI): number;
}

@@ -1,2 +0,2 @@

"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("@uniswap/sdk-core"),r=t(require("jsbi")),o=t(require("tiny-invariant")),i=require("@ethersproject/abi"),a=require("@ethersproject/address"),u=require("@ethersproject/solidity");function s(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function c(t,e,n){return e&&s(t.prototype,e),n&&s(t,n),t}function f(){return(f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function h(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function v(t,e,n){return(v=d()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var o=new(Function.bind.apply(t,r));return n&&l(o,n.prototype),o}).apply(null,arguments)}function T(t){var e="function"==typeof Map?new Map:void 0;return(T=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return v(t,arguments,p(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),l(n,t)})(t)}function m(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function k(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return g(t,void 0);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=t[Symbol.iterator]()).next.bind(n)}var y,A="0x01d4d358e07707f4db84b6a7527455b06f95ee89b5d059b4a1298ada7b6c7d67";(y=exports.FeeAmount||(exports.FeeAmount={}))[y.LOW=500]="LOW",y[y.MEDIUM=3e3]="MEDIUM",y[y.HIGH=1e4]="HIGH";var x=((e={})[exports.FeeAmount.LOW]=10,e[exports.FeeAmount.MEDIUM]=60,e[exports.FeeAmount.HIGH]=200,e),I=r.BigInt(0),b=r.BigInt(1),w=r.exponentiate(r.BigInt(2),r.BigInt(96)),E=r.exponentiate(w,r.BigInt(2));function O(t){var e=t.factoryAddress,n=t.tokenA,r=t.tokenB,o=t.fee,s=n.sortsBefore(r)?[n,r]:[r,n];return a.getCreate2Address(e,u.keccak256(["bytes"],[i.defaultAbiCoder.encode(["address","address","uint24"],[s[0].address,s[1].address,o])]),A)}var q=function(){function t(t,e,n,i,a,u){Number.isInteger(n)||o(!1),Boolean((null==u?void 0:u.head)||r.equal(r.BigInt(a),I))||o(!1);var s=t.sortsBefore(e)?[t,e]:[e,t];this.token0=s[0],this.token1=s[1],this.fee=n,this.sqrtRatioX96=r.BigInt(i),this.ticks=u,this.liquidity=r.BigInt(a)}t.getAddress=function(t,e,n){return O({factoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",fee:n,tokenA:t,tokenB:e})};var e=t.prototype;return e.involvesToken=function(t){return t.equals(this.token0)||t.equals(this.token1)},e.priceOf=function(t){return this.involvesToken(t)||o(!1),t.equals(this.token0)?this.token0Price:this.token1Price},e.getOutputAmount=function(t){throw this.involvesToken(t.token)||o(!1),new Error("todo")},e.getInputAmount=function(t){throw this.involvesToken(t.token)||o(!1),new Error("todo")},c(t,[{key:"token0Price",get:function(){var t;return null!=(t=this._token0Price)?t:this._token0Price=new n.Price(this.token0,this.token1,E,r.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:"token1Price",get:function(){var t;return null!=(t=this._token1Price)?t:this._token1Price=new n.Price(this.token1,this.token0,r.multiply(this.sqrtRatioX96,this.sqrtRatioX96),E)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"tickSpacing",get:function(){return x[this.fee]}}]),t}();function P(t,e,n){if(r.greaterThan(t,e)){var o=[e,t];t=o[0],e=o[1]}var i=r.divide(r.multiply(t,e),w);return r.divide(r.multiply(r.BigInt(n),i),r.subtract(e,t))}function R(t,e,n){if(r.greaterThan(t,e)){var o=[e,t];t=o[0],e=o[1]}return r.divide(r.multiply(r.BigInt(n),w),r.subtract(e,t))}function S(t,e,n,o,i){if(r.greaterThan(e,n)){var a=[n,e];e=a[0],n=a[1]}if(r.lessThan(t,e))return P(e,n,o);if(r.lessThan(t,n)){var u=P(t,n,o),s=R(e,t,i);return r.lessThan(u,s)?u:s}return R(e,n,i)}function B(t,e){var o=r.leftShift(r.BigInt(t),r.BigInt(192)),i=r.BigInt(e),a=r.divide(o,i);return n.sqrt(a)}var _=r.BigInt(2),U=[128,64,32,16,8,4,2,1].map((function(t){return[t,r.exponentiate(_,r.BigInt(t))]}));function C(t){r.greaterThan(t,I)||o(!1),r.lessThanOrEqual(t,n.MaxUint256)||o(!1);for(var e,i=0,a=k(U);!(e=a()).done;){var u=e.value,s=u[0];r.greaterThanOrEqual(t,u[1])&&(t=r.signedRightShift(t,r.BigInt(s)),i+=s)}return i}function F(t,e){return r.signedRightShift(r.multiply(t,r.BigInt(e)),r.BigInt(128))}var H=r.exponentiate(r.BigInt(2),r.BigInt(32)),X=function(){function t(){}return t.getSqrtRatioAtTick=function(e){var i=e<0?-1*e:e;i<=t.MAX_TICK||o(!1);var a=r.BigInt(0!=(1&i)?"0xfffcb933bd6fad37aa2d162d1a594001":"0x100000000000000000000000000000000");return 0!=(2&i)&&(a=F(a,"0xfff97272373d413259a46990580e213a")),0!=(4&i)&&(a=F(a,"0xfff2e50f5f656932ef12357cf3c7fdcc")),0!=(8&i)&&(a=F(a,"0xffe5caca7e10e4e61c3624eaa0941cd0")),0!=(16&i)&&(a=F(a,"0xffcb9843d60f6159c9db58835c926644")),0!=(32&i)&&(a=F(a,"0xff973b41fa98c081472e6896dfb254c0")),0!=(64&i)&&(a=F(a,"0xff2ea16466c96a3843ec78b326b52861")),0!=(128&i)&&(a=F(a,"0xfe5dee046a99a2a811c461f1969c3053")),0!=(256&i)&&(a=F(a,"0xfcbe86c7900a88aedcffc83b479aa3a4")),0!=(512&i)&&(a=F(a,"0xf987a7253ac413176f2b074cf7815e54")),0!=(1024&i)&&(a=F(a,"0xf3392b0822b70005940c7a398e4b70f3")),0!=(2048&i)&&(a=F(a,"0xe7159475a2c29b7443b29c7fa6e889d9")),0!=(4096&i)&&(a=F(a,"0xd097f3bdfd2022b8845ad8f792aa5825")),0!=(8192&i)&&(a=F(a,"0xa9f746462d870fdf8a65dc1f90e061e5")),0!=(16384&i)&&(a=F(a,"0x70d869a156d2a1b890bb3df62baf32f7")),0!=(32768&i)&&(a=F(a,"0x31be135f97d08fd981231505542fcfa6")),0!=(65536&i)&&(a=F(a,"0x9aa508b5b7a84e1c677de54f3e99bc9")),0!=(131072&i)&&(a=F(a,"0x5d6af8dedb81196699c329225ee604")),0!=(262144&i)&&(a=F(a,"0x2216e584f5fa1ea926041bedfe98")),0!=(524288&i)&&(a=F(a,"0x48a170391f7dc42444e8fa2")),e>0&&(a=r.divide(n.MaxUint256,a)),r.greaterThanOrEqual(r.remainder(a,H),I)?r.add(r.divide(a,H),b):r.divide(a,H)},t.getTickAtSqrtRatio=function(e){r.greaterThanOrEqual(e,t.MIN_SQRT_RATIO)&&r.lessThan(e,t.MAX_SQRT_RATIO)||o(!1);var n,i=r.leftShift(e,r.BigInt(32)),a=C(i);n=r.greaterThanOrEqual(r.BigInt(a),r.BigInt(128))?r.signedRightShift(i,r.BigInt(a-127)):r.leftShift(i,r.BigInt(127-a));for(var u=r.leftShift(r.subtract(r.BigInt(a),r.BigInt(128)),r.BigInt(64)),s=0;s<14;s++){n=r.signedRightShift(r.multiply(n,n),r.BigInt(127));var c=r.signedRightShift(n,r.BigInt(128));u=r.bitwiseOr(u,r.leftShift(c,r.BigInt(63-s))),n=r.signedRightShift(n,c)}var f=r.multiply(u,r.BigInt("255738958999603826347141")),h=r.toNumber(r.signedRightShift(r.subtract(f,r.BigInt("3402992956809132418596140100660247210")),r.BigInt(128))),p=r.toNumber(r.signedRightShift(r.add(f,r.BigInt("291339464771989622907027621153398088495")),r.BigInt(128)));return h===p?h:r.lessThanOrEqual(t.getSqrtRatioAtTick(p),e)?p:h},t}();function M(t,e,o){var i=X.getSqrtRatioAtTick(o),a=r.multiply(i,i);return t.sortsBefore(e)?new n.Price(t,e,E,a):new n.Price(t,e,a,E)}X.MIN_TICK=-887272,X.MAX_TICK=-X.MIN_TICK,X.MIN_SQRT_RATIO=r.BigInt("4295128739"),X.MAX_SQRT_RATIO=r.BigInt("1461446703485210103287273052203988822378723970342");var N=function(){function t(t){var e=t.pool,n=t.liquidity,i=t.tickLower,a=t.tickUpper;i<a||o(!1),i>=-887272&&i%e.tickSpacing==0||o(!1),a<=887272&&a%e.tickSpacing==0||o(!1),this.pool=e,this.tickLower=i,this.tickUpper=a,this.liquidity=r.BigInt(n)}var e=t.prototype;return e.maxAmount0=function(t){throw new Error("todo")},e.maxAmount1=function(t){throw new Error("todo")},t.fromAmounts=function(e){var n=e.pool,r=e.tickLower,o=e.tickUpper,i=e.amount0,a=e.amount1,u=X.getSqrtRatioAtTick(r),s=X.getSqrtRatioAtTick(o);return new t({pool:n,tickLower:r,tickUpper:o,liquidity:S(n.sqrtRatioX96,u,s,i,a)})},t.fromAmount0=function(e){return t.fromAmounts({pool:e.pool,tickLower:e.tickLower,tickUpper:e.tickUpper,amount0:e.amount0,amount1:n.MaxUint256})},t.fromAmount1=function(e){return t.fromAmounts({pool:e.pool,tickLower:e.tickLower,tickUpper:e.tickUpper,amount0:n.MaxUint256,amount1:e.amount1})},c(t,[{key:"token0PriceLower",get:function(){return M(this.pool.token0,this.pool.token1,this.tickLower)}},{key:"token1PriceLower",get:function(){return M(this.pool.token1,this.pool.token0,this.tickLower)}},{key:"token0PriceUpper",get:function(){return M(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:"token1PriceUpper",get:function(){return M(this.pool.token1,this.pool.token0,this.tickUpper)}},{key:"amount0",get:function(){throw new Error("todo")}},{key:"amount1",get:function(){throw new Error("todo")}},{key:"capitalEfficiency",get:function(){throw new Error("todo")}}]),t}(),j=function(){function t(t,e,r){t.length>0||o(!1);var i=t[0].chainId;t.every((function(t){return t.chainId===i}))||o(!1);var a=n.WETH9[i],u=e instanceof n.Token&&t[0].involvesToken(e),s=e===n.ETHER&&a&&t[0].involvesToken(a);u||s||o(!1);var c=void 0===r,f=r instanceof n.Token&&t[t.length-1].involvesToken(r),h=r===n.ETHER&&a&&t[t.length-1].involvesToken(a);c||f||h||o(!1);for(var p,l=[e instanceof n.Token?e:a],d=k(t.entries());!(p=d()).done;){var v=p.value,T=v[1],m=l[v[0]];m.equals(T.token0)||m.equals(T.token1)||o(!1);var g=m.equals(T.token0)?T.token1:T.token0;l.push(g)}this.pools=t,this.tokenPath=l,this.input=e,this.output=null!=r?r:l[l.length-1]}return c(t,[{key:"chainId",get:function(){return this.pools[0].chainId}}]),t}();function L(t,e){return n.currencyEquals(t.inputAmount.currency,e.inputAmount.currency)||o(!1),n.currencyEquals(t.outputAmount.currency,e.outputAmount.currency)||o(!1),t.outputAmount.equalTo(e.outputAmount)?t.inputAmount.equalTo(e.inputAmount)?0:t.inputAmount.lessThan(e.inputAmount)?-1:1:t.outputAmount.lessThan(e.outputAmount)?1:-1}function D(t,e){var n=L(t,e);return 0!==n?n:t.priceImpact.lessThan(e.priceImpact)?-1:t.priceImpact.greaterThan(e.priceImpact)?1:t.route.tokenPath.length-e.route.tokenPath.length}function G(t,e){return t instanceof n.TokenAmount?t:t.currency===n.ETHER?new n.TokenAmount(n.WETH9[e],t.raw):void o(!1)}function K(t,e){return t instanceof n.Token?t:t===n.ETHER?n.WETH9[e]:void o(!1)}var W=function(){function t(t,e,r){var i,a,u,s=new Array(t.tokenPath.length),c=new Array(t.pools.length);if(r===n.TradeType.EXACT_INPUT){n.currencyEquals(e.currency,t.input)||o(!1),s[0]=G(e,t.chainId);for(var f=0;f<t.tokenPath.length-1;f++){var h=t.pools[f].getOutputAmount(s[f]),p=h[1];s[f+1]=h[0],c[f]=p}}else{n.currencyEquals(e.currency,t.output)||o(!1),s[s.length-1]=G(e,t.chainId);for(var l=t.tokenPath.length-1;l>0;l--){var d=t.pools[l-1].getInputAmount(s[l]),v=d[1];s[l-1]=d[0],c[l-1]=v}}this.route=t,this.tradeType=r,this.inputAmount=r===n.TradeType.EXACT_INPUT?e:t.input===n.ETHER?n.CurrencyAmount.ether(s[0].raw):s[0],this.outputAmount=r===n.TradeType.EXACT_OUTPUT?e:t.output===n.ETHER?n.CurrencyAmount.ether(s[s.length-1].raw):s[s.length-1],this.executionPrice=new n.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.raw,this.outputAmount.raw),this.priceImpact=(i=this.outputAmount,u=(a=this.executionPrice.raw.multiply(this.inputAmount.raw)).subtract(i.raw).divide(a),new n.Percent(u.numerator,u.denominator))}t.exactIn=function(e,r){return new t(e,r,n.TradeType.EXACT_INPUT)},t.exactOut=function(e,r){return new t(e,r,n.TradeType.EXACT_OUTPUT)};var e=t.prototype;return e.minimumAmountOut=function(t){if(t.lessThan(I)&&o(!1),this.tradeType===n.TradeType.EXACT_OUTPUT)return this.outputAmount;var e=new n.Fraction(b).add(t).invert().multiply(this.outputAmount.raw).quotient;return this.outputAmount instanceof n.TokenAmount?new n.TokenAmount(this.outputAmount.token,e):n.CurrencyAmount.ether(e)},e.maximumAmountIn=function(t){if(t.lessThan(I)&&o(!1),this.tradeType===n.TradeType.EXACT_INPUT)return this.inputAmount;var e=new n.Fraction(b).add(t).multiply(this.inputAmount.raw).quotient;return this.inputAmount instanceof n.TokenAmount?new n.TokenAmount(this.inputAmount.token,e):n.CurrencyAmount.ether(e)},t.bestTradeExactIn=function(e,r,i,a,u,s,c){var f=void 0===a?{}:a,h=f.maxNumResults,p=void 0===h?3:h,l=f.maxHops,d=void 0===l?3:l;void 0===u&&(u=[]),void 0===s&&(s=r),void 0===c&&(c=[]),e.length>0||o(!1),d>0||o(!1),s===r||u.length>0||o(!1);var v=r instanceof n.TokenAmount?r.token.chainId:i instanceof n.Token?i.chainId:void 0;void 0===v&&o(!1);for(var T=G(r,v),m=K(i,v),g=0;g<e.length;g++){var k=e[g];if(k.token0.equals(T.token)||k.token1.equals(T.token)){var y=void 0;try{y=k.getOutputAmount(T)[0]}catch(t){if(t.isInsufficientInputAmountError)continue;throw t}if(y.token.equals(m))n.sortedInsert(c,new t(new j([].concat(u,[k]),s.currency,i),s,n.TradeType.EXACT_INPUT),p,D);else if(d>1&&e.length>1){var A=e.slice(0,g).concat(e.slice(g+1,e.length));t.bestTradeExactIn(A,y,i,{maxNumResults:p,maxHops:d-1},[].concat(u,[k]),s,c)}}}return c},t.bestTradeExactOut=function(e,r,i,a,u,s,c){var f=void 0===a?{}:a,h=f.maxNumResults,p=void 0===h?3:h,l=f.maxHops,d=void 0===l?3:l;void 0===u&&(u=[]),void 0===s&&(s=i),void 0===c&&(c=[]),e.length>0||o(!1),d>0||o(!1),s===i||u.length>0||o(!1);var v=i instanceof n.TokenAmount?i.token.chainId:r instanceof n.Token?r.chainId:void 0;void 0===v&&o(!1);for(var T=G(i,v),m=K(r,v),g=0;g<e.length;g++){var k=e[g];if(k.token0.equals(T.token)||k.token1.equals(T.token)){var y=void 0;try{y=k.getInputAmount(T)[0]}catch(t){if(t.isInsufficientReservesError)continue;throw t}if(y.token.equals(m))n.sortedInsert(c,new t(new j([k].concat(u),r,s.currency),s,n.TradeType.EXACT_OUTPUT),p,D);else if(d>1&&e.length>1){var A=e.slice(0,g).concat(e.slice(g+1,e.length));t.bestTradeExactOut(A,r,y,{maxNumResults:p,maxHops:d-1},[k].concat(u),s,c)}}}return c},t}(),Q=function(){function t(t){var e=this,n=t.ticks;n&&n.length>0&&n.sort((function(t,e){return t.index>e.index?-1:1})).forEach((function(t){return e.insertUnsorted(t)}))}var e=t.prototype;return e.insertUnsorted=function(t){var e={value:t};if(void 0===this.head)this.head=e;else if(void 0===this.tail)this.tail=e,this.tail.right=this.head,this.head.left=this.tail;else{var n=this.tail;e.right=n,n.left=e,this.tail=e}},e.insert=function(t){var e={value:t};if(void 0===this.head)this.head=e;else if(this.head.value.index<e.value.index)e.left=this.head,this.head.right=e,this.head=e;else{for(var n=f({},this.head);n.left&&n.left.value.index>=e.value.index;)n=n.left;n.right=e,e.left=n,void 0===n.right?this.head=e:e.right=n.right,void 0===n.left&&(this.tail=e)}},e.dequeue=function(){if(this.head){var t=this.head.value;return this.head=this.head.left,void 0===this.head?this.tail=void 0:this.head.left=void 0,t}},e.pop=function(){if(this.tail){var t=this.tail.value;return this.tail=this.tail.right,void 0===this.tail?this.head=void 0:this.tail.left=void 0,t}},c(t,[{key:"values",get:function(){for(var t=this.tail,e=[];t;)e.push(t.value),t=t.right;return e}}]),t}();function Y(t){return"0x"+t.raw.toString(16)}var Z="setPrototypeOf"in Object,$=function(t){function e(){var n;return(n=t.call(this)||this).isInsufficientReservesError=!0,n.name=n.constructor.name,Z&&Object.setPrototypeOf(m(n),(this instanceof e?this.constructor:void 0).prototype),n}return h(e,t),e}(T(Error)),z=function(t){function e(){var n;return(n=t.call(this)||this).isInsufficientInputAmountError=!0,n.name=n.constructor.name,Z&&Object.setPrototypeOf(m(n),(this instanceof e?this.constructor:void 0).prototype),n}return h(e,t),e}(T(Error)),J=function(){function t(){}return t.mintCallParameters=function(t,e){o(!1)},t}(),V=function(){function t(){}return t.swapCallParameters=function(t,e){var r=t.inputAmount.currency===n.ETHER,i=t.outputAmount.currency===n.ETHER;r&&i&&o(!1);var a,u,s,c=n.validateAndParseAddress(e.recipient),f=Y(t.maximumAmountIn(e.allowedSlippage)),h=Y(t.minimumAmountOut(e.allowedSlippage)),p=t.route.tokenPath.map((function(t){return t.address})),l="0x"+e.deadline.toString(16),d=Boolean(e.feeOnTransfer);switch(t.tradeType){case n.TradeType.EXACT_INPUT:r?(a=d?"swapExactETHForTokensSupportingFeeOnTransferTokens":"swapExactETHForTokens",u=[h,p,c,l],s=f):i?(a=d?"swapExactTokensForETHSupportingFeeOnTransferTokens":"swapExactTokensForETH",u=[f,h,p,c,l],s="0x0"):(a=d?"swapExactTokensForTokensSupportingFeeOnTransferTokens":"swapExactTokensForTokens",u=[f,h,p,c,l],s="0x0");break;case n.TradeType.EXACT_OUTPUT:d&&o(!1),r?(a="swapETHForExactTokens",u=[h,p,c,l],s=f):i?(a="swapTokensForExactETH",u=[h,f,p,c,l],s="0x0"):(a="swapTokensForExactTokens",u=[h,f,p,c,l],s="0x0");break;default:throw new Error("invalid trade type")}return{methodName:a,args:u,value:s,address:"0x1F98431c8aD98523631AE4a59f267346ea31F984"}},t}();exports.FACTORY_ADDRESS="0x1F98431c8aD98523631AE4a59f267346ea31F984",exports.InsufficientInputAmountError=z,exports.InsufficientReservesError=$,exports.MAX_TICK=887272,exports.MIN_TICK=-887272,exports.NonfungiblePositionManager=J,exports.POOL_INIT_CODE_HASH=A,exports.Pool=q,exports.Position=N,exports.Route=j,exports.SWAP_ROUTER_ADDRESS="0x1F98431c8aD98523631AE4a59f267346ea31F984",exports.SwapRouter=V,exports.TICK_SPACINGS=x,exports.Tick=function(t){var e=t.index,n=t.feeGrowthOutside0X128,i=t.feeGrowthOutside1X128,a=t.liquidityGross,u=t.liquidityNet;e>=-887272&&e<=887272||o(!1),this.index=e,this.feeGrowthOutside0X128=r.BigInt(n),this.feeGrowthOutside1X128=r.BigInt(i),this.liquidityGross=r.BigInt(a),this.liquidityNet=r.BigInt(u)},exports.TickList=Q,exports.TickMath=X,exports.Trade=W,exports.ZERO_HEX="0x0",exports.computePoolAddress=O,exports.encodeSqrtRatioX96=B,exports.inputOutputComparator=L,exports.maxLiquidityForAmount0=P,exports.maxLiquidityForAmount1=R,exports.maxLiquidityForAmounts=S,exports.mostSignificantBit=C,exports.nearestUsableTick=function(t,e){Number.isInteger(t)&&Number.isInteger(e)||o(!1),e>0||o(!1),t>=-887272&&t<=887272||o(!1);var n=Math.round(t/e)*e;return n<-887272?n+e:n>887272?n-e:n},exports.priceToClosestTick=function(t){t.baseCurrency instanceof n.Token&&t.quoteCurrency instanceof n.Token||o(!1);var e=t.baseCurrency.sortsBefore(t.quoteCurrency),r=e?B(t.raw.numerator,t.raw.denominator):B(t.raw.denominator,t.raw.numerator),i=X.getTickAtSqrtRatio(r),a=M(t.baseCurrency,t.quoteCurrency,i+1);return e?t.lessThan(a)||i++:t.greaterThan(a)||i++,i},exports.tickToPrice=M,exports.toHex=Y,exports.tradeComparator=D;
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@uniswap/sdk-core"),n=t(require("jsbi")),r=t(require("tiny-invariant")),i=require("@ethersproject/abi"),o=require("@ethersproject/address"),u=require("@ethersproject/solidity");function a(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function s(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),t}function c(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function p(t,e,n){return(p=d()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&l(i,n.prototype),i}).apply(null,arguments)}function h(t){var e="function"==typeof Map?new Map:void 0;return(h=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return p(t,arguments,f(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),l(n,t)})(t)}function m(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function T(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return g(t,void 0);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=t[Symbol.iterator]()).next.bind(n)}function k(t){var e=t.factoryAddress,n=t.tokenA,r=t.tokenB,a=t.fee,s=n.sortsBefore(r)?[n,r]:[r,n];return o.getCreate2Address(e,u.keccak256(["bytes"],[i.defaultAbiCoder.encode(["address","address","uint24"],[s[0].address,s[1].address,a])]),U)}function v(t,r){var i=n.leftShift(n.BigInt(t),n.BigInt(192)),o=n.BigInt(r),u=n.divide(i,o);return e.sqrt(u)}var I=n.BigInt(-1),A=n.BigInt(0),x=n.BigInt(1),y=n.exponentiate(n.BigInt(2),n.BigInt(96)),q=n.exponentiate(y,n.BigInt(2));function b(t,e,r){if(n.greaterThan(t,e)){var i=[e,t];t=i[0],e=i[1]}var o=n.divide(n.multiply(t,e),y);return n.divide(n.multiply(n.BigInt(r),o),n.subtract(e,t))}function w(t,e,r){if(n.greaterThan(t,e)){var i=[e,t];t=i[0],e=i[1]}return n.divide(n.multiply(n.BigInt(r),y),n.subtract(e,t))}function R(t,e,r,i,o){if(n.greaterThan(e,r)){var u=[r,e];e=u[0],r=u[1]}if(n.lessThan(t,e))return b(e,r,i);if(n.lessThan(t,r)){var a=b(t,r,i),s=w(e,t,o);return n.lessThan(a,s)?a:s}return w(e,r,o)}var E=n.BigInt(2),S=[128,64,32,16,8,4,2,1].map((function(t){return[t,n.exponentiate(E,n.BigInt(t))]}));function O(t){n.greaterThan(t,A)||r(!1),n.lessThanOrEqual(t,e.MaxUint256)||r(!1);for(var i,o=0,u=T(S);!(i=u()).done;){var a=i.value,s=a[0];n.greaterThanOrEqual(t,a[1])&&(t=n.signedRightShift(t,n.BigInt(s)),o+=s)}return o}function P(t,e){return n.signedRightShift(n.multiply(t,n.BigInt(e)),n.BigInt(128))}var _=n.exponentiate(n.BigInt(2),n.BigInt(32)),N=function(){function t(){}return t.getSqrtRatioAtTick=function(i){i>=t.MIN_TICK&&i<=t.MAX_TICK&&Number.isInteger(i)||r(!1);var o=i<0?-1*i:i,u=n.BigInt(0!=(1&o)?"0xfffcb933bd6fad37aa2d162d1a594001":"0x100000000000000000000000000000000");return 0!=(2&o)&&(u=P(u,"0xfff97272373d413259a46990580e213a")),0!=(4&o)&&(u=P(u,"0xfff2e50f5f656932ef12357cf3c7fdcc")),0!=(8&o)&&(u=P(u,"0xffe5caca7e10e4e61c3624eaa0941cd0")),0!=(16&o)&&(u=P(u,"0xffcb9843d60f6159c9db58835c926644")),0!=(32&o)&&(u=P(u,"0xff973b41fa98c081472e6896dfb254c0")),0!=(64&o)&&(u=P(u,"0xff2ea16466c96a3843ec78b326b52861")),0!=(128&o)&&(u=P(u,"0xfe5dee046a99a2a811c461f1969c3053")),0!=(256&o)&&(u=P(u,"0xfcbe86c7900a88aedcffc83b479aa3a4")),0!=(512&o)&&(u=P(u,"0xf987a7253ac413176f2b074cf7815e54")),0!=(1024&o)&&(u=P(u,"0xf3392b0822b70005940c7a398e4b70f3")),0!=(2048&o)&&(u=P(u,"0xe7159475a2c29b7443b29c7fa6e889d9")),0!=(4096&o)&&(u=P(u,"0xd097f3bdfd2022b8845ad8f792aa5825")),0!=(8192&o)&&(u=P(u,"0xa9f746462d870fdf8a65dc1f90e061e5")),0!=(16384&o)&&(u=P(u,"0x70d869a156d2a1b890bb3df62baf32f7")),0!=(32768&o)&&(u=P(u,"0x31be135f97d08fd981231505542fcfa6")),0!=(65536&o)&&(u=P(u,"0x9aa508b5b7a84e1c677de54f3e99bc9")),0!=(131072&o)&&(u=P(u,"0x5d6af8dedb81196699c329225ee604")),0!=(262144&o)&&(u=P(u,"0x2216e584f5fa1ea926041bedfe98")),0!=(524288&o)&&(u=P(u,"0x48a170391f7dc42444e8fa2")),i>0&&(u=n.divide(e.MaxUint256,u)),n.greaterThan(n.remainder(u,_),A)?n.add(n.divide(u,_),x):n.divide(u,_)},t.getTickAtSqrtRatio=function(e){n.greaterThanOrEqual(e,t.MIN_SQRT_RATIO)&&n.lessThan(e,t.MAX_SQRT_RATIO)||r(!1);var i,o=n.leftShift(e,n.BigInt(32)),u=O(o);i=n.greaterThanOrEqual(n.BigInt(u),n.BigInt(128))?n.signedRightShift(o,n.BigInt(u-127)):n.leftShift(o,n.BigInt(127-u));for(var a=n.leftShift(n.subtract(n.BigInt(u),n.BigInt(128)),n.BigInt(64)),s=0;s<14;s++){i=n.signedRightShift(n.multiply(i,i),n.BigInt(127));var c=n.signedRightShift(i,n.BigInt(128));a=n.bitwiseOr(a,n.leftShift(c,n.BigInt(63-s))),i=n.signedRightShift(i,c)}var f=n.multiply(a,n.BigInt("255738958999603826347141")),l=n.toNumber(n.signedRightShift(n.subtract(f,n.BigInt("3402992956809132418596140100660247210")),n.BigInt(128))),d=n.toNumber(n.signedRightShift(n.add(f,n.BigInt("291339464771989622907027621153398088495")),n.BigInt(128)));return l===d?l:n.lessThanOrEqual(t.getSqrtRatioAtTick(d),e)?d:l},t}();function B(t,r,i){var o=N.getSqrtRatioAtTick(i),u=n.multiply(o,o);return t.sortsBefore(r)?new e.Price(t,r,q,u):new e.Price(t,r,u,q)}function C(t){return"0x"+t.raw.toString(16)}N.MIN_TICK=-887272,N.MAX_TICK=-N.MIN_TICK,N.MIN_SQRT_RATIO=n.BigInt("4295128739"),N.MAX_SQRT_RATIO=n.BigInt("1461446703485210103287273052203988822378723970342");var X,M,U="0x01d4d358e07707f4db84b6a7527455b06f95ee89b5d059b4a1298ada7b6c7d67";(M=exports.FeeAmount||(exports.FeeAmount={}))[M.LOW=500]="LOW",M[M.MEDIUM=3e3]="MEDIUM",M[M.HIGH=1e4]="HIGH";var F=((X={})[exports.FeeAmount.LOW]=10,X[exports.FeeAmount.MEDIUM]=60,X[exports.FeeAmount.HIGH]=200,X),D=function(){function t(){}return t.addDelta=function(t,e){return n.lessThan(e,A)?n.subtract(t,n.multiply(e,I)):n.add(t,e)},t}(),H=function(){function t(){}return t.mulDivRoundingUp=function(t,e,r){var i=n.multiply(t,e),o=n.divide(i,r);return n.notEqual(n.remainder(i,r),A)&&(o=n.add(o,x)),o},t}(),L=n.subtract(n.exponentiate(n.BigInt(2),n.BigInt(160)),x);function K(t,r){var i=n.multiply(t,r);return n.bitwiseAnd(i,e.MaxUint256)}var j=function(){function t(){}return t.getAmount0Delta=function(t,e,r,i){if(n.greaterThan(t,e)){var o=[e,t];t=o[0],e=o[1]}var u=n.leftShift(r,n.BigInt(96)),a=n.subtract(e,t);return i?H.mulDivRoundingUp(H.mulDivRoundingUp(u,a,e),x,t):n.divide(n.divide(n.multiply(u,a),e),t)},t.getAmount1Delta=function(t,e,r,i){if(n.greaterThan(t,e)){var o=[e,t];t=o[0],e=o[1]}return i?H.mulDivRoundingUp(r,n.subtract(e,t),y):n.divide(n.multiply(r,n.subtract(e,t)),y)},t.getNextSqrtPriceFromInput=function(t,e,i,o){return n.greaterThan(t,A)||r(!1),n.greaterThan(e,A)||r(!1),o?this.getNextSqrtPriceFromAmount0RoundingUp(t,e,i,!0):this.getNextSqrtPriceFromAmount1RoundingDown(t,e,i,!0)},t.getNextSqrtPriceFromOutput=function(t,e,i,o){return n.greaterThan(t,A)||r(!1),n.greaterThan(e,A)||r(!1),o?this.getNextSqrtPriceFromAmount1RoundingDown(t,e,i,!1):this.getNextSqrtPriceFromAmount0RoundingUp(t,e,i,!1)},t.getNextSqrtPriceFromAmount0RoundingUp=function(t,i,o,u){if(n.equal(o,A))return t;var a=n.leftShift(i,n.BigInt(96));if(u){var s=K(o,t);if(n.equal(n.divide(s,o),t)){var c=(l=n.add(a,s),n.bitwiseAnd(l,e.MaxUint256));if(n.greaterThanOrEqual(c,a))return H.mulDivRoundingUp(a,t,c)}return H.mulDivRoundingUp(a,x,n.add(n.divide(a,t),o))}var f=K(o,t);n.equal(n.divide(f,o),t)||r(!1),n.greaterThan(a,f)||r(!1);var l,d=n.subtract(a,f);return H.mulDivRoundingUp(a,t,d)},t.getNextSqrtPriceFromAmount1RoundingDown=function(t,e,i,o){if(o){var u=n.lessThanOrEqual(i,L)?n.divide(n.leftShift(i,n.BigInt(96)),e):n.divide(n.multiply(i,y),e);return n.add(t,u)}var a=H.mulDivRoundingUp(i,y,e);return n.greaterThan(t,a)||r(!1),n.subtract(t,a)},t}(),W=n.exponentiate(n.BigInt(10),n.BigInt(6)),G=function(){function t(){}return t.computeSwapStep=function(t,e,r,i,o){var u={},a=n.greaterThanOrEqual(t,e),s=n.greaterThanOrEqual(i,A);if(s){var c=n.divide(n.multiply(i,n.subtract(W,n.BigInt(o))),W);u.amountIn=a?j.getAmount0Delta(e,t,r,!0):j.getAmount1Delta(t,e,r,!0),u.sqrtRatioNextX96=n.greaterThanOrEqual(c,u.amountIn)?e:j.getNextSqrtPriceFromInput(t,r,c,a)}else u.amountOut=a?j.getAmount1Delta(e,t,r,!1):j.getAmount0Delta(t,e,r,!1),u.sqrtRatioNextX96=n.greaterThanOrEqual(n.multiply(i,I),u.amountOut)?e:j.getNextSqrtPriceFromOutput(t,r,n.multiply(i,I),a);var f=n.equal(e,u.sqrtRatioNextX96);return a?(u.amountIn=f&&s?u.amountIn:j.getAmount0Delta(u.sqrtRatioNextX96,t,r,!0),u.amountOut=f&&!s?u.amountOut:j.getAmount1Delta(u.sqrtRatioNextX96,t,r,!1)):(u.amountIn=f&&s?u.amountIn:j.getAmount1Delta(t,u.sqrtRatioNextX96,r,!0),u.amountOut=f&&!s?u.amountOut:j.getAmount0Delta(t,u.sqrtRatioNextX96,r,!1)),!s&&n.greaterThan(u.amountOut,n.multiply(i,I))&&(u.amountOut=n.multiply(i,I)),u.feeAmount=s&&n.notEqual(u.sqrtRatioNextX96,e)?n.subtract(i,u.amountIn):H.mulDivRoundingUp(u.amountIn,n.BigInt(o),n.subtract(W,n.BigInt(o))),[u.sqrtRatioNextX96,u.amountIn,u.amountOut,u.feeAmount]},t}(),Q=function(){function t(t,e,i,o,u,a,s){Number.isInteger(i)&&i<1e6||r(!1);var c=N.getSqrtRatioAtTick(a),f=N.getSqrtRatioAtTick(a+1);n.greaterThanOrEqual(n.BigInt(o),c)&&n.lessThanOrEqual(n.BigInt(o),f)||r(!1);var l=t.sortsBefore(e)?[t,e]:[e,t];this.token0=l[0],this.token1=l[1],this.fee=i,this.sqrtRatioX96=n.BigInt(o),this.liquidity=n.BigInt(u),this.tickCurrent=a,this.ticks=s}t.getAddress=function(t,e,n){return k({factoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",fee:n,tokenA:t,tokenB:e})};var i=t.prototype;return i.involvesToken=function(t){return t.equals(this.token0)||t.equals(this.token1)},i.priceOf=function(t){return this.involvesToken(t)||r(!1),t.equals(this.token0)?this.token0Price:this.token1Price},i.getOutputAmount=function(i){this.involvesToken(i.token)||r(!1);var o=i.token.equals(this.token0),u=this.swap(o,i.raw),a=u.sqrtRatioX96,s=u.liquidity,c=u.tickCurrent;return[new e.TokenAmount(o?this.token1:this.token0,n.multiply(u.amountCalculated,I)),new t(this.token0,this.token1,this.fee,a,s,c,this.ticks)]},i.getInputAmount=function(i){this.involvesToken(i.token)||r(!1);var o=i.token.equals(this.token1),u=this.swap(o,n.multiply(i.raw,I)),a=u.sqrtRatioX96,s=u.liquidity,c=u.tickCurrent;return[new e.TokenAmount(o?this.token0:this.token1,u.amountCalculated),new t(this.token0,this.token1,this.fee,a,s,c,this.ticks)]},i.swap=function(t,e,i){n.notEqual(e,A)||r(!1),i||(i=t?n.add(N.MIN_SQRT_RATIO,x):n.subtract(N.MAX_SQRT_RATIO,x)),t?(n.greaterThan(i,N.MIN_SQRT_RATIO)||r(!1),n.lessThan(i,this.sqrtRatioX96)||r(!1)):(n.lessThan(i,N.MAX_SQRT_RATIO)||r(!1),n.greaterThan(i,this.sqrtRatioX96)||r(!1));for(var o=n.greaterThan(e,A),u={amountSpecifiedRemaining:e,amountCalculated:A,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};n.notEqual(u.amountSpecifiedRemaining,A)&&u.sqrtPriceX96!=i;){var a={};a.sqrtPriceStartX96=u.sqrtPriceX96;var s=this.ticks.nextInitializedTickWithinOneWord(u.tick,t);a.tickNext=s[0],a.initialized=s[1],a.tickNext<N.MIN_TICK?a.tickNext=N.MIN_TICK:a.tickNext>N.MAX_TICK&&(a.tickNext=N.MAX_TICK),a.sqrtPriceNextX96=N.getSqrtRatioAtTick(a.tickNext);var c=G.computeSwapStep(u.sqrtPriceX96,(t?n.lessThan(a.sqrtPriceNextX96,i):n.greaterThan(a.sqrtPriceNextX96,i))?i:a.sqrtPriceNextX96,u.liquidity,u.amountSpecifiedRemaining,this.fee);if(u.sqrtPriceX96=c[0],a.amountIn=c[1],a.amountOut=c[2],a.feeAmount=c[3],o?(u.amountSpecifiedRemaining=n.subtract(u.amountSpecifiedRemaining,n.add(a.amountIn,a.feeAmount)),u.amountCalculated=n.subtract(u.amountCalculated,a.amountOut)):(u.amountSpecifiedRemaining=n.add(u.amountSpecifiedRemaining,a.amountOut),u.amountCalculated=n.add(u.amountCalculated,n.add(a.amountIn,a.feeAmount))),n.equal(u.sqrtPriceX96,a.sqrtPriceNextX96)){if(a.initialized){var f=this.ticks.getTick(a.tickNext).liquidityNet;t&&(f=n.multiply(f,I)),u.liquidity=D.addDelta(u.liquidity,f)}u.tick=t?a.tickNext-1:a.tickNext}else u.sqrtPriceX96!=a.sqrtPriceStartX96&&(u.tick=N.getTickAtSqrtRatio(u.sqrtPriceX96))}return{amountCalculated:u.amountCalculated,sqrtRatioX96:u.sqrtPriceX96,liquidity:u.liquidity,tickCurrent:u.tick}},s(t,[{key:"token0Price",get:function(){var t;return null!=(t=this._token0Price)?t:this._token0Price=new e.Price(this.token0,this.token1,q,n.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:"token1Price",get:function(){var t;return null!=(t=this._token1Price)?t:this._token1Price=new e.Price(this.token1,this.token0,n.multiply(this.sqrtRatioX96,this.sqrtRatioX96),q)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"tickSpacing",get:function(){return F[this.fee]}}]),t}(),z=function(){function t(t){var e=t.pool,i=t.liquidity,o=t.tickLower,u=t.tickUpper;o<u||r(!1),o>=N.MIN_TICK&&o%e.tickSpacing==0||r(!1),u<=N.MAX_TICK&&u%e.tickSpacing==0||r(!1),this.pool=e,this.tickLower=o,this.tickUpper=u,this.liquidity=n.BigInt(i)}var i=t.prototype;return i.maxAmount0=function(t){throw new Error("todo")},i.maxAmount1=function(t){throw new Error("todo")},t.fromAmounts=function(e){var n=e.pool,r=e.tickLower,i=e.tickUpper,o=e.amount0,u=e.amount1,a=N.getSqrtRatioAtTick(r),s=N.getSqrtRatioAtTick(i);return new t({pool:n,tickLower:r,tickUpper:i,liquidity:R(n.sqrtRatioX96,a,s,o,u)})},t.fromAmount0=function(n){return t.fromAmounts({pool:n.pool,tickLower:n.tickLower,tickUpper:n.tickUpper,amount0:n.amount0,amount1:e.MaxUint256})},t.fromAmount1=function(n){return t.fromAmounts({pool:n.pool,tickLower:n.tickLower,tickUpper:n.tickUpper,amount0:e.MaxUint256,amount1:n.amount1})},s(t,[{key:"token0PriceLower",get:function(){return B(this.pool.token0,this.pool.token1,this.tickLower)}},{key:"token1PriceLower",get:function(){return B(this.pool.token1,this.pool.token0,this.tickLower)}},{key:"token0PriceUpper",get:function(){return B(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:"token1PriceUpper",get:function(){return B(this.pool.token1,this.pool.token0,this.tickUpper)}},{key:"amount0",get:function(){throw new Error("todo")}},{key:"amount1",get:function(){throw new Error("todo")}},{key:"capitalEfficiency",get:function(){throw new Error("todo")}}]),t}(),Y=function(){function t(t,n,i){t.length>0||r(!1);var o=t[0].chainId;t.every((function(t){return t.chainId===o}))||r(!1);var u=e.WETH9[o],a=n instanceof e.Token&&t[0].involvesToken(n),s=n===e.ETHER&&u&&t[0].involvesToken(u);a||s||r(!1);var c=void 0===i,f=i instanceof e.Token&&t[t.length-1].involvesToken(i),l=i===e.ETHER&&u&&t[t.length-1].involvesToken(u);c||f||l||r(!1);for(var d,p=[n instanceof e.Token?n:u],h=T(t.entries());!(d=h()).done;){var m=d.value,g=m[1],k=p[m[0]];k.equals(g.token0)||k.equals(g.token1)||r(!1);var v=k.equals(g.token0)?g.token1:g.token0;p.push(v)}this.pools=t,this.tokenPath=p,this.input=n,this.output=null!=i?i:p[p.length-1]}return s(t,[{key:"chainId",get:function(){return this.pools[0].chainId}}]),t}(),Z=function(){function t(t,e){void 0===e&&(e=1),t.length>=2||r(!1),t.every((function(t){return t.index%e==0}))||r(!1),n.equal(t.reduce((function(t,e){return n.add(t,e.liquidityNet)}),A),A)||r(!1),this.tickSpacing=e,this.ticks=t.slice().sort((function(t,e){return t.index<e.index?-1:1}))}var e=t.prototype;return e.isBelowSmallest=function(t){return t<this.ticks[0].index},e.isAtOrAboveLargest=function(t){return t>=this.ticks[this.ticks.length-1].index},e.getTick=function(t){var e=this.ticks[this.binarySearch(t)];return e.index!==t&&r(!1),e},e.binarySearch=function(t){this.isBelowSmallest(t)&&r(!1),this.isAtOrAboveLargest(t)&&r(!1);for(var e,n=0,i=this.ticks.length-1;;){if(e=Math.floor((n+i)/2),this.ticks[e].index<=t&&this.ticks[e+1].index>t)return e;this.ticks[e].index<t?n=e+1:i=e-1}},e.nextInitializedTick=function(t,e){if(e){if(this.isBelowSmallest(t)&&r(!1),this.isAtOrAboveLargest(t))return this.ticks[this.ticks.length-1];var n=this.binarySearch(t);return this.ticks[n]}if(this.isAtOrAboveLargest(t)&&r(!1),this.isBelowSmallest(t))return this.ticks[0];var i=this.binarySearch(t);return this.ticks[i+1]},e.nextInitializedTickWithinOneWord=function(t,e){var n=Math.floor(t/this.tickSpacing);if(e){var r=(n>>8<<8)*this.tickSpacing;if(this.isBelowSmallest(t))return[r,!1];var i=this.nextInitializedTick(t,e).index,o=Math.max(r,i);return[o,o===i]}var u=(1+(n+1>>8)<<8)*this.tickSpacing-1;if(this.isAtOrAboveLargest(t))return[u,!1];var a=this.nextInitializedTick(t,e).index,s=Math.min(u,a);return[s,s===a]},t}();function $(t,n){return e.currencyEquals(t.inputAmount.currency,n.inputAmount.currency)||r(!1),e.currencyEquals(t.outputAmount.currency,n.outputAmount.currency)||r(!1),t.outputAmount.equalTo(n.outputAmount)?t.inputAmount.equalTo(n.inputAmount)?0:t.inputAmount.lessThan(n.inputAmount)?-1:1:t.outputAmount.lessThan(n.outputAmount)?1:-1}function J(t,e){var n=$(t,e);return 0!==n?n:t.priceImpact.lessThan(e.priceImpact)?-1:t.priceImpact.greaterThan(e.priceImpact)?1:t.route.tokenPath.length-e.route.tokenPath.length}function V(t,n){return t instanceof e.TokenAmount?t:t.currency===e.ETHER?new e.TokenAmount(e.WETH9[n],t.raw):void r(!1)}function tt(t,n){return t instanceof e.Token?t:t===e.ETHER?e.WETH9[n]:void r(!1)}var et=function(){function t(t,n,i){var o,u,a,s=new Array(t.tokenPath.length),c=new Array(t.pools.length);if(i===e.TradeType.EXACT_INPUT){e.currencyEquals(n.currency,t.input)||r(!1),s[0]=V(n,t.chainId);for(var f=0;f<t.tokenPath.length-1;f++){var l=t.pools[f].getOutputAmount(s[f]),d=l[1];s[f+1]=l[0],c[f]=d}}else{e.currencyEquals(n.currency,t.output)||r(!1),s[s.length-1]=V(n,t.chainId);for(var p=t.tokenPath.length-1;p>0;p--){var h=t.pools[p-1].getInputAmount(s[p]),m=h[1];s[p-1]=h[0],c[p-1]=m}}this.route=t,this.tradeType=i,this.inputAmount=i===e.TradeType.EXACT_INPUT?n:t.input===e.ETHER?e.CurrencyAmount.ether(s[0].raw):s[0],this.outputAmount=i===e.TradeType.EXACT_OUTPUT?n:t.output===e.ETHER?e.CurrencyAmount.ether(s[s.length-1].raw):s[s.length-1],this.executionPrice=new e.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.raw,this.outputAmount.raw),this.priceImpact=(o=this.outputAmount,a=(u=this.executionPrice.raw.multiply(this.inputAmount.raw)).subtract(o.raw).divide(u),new e.Percent(a.numerator,a.denominator))}t.exactIn=function(n,r){return new t(n,r,e.TradeType.EXACT_INPUT)},t.exactOut=function(n,r){return new t(n,r,e.TradeType.EXACT_OUTPUT)};var n=t.prototype;return n.minimumAmountOut=function(t){if(t.lessThan(A)&&r(!1),this.tradeType===e.TradeType.EXACT_OUTPUT)return this.outputAmount;var n=new e.Fraction(x).add(t).invert().multiply(this.outputAmount.raw).quotient;return this.outputAmount instanceof e.TokenAmount?new e.TokenAmount(this.outputAmount.token,n):e.CurrencyAmount.ether(n)},n.maximumAmountIn=function(t){if(t.lessThan(A)&&r(!1),this.tradeType===e.TradeType.EXACT_INPUT)return this.inputAmount;var n=new e.Fraction(x).add(t).multiply(this.inputAmount.raw).quotient;return this.inputAmount instanceof e.TokenAmount?new e.TokenAmount(this.inputAmount.token,n):e.CurrencyAmount.ether(n)},t.bestTradeExactIn=function(n,i,o,u,a,s,c){var f=void 0===u?{}:u,l=f.maxNumResults,d=void 0===l?3:l,p=f.maxHops,h=void 0===p?3:p;void 0===a&&(a=[]),void 0===s&&(s=i),void 0===c&&(c=[]),n.length>0||r(!1),h>0||r(!1),s===i||a.length>0||r(!1);var m=i instanceof e.TokenAmount?i.token.chainId:o instanceof e.Token?o.chainId:void 0;void 0===m&&r(!1);for(var g=V(i,m),T=tt(o,m),k=0;k<n.length;k++){var v=n[k];if(v.token0.equals(g.token)||v.token1.equals(g.token)){var I=void 0;try{I=v.getOutputAmount(g)[0]}catch(t){if(t.isInsufficientInputAmountError)continue;throw t}if(I.token.equals(T))e.sortedInsert(c,new t(new Y([].concat(a,[v]),s.currency,o),s,e.TradeType.EXACT_INPUT),d,J);else if(h>1&&n.length>1){var A=n.slice(0,k).concat(n.slice(k+1,n.length));t.bestTradeExactIn(A,I,o,{maxNumResults:d,maxHops:h-1},[].concat(a,[v]),s,c)}}}return c},t.bestTradeExactOut=function(n,i,o,u,a,s,c){var f=void 0===u?{}:u,l=f.maxNumResults,d=void 0===l?3:l,p=f.maxHops,h=void 0===p?3:p;void 0===a&&(a=[]),void 0===s&&(s=o),void 0===c&&(c=[]),n.length>0||r(!1),h>0||r(!1),s===o||a.length>0||r(!1);var m=o instanceof e.TokenAmount?o.token.chainId:i instanceof e.Token?i.chainId:void 0;void 0===m&&r(!1);for(var g=V(o,m),T=tt(i,m),k=0;k<n.length;k++){var v=n[k];if(v.token0.equals(g.token)||v.token1.equals(g.token)){var I=void 0;try{I=v.getInputAmount(g)[0]}catch(t){if(t.isInsufficientReservesError)continue;throw t}if(I.token.equals(T))e.sortedInsert(c,new t(new Y([v].concat(a),i,s.currency),s,e.TradeType.EXACT_OUTPUT),d,J);else if(h>1&&n.length>1){var A=n.slice(0,k).concat(n.slice(k+1,n.length));t.bestTradeExactOut(A,i,I,{maxNumResults:d,maxHops:h-1},[v].concat(a),s,c)}}}return c},t}(),nt="setPrototypeOf"in Object,rt=function(t){function e(){var n;return(n=t.call(this)||this).isInsufficientReservesError=!0,n.name=n.constructor.name,nt&&Object.setPrototypeOf(m(n),(this instanceof e?this.constructor:void 0).prototype),n}return c(e,t),e}(h(Error)),it=function(t){function e(){var n;return(n=t.call(this)||this).isInsufficientInputAmountError=!0,n.name=n.constructor.name,nt&&Object.setPrototypeOf(m(n),(this instanceof e?this.constructor:void 0).prototype),n}return c(e,t),e}(h(Error)),ot=function(){function t(){}return t.mintCallParameters=function(t,e){r(!1)},t}(),ut=function(){function t(){}return t.swapCallParameters=function(t,n){var i=t.inputAmount.currency===e.ETHER,o=t.outputAmount.currency===e.ETHER;i&&o&&r(!1);var u,a,s,c=e.validateAndParseAddress(n.recipient),f=C(t.maximumAmountIn(n.allowedSlippage)),l=C(t.minimumAmountOut(n.allowedSlippage)),d=t.route.tokenPath.map((function(t){return t.address})),p="0x"+n.deadline.toString(16),h=Boolean(n.feeOnTransfer);switch(t.tradeType){case e.TradeType.EXACT_INPUT:i?(u=h?"swapExactETHForTokensSupportingFeeOnTransferTokens":"swapExactETHForTokens",a=[l,d,c,p],s=f):o?(u=h?"swapExactTokensForETHSupportingFeeOnTransferTokens":"swapExactTokensForETH",a=[f,l,d,c,p],s="0x0"):(u=h?"swapExactTokensForTokensSupportingFeeOnTransferTokens":"swapExactTokensForTokens",a=[f,l,d,c,p],s="0x0");break;case e.TradeType.EXACT_OUTPUT:h&&r(!1),i?(u="swapETHForExactTokens",a=[l,d,c,p],s=f):o?(u="swapTokensForExactETH",a=[l,f,d,c,p],s="0x0"):(u="swapTokensForExactTokens",a=[l,f,d,c,p],s="0x0");break;default:throw new Error("invalid trade type")}return{methodName:u,args:a,value:s,address:"0x1F98431c8aD98523631AE4a59f267346ea31F984"}},t}();exports.FACTORY_ADDRESS="0x1F98431c8aD98523631AE4a59f267346ea31F984",exports.InsufficientInputAmountError=it,exports.InsufficientReservesError=rt,exports.MAX_TICK=function(t){return Math.floor(N.MAX_TICK/t)*t},exports.MIN_TICK=function(t){return Math.ceil(N.MIN_TICK/t)*t},exports.NonfungiblePositionManager=ot,exports.POOL_INIT_CODE_HASH=U,exports.Pool=Q,exports.Position=z,exports.Route=Y,exports.SWAP_ROUTER_ADDRESS="0x1F98431c8aD98523631AE4a59f267346ea31F984",exports.SwapRouter=ut,exports.TICK_SPACINGS=F,exports.Tick=function(t){var e=t.index,i=t.feeGrowthOutside0X128,o=t.feeGrowthOutside1X128,u=t.liquidityGross,a=t.liquidityNet;e>=N.MIN_TICK&&e<=N.MAX_TICK||r(!1),this.index=e,i&&(this.feeGrowthOutside0X128=n.BigInt(i)),o&&(this.feeGrowthOutside1X128=n.BigInt(o)),this.liquidityGross=n.BigInt(u),this.liquidityNet=n.BigInt(a)},exports.TickList=Z,exports.TickMath=N,exports.Trade=et,exports.ZERO_HEX="0x0",exports.computePoolAddress=k,exports.encodeSqrtRatioX96=v,exports.inputOutputComparator=$,exports.maxLiquidityForAmount0=b,exports.maxLiquidityForAmount1=w,exports.maxLiquidityForAmounts=R,exports.mostSignificantBit=O,exports.nearestUsableTick=function(t,e){Number.isInteger(t)&&Number.isInteger(e)||r(!1),e>0||r(!1),t>=N.MIN_TICK&&t<=N.MAX_TICK||r(!1);var n=Math.round(t/e)*e;return n<N.MIN_TICK?n+e:n>N.MAX_TICK?n-e:n},exports.priceToClosestTick=function(t){t.baseCurrency instanceof e.Token&&t.quoteCurrency instanceof e.Token||r(!1);var n=t.baseCurrency.sortsBefore(t.quoteCurrency),i=n?v(t.raw.numerator,t.raw.denominator):v(t.raw.denominator,t.raw.numerator),o=N.getTickAtSqrtRatio(i),u=B(t.baseCurrency,t.quoteCurrency,o+1);return n?t.lessThan(u)||o++:t.greaterThan(u)||o++,o},exports.tickToPrice=B,exports.toHex=C,exports.tradeComparator=J;
//# sourceMappingURL=v3-sdk.cjs.production.min.js.map

@@ -5,5 +5,5 @@ {

"publishConfig": {
"access": "restricted"
"access": "public"
},
"version": "1.0.0-alpha.5",
"version": "1.0.0-alpha.6",
"description": "⚒️ An SDK for building applications on top of Uniswap V3",

@@ -10,0 +10,0 @@ "main": "dist/index.js",

Sorry, the diff of this file is too big to display

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 too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc