@paraswap/dex-lib 4.6.3 → 4.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/abi/BProtocol.json +1155 -0
- package/build/abi/Jarvis.json +1172 -0
- package/build/abi/MStableAsset.json +1545 -0
- package/build/abi/OneInchLp.json +1304 -0
- package/build/abi/Onebit.json +736 -0
- package/build/abi/Shell.json +1294 -0
- package/build/abi/TraderJoeV2Router.json +50 -0
- package/build/abi/miro-migrator/MiroMigrator.abi.json +36 -19
- package/build/abi/wUSDM.json +757 -0
- package/build/abi/zrx.v2.json +1967 -0
- package/build/abi/zrx.v3.json +3454 -0
- package/build/abi/zrx.v4.json +2193 -0
- package/build/dex/OneInchLp.d.ts +24 -0
- package/build/dex/OneInchLp.js +43 -0
- package/build/dex/OneInchLp.js.map +1 -0
- package/build/dex/algebra/lib/AlgebraMath.js +3 -13
- package/build/dex/algebra/lib/AlgebraMath.js.map +1 -1
- package/build/dex/algebra/lib/TickManager.js +0 -5
- package/build/dex/algebra/lib/TickManager.js.map +1 -1
- package/build/dex/bProtocol/bProtocol.d.ts +15 -0
- package/build/dex/bProtocol/bProtocol.js +56 -0
- package/build/dex/bProtocol/bProtocol.js.map +1 -0
- package/build/dex/bProtocol/types.d.ts +11 -0
- package/build/dex/bProtocol/types.js +8 -0
- package/build/dex/bProtocol/types.js.map +1 -0
- package/build/dex/jarvis.d.ts +56 -0
- package/build/dex/jarvis.js +163 -0
- package/build/dex/jarvis.js.map +1 -0
- package/build/dex/mStable.d.ts +44 -0
- package/build/dex/mStable.js +75 -0
- package/build/dex/mStable.js.map +1 -0
- package/build/dex/miro-migrator/config.js +3 -10
- package/build/dex/miro-migrator/config.js.map +1 -1
- package/build/dex/miro-migrator/constants.d.ts +1 -0
- package/build/dex/miro-migrator/constants.js +2 -1
- package/build/dex/miro-migrator/constants.js.map +1 -1
- package/build/dex/miro-migrator/miro-migrator-pool.d.ts +8 -5
- package/build/dex/miro-migrator/miro-migrator-pool.js +48 -30
- package/build/dex/miro-migrator/miro-migrator-pool.js.map +1 -1
- package/build/dex/miro-migrator/miro-migrator.d.ts +5 -4
- package/build/dex/miro-migrator/miro-migrator.js +40 -83
- package/build/dex/miro-migrator/miro-migrator.js.map +1 -1
- package/build/dex/miro-migrator/types.d.ts +2 -4
- package/build/dex/miro-migrator/types.js +1 -2
- package/build/dex/miro-migrator/types.js.map +1 -1
- package/build/dex/onebit/onebit.d.ts +16 -0
- package/build/dex/onebit/onebit.js +61 -0
- package/build/dex/onebit/onebit.js.map +1 -0
- package/build/dex/onebit/types.d.ts +14 -0
- package/build/dex/onebit/types.js +8 -0
- package/build/dex/onebit/types.js.map +1 -0
- package/build/dex/pancakeswap-v3/contract-math/Tick.d.ts +1 -1
- package/build/dex/pancakeswap-v3/contract-math/Tick.js +1 -10
- package/build/dex/pancakeswap-v3/contract-math/Tick.js.map +1 -1
- package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js +3 -11
- package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js.map +1 -1
- package/build/dex/shell.d.ts +25 -0
- package/build/dex/shell.js +41 -0
- package/build/dex/shell.js.map +1 -0
- package/build/dex/trader-joe-v2.d.ts +40 -0
- package/build/dex/trader-joe-v2.js +74 -0
- package/build/dex/trader-joe-v2.js.map +1 -0
- package/build/dex/uniswap-v3/contract-math/Tick.d.ts +1 -1
- package/build/dex/uniswap-v3/contract-math/Tick.js +1 -10
- package/build/dex/uniswap-v3/contract-math/Tick.js.map +1 -1
- package/build/dex/uniswap-v3/contract-math/uniswap-v3-math.js +3 -11
- package/build/dex/uniswap-v3/contract-math/uniswap-v3-math.js.map +1 -1
- package/build/dex/uniswap-v3/contract-math/utils.js +0 -3
- package/build/dex/uniswap-v3/contract-math/utils.js.map +1 -1
- package/build/dex/uniswap-v3/types.d.ts +0 -3
- package/build/dex/uniswap-v3/types.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
- package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
- package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
- package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -6
- package/build/dex/uniswap-v4/contract-math/Position.js +0 -29
- package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
- package/build/dex/uniswap-v4/contract-math/Tick.d.ts +1 -1
- package/build/dex/uniswap-v4/contract-math/Tick.js +2 -17
- package/build/dex/uniswap-v4/contract-math/Tick.js.map +1 -1
- package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.d.ts +3 -8
- package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js +8 -57
- package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js.map +1 -1
- package/build/dex/uniswap-v4/types.d.ts +0 -10
- package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +4 -5
- package/build/dex/uniswap-v4/uniswap-v4-pool.js +4 -42
- package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
- package/build/dex/uniswap-v4/uniswap-v4.d.ts +2 -2
- package/build/dex/uniswap-v4/uniswap-v4.js +4 -17
- package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
- package/build/dex/usual-bond/config.d.ts +3 -0
- package/build/dex/usual-bond/config.js +13 -0
- package/build/dex/usual-bond/config.js.map +1 -0
- package/build/dex/usual-bond/types.d.ts +7 -0
- package/build/dex/usual-bond/types.js +3 -0
- package/build/dex/usual-bond/types.js.map +1 -0
- package/build/dex/usual-bond/usual-bond.d.ts +35 -0
- package/build/dex/usual-bond/usual-bond.js +176 -0
- package/build/dex/usual-bond/usual-bond.js.map +1 -0
- package/build/dex/wusdm/config.d.ts +3 -0
- package/build/dex/wusdm/config.js +43 -0
- package/build/dex/wusdm/config.js.map +1 -0
- package/build/dex/wusdm/constants.d.ts +2 -0
- package/build/dex/wusdm/constants.js +6 -0
- package/build/dex/wusdm/constants.js.map +1 -0
- package/build/dex/wusdm/types.d.ts +18 -0
- package/build/dex/wusdm/types.js +11 -0
- package/build/dex/wusdm/types.js.map +1 -0
- package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
- package/build/dex/wusdm/wusdm-pool.js +74 -0
- package/build/dex/wusdm/wusdm-pool.js.map +1 -0
- package/build/dex/wusdm/wusdm.d.ts +46 -0
- package/build/dex/wusdm/wusdm.js +243 -0
- package/build/dex/wusdm/wusdm.js.map +1 -0
- package/build/dex/zerox/config.d.ts +2 -0
- package/build/dex/zerox/config.js +33 -0
- package/build/dex/zerox/config.js.map +1 -0
- package/build/dex/zerox/index.d.ts +22 -0
- package/build/dex/zerox/index.js +225 -0
- package/build/dex/zerox/index.js.map +1 -0
- package/build/dex/zerox/order.d.ts +88 -0
- package/build/dex/zerox/order.js +53 -0
- package/build/dex/zerox/order.js.map +1 -0
- package/build/dex/zerox/types.d.ts +73 -0
- package/build/dex/zerox/types.js +21 -0
- package/build/dex/zerox/types.js.map +1 -0
- package/package.json +1 -1
- package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +0 -796
- package/build/abi/ring-v2/few-wrapped-token.json +0 -587
- package/build/abi/ring-v2/ring-v2-factory.json +0 -125
- package/build/abi/ring-v2/ring-v2-pool.json +0 -461
- package/build/abi/ring-v2/ring-v2-router.json +0 -332
- package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +0 -682
- package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +0 -1335
- package/build/dex/miro-migrator/miro-migrator-state.d.ts +0 -27
- package/build/dex/miro-migrator/miro-migrator-state.js +0 -89
- package/build/dex/miro-migrator/miro-migrator-state.js.map +0 -1
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +0 -4
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +0 -56
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +0 -7
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +0 -28
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +0 -2
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +0 -7
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +0 -28
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/fee-hook/types.js +0 -2
- package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/index.d.ts +0 -2
- package/build/dex/uniswap-v4/hooks/index.js +0 -8
- package/build/dex/uniswap-v4/hooks/index.js.map +0 -1
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +0 -26
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +0 -75
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Onebit = void 0;
|
|
7
|
+
const abi_1 = require("@ethersproject/abi");
|
|
8
|
+
const constants_1 = require("../../constants");
|
|
9
|
+
const simple_exchange_1 = require("../simple-exchange");
|
|
10
|
+
const Onebit_json_1 = __importDefault(require("../../abi/Onebit.json"));
|
|
11
|
+
const types_1 = require("./types");
|
|
12
|
+
const utils_1 = require("../../executor/utils");
|
|
13
|
+
class Onebit extends simple_exchange_1.SimpleExchange {
|
|
14
|
+
constructor(dexHelper) {
|
|
15
|
+
super(dexHelper, 'omm1');
|
|
16
|
+
this.needWrapNative = true;
|
|
17
|
+
this.exchangeRouterInterface = new abi_1.Interface(Onebit_json_1.default);
|
|
18
|
+
}
|
|
19
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
20
|
+
return {
|
|
21
|
+
targetExchange: data.router,
|
|
22
|
+
payload: '0x',
|
|
23
|
+
networkFee: '0',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
27
|
+
const swapFunction = types_1.OnebitFunctions.swapTokensWithTrust;
|
|
28
|
+
const swapFunctionParams = [
|
|
29
|
+
srcToken,
|
|
30
|
+
destToken,
|
|
31
|
+
srcAmount,
|
|
32
|
+
destAmount,
|
|
33
|
+
this.augustusAddress,
|
|
34
|
+
];
|
|
35
|
+
const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
|
|
36
|
+
return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.router);
|
|
37
|
+
}
|
|
38
|
+
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, _side) {
|
|
39
|
+
const swapFunction = types_1.OnebitFunctions.swapTokensWithTrust;
|
|
40
|
+
const swapFunctionParams = [
|
|
41
|
+
srcToken,
|
|
42
|
+
destToken,
|
|
43
|
+
srcAmount,
|
|
44
|
+
destAmount,
|
|
45
|
+
recipient,
|
|
46
|
+
];
|
|
47
|
+
const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
|
|
48
|
+
return {
|
|
49
|
+
needWrapNative: this.needWrapNative,
|
|
50
|
+
dexFuncHasRecipient: true,
|
|
51
|
+
exchangeData: swapData,
|
|
52
|
+
targetExchange: data.router,
|
|
53
|
+
returnAmountPos: _side === constants_1.SwapSide.SELL
|
|
54
|
+
? (0, utils_1.extractReturnAmountPosition)(this.exchangeRouterInterface, swapFunction)
|
|
55
|
+
: undefined,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.Onebit = Onebit;
|
|
60
|
+
Onebit.dexKeys = ['omm1'];
|
|
61
|
+
//# sourceMappingURL=onebit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onebit.js","sourceRoot":"","sources":["../../../src/dex/onebit/onebit.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAE7D,+CAA2C;AAS3C,wDAAoD;AACpD,wEAA8C;AAE9C,mCAAmE;AACnE,gDAAmE;AAEnE,MAAa,MACX,SAAQ,gCAAc;IAOtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAH3B,mBAAc,GAAG,IAAI,CAAC;QAIpB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,qBAA2B,CAAC,CAAC;IAC5E,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,MAAM,YAAY,GAAG,uBAAe,CAAC,mBAAmB,CAAC;QACzD,MAAM,kBAAkB,GAAgB;YACtC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,IAAI,CAAC,eAAe;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAgB,EAChB,KAAe;QAEf,MAAM,YAAY,GAAG,uBAAe,CAAC,mBAAmB,CAAC;QACzD,MAAM,kBAAkB,GAAgB;YACtC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,SAAS;SACV,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,eAAe,EACb,KAAK,KAAK,oBAAQ,CAAC,IAAI;gBACrB,CAAC,CAAC,IAAA,mCAA2B,EACzB,IAAI,CAAC,uBAAuB,EAC5B,YAAY,CACb;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC;;AA9FH,wBA+FC;AA3FQ,cAAO,GAAG,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Address } from '@paraswap/core';
|
|
2
|
+
export declare type OnebitData = {
|
|
3
|
+
router: Address;
|
|
4
|
+
};
|
|
5
|
+
export declare type OnebitParam = [
|
|
6
|
+
srcToken: string,
|
|
7
|
+
destToken: string,
|
|
8
|
+
srcAmount: string,
|
|
9
|
+
destAmountMin: string,
|
|
10
|
+
to: string
|
|
11
|
+
];
|
|
12
|
+
export declare enum OnebitFunctions {
|
|
13
|
+
swapTokensWithTrust = "swapTokensWithTrust"
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnebitFunctions = void 0;
|
|
4
|
+
var OnebitFunctions;
|
|
5
|
+
(function (OnebitFunctions) {
|
|
6
|
+
OnebitFunctions["swapTokensWithTrust"] = "swapTokensWithTrust";
|
|
7
|
+
})(OnebitFunctions = exports.OnebitFunctions || (exports.OnebitFunctions = {}));
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/onebit/types.ts"],"names":[],"mappings":";;;AAcA,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,8DAA2C,CAAA;AAC7C,CAAC,EAFW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAE1B"}
|
|
@@ -3,5 +3,5 @@ import { PoolState, TickInfo } from '../../uniswap-v3/types';
|
|
|
3
3
|
export declare class Tick {
|
|
4
4
|
static update(state: PoolState, tick: bigint, tickCurrent: bigint, liquidityDelta: bigint, secondsPerLiquidityCumulativeX128: bigint, tickCumulative: bigint, time: bigint, upper: boolean, maxLiquidity: bigint): boolean;
|
|
5
5
|
static clear(state: PoolState, tick: bigint): void;
|
|
6
|
-
static cross(ticks: Record<NumberAsString, TickInfo>, tick: bigint
|
|
6
|
+
static cross(ticks: Record<NumberAsString, TickInfo>, tick: bigint): bigint;
|
|
7
7
|
}
|
|
@@ -16,11 +16,6 @@ class Tick {
|
|
|
16
16
|
(0, utils_1._require)(liquidityGrossAfter <= maxLiquidity, 'LO', { liquidityGrossAfter, maxLiquidity }, 'liquidityGrossAfter <= maxLiquidity');
|
|
17
17
|
const flipped = (liquidityGrossAfter == 0n) != (liquidityGrossBefore == 0n);
|
|
18
18
|
if (liquidityGrossBefore == 0n) {
|
|
19
|
-
if (tick <= tickCurrent) {
|
|
20
|
-
info.secondsPerLiquidityOutsideX128 = secondsPerLiquidityCumulativeX128;
|
|
21
|
-
info.tickCumulativeOutside = tickCumulative;
|
|
22
|
-
info.secondsOutside = time;
|
|
23
|
-
}
|
|
24
19
|
info.initialized = true;
|
|
25
20
|
}
|
|
26
21
|
info.liquidityGross = liquidityGrossAfter;
|
|
@@ -32,12 +27,8 @@ class Tick {
|
|
|
32
27
|
static clear(state, tick) {
|
|
33
28
|
delete state.ticks[Number(tick)];
|
|
34
29
|
}
|
|
35
|
-
static cross(ticks, tick
|
|
30
|
+
static cross(ticks, tick) {
|
|
36
31
|
const info = ticks[Number(tick)];
|
|
37
|
-
info.secondsPerLiquidityOutsideX128 =
|
|
38
|
-
secondsPerLiquidityCumulativeX128 - info.secondsPerLiquidityOutsideX128;
|
|
39
|
-
info.tickCumulativeOutside = tickCumulative - info.tickCumulativeOutside;
|
|
40
|
-
info.secondsOutside = time - info.secondsOutside;
|
|
41
32
|
return info.liquidityNet;
|
|
42
33
|
}
|
|
43
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tick.js","sourceRoot":"","sources":["../../../../src/dex/pancakeswap-v3/contract-math/Tick.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,0CAA0C;AAE1C,4CAA8C;AAG9C,MAAa,IAAI;IACf,MAAM,CAAC,MAAM,CACX,KAAgB,EAChB,IAAY,EACZ,WAAmB,EACnB,cAAsB,EACtB,iCAAyC,EACzC,cAAsB,EACtB,IAAY,EACZ,KAAc,EACd,YAAoB;QAEpB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,GAAG,0BAAc,EAAE,CAAC;YAC7B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,MAAM,mBAAmB,GAAG,6BAAa,CAAC,QAAQ,CAChD,oBAAoB,EACpB,cAAc,CACf,CAAC;QAEF,IAAA,gBAAQ,EACN,mBAAmB,IAAI,YAAY,EACnC,IAAI,EACJ,EAAE,mBAAmB,EAAE,YAAY,EAAE,EACrC,qCAAqC,CACtC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAE5E,IAAI,oBAAoB,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"Tick.js","sourceRoot":"","sources":["../../../../src/dex/pancakeswap-v3/contract-math/Tick.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,0CAA0C;AAE1C,4CAA8C;AAG9C,MAAa,IAAI;IACf,MAAM,CAAC,MAAM,CACX,KAAgB,EAChB,IAAY,EACZ,WAAmB,EACnB,cAAsB,EACtB,iCAAyC,EACzC,cAAsB,EACtB,IAAY,EACZ,KAAc,EACd,YAAoB;QAEpB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,GAAG,0BAAc,EAAE,CAAC;YAC7B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,MAAM,mBAAmB,GAAG,6BAAa,CAAC,QAAQ,CAChD,oBAAoB,EACpB,cAAc,CACf,CAAC;QAEF,IAAA,gBAAQ,EACN,mBAAmB,IAAI,YAAY,EACnC,IAAI,EACJ,EAAE,mBAAmB,EAAE,YAAY,EAAE,EACrC,qCAAqC,CACtC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAE5E,IAAI,oBAAoB,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC;QAE1C,IAAI,CAAC,YAAY,GAAG,KAAK;YACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,cAAc,CACvD;YACH,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,cAAc,CACvD,CAAC;QACN,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAgB,EAAE,IAAY;QACzC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAuC,EAAE,IAAY;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AA7DD,oBA6DC"}
|
|
@@ -104,7 +104,7 @@ function _priceComputationCycles(poolState, ticksCopy, slot0Start, state, cache,
|
|
|
104
104
|
tick: { ...ticksCopy[castTickNext] },
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
-
let liquidityNet = Tick_1.Tick.cross(ticksCopy, step.tickNext
|
|
107
|
+
let liquidityNet = Tick_1.Tick.cross(ticksCopy, step.tickNext);
|
|
108
108
|
if (zeroForOne)
|
|
109
109
|
liquidityNet = -liquidityNet;
|
|
110
110
|
state.liquidity = LiquidityMath_1.LiquidityMath.addDelta(state.liquidity, liquidityNet);
|
|
@@ -139,12 +139,6 @@ class PancakeswapV3Math {
|
|
|
139
139
|
amounts, zeroForOne, side) {
|
|
140
140
|
const slot0Start = poolState.slot0;
|
|
141
141
|
const isSell = side === core_1.SwapSide.SELL;
|
|
142
|
-
// While calculating, ticks are changing, so to not change the actual state,
|
|
143
|
-
// we use copy
|
|
144
|
-
const ticksCopy = Object.keys(poolState.ticks).reduce((memo, index) => {
|
|
145
|
-
memo[index] = { ...poolState.ticks[index] };
|
|
146
|
-
return memo;
|
|
147
|
-
}, {});
|
|
148
142
|
const sqrtPriceLimitX96 = zeroForOne
|
|
149
143
|
? TickMath_1.TickMath.MIN_SQRT_RATIO + 1n
|
|
150
144
|
: TickMath_1.TickMath.MAX_SQRT_RATIO - 1n;
|
|
@@ -198,7 +192,7 @@ class PancakeswapV3Math {
|
|
|
198
192
|
: sqrtPriceLimitX96 > slot0Start.sqrtPriceX96 &&
|
|
199
193
|
sqrtPriceLimitX96 < TickMath_1.TickMath.MAX_SQRT_RATIO, 'SPL', { zeroForOne, sqrtPriceLimitX96, slot0Start }, 'zeroForOne ? sqrtPriceLimitX96 < slot0Start.sqrtPriceX96 && sqrtPriceLimitX96 > TickMath.MIN_SQRT_RATIO : sqrtPriceLimitX96 > slot0Start.sqrtPriceX96 && sqrtPriceLimitX96 < TickMath.MAX_SQRT_RATIO');
|
|
200
194
|
if (!isOutOfRange) {
|
|
201
|
-
const [finalState, { latestFullCycleState, latestFullCycleCache }] = _priceComputationCycles(poolState,
|
|
195
|
+
const [finalState, { latestFullCycleState, latestFullCycleCache }] = _priceComputationCycles(poolState, poolState.ticks, slot0Start, state, cache, sqrtPriceLimitX96, zeroForOne, exactInput);
|
|
202
196
|
if (finalState.amountSpecifiedRemaining === 0n &&
|
|
203
197
|
finalState.amountCalculated === 0n) {
|
|
204
198
|
isOutOfRange = true;
|
|
@@ -224,14 +218,12 @@ class PancakeswapV3Math {
|
|
|
224
218
|
if (isSell) {
|
|
225
219
|
outputs[i] = BigInt.asUintN(256, -(zeroForOne ? amount1 : amount0));
|
|
226
220
|
tickCounts[i] = latestFullCycleCache.tickCount;
|
|
227
|
-
continue;
|
|
228
221
|
}
|
|
229
222
|
else {
|
|
230
223
|
outputs[i] = zeroForOne
|
|
231
224
|
? BigInt.asUintN(256, amount0)
|
|
232
225
|
: BigInt.asUintN(256, amount1);
|
|
233
226
|
tickCounts[i] = latestFullCycleCache.tickCount;
|
|
234
|
-
continue;
|
|
235
227
|
}
|
|
236
228
|
}
|
|
237
229
|
else {
|
|
@@ -310,7 +302,7 @@ class PancakeswapV3Math {
|
|
|
310
302
|
Oracle_1.Oracle.observeSingle(poolState, cache.blockTimestamp, 0n, slot0Start.tick, slot0Start.observationIndex, cache.liquidityStart, slot0Start.observationCardinality);
|
|
311
303
|
cache.computedLatestObservation = true;
|
|
312
304
|
}
|
|
313
|
-
let liquidityNet = Tick_1.Tick.cross(poolState.ticks, step.tickNext
|
|
305
|
+
let liquidityNet = Tick_1.Tick.cross(poolState.ticks, step.tickNext);
|
|
314
306
|
if (zeroForOne)
|
|
315
307
|
liquidityNet = -liquidityNet;
|
|
316
308
|
state.liquidity = LiquidityMath_1.LiquidityMath.addDelta(state.liquidity, liquidityNet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pancakeswap-v3-math.js","sourceRoot":"","sources":["../../../../src/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pancakeswap-v3-math.js","sourceRoot":"","sources":["../../../../src/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { SwapSide } from '../constants';
|
|
3
|
+
import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
|
|
4
|
+
import { IDexTxBuilder } from './idex';
|
|
5
|
+
import { SimpleExchange } from './simple-exchange';
|
|
6
|
+
import { IDexHelper } from '../dex-helper';
|
|
7
|
+
export declare type ShellData = {
|
|
8
|
+
exchange: Address;
|
|
9
|
+
deadline?: number;
|
|
10
|
+
};
|
|
11
|
+
declare type ShellParam = [
|
|
12
|
+
_origin: string,
|
|
13
|
+
_target: string,
|
|
14
|
+
_originAmount: string,
|
|
15
|
+
_minTargetAmount: string,
|
|
16
|
+
_deadline: string
|
|
17
|
+
];
|
|
18
|
+
export declare class Shell extends SimpleExchange implements IDexTxBuilder<ShellData, ShellParam> {
|
|
19
|
+
static dexKeys: string[];
|
|
20
|
+
exchangeRouterInterface: Interface;
|
|
21
|
+
constructor(dexHelper: IDexHelper);
|
|
22
|
+
getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: ShellData, side: SwapSide): AdapterExchangeParam;
|
|
23
|
+
getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: ShellData, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Shell = void 0;
|
|
7
|
+
const abi_1 = require("@ethersproject/abi");
|
|
8
|
+
const simple_exchange_1 = require("./simple-exchange");
|
|
9
|
+
const Shell_json_1 = __importDefault(require("../abi/Shell.json"));
|
|
10
|
+
var ShellFunctions;
|
|
11
|
+
(function (ShellFunctions) {
|
|
12
|
+
ShellFunctions["originSwap"] = "originSwap";
|
|
13
|
+
})(ShellFunctions || (ShellFunctions = {}));
|
|
14
|
+
class Shell extends simple_exchange_1.SimpleExchange {
|
|
15
|
+
constructor(dexHelper) {
|
|
16
|
+
super(dexHelper, 'shell');
|
|
17
|
+
this.exchangeRouterInterface = new abi_1.Interface(Shell_json_1.default);
|
|
18
|
+
}
|
|
19
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
20
|
+
return {
|
|
21
|
+
targetExchange: data.exchange,
|
|
22
|
+
payload: '0x',
|
|
23
|
+
networkFee: '0',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
27
|
+
const swapFunction = ShellFunctions.originSwap;
|
|
28
|
+
const swapFunctionParams = [
|
|
29
|
+
srcToken,
|
|
30
|
+
destToken,
|
|
31
|
+
srcAmount,
|
|
32
|
+
destAmount,
|
|
33
|
+
(0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
|
|
34
|
+
];
|
|
35
|
+
const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
|
|
36
|
+
return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.exchange);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.Shell = Shell;
|
|
40
|
+
Shell.dexKeys = ['shell'];
|
|
41
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/dex/shell.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAI7D,uDAG2B;AAC3B,mEAAyC;AAczC,IAAK,cAEJ;AAFD,WAAK,cAAc;IACjB,2CAAyB,CAAA;AAC3B,CAAC,EAFI,cAAc,KAAd,cAAc,QAElB;AAED,MAAa,KACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,oBAA0B,CAAC,CAAC;IAC3E,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAe,EACf,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAe,EACf,IAAc;QAEd,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC;QAC/C,MAAM,kBAAkB,GAAe;YACrC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,IAAA,uDAAqC,GAAE;SACxC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;;AAxDH,sBAyDC;AArDQ,aAAO,GAAG,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { SwapSide } from '../constants';
|
|
2
|
+
import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
|
|
3
|
+
import { IDexTxBuilder } from './idex';
|
|
4
|
+
import { IDexHelper } from '../dex-helper';
|
|
5
|
+
import { SimpleExchange } from './simple-exchange';
|
|
6
|
+
import { NumberAsString } from '@paraswap/core';
|
|
7
|
+
import { AsyncOrSync } from 'ts-essentials';
|
|
8
|
+
import { Interface } from '@ethersproject/abi';
|
|
9
|
+
declare type TraderJoeV2RouterSellParams = [
|
|
10
|
+
_amountIn: NumberAsString,
|
|
11
|
+
_amountOutMin: NumberAsString,
|
|
12
|
+
_pairBinSteps: NumberAsString[],
|
|
13
|
+
_tokenPath: Address[],
|
|
14
|
+
to: Address,
|
|
15
|
+
_deadline: number
|
|
16
|
+
];
|
|
17
|
+
declare type TraderJoeV2RouterBuyParams = [
|
|
18
|
+
_amountOut: NumberAsString,
|
|
19
|
+
_amountInMax: NumberAsString,
|
|
20
|
+
_pairBinSteps: NumberAsString[],
|
|
21
|
+
_tokenPath: Address[],
|
|
22
|
+
to: Address,
|
|
23
|
+
_deadline: string
|
|
24
|
+
];
|
|
25
|
+
declare type TraderJoeV2RouterParam = TraderJoeV2RouterSellParams | TraderJoeV2RouterBuyParams;
|
|
26
|
+
export declare type TraderJoeV2Data = {
|
|
27
|
+
tokenIn: string;
|
|
28
|
+
tokenOut: string;
|
|
29
|
+
binStep: string;
|
|
30
|
+
};
|
|
31
|
+
export declare class TraderJoeV2 extends SimpleExchange implements IDexTxBuilder<TraderJoeV2Data, TraderJoeV2RouterParam> {
|
|
32
|
+
static dexKeys: string[];
|
|
33
|
+
protected routerAddress: string;
|
|
34
|
+
exchangeRouterInterface: Interface;
|
|
35
|
+
needWrapNative: boolean;
|
|
36
|
+
constructor(dexHelper: IDexHelper);
|
|
37
|
+
getAdapterParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: TraderJoeV2Data, side: SwapSide): AdapterExchangeParam;
|
|
38
|
+
getSimpleParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: TraderJoeV2Data, side: SwapSide): AsyncOrSync<SimpleExchangeParam>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TraderJoeV2 = void 0;
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
const simple_exchange_1 = require("./simple-exchange");
|
|
9
|
+
const abi_1 = require("@ethersproject/abi");
|
|
10
|
+
const TraderJoeV2Router_json_1 = __importDefault(require("../abi/TraderJoeV2Router.json"));
|
|
11
|
+
const TRADERJOE_V2_ROUTER_ADDRESS = {
|
|
12
|
+
[constants_1.Network.AVALANCHE]: '0xE3Ffc583dC176575eEA7FD9dF2A7c65F7E23f4C3',
|
|
13
|
+
[constants_1.Network.ARBITRUM]: '0x7BFd7192E76D950832c77BB412aaE841049D8D9B',
|
|
14
|
+
[constants_1.Network.BSC]: '0xb66A2704a0dabC1660941628BE987B4418f7a9E8',
|
|
15
|
+
};
|
|
16
|
+
var TraderJoeV2RouterFunctions;
|
|
17
|
+
(function (TraderJoeV2RouterFunctions) {
|
|
18
|
+
TraderJoeV2RouterFunctions["swapExactTokensForTokens"] = "swapExactTokensForTokens";
|
|
19
|
+
TraderJoeV2RouterFunctions["swapTokensForExactTokens"] = "swapTokensForExactTokens";
|
|
20
|
+
})(TraderJoeV2RouterFunctions || (TraderJoeV2RouterFunctions = {}));
|
|
21
|
+
class TraderJoeV2 extends simple_exchange_1.SimpleExchange {
|
|
22
|
+
constructor(dexHelper) {
|
|
23
|
+
super(dexHelper, 'traderjoev2');
|
|
24
|
+
this.needWrapNative = true;
|
|
25
|
+
this.routerAddress =
|
|
26
|
+
TRADERJOE_V2_ROUTER_ADDRESS[dexHelper.config.data.network];
|
|
27
|
+
this.exchangeRouterInterface = new abi_1.Interface(TraderJoeV2Router_json_1.default);
|
|
28
|
+
}
|
|
29
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
30
|
+
const payload = this.abiCoder.encodeParameter({
|
|
31
|
+
ParentStruct: {
|
|
32
|
+
_pairBinSteps: 'uint256[]',
|
|
33
|
+
_tokenPath: 'address[]',
|
|
34
|
+
_deadline: 'uint256',
|
|
35
|
+
},
|
|
36
|
+
}, {
|
|
37
|
+
_pairBinSteps: [data.binStep],
|
|
38
|
+
_tokenPath: [data.tokenIn, data.tokenOut],
|
|
39
|
+
_deadline: (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(), // FIXME: more gas efficient to pass block.timestamp in adapter
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
targetExchange: this.routerAddress,
|
|
43
|
+
payload,
|
|
44
|
+
networkFee: '0',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
48
|
+
const swapFunction = side === constants_1.SwapSide.SELL
|
|
49
|
+
? TraderJoeV2RouterFunctions.swapExactTokensForTokens
|
|
50
|
+
: TraderJoeV2RouterFunctions.swapTokensForExactTokens;
|
|
51
|
+
const swapFunctionParams = side === constants_1.SwapSide.SELL
|
|
52
|
+
? [
|
|
53
|
+
srcAmount,
|
|
54
|
+
destAmount,
|
|
55
|
+
[data.binStep],
|
|
56
|
+
[srcToken, destToken],
|
|
57
|
+
this.augustusAddress,
|
|
58
|
+
(0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
|
|
59
|
+
]
|
|
60
|
+
: [
|
|
61
|
+
destAmount,
|
|
62
|
+
srcAmount,
|
|
63
|
+
[data.binStep],
|
|
64
|
+
[srcToken, destToken],
|
|
65
|
+
this.augustusAddress,
|
|
66
|
+
(0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
|
|
67
|
+
];
|
|
68
|
+
const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
|
|
69
|
+
return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.routerAddress);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.TraderJoeV2 = TraderJoeV2;
|
|
73
|
+
TraderJoeV2.dexKeys = ['traderjoev2'];
|
|
74
|
+
//# sourceMappingURL=trader-joe-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trader-joe-v2.js","sourceRoot":"","sources":["../../src/dex/trader-joe-v2.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAiD;AAIjD,uDAG2B;AAG3B,4CAA6D;AAC7D,2FAAiE;AAEjE,MAAM,2BAA2B,GAAmC;IAClE,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,4CAA4C;IACjE,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IAChE,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE,4CAA4C;CAC5D,CAAC;AA8BF,IAAK,0BAGJ;AAHD,WAAK,0BAA0B;IAC7B,mFAAqD,CAAA;IACrD,mFAAqD,CAAA;AACvD,CAAC,EAHI,0BAA0B,KAA1B,0BAA0B,QAG9B;AAED,MAAa,WACX,SAAQ,gCAAc;IAQtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAHlC,mBAAc,GAAG,IAAI,CAAC;QAKpB,IAAI,CAAC,aAAa;YAChB,2BAA2B,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAC1C,gCAAsC,CACvC,CAAC;IACJ,CAAC;IAED,eAAe,CACb,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,IAAqB,EACrB,IAAc;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,aAAa,EAAE,WAAW;gBAC1B,UAAU,EAAE,WAAW;gBACvB,SAAS,EAAE,SAAS;aACrB;SACF,EACD;YACE,aAAa,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;YACzC,SAAS,EAAE,IAAA,uDAAqC,GAAE,EAAE,+DAA+D;SACpH,CACF,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,aAAa;YAClC,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,IAAqB,EACrB,IAAc;QAEd,MAAM,YAAY,GAChB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC,0BAA0B,CAAC,wBAAwB;YACrD,CAAC,CAAC,0BAA0B,CAAC,wBAAwB,CAAC;QAE1D,MAAM,kBAAkB,GACtB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC;gBACE,SAAS;gBACT,UAAU;gBACV,CAAC,IAAI,CAAC,OAAO,CAAC;gBACd,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACrB,IAAI,CAAC,eAAe;gBACpB,IAAA,uDAAqC,GAAE;aACxC;YACH,CAAC,CAAC;gBACE,UAAU;gBACV,SAAS;gBACT,CAAC,IAAI,CAAC,OAAO,CAAC;gBACd,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACrB,IAAI,CAAC,eAAe;gBACpB,IAAA,uDAAqC,GAAE;aACxC,CAAC;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;;AA9FH,kCA+FC;AA3FQ,mBAAO,GAAG,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -3,5 +3,5 @@ import { NumberAsString } from '@paraswap/core';
|
|
|
3
3
|
export declare class Tick {
|
|
4
4
|
static update(state: Pick<PoolState, 'ticks'>, tick: bigint, tickCurrent: bigint, liquidityDelta: bigint, secondsPerLiquidityCumulativeX128: bigint, tickCumulative: bigint, time: bigint, upper: boolean, maxLiquidity: bigint): boolean;
|
|
5
5
|
static clear(state: Pick<PoolState, 'ticks'>, tick: bigint): void;
|
|
6
|
-
static cross(ticks: Record<NumberAsString, TickInfo>, tick: bigint
|
|
6
|
+
static cross(ticks: Record<NumberAsString, TickInfo>, tick: bigint): bigint;
|
|
7
7
|
}
|
|
@@ -16,11 +16,6 @@ class Tick {
|
|
|
16
16
|
(0, utils_1._require)(liquidityGrossAfter <= maxLiquidity, 'LO', { liquidityGrossAfter, maxLiquidity }, 'liquidityGrossAfter <= maxLiquidity');
|
|
17
17
|
const flipped = (liquidityGrossAfter == 0n) != (liquidityGrossBefore == 0n);
|
|
18
18
|
if (liquidityGrossBefore == 0n) {
|
|
19
|
-
if (tick <= tickCurrent) {
|
|
20
|
-
info.secondsPerLiquidityOutsideX128 = secondsPerLiquidityCumulativeX128;
|
|
21
|
-
info.tickCumulativeOutside = tickCumulative;
|
|
22
|
-
info.secondsOutside = time;
|
|
23
|
-
}
|
|
24
19
|
info.initialized = true;
|
|
25
20
|
}
|
|
26
21
|
info.liquidityGross = liquidityGrossAfter;
|
|
@@ -32,12 +27,8 @@ class Tick {
|
|
|
32
27
|
static clear(state, tick) {
|
|
33
28
|
delete state.ticks[Number(tick)];
|
|
34
29
|
}
|
|
35
|
-
static cross(ticks, tick
|
|
30
|
+
static cross(ticks, tick) {
|
|
36
31
|
const info = ticks[Number(tick)];
|
|
37
|
-
info.secondsPerLiquidityOutsideX128 =
|
|
38
|
-
secondsPerLiquidityCumulativeX128 - info.secondsPerLiquidityOutsideX128;
|
|
39
|
-
info.tickCumulativeOutside = tickCumulative - info.tickCumulativeOutside;
|
|
40
|
-
info.secondsOutside = time - info.secondsOutside;
|
|
41
32
|
return info.liquidityNet;
|
|
42
33
|
}
|
|
43
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tick.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v3/contract-math/Tick.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAChD,0CAA0C;AAE1C,4CAA8C;AAE9C,MAAa,IAAI;IACf,MAAM,CAAC,MAAM,CACX,KAA+B,EAC/B,IAAY,EACZ,WAAmB,EACnB,cAAsB,EACtB,iCAAyC,EACzC,cAAsB,EACtB,IAAY,EACZ,KAAc,EACd,YAAoB;QAEpB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,GAAG,0BAAc,EAAE,CAAC;YAC7B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,MAAM,mBAAmB,GAAG,6BAAa,CAAC,QAAQ,CAChD,oBAAoB,EACpB,cAAc,CACf,CAAC;QAEF,IAAA,gBAAQ,EACN,mBAAmB,IAAI,YAAY,EACnC,IAAI,EACJ,EAAE,mBAAmB,EAAE,YAAY,EAAE,EACrC,qCAAqC,CACtC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAE5E,IAAI,oBAAoB,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"Tick.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v3/contract-math/Tick.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAChD,0CAA0C;AAE1C,4CAA8C;AAE9C,MAAa,IAAI;IACf,MAAM,CAAC,MAAM,CACX,KAA+B,EAC/B,IAAY,EACZ,WAAmB,EACnB,cAAsB,EACtB,iCAAyC,EACzC,cAAsB,EACtB,IAAY,EACZ,KAAc,EACd,YAAoB;QAEpB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,GAAG,0BAAc,EAAE,CAAC;YAC7B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,MAAM,mBAAmB,GAAG,6BAAa,CAAC,QAAQ,CAChD,oBAAoB,EACpB,cAAc,CACf,CAAC;QAEF,IAAA,gBAAQ,EACN,mBAAmB,IAAI,YAAY,EACnC,IAAI,EACJ,EAAE,mBAAmB,EAAE,YAAY,EAAE,EACrC,qCAAqC,CACtC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAE5E,IAAI,oBAAoB,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC;QAE1C,IAAI,CAAC,YAAY,GAAG,KAAK;YACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,cAAc,CACvD;YACH,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,cAAc,CACvD,CAAC;QACN,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAA+B,EAAE,IAAY;QACxD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAuC,EAAE,IAAY;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AA7DD,oBA6DC"}
|
|
@@ -104,7 +104,7 @@ function _priceComputationCycles(poolState, ticksCopy, slot0Start, state, cache,
|
|
|
104
104
|
tick: { ...ticksCopy[castTickNext] },
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
-
let liquidityNet = Tick_1.Tick.cross(ticksCopy, step.tickNext
|
|
107
|
+
let liquidityNet = Tick_1.Tick.cross(ticksCopy, step.tickNext);
|
|
108
108
|
if (zeroForOne)
|
|
109
109
|
liquidityNet = -liquidityNet;
|
|
110
110
|
state.liquidity = LiquidityMath_1.LiquidityMath.addDelta(state.liquidity, liquidityNet);
|
|
@@ -139,12 +139,6 @@ class UniswapV3Math {
|
|
|
139
139
|
amounts, zeroForOne, side, logger) {
|
|
140
140
|
const slot0Start = poolState.slot0;
|
|
141
141
|
const isSell = side === core_1.SwapSide.SELL;
|
|
142
|
-
// While calculating, ticks are changing, so to not change the actual state,
|
|
143
|
-
// we use copy
|
|
144
|
-
const ticksCopy = Object.keys(poolState.ticks).reduce((memo, index) => {
|
|
145
|
-
memo[index] = { ...poolState.ticks[index] };
|
|
146
|
-
return memo;
|
|
147
|
-
}, {});
|
|
148
142
|
const sqrtPriceLimitX96 = zeroForOne
|
|
149
143
|
? TickMath_1.TickMath.MIN_SQRT_RATIO + 1n
|
|
150
144
|
: TickMath_1.TickMath.MAX_SQRT_RATIO - 1n;
|
|
@@ -198,7 +192,7 @@ class UniswapV3Math {
|
|
|
198
192
|
: sqrtPriceLimitX96 > slot0Start.sqrtPriceX96 &&
|
|
199
193
|
sqrtPriceLimitX96 < TickMath_1.TickMath.MAX_SQRT_RATIO, 'SPL', { zeroForOne, sqrtPriceLimitX96, slot0Start }, 'zeroForOne ? sqrtPriceLimitX96 < slot0Start.sqrtPriceX96 && sqrtPriceLimitX96 > TickMath.MIN_SQRT_RATIO : sqrtPriceLimitX96 > slot0Start.sqrtPriceX96 && sqrtPriceLimitX96 < TickMath.MAX_SQRT_RATIO');
|
|
200
194
|
if (!isOutOfRange) {
|
|
201
|
-
const [finalState, { latestFullCycleState, latestFullCycleCache }] = _priceComputationCycles(poolState,
|
|
195
|
+
const [finalState, { latestFullCycleState, latestFullCycleCache }] = _priceComputationCycles(poolState, poolState.ticks, slot0Start, state, cache, sqrtPriceLimitX96, zeroForOne, exactInput, side, logger);
|
|
202
196
|
if (finalState.amountSpecifiedRemaining === 0n &&
|
|
203
197
|
finalState.amountCalculated === 0n) {
|
|
204
198
|
isOutOfRange = true;
|
|
@@ -224,14 +218,12 @@ class UniswapV3Math {
|
|
|
224
218
|
if (isSell) {
|
|
225
219
|
outputs[i] = BigInt.asUintN(256, -(zeroForOne ? amount1 : amount0));
|
|
226
220
|
tickCounts[i] = latestFullCycleCache.tickCount;
|
|
227
|
-
continue;
|
|
228
221
|
}
|
|
229
222
|
else {
|
|
230
223
|
outputs[i] = zeroForOne
|
|
231
224
|
? BigInt.asUintN(256, amount0)
|
|
232
225
|
: BigInt.asUintN(256, amount1);
|
|
233
226
|
tickCounts[i] = latestFullCycleCache.tickCount;
|
|
234
|
-
continue;
|
|
235
227
|
}
|
|
236
228
|
}
|
|
237
229
|
else {
|
|
@@ -305,7 +297,7 @@ class UniswapV3Math {
|
|
|
305
297
|
Oracle_1.Oracle.observeSingle(poolState, cache.blockTimestamp, 0n, slot0Start.tick, slot0Start.observationIndex, cache.liquidityStart, slot0Start.observationCardinality);
|
|
306
298
|
cache.computedLatestObservation = true;
|
|
307
299
|
}
|
|
308
|
-
let liquidityNet = Tick_1.Tick.cross(poolState.ticks, step.tickNext
|
|
300
|
+
let liquidityNet = Tick_1.Tick.cross(poolState.ticks, step.tickNext);
|
|
309
301
|
if (zeroForOne)
|
|
310
302
|
liquidityNet = -liquidityNet;
|
|
311
303
|
state.liquidity = LiquidityMath_1.LiquidityMath.addDelta(state.liquidity, liquidityNet);
|