@paraswap/dex-lib 3.8.0 → 3.8.1
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/.vscode/launch.json +53 -0
- package/.vscode/settings.json +2 -0
- package/.vscode/tasks.json +15 -0
- package/build/abi/AaveV1_lending_pool.json +27 -0
- package/build/abi/platypus/asset.json +490 -0
- package/build/abi/platypus/avax-pool.json +820 -0
- package/build/abi/platypus/oracle.json +119 -0
- package/build/abi/platypus/pool.json +677 -0
- package/build/abi/smardex/all/smardex-router.json +648 -0
- package/build/abi/smardex/layer-1/smardex-factory.json +242 -0
- package/build/abi/smardex/layer-1/smardex-pool.json +506 -0
- package/build/abi/smardex/layer-2/smardex-factory.json +185 -0
- package/build/abi/smardex/layer-2/smardex-pool.json +578 -0
- package/build/abi/swaap-v1/pool.json +1346 -0
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
- package/build/abi/wombat/pool.json +1289 -0
- package/build/dex/aave-v1/aave-v1.d.ts +34 -0
- package/build/dex/aave-v1/aave-v1.js +181 -0
- package/build/dex/aave-v1/aave-v1.js.map +1 -0
- package/build/dex/aave-v1/config.d.ts +11 -0
- package/build/dex/aave-v1/config.js +20 -0
- package/build/dex/aave-v1/config.js.map +1 -0
- package/build/dex/aave-v1/tokens-mainnet.json +134 -0
- package/build/dex/aave-v1/tokens.d.ts +3 -0
- package/build/dex/aave-v1/tokens.js +50 -0
- package/build/dex/aave-v1/tokens.js.map +1 -0
- package/build/dex/aave-v1/types.d.ts +12 -0
- package/build/dex/aave-v1/types.js +3 -0
- package/build/dex/aave-v1/types.js.map +1 -0
- package/build/dex/aave-v2/tokens-avalanche.json +44 -0
- package/build/dex/aave-v2/tokens-mainnet.json +188 -0
- package/build/dex/aave-v2/tokens-polygon.json +44 -0
- package/build/dex/bProtocol.d.ts +18 -0
- package/build/dex/bProtocol.js +39 -0
- package/build/dex/bProtocol.js.map +1 -0
- package/build/dex/bancor.d.ts +26 -0
- package/build/dex/bancor.js +58 -0
- package/build/dex/bancor.js.map +1 -0
- package/build/dex/compound.d.ts +18 -0
- package/build/dex/compound.js +46 -0
- package/build/dex/compound.js.map +1 -0
- package/build/dex/curve-v2.d.ts +58 -0
- package/build/dex/curve-v2.js +180 -0
- package/build/dex/curve-v2.js.map +1 -0
- package/build/dex/dodo-v1.d.ts +33 -0
- package/build/dex/dodo-v1.js +63 -0
- package/build/dex/dodo-v1.js.map +1 -0
- package/build/dex/index.js +1 -19
- package/build/dex/index.js.map +1 -1
- package/build/dex/lido.d.ts +19 -0
- package/build/dex/lido.js +42 -0
- package/build/dex/lido.js.map +1 -0
- package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
- package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
- package/build/dex/maker-psm/scripts/validate-state.js +185 -0
- package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
- package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
- package/build/dex/onebit.d.ts +25 -0
- package/build/dex/onebit.js +42 -0
- package/build/dex/onebit.js.map +1 -0
- package/build/dex/platypus/asset.d.ts +14 -0
- package/build/dex/platypus/asset.js +97 -0
- package/build/dex/platypus/asset.js.map +1 -0
- package/build/dex/platypus/config.d.ts +11 -0
- package/build/dex/platypus/config.js +69 -0
- package/build/dex/platypus/config.js.map +1 -0
- package/build/dex/platypus/platypus.d.ts +63 -0
- package/build/dex/platypus/platypus.js +487 -0
- package/build/dex/platypus/platypus.js.map +1 -0
- package/build/dex/platypus/pool-avax.d.ts +8 -0
- package/build/dex/platypus/pool-avax.js +54 -0
- package/build/dex/platypus/pool-avax.js.map +1 -0
- package/build/dex/platypus/pool-base.d.ts +19 -0
- package/build/dex/platypus/pool-base.js +86 -0
- package/build/dex/platypus/pool-base.js.map +1 -0
- package/build/dex/platypus/pool-pure.d.ts +8 -0
- package/build/dex/platypus/pool-pure.js +37 -0
- package/build/dex/platypus/pool-pure.js.map +1 -0
- package/build/dex/platypus/pool-subscriber.d.ts +14 -0
- package/build/dex/platypus/pool-subscriber.js +167 -0
- package/build/dex/platypus/pool-subscriber.js.map +1 -0
- package/build/dex/platypus/pool.d.ts +8 -0
- package/build/dex/platypus/pool.js +58 -0
- package/build/dex/platypus/pool.js.map +1 -0
- package/build/dex/platypus/types.d.ts +92 -0
- package/build/dex/platypus/types.js +10 -0
- package/build/dex/platypus/types.js.map +1 -0
- package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
- package/build/dex/quickswap/spiritswap-v3.js +19 -0
- package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
- package/build/dex/smardex/config.d.ts +4 -0
- package/build/dex/smardex/config.js +64 -0
- package/build/dex/smardex/config.js.map +1 -0
- package/build/dex/smardex/constants.d.ts +18 -0
- package/build/dex/smardex/constants.js +33 -0
- package/build/dex/smardex/constants.js.map +1 -0
- package/build/dex/smardex/sdk/constants.d.ts +6 -0
- package/build/dex/smardex/sdk/constants.js +13 -0
- package/build/dex/smardex/sdk/constants.js.map +1 -0
- package/build/dex/smardex/sdk/core.d.ts +113 -0
- package/build/dex/smardex/sdk/core.js +499 -0
- package/build/dex/smardex/sdk/core.js.map +1 -0
- package/build/dex/smardex/sdk/errors.d.ts +15 -0
- package/build/dex/smardex/sdk/errors.js +22 -0
- package/build/dex/smardex/sdk/errors.js.map +1 -0
- package/build/dex/smardex/sdk/types.d.ts +62 -0
- package/build/dex/smardex/sdk/types.js +3 -0
- package/build/dex/smardex/sdk/types.js.map +1 -0
- package/build/dex/smardex/sdk/utils.d.ts +44 -0
- package/build/dex/smardex/sdk/utils.js +133 -0
- package/build/dex/smardex/sdk/utils.js.map +1 -0
- package/build/dex/smardex/smardex-event-pool.d.ts +28 -0
- package/build/dex/smardex/smardex-event-pool.js +119 -0
- package/build/dex/smardex/smardex-event-pool.js.map +1 -0
- package/build/dex/smardex/smardex.d.ts +65 -0
- package/build/dex/smardex/smardex.js +519 -0
- package/build/dex/smardex/smardex.js.map +1 -0
- package/build/dex/smardex/types.d.ts +55 -0
- package/build/dex/smardex/types.js +3 -0
- package/build/dex/smardex/types.js.map +1 -0
- package/build/dex/smoothy.d.ts +26 -0
- package/build/dex/smoothy.js +48 -0
- package/build/dex/smoothy.js.map +1 -0
- package/build/dex/solidly/forks-override/cone.d.ts +22 -0
- package/build/dex/solidly/forks-override/cone.js +53 -0
- package/build/dex/solidly/forks-override/cone.js.map +1 -0
- package/build/dex/solidly/forks-override/solisnek.d.ts +8 -0
- package/build/dex/solidly/forks-override/solisnek.js +15 -0
- package/build/dex/solidly/forks-override/solisnek.js.map +1 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
- package/build/dex/stable-pool.d.ts +28 -0
- package/build/dex/stable-pool.js +55 -0
- package/build/dex/stable-pool.js.map +1 -0
- package/build/dex/swaap-v1/config.d.ts +17 -0
- package/build/dex/swaap-v1/config.js +56 -0
- package/build/dex/swaap-v1/config.js.map +1 -0
- package/build/dex/swaap-v1/constants.d.ts +6 -0
- package/build/dex/swaap-v1/constants.js +17 -0
- package/build/dex/swaap-v1/constants.js.map +1 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +25 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +62 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Const.d.ts +18 -0
- package/build/dex/swaap-v1/libraries/Const.js +26 -0
- package/build/dex/swaap-v1/libraries/Const.js.map +1 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +77 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +316 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +1 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +75 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.js +418 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.js.map +1 -0
- package/build/dex/swaap-v1/libraries/MathMMM.d.ts +185 -0
- package/build/dex/swaap-v1/libraries/MathMMM.js +453 -0
- package/build/dex/swaap-v1/libraries/MathMMM.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Num.d.ts +31 -0
- package/build/dex/swaap-v1/libraries/Num.js +167 -0
- package/build/dex/swaap-v1/libraries/Num.js.map +1 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +23 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.js +131 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Struct.d.ts +56 -0
- package/build/dex/swaap-v1/libraries/Struct.js +3 -0
- package/build/dex/swaap-v1/libraries/Struct.js.map +1 -0
- package/build/dex/swaap-v1/swaap-v1-pool.d.ts +45 -0
- package/build/dex/swaap-v1/swaap-v1-pool.js +656 -0
- package/build/dex/swaap-v1/swaap-v1-pool.js.map +1 -0
- package/build/dex/swaap-v1/swaap-v1.d.ts +62 -0
- package/build/dex/swaap-v1/swaap-v1.js +383 -0
- package/build/dex/swaap-v1/swaap-v1.js.map +1 -0
- package/build/dex/swaap-v1/types.d.ts +106 -0
- package/build/dex/swaap-v1/types.js +9 -0
- package/build/dex/swaap-v1/types.js.map +1 -0
- package/build/dex/trader-joe-v2.1.d.ts +43 -0
- package/build/dex/trader-joe-v2.1.js +79 -0
- package/build/dex/trader-joe-v2.1.js.map +1 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
- package/build/generic-swap-transaction-builder.js +1 -3
- package/build/generic-swap-transaction-builder.js.map +1 -1
- package/build/router/simpleswap.js +1 -3
- package/build/router/simpleswap.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/index.ts +1 -18
- package/src/generic-swap-transaction-builder.ts +1 -3
- package/src/router/simpleswap.ts +1 -3
- package/.idea/aws.xml +0 -17
- package/.idea/codeStyles/Project.xml +0 -19
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/paraswap-dex-lib.iml +0 -9
- package/.idea/prettier.xml +0 -7
- package/.idea/vcs.xml +0 -6
- package/src/abi/BProtocol.json +0 -1155
- package/src/abi/Jarvis.json +0 -1172
- package/src/abi/MStableAsset.json +0 -1545
- package/src/abi/OneInchLp.json +0 -1304
- package/src/abi/Onebit.json +0 -736
- package/src/abi/Shell.json +0 -1294
- package/src/abi/TraderJoeV2Router.json +0 -50
- package/src/abi/zrx.v2.json +0 -1967
- package/src/abi/zrx.v3.json +0 -3454
- package/src/abi/zrx.v4.json +0 -2193
- package/src/dex/OneInchLp.ts +0 -84
- package/src/dex/bProtocol/bProtocol-e2e.test.ts +0 -93
- package/src/dex/bProtocol/bProtocol.ts +0 -108
- package/src/dex/bProtocol/types.ts +0 -13
- package/src/dex/jarvis.ts +0 -262
- package/src/dex/mStable.ts +0 -147
- package/src/dex/onebit/onebit.ts +0 -113
- package/src/dex/onebit/types.ts +0 -17
- package/src/dex/shell.ts +0 -84
- package/src/dex/trader-joe-v2.ts +0 -148
- package/src/dex/zerox/config.ts +0 -31
- package/src/dex/zerox/index.ts +0 -328
- package/src/dex/zerox/order.ts +0 -62
- package/src/dex/zerox/types.ts +0 -82
- package/src/dex/zerox/zerox-e2e.test.ts +0 -110
|
@@ -0,0 +1,48 @@
|
|
|
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.Smoothy = 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 Smoothy_json_1 = __importDefault(require("../abi/Smoothy.json"));
|
|
11
|
+
var SmoothyFunctions;
|
|
12
|
+
(function (SmoothyFunctions) {
|
|
13
|
+
SmoothyFunctions["swap"] = "swap";
|
|
14
|
+
})(SmoothyFunctions || (SmoothyFunctions = {}));
|
|
15
|
+
class Smoothy extends simple_exchange_1.SimpleExchange {
|
|
16
|
+
constructor(dexHelper) {
|
|
17
|
+
super(dexHelper, 'smoothy');
|
|
18
|
+
this.minConversionRate = '1';
|
|
19
|
+
this.exchangeRouterInterface = new abi_1.Interface(Smoothy_json_1.default);
|
|
20
|
+
}
|
|
21
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
22
|
+
if (side === constants_1.SwapSide.BUY)
|
|
23
|
+
throw new Error(`Buy not supported`);
|
|
24
|
+
const { i, j } = data;
|
|
25
|
+
const payload = this.abiCoder.encodeParameter({
|
|
26
|
+
ParentStruct: {
|
|
27
|
+
i: 'int128',
|
|
28
|
+
j: 'int128',
|
|
29
|
+
},
|
|
30
|
+
}, { i, j });
|
|
31
|
+
return {
|
|
32
|
+
targetExchange: data.exchange,
|
|
33
|
+
payload,
|
|
34
|
+
networkFee: '0',
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
38
|
+
if (side === constants_1.SwapSide.BUY)
|
|
39
|
+
throw new Error(`Buy not supported`);
|
|
40
|
+
const { exchange, i, j } = data;
|
|
41
|
+
const swapFunctionParams = [i, j, srcAmount, destAmount];
|
|
42
|
+
const swapData = this.exchangeRouterInterface.encodeFunctionData(SmoothyFunctions.swap, swapFunctionParams);
|
|
43
|
+
return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.Smoothy = Smoothy;
|
|
47
|
+
Smoothy.dexKeys = ['smoothy'];
|
|
48
|
+
//# sourceMappingURL=smoothy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoothy.js","sourceRoot":"","sources":["../../src/dex/smoothy.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4CAAwC;AAQxC,uDAAmD;AACnD,uEAA6C;AAiB7C,IAAK,gBAEJ;AAFD,WAAK,gBAAgB;IACnB,iCAAa,CAAA;AACf,CAAC,EAFI,gBAAgB,KAAhB,gBAAgB,QAEpB;AAED,MAAa,OACX,SAAQ,gCAAc;IAOtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAH9B,sBAAiB,GAAG,GAAG,CAAC;QAItB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,sBAAU,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;aACZ;SACF,EACD,EAAE,CAAC,EAAE,CAAC,EAAE,CACT,CAAC;QACF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,kBAAkB,GAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,gBAAgB,CAAC,IAAI,EACrB,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;;AAjEH,0BAkEC;AA9DQ,eAAO,GAAG,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Solidly } from '../solidly';
|
|
2
|
+
import { SolidlyPair } from '../types';
|
|
3
|
+
import { Network } from '../../../constants';
|
|
4
|
+
import { IDexHelper } from '../../../dex-helper';
|
|
5
|
+
export declare class Cone extends Solidly {
|
|
6
|
+
protected network: Network;
|
|
7
|
+
protected dexHelper: IDexHelper;
|
|
8
|
+
feeFactor: number;
|
|
9
|
+
static dexKeysWithNetwork: {
|
|
10
|
+
key: string;
|
|
11
|
+
networks: Network[];
|
|
12
|
+
}[];
|
|
13
|
+
constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
|
|
14
|
+
private callDecoder;
|
|
15
|
+
protected getFeesMultiCallData(pair: SolidlyPair): {
|
|
16
|
+
callEntry: {
|
|
17
|
+
target: string;
|
|
18
|
+
callData: string;
|
|
19
|
+
};
|
|
20
|
+
callDecoder: (values: any[]) => number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
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.Cone = void 0;
|
|
7
|
+
const solidly_1 = require("../solidly");
|
|
8
|
+
const abi_1 = require("@ethersproject/abi");
|
|
9
|
+
const config_1 = require("../config");
|
|
10
|
+
const utils_1 = require("../../../utils");
|
|
11
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
12
|
+
const swapFeeFunctionName = 'swapFee';
|
|
13
|
+
const ConePairABI = [
|
|
14
|
+
{
|
|
15
|
+
inputs: [],
|
|
16
|
+
name: swapFeeFunctionName,
|
|
17
|
+
outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
|
|
18
|
+
stateMutability: 'view',
|
|
19
|
+
type: 'function',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
const conePairIface = new abi_1.Interface(ConePairABI);
|
|
23
|
+
class Cone extends solidly_1.Solidly {
|
|
24
|
+
constructor(network, dexKey, dexHelper) {
|
|
25
|
+
super(network, dexKey, dexHelper, true);
|
|
26
|
+
this.network = network;
|
|
27
|
+
this.dexHelper = dexHelper;
|
|
28
|
+
this.feeFactor = 1e4;
|
|
29
|
+
}
|
|
30
|
+
callDecoder(values) {
|
|
31
|
+
const fees = parseInt(conePairIface
|
|
32
|
+
.decodeFunctionResult(swapFeeFunctionName, values)[0]
|
|
33
|
+
.toString());
|
|
34
|
+
if (!fees)
|
|
35
|
+
return 0;
|
|
36
|
+
// noinspection UnnecessaryLocalVariableJS
|
|
37
|
+
const feeCode = Math.ceil(this.feeFactor / fees);
|
|
38
|
+
return feeCode;
|
|
39
|
+
}
|
|
40
|
+
getFeesMultiCallData(pair) {
|
|
41
|
+
const callEntry = {
|
|
42
|
+
target: pair.exchange,
|
|
43
|
+
callData: conePairIface.encodeFunctionData(swapFeeFunctionName, []),
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
callEntry,
|
|
47
|
+
callDecoder: this.callDecoder.bind(this),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.Cone = Cone;
|
|
52
|
+
Cone.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['Cone']));
|
|
53
|
+
//# sourceMappingURL=cone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cone.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/cone.ts"],"names":[],"mappings":";;;;;;AAAA,wCAAqC;AAIrC,4CAA+C;AAC/C,sCAA0C;AAC1C,0CAAuD;AACvD,oDAAuB;AAEvB,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAEtC,MAAM,WAAW,GAAG;IAClB;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,eAAS,CAAC,WAAW,CAAC,CAAC;AAEjD,MAAa,IAAK,SAAQ,iBAAO;IAM/B,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,IAAI,CACL,CAAC;QATQ,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QARjC,cAAS,GAAG,GAAG,CAAC;IAgBhB,CAAC;IAEO,WAAW,CAAC,MAAa;QAC/B,MAAM,IAAI,GAAG,QAAQ,CACnB,aAAa;aACV,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aACpD,QAAQ,EAAE,CACd,CAAC;QACF,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QAEpB,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,oBAAoB,CAAC,IAAiB;QAC9C,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,QAAS;YACtB,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,EAAE,CAAC;SACpE,CAAC;QAEF,OAAO;YACL,SAAS;YACT,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;SACzC,CAAC;IACJ,CAAC;;AA1CH,oBA2CC;AAxCe,uBAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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.SoliSnek = void 0;
|
|
7
|
+
const velodrome_1 = require("./velodrome");
|
|
8
|
+
const utils_1 = require("../../../utils");
|
|
9
|
+
const config_1 = require("../config");
|
|
10
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
11
|
+
class SoliSnek extends velodrome_1.Velodrome {
|
|
12
|
+
}
|
|
13
|
+
exports.SoliSnek = SoliSnek;
|
|
14
|
+
SoliSnek.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['SoliSnek']));
|
|
15
|
+
//# sourceMappingURL=solisnek.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solisnek.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/solisnek.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAwC;AAExC,0CAAuD;AACvD,sCAA0C;AAC1C,oDAAuB;AAEvB,MAAa,QAAS,SAAQ,qBAAS;;AAAvC,4BAGC;AAFe,2BAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
/* eslint-disable no-console */
|
|
7
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
+
dotenv_1.default.config();
|
|
9
|
+
const constants_1 = require("../../../constants");
|
|
10
|
+
const dex_helper_1 = require("../../../dex-helper");
|
|
11
|
+
const config_1 = require("./../config");
|
|
12
|
+
const solidly_v3_1 = require("../solidly-v3");
|
|
13
|
+
const dex = 'SolidlyV3';
|
|
14
|
+
const factory = config_1.SolidlyV3Config[dex][constants_1.Network.MAINNET].factory;
|
|
15
|
+
const blockHeaders = {};
|
|
16
|
+
async function checkForPoolEvents(startBlockNumber, endBlockNumber) {
|
|
17
|
+
const network = constants_1.Network.MAINNET;
|
|
18
|
+
const dexHelper = new dex_helper_1.DummyDexHelper(network);
|
|
19
|
+
const solidlyV3 = new solidly_v3_1.SolidlyV3(network, dex, dexHelper);
|
|
20
|
+
await solidlyV3.initializePricing(startBlockNumber);
|
|
21
|
+
const logsToDispatch = await dexHelper.provider.getLogs({
|
|
22
|
+
fromBlock: startBlockNumber,
|
|
23
|
+
toBlock: endBlockNumber,
|
|
24
|
+
address: factory,
|
|
25
|
+
});
|
|
26
|
+
const logsByBlockNumber = {};
|
|
27
|
+
for (let log of logsToDispatch) {
|
|
28
|
+
if (!logsByBlockNumber[log.blockNumber]) {
|
|
29
|
+
logsByBlockNumber[log.blockNumber] = [];
|
|
30
|
+
}
|
|
31
|
+
logsByBlockNumber[log.blockNumber].push(log);
|
|
32
|
+
}
|
|
33
|
+
const sortedBlocks = Object.keys(logsByBlockNumber)
|
|
34
|
+
.map(Number)
|
|
35
|
+
.sort((a, b) => Number(a) - Number(b));
|
|
36
|
+
for (let blockNumber of sortedBlocks) {
|
|
37
|
+
if (!blockHeaders[blockNumber]) {
|
|
38
|
+
blockHeaders[blockNumber] = await dexHelper.web3Provider.eth.getBlock(blockNumber);
|
|
39
|
+
}
|
|
40
|
+
await solidlyV3.factory?.update(logsByBlockNumber[blockNumber], {
|
|
41
|
+
[blockNumber]: blockHeaders[blockNumber],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
async function main() {
|
|
47
|
+
// event for https://etherscan.io/tx/0x2bef7c17f3f775525f076aeb20567ee25eb820e92aa8422fbfe4bed652fd2bd3
|
|
48
|
+
checkForPoolEvents(18758010, 18758019);
|
|
49
|
+
}
|
|
50
|
+
main()
|
|
51
|
+
.then(() => console.log('Done'))
|
|
52
|
+
.catch(e => console.error(e));
|
|
53
|
+
//# sourceMappingURL=check-event-pool-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-event-pool-event.js","sourceRoot":"","sources":["../../../../src/dex/solidly-v3/scripts/check-event-pool-event.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAIhB,kDAA6C;AAC7C,oDAAqD;AACrD,wCAA8C;AAC9C,8CAA0C;AAE1C,MAAM,GAAG,GAAG,WAAW,CAAC;AACxB,MAAM,OAAO,GAAG,wBAAe,CAAC,GAAG,CAAC,CAAC,mBAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAC9D,MAAM,YAAY,GAAgC,EAAE,CAAC;AAErD,KAAK,UAAU,kBAAkB,CAC/B,gBAAwB,EACxB,cAAsB;IAEtB,MAAM,OAAO,GAAG,mBAAO,CAAC,OAAO,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,2BAAc,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtD,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAA0B,EAAE,CAAC;IACpD,KAAK,IAAI,GAAG,IAAI,cAAc,EAAE;QAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACvC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;SACzC;QACD,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAChD,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YAC9B,YAAY,CAAC,WAAW,CAAC,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACnE,WAAW,CACZ,CAAC;SACH;QAED,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC9D,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC;SACzC,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,uGAAuG;IACvG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { SwapSide } from '../constants';
|
|
3
|
+
import { AdapterExchangeParam, NumberAsString, SimpleExchangeParam } from '../types';
|
|
4
|
+
import { IDexTxBuilder } from './idex';
|
|
5
|
+
import { SimpleExchange } from './simple-exchange';
|
|
6
|
+
import { IDexHelper } from '../dex-helper';
|
|
7
|
+
declare type StablePoolData = {
|
|
8
|
+
exchange: string;
|
|
9
|
+
i: string;
|
|
10
|
+
j: string;
|
|
11
|
+
deadline: string;
|
|
12
|
+
};
|
|
13
|
+
declare type StablePoolParam = [
|
|
14
|
+
i: NumberAsString,
|
|
15
|
+
j: NumberAsString,
|
|
16
|
+
dx: NumberAsString,
|
|
17
|
+
min_dy: NumberAsString,
|
|
18
|
+
deadline?: string
|
|
19
|
+
];
|
|
20
|
+
export declare class StablePool extends SimpleExchange implements IDexTxBuilder<StablePoolData, StablePoolParam> {
|
|
21
|
+
static dexKeys: string[];
|
|
22
|
+
exchangeRouterInterface: Interface;
|
|
23
|
+
minConversionRate: string;
|
|
24
|
+
constructor(dexHelper: IDexHelper);
|
|
25
|
+
getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: StablePoolData, side: SwapSide): AdapterExchangeParam;
|
|
26
|
+
getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: StablePoolData, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
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.StablePool = 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 StablePool_json_1 = __importDefault(require("../abi/StablePool.json"));
|
|
11
|
+
var StabePoolFunctions;
|
|
12
|
+
(function (StabePoolFunctions) {
|
|
13
|
+
StabePoolFunctions["swap"] = "swap";
|
|
14
|
+
})(StabePoolFunctions || (StabePoolFunctions = {}));
|
|
15
|
+
class StablePool extends simple_exchange_1.SimpleExchange {
|
|
16
|
+
constructor(dexHelper) {
|
|
17
|
+
super(dexHelper, 'stablePool');
|
|
18
|
+
this.minConversionRate = '1';
|
|
19
|
+
this.exchangeRouterInterface = new abi_1.Interface(StablePool_json_1.default);
|
|
20
|
+
}
|
|
21
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
22
|
+
if (side === constants_1.SwapSide.BUY)
|
|
23
|
+
throw new Error(`Buy not supported`);
|
|
24
|
+
const { i, j, deadline } = data;
|
|
25
|
+
const payload = this.abiCoder.encodeParameter({
|
|
26
|
+
ParentStruct: {
|
|
27
|
+
i: 'int128',
|
|
28
|
+
j: 'int128',
|
|
29
|
+
deadline: 'uint256',
|
|
30
|
+
},
|
|
31
|
+
}, { i, j, deadline });
|
|
32
|
+
return {
|
|
33
|
+
targetExchange: data.exchange,
|
|
34
|
+
payload,
|
|
35
|
+
networkFee: '0',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
39
|
+
if (side === constants_1.SwapSide.BUY)
|
|
40
|
+
throw new Error(`Buy not supported`);
|
|
41
|
+
const { exchange, i, j, deadline } = data;
|
|
42
|
+
const swapFunctionParams = [
|
|
43
|
+
i,
|
|
44
|
+
j,
|
|
45
|
+
srcAmount,
|
|
46
|
+
this.minConversionRate,
|
|
47
|
+
deadline,
|
|
48
|
+
];
|
|
49
|
+
const swapData = this.exchangeRouterInterface.encodeFunctionData(StabePoolFunctions.swap, swapFunctionParams);
|
|
50
|
+
return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.StablePool = StablePool;
|
|
54
|
+
StablePool.dexKeys = ['nerve', 'ironv2', 'snowball', 'axial'];
|
|
55
|
+
//# sourceMappingURL=stable-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stable-pool.js","sourceRoot":"","sources":["../../src/dex/stable-pool.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4CAAwC;AAQxC,uDAAmD;AACnD,6EAAmD;AAmBnD,IAAK,kBAEJ;AAFD,WAAK,kBAAkB;IACrB,mCAAa,CAAA;AACf,CAAC,EAFI,kBAAkB,KAAlB,kBAAkB,QAEtB;AAED,MAAa,UACX,SAAQ,gCAAc;IAOtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAHjC,sBAAiB,GAAG,GAAG,CAAC;QAItB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,yBAAa,CAAC,CAAC;IAC9D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;gBACX,QAAQ,EAAE,SAAS;aACpB;SACF,EACD,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CACnB,CAAC;QACF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1C,MAAM,kBAAkB,GAAoB;YAC1C,CAAC;YACD,CAAC;YACD,SAAS;YACT,IAAI,CAAC,iBAAiB;YACtB,QAAQ;SACT,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;;AAxEH,gCAyEC;AArEQ,kBAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DexParams } from './types';
|
|
2
|
+
import { DexConfigMap } from '../../types';
|
|
3
|
+
export declare const MAX_GAS_COST_ESTIMATION: number;
|
|
4
|
+
export declare const SUBGRAPH_TIMEOUT: number;
|
|
5
|
+
export declare const MAX_POOL_CNT = 1000;
|
|
6
|
+
export declare const POOL_CACHE_TTL: number;
|
|
7
|
+
export declare const RECCURING_POOL_FETCH_INTERVAL_MS: number;
|
|
8
|
+
export declare const SwaapV1Config: DexConfigMap<DexParams>;
|
|
9
|
+
export declare const Adapters: {
|
|
10
|
+
[chainId: number]: {
|
|
11
|
+
[side: string]: {
|
|
12
|
+
name: string;
|
|
13
|
+
index: number;
|
|
14
|
+
}[] | null;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export declare const SUBGRAPH_FETCH_ALL_POOOLS_RQ = "query ($count: Int) {\n pools: pools(first: $count, orderBy: liquidity, orderDirection: desc, where: {finalized: true}) {\n id\n tokens {\n address\n decimals\n oracleInitialState {\n proxy\n price: fixedPointPrice\n decimals\n }\n }\n liquidityUSD: liquidity\n swapFee\n dynamicCoverageFeesZ\n dynamicCoverageFeesHorizon\n priceStatisticsLookbackInSec\n priceStatisticsLookbackInRound\n priceStatisticsLookbackStepInRound\n maxPriceUnpegRatio\n }\n}";
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SUBGRAPH_FETCH_ALL_POOOLS_RQ = exports.Adapters = exports.SwaapV1Config = exports.RECCURING_POOL_FETCH_INTERVAL_MS = exports.POOL_CACHE_TTL = exports.MAX_POOL_CNT = exports.SUBGRAPH_TIMEOUT = exports.MAX_GAS_COST_ESTIMATION = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
exports.MAX_GAS_COST_ESTIMATION = 375 * 1000;
|
|
6
|
+
exports.SUBGRAPH_TIMEOUT = 1000 * 10;
|
|
7
|
+
exports.MAX_POOL_CNT = 1000;
|
|
8
|
+
exports.POOL_CACHE_TTL = 60 * 60; // 1hr
|
|
9
|
+
exports.RECCURING_POOL_FETCH_INTERVAL_MS = 12 * 3600 * 1000; // 12h (in ms)
|
|
10
|
+
exports.SwaapV1Config = {
|
|
11
|
+
SwaapV1: {
|
|
12
|
+
[constants_1.Network.POLYGON]: {
|
|
13
|
+
subgraphURL: 'https://api.thegraph.com/subgraphs/name/swaap-labs/swaapv1',
|
|
14
|
+
exchangeProxy: '0x718cc95685a0b0af73c2c8534243039a28687037',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
exports.Adapters = {
|
|
19
|
+
[constants_1.Network.POLYGON]: {
|
|
20
|
+
[constants_1.SwapSide.SELL]: [
|
|
21
|
+
{
|
|
22
|
+
name: 'PolygonAdapter02',
|
|
23
|
+
index: 6,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
[constants_1.SwapSide.BUY]: [
|
|
27
|
+
{
|
|
28
|
+
name: 'PolygonBuyAdapter',
|
|
29
|
+
index: 4,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
exports.SUBGRAPH_FETCH_ALL_POOOLS_RQ = `query ($count: Int) {
|
|
35
|
+
pools: pools(first: $count, orderBy: liquidity, orderDirection: desc, where: {finalized: true}) {
|
|
36
|
+
id
|
|
37
|
+
tokens {
|
|
38
|
+
address
|
|
39
|
+
decimals
|
|
40
|
+
oracleInitialState {
|
|
41
|
+
proxy
|
|
42
|
+
price: fixedPointPrice
|
|
43
|
+
decimals
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
liquidityUSD: liquidity
|
|
47
|
+
swapFee
|
|
48
|
+
dynamicCoverageFeesZ
|
|
49
|
+
dynamicCoverageFeesHorizon
|
|
50
|
+
priceStatisticsLookbackInSec
|
|
51
|
+
priceStatisticsLookbackInRound
|
|
52
|
+
priceStatisticsLookbackStepInRound
|
|
53
|
+
maxPriceUnpegRatio
|
|
54
|
+
}
|
|
55
|
+
}`;
|
|
56
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/swaap-v1/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,uBAAuB,GAAG,GAAG,GAAG,IAAI,CAAC;AACrC,QAAA,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,QAAA,YAAY,GAAG,IAAI,CAAC;AACpB,QAAA,cAAc,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM;AAChC,QAAA,gCAAgC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,cAAc;AAEnE,QAAA,aAAa,GAA4B;IACpD,OAAO,EAAE;QACP,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,WAAW,EAAE,4DAA4D;YACzE,aAAa,EAAE,4CAA4C;SAC5D;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAIjB;IACF,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;QACjB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE;YACf;gBACE,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,CAAC;aACT;SACF;QACD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE;YACd;gBACE,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC;AAEW,QAAA,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;EAqB1C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BigNumber } from '@0x/utils';
|
|
2
|
+
import { SwaapV1PoolParameters, SwaapV1PoolLiquidities, SwaapV1PoolOracles } from './types';
|
|
3
|
+
export declare const defaultParametersState: SwaapV1PoolParameters;
|
|
4
|
+
export declare const defaultLiquiditiesState: SwaapV1PoolLiquidities;
|
|
5
|
+
export declare const defaultOraclesState: SwaapV1PoolOracles;
|
|
6
|
+
export declare const protocolPrecision: BigNumber;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.protocolPrecision = exports.defaultOraclesState = exports.defaultLiquiditiesState = exports.defaultParametersState = void 0;
|
|
4
|
+
const utils_1 = require("@0x/utils");
|
|
5
|
+
exports.defaultParametersState = {
|
|
6
|
+
swapFee: BigInt(10 ** 12),
|
|
7
|
+
priceStatisticsLookbackInRound: 5,
|
|
8
|
+
priceStatisticsLookbackStepInRound: 4,
|
|
9
|
+
dynamicCoverageFeesZ: BigInt(6),
|
|
10
|
+
dynamicCoverageFeesHorizon: BigInt(5),
|
|
11
|
+
priceStatisticsLookbackInSec: BigInt(3600),
|
|
12
|
+
maxPriceUnpegRatio: BigInt(1025000000000000000),
|
|
13
|
+
};
|
|
14
|
+
exports.defaultLiquiditiesState = {};
|
|
15
|
+
exports.defaultOraclesState = {};
|
|
16
|
+
exports.protocolPrecision = new utils_1.BigNumber(10).pow(new utils_1.BigNumber(18));
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/swaap-v1/constants.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAOzB,QAAA,sBAAsB,GAA0B;IAC3D,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IACzB,8BAA8B,EAAE,CAAC;IACjC,kCAAkC,EAAE,CAAC;IACrC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC,mBAAmB,CAAC;CAChD,CAAC;AAEW,QAAA,uBAAuB,GAA2B,EAAE,CAAC;AAErD,QAAA,mBAAmB,GAAuB,EAAE,CAAC;AAE7C,QAAA,iBAAiB,GAAG,IAAI,iBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,iBAAS,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Struct from './Struct';
|
|
2
|
+
import { ChainLinkData } from '../types';
|
|
3
|
+
export declare class ChainlinkUtils {
|
|
4
|
+
static getLatestRound(latestRoundId: number, historicalPrices: ChainLinkData, currentTimestamp: bigint): Struct.LatestRound;
|
|
5
|
+
/**
|
|
6
|
+
* @notice Retrieves historical data from round id.
|
|
7
|
+
* @dev Special cases:
|
|
8
|
+
* - if retrieved price is negative --> fails
|
|
9
|
+
* - if no data can be found --> returns (0,0)
|
|
10
|
+
* @param oracle The price feed oracle
|
|
11
|
+
* @param _roundId The the round of interest ID
|
|
12
|
+
* @return The round price
|
|
13
|
+
* @return The round timestamp
|
|
14
|
+
*/
|
|
15
|
+
static getRoundData(_roundId: number, historicalPrices: ChainLinkData): [bigint, bigint];
|
|
16
|
+
/**
|
|
17
|
+
* @notice Computes the price of token 2 in terms of token 1
|
|
18
|
+
* @param price_1 The latest price data for token 1
|
|
19
|
+
* @param decimals_1 The sum of the decimals of token 1 its oracle
|
|
20
|
+
* @param price_2 The latest price data for token 2
|
|
21
|
+
* @param decimals_2 The sum of the decimals of token 2 its oracle
|
|
22
|
+
* @return The last price of token 2 divded by the last price of token 1
|
|
23
|
+
*/
|
|
24
|
+
static getTokenRelativePrice(price_1: bigint, decimals_1: bigint, price_2: bigint, decimals_2: bigint): bigint;
|
|
25
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChainlinkUtils = void 0;
|
|
4
|
+
const Const_1 = require("./Const");
|
|
5
|
+
const Num_1 = require("./Num");
|
|
6
|
+
const _require = (b, message) => {
|
|
7
|
+
if (!b)
|
|
8
|
+
throw new Error(message);
|
|
9
|
+
};
|
|
10
|
+
class ChainlinkUtils {
|
|
11
|
+
static getLatestRound(latestRoundId, historicalPrices, currentTimestamp) {
|
|
12
|
+
let latestRoundData = historicalPrices[latestRoundId];
|
|
13
|
+
let latestPrice = latestRoundData.answer;
|
|
14
|
+
let latestTimestamp = latestRoundData.timestamp;
|
|
15
|
+
_require(currentTimestamp - latestTimestamp <= Const_1.Const.ORACLE_TIMEOUT, 'Err.EXCEEDED_ORACLE_TIMEOUT');
|
|
16
|
+
_require(latestPrice > 0, 'Err.NON_POSITIVE_PRICE');
|
|
17
|
+
return {
|
|
18
|
+
roundId: latestRoundId,
|
|
19
|
+
price: latestPrice,
|
|
20
|
+
timestamp: latestTimestamp,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @notice Retrieves historical data from round id.
|
|
25
|
+
* @dev Special cases:
|
|
26
|
+
* - if retrieved price is negative --> fails
|
|
27
|
+
* - if no data can be found --> returns (0,0)
|
|
28
|
+
* @param oracle The price feed oracle
|
|
29
|
+
* @param _roundId The the round of interest ID
|
|
30
|
+
* @return The round price
|
|
31
|
+
* @return The round timestamp
|
|
32
|
+
*/
|
|
33
|
+
static getRoundData(_roundId, historicalPrices) {
|
|
34
|
+
let data = historicalPrices[_roundId];
|
|
35
|
+
_require(data != undefined, 'Err.UNAVAILABLE_HISTORICAL_PRICE');
|
|
36
|
+
_require(data.answer >= 0, 'Err.NEGATIVE_PRICE');
|
|
37
|
+
return [data.answer, data.timestamp];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @notice Computes the price of token 2 in terms of token 1
|
|
41
|
+
* @param price_1 The latest price data for token 1
|
|
42
|
+
* @param decimals_1 The sum of the decimals of token 1 its oracle
|
|
43
|
+
* @param price_2 The latest price data for token 2
|
|
44
|
+
* @param decimals_2 The sum of the decimals of token 2 its oracle
|
|
45
|
+
* @return The last price of token 2 divded by the last price of token 1
|
|
46
|
+
*/
|
|
47
|
+
static getTokenRelativePrice(price_1, decimals_1, price_2, decimals_2) {
|
|
48
|
+
// we consider tokens price to be > 0
|
|
49
|
+
if (decimals_1 > decimals_2) {
|
|
50
|
+
return Num_1.Num.div(Num_1.Num.mul(price_2, 10n ** (decimals_1 - decimals_2) * Const_1.Const.ONE), price_1);
|
|
51
|
+
}
|
|
52
|
+
else if (decimals_1 < decimals_2) {
|
|
53
|
+
return Num_1.Num.div(Num_1.Num.div(price_2, price_1), 10n ** (decimals_2 - decimals_1) * Const_1.Const.ONE);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// decimals_1 == decimals_2
|
|
57
|
+
return Num_1.Num.div(price_2, price_1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.ChainlinkUtils = ChainlinkUtils;
|
|
62
|
+
//# sourceMappingURL=ChainlinkUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChainlinkUtils.js","sourceRoot":"","sources":["../../../../src/dex/swaap-v1/libraries/ChainlinkUtils.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,+BAA4B;AAI5B,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,OAAe,EAAE,EAAE;IAC/C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAa,cAAc;IACzB,MAAM,CAAC,cAAc,CACnB,aAAqB,EACrB,gBAA+B,EAC/B,gBAAwB;QAExB,IAAI,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;QACzC,IAAI,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC;QAEhD,QAAQ,CACN,gBAAgB,GAAG,eAAe,IAAI,aAAK,CAAC,cAAc,EAC1D,6BAA6B,CAC9B,CAAC;QACF,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAEpD,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CACjB,QAAgB,EAChB,gBAA+B;QAE/B,IAAI,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEtC,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE,kCAAkC,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAEjD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,qBAAqB,CAC1B,OAAe,EACf,UAAkB,EAClB,OAAe,EACf,UAAkB;QAElB,qCAAqC;QACrC,IAAI,UAAU,GAAG,UAAU,EAAE;YAC3B,OAAO,SAAG,CAAC,GAAG,CACZ,SAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,aAAK,CAAC,GAAG,CAAC,EAC9D,OAAO,CACR,CAAC;SACH;aAAM,IAAI,UAAU,GAAG,UAAU,EAAE;YAClC,OAAO,SAAG,CAAC,GAAG,CACZ,SAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EACzB,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,aAAK,CAAC,GAAG,CAC7C,CAAC;SACH;aAAM;YACL,2BAA2B;YAC3B,OAAO,SAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAClC;IACH,CAAC;CAmEF;AA9ID,wCA8IC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class Const {
|
|
2
|
+
static ONE: bigint;
|
|
3
|
+
static MIN_POW_BASE: bigint;
|
|
4
|
+
static MAX_POW_BASE: bigint;
|
|
5
|
+
static POW_PRECISION: bigint;
|
|
6
|
+
static ORACLE_TIMEOUT: bigint;
|
|
7
|
+
static MIN_FEE: bigint;
|
|
8
|
+
static EXIT_FEE: bigint;
|
|
9
|
+
static BASE_Z: bigint;
|
|
10
|
+
static BASE_HORIZON: bigint;
|
|
11
|
+
static BASE_LOOKBACK_IN_ROUND: number;
|
|
12
|
+
static BASE_LOOKBACK_IN_SEC: bigint;
|
|
13
|
+
static LOOKBACK_STEP_IN_ROUND: number;
|
|
14
|
+
static MAX_IN_RATIO: bigint;
|
|
15
|
+
static MAX_OUT_RATIO: bigint;
|
|
16
|
+
static FALLBACK_SPREAD: bigint;
|
|
17
|
+
static BASE_MAX_PRICE_UNPEG_RATIO: bigint;
|
|
18
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Const = void 0;
|
|
5
|
+
const bigint_constants_1 = require("../../../bigint-constants");
|
|
6
|
+
class Const {
|
|
7
|
+
}
|
|
8
|
+
exports.Const = Const;
|
|
9
|
+
_a = Const;
|
|
10
|
+
Const.ONE = bigint_constants_1.BI_POWS[18];
|
|
11
|
+
Const.MIN_POW_BASE = 1n;
|
|
12
|
+
Const.MAX_POW_BASE = 2n * _a.ONE - 1n;
|
|
13
|
+
Const.POW_PRECISION = _a.ONE / 10n ** 10n;
|
|
14
|
+
Const.ORACLE_TIMEOUT = 2n * 60n;
|
|
15
|
+
Const.MIN_FEE = _a.ONE / 10n ** 6n;
|
|
16
|
+
Const.EXIT_FEE = 0n;
|
|
17
|
+
Const.BASE_Z = 6n * _a.ONE;
|
|
18
|
+
Const.BASE_HORIZON = 5n * _a.ONE;
|
|
19
|
+
Const.BASE_LOOKBACK_IN_ROUND = 5;
|
|
20
|
+
Const.BASE_LOOKBACK_IN_SEC = 3600n;
|
|
21
|
+
Const.LOOKBACK_STEP_IN_ROUND = 4;
|
|
22
|
+
Const.MAX_IN_RATIO = _a.ONE / 2n;
|
|
23
|
+
Const.MAX_OUT_RATIO = _a.ONE / 3n + 1n;
|
|
24
|
+
Const.FALLBACK_SPREAD = (3n * _a.ONE) / 1000n;
|
|
25
|
+
Const.BASE_MAX_PRICE_UNPEG_RATIO = _a.ONE + _a.ONE / 40n;
|
|
26
|
+
//# sourceMappingURL=Const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Const.js","sourceRoot":"","sources":["../../../../src/dex/swaap-v1/libraries/Const.ts"],"names":[],"mappings":";;;;AAAA,gEAAoD;AAEpD,MAAa,KAAK;;AAAlB,sBA0BC;;AAzBQ,SAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAElB,kBAAY,GAAG,EAAE,CAAC;AAClB,kBAAY,GAAG,EAAE,GAAG,EAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAElC,mBAAa,GAAG,EAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;AAEtC,oBAAc,GAAG,EAAE,GAAG,GAAG,CAAC;AAE1B,aAAO,GAAG,EAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;AAC/B,cAAQ,GAAG,EAAE,CAAC;AAEd,YAAM,GAAG,EAAE,GAAG,EAAI,CAAC,GAAG,CAAC;AACvB,kBAAY,GAAG,EAAE,GAAG,EAAI,CAAC,GAAG,CAAC;AAE7B,4BAAsB,GAAG,CAAC,CAAC;AAC3B,0BAAoB,GAAG,KAAK,CAAC;AAC7B,4BAAsB,GAAG,CAAC,CAAC;AAE3B,kBAAY,GAAG,EAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAC7B,mBAAa,GAAG,EAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,qBAAe,GAAG,CAAC,EAAE,GAAG,EAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE1C,gCAA0B,GAAG,EAAI,CAAC,GAAG,GAAG,EAAI,CAAC,GAAG,GAAG,GAAG,CAAC"}
|