@paraswap/dex-lib 2.20.0 → 2.20.2-swaap-v2-fixes

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.
Files changed (37) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  9. package/build/dex/{test-dex → pancakeswap-v3}/types.js.map +1 -1
  10. package/build/dex/solidly/forks-override/chronos.d.ts +20 -0
  11. package/build/dex/solidly/forks-override/chronos.js +44 -0
  12. package/build/dex/solidly/forks-override/chronos.js.map +1 -0
  13. package/build/dex/swaap-v2/swaap-v2.js +10 -8
  14. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  15. package/build/dex/swaap-v2/utils.js +1 -1
  16. package/build/dex/swaap-v2/utils.js.map +1 -1
  17. package/build/router/payload-encoder.js +1 -1
  18. package/build/router/payload-encoder.js.map +1 -1
  19. package/package.json +1 -1
  20. package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +67 -94
  21. package/src/dex/swaap-v2/swaap-v2.ts +13 -13
  22. package/src/dex/swaap-v2/utils.ts +1 -1
  23. package/src/router/payload-encoder.ts +2 -1
  24. package/build/dex/test-dex/config.d.ts +0 -4
  25. package/build/dex/test-dex/config.js +0 -15
  26. package/build/dex/test-dex/config.js.map +0 -1
  27. package/build/dex/test-dex/test-dex-pool.d.ts +0 -39
  28. package/build/dex/test-dex/test-dex-pool.js +0 -63
  29. package/build/dex/test-dex/test-dex-pool.js.map +0 -1
  30. package/build/dex/test-dex/test-dex.d.ts +0 -37
  31. package/build/dex/test-dex/test-dex.js +0 -126
  32. package/build/dex/test-dex/test-dex.js.map +0 -1
  33. package/build/dex/test-dex/types.d.ts +0 -6
  34. package/build/dex/woo-fi-v2/woo-fi-math.d.ts +0 -16
  35. package/build/dex/woo-fi-v2/woo-fi-math.js +0 -137
  36. package/build/dex/woo-fi-v2/woo-fi-math.js.map +0 -1
  37. /package/build/dex/{test-dex → pancakeswap-v3}/types.js +0 -0
package/.idea/aws.xml ADDED
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="accountSettings">
4
+ <option name="activeProfile" value="profile:default" />
5
+ <option name="activeRegion" value="us-east-1" />
6
+ <option name="recentlyUsedProfiles">
7
+ <list>
8
+ <option value="profile:default" />
9
+ </list>
10
+ </option>
11
+ <option name="recentlyUsedRegions">
12
+ <list>
13
+ <option value="us-east-1" />
14
+ </list>
15
+ </option>
16
+ </component>
17
+ </project>
@@ -0,0 +1,19 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <code_scheme name="Project" version="173">
3
+ <ScalaCodeStyleSettings>
4
+ <option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
5
+ </ScalaCodeStyleSettings>
6
+ <TypeScriptCodeStyleSettings version="0">
7
+ <option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
8
+ <option name="USE_DOUBLE_QUOTES" value="false" />
9
+ <option name="SPACES_WITHIN_IMPORTS" value="true" />
10
+ </TypeScriptCodeStyleSettings>
11
+ <codeStyleSettings language="TypeScript">
12
+ <indentOptions>
13
+ <option name="INDENT_SIZE" value="2" />
14
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
15
+ <option name="TAB_SIZE" value="2" />
16
+ </indentOptions>
17
+ </codeStyleSettings>
18
+ </code_scheme>
19
+ </component>
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
4
+ </state>
5
+ </component>
package/.idea/misc.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager">
4
+ <output url="file://$PROJECT_DIR$/out" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" filepath="$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="JAVA_MODULE" version="4">
3
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
4
+ <exclude-output />
5
+ <content url="file://$MODULE_DIR$" />
6
+ <orderEntry type="inheritedJdk" />
7
+ <orderEntry type="sourceFolder" forTests="false" />
8
+ </component>
9
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,14 @@
1
+ import { Address } from '../../types';
2
+ export declare type DexParams = {
3
+ router: Address;
4
+ quoter: Address;
5
+ factory: Address;
6
+ stateMulticall: Address;
7
+ uniswapMulticall: Address;
8
+ supportedFees: bigint[];
9
+ feeProtocols: bigint[];
10
+ chunksCount: number;
11
+ deployer?: Address;
12
+ subgraphURL: string;
13
+ initHash: string;
14
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/test-dex/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-v3/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
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 Chronos extends Solidly {
6
+ protected network: Network;
7
+ protected dexHelper: IDexHelper;
8
+ static dexKeysWithNetwork: {
9
+ key: string;
10
+ networks: Network[];
11
+ }[];
12
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
13
+ protected getFeesMultiCallData(pair: SolidlyPair): {
14
+ callEntry: {
15
+ target: string;
16
+ callData: string;
17
+ };
18
+ callDecoder: (values: any[]) => number;
19
+ };
20
+ }
@@ -0,0 +1,44 @@
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.Chronos = void 0;
7
+ const solidly_1 = require("../solidly");
8
+ const abi_1 = require("@ethersproject/abi");
9
+ const utils_1 = require("../../../utils");
10
+ const config_1 = require("../config");
11
+ const lodash_1 = __importDefault(require("lodash"));
12
+ const ChronosFactoryABI = [
13
+ {
14
+ inputs: [{ internalType: 'bool', name: '_stable', type: 'bool' }],
15
+ name: 'getFee',
16
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
17
+ stateMutability: 'view',
18
+ type: 'function',
19
+ },
20
+ ];
21
+ const chronosFactoryIface = new abi_1.Interface(ChronosFactoryABI);
22
+ class Chronos extends solidly_1.Solidly {
23
+ constructor(network, dexKey, dexHelper) {
24
+ super(network, dexKey, dexHelper, true);
25
+ this.network = network;
26
+ this.dexHelper = dexHelper;
27
+ }
28
+ getFeesMultiCallData(pair) {
29
+ const callEntry = {
30
+ target: this.factoryAddress,
31
+ callData: chronosFactoryIface.encodeFunctionData('getFee', [pair.stable]),
32
+ };
33
+ const callDecoder = (values) => parseInt(chronosFactoryIface
34
+ .decodeFunctionResult('getFee', values)[0]
35
+ .toString());
36
+ return {
37
+ callEntry,
38
+ callDecoder,
39
+ };
40
+ }
41
+ }
42
+ exports.Chronos = Chronos;
43
+ Chronos.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['Chronos']));
44
+ //# sourceMappingURL=chronos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chronos.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/chronos.ts"],"names":[],"mappings":";;;;;;AAAA,wCAAqC;AAIrC,4CAA+C;AAC/C,0CAAuD;AACvD,sCAA0C;AAC1C,oDAAuB;AAEvB,MAAM,iBAAiB,GAAG;IACxB;QACE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjE,IAAI,EAAE,QAAQ;QACd,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,mBAAmB,GAAG,IAAI,eAAS,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAa,OAAQ,SAAQ,iBAAO;IAIlC,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;IAQjC,CAAC;IAES,oBAAoB,CAAC,IAAiB;QAC9C,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,QAAQ,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1E,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,MAAa,EAAE,EAAE,CACpC,QAAQ,CACN,mBAAmB;aAChB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aACzC,QAAQ,EAAE,CACd,CAAC;QAEJ,OAAO;YACL,SAAS;YACT,WAAW;SACZ,CAAC;IACJ,CAAC;;AAjCH,0BAkCC;AAjCe,0BAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC"}
@@ -205,15 +205,17 @@ class SwaapV2 extends simple_exchange_1.SimpleExchange {
205
205
  if (levels === null) {
206
206
  return null;
207
207
  }
208
- const poolIdentifier = (0, utils_3.getPoolIdentifier)(this.dexKey, normalizedSrcToken.address, normalizedDestToken.address);
209
208
  const levelEntries = Object.keys(levels)
210
- .map((pair) => {
211
- if (pools.includes(poolIdentifier)) {
212
- return levels[pair];
209
+ .filter((pair) => {
210
+ const { base, quote } = levels[pair];
211
+ if (pools.includes((0, utils_3.getPoolIdentifier)(this.dexKey, quote, base))
212
+ || pools.includes((0, utils_3.getPoolIdentifier)(this.dexKey, base, quote))) {
213
+ return true;
213
214
  }
214
- return undefined;
215
- })
216
- .filter((o) => o !== undefined);
215
+ return false;
216
+ }).map((pair) => {
217
+ return levels[pair];
218
+ });
217
219
  const unitVolume = (0, bignumber_constants_1.getBigNumberPow)((side === constants_1.SwapSide.SELL ? normalizedSrcToken : normalizedDestToken)
218
220
  .decimals);
219
221
  const amountsFloat = amounts.map(a => new bignumber_js_1.default(a.toString()).dividedBy(unitVolume));
@@ -522,7 +524,7 @@ class SwaapV2 extends simple_exchange_1.SimpleExchange {
522
524
  .slice(0, limit);
523
525
  }
524
526
  getTokenFromAddress(address) {
525
- return this.tokensMap[address];
527
+ return this.tokensMap[(0, utils_3.normalizeTokenAddress)(address)];
526
528
  }
527
529
  releaseResources() {
528
530
  if (this.rateFetcher) {
@@ -1 +1 @@
1
- {"version":3,"file":"swaap-v2.js","sourceRoot":"","sources":["../../../src/dex/swaap-v2/swaap-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swaap-v2.js","sourceRoot":"","sources":["../../../src/dex/swaap-v2/swaap-v2.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ const getPoolIdentifier = (dexKey, srcAddress, destAddress) => {
26
26
  };
27
27
  exports.getPoolIdentifier = getPoolIdentifier;
28
28
  const normalizeTokenAddress = (address) => {
29
- return address.toLowerCase() === constants_1.ETHER_ADDRESS
29
+ return address.toLowerCase() === constants_1.ETHER_ADDRESS.toLowerCase()
30
30
  ? constants_1.NULL_ADDRESS
31
31
  : address.toLowerCase();
32
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/swaap-v2/utils.ts"],"names":[],"mappings":";;;AACA,+CAA4E;AAErE,MAAM,mBAAmB,GAAG,CACjC,MAAc,EACd,UAAmB,EACnB,WAAoB,EACpB,EAAE;IACF,OAAO,GAAG,MAAM,IAAI,IAAA,mBAAW,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;AAC3E,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEK,MAAM,WAAW,GAAG,CAAC,UAAmB,EAAE,WAAoB,EAAE,EAAE;IACvE,MAAM,eAAe,GACnB,UAAU,GAAG,WAAW;QACtB,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC;QAC3B,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChC,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;AACrE,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEK,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,EAAE;IAC/D,OAAO,GAAG,wBAAY,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,EAAE;IACvD,OAAO,IAAA,mBAAW,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC;AAEK,MAAM,iBAAiB,GAAG,CAC/B,MAAc,EACd,UAAmB,EACnB,WAAoB,EACpB,EAAE;IACF,OAAO,GAAG,IAAA,2BAAmB,EAC3B,MAAM,EACN,UAAU,EACV,WAAW,CACZ,EAAE,CAAC,WAAW,EAAE,CAAC;AACpB,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B;AAEK,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC/D,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,yBAAa;QAC5C,CAAC,CAAC,wBAAY;QACd,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/swaap-v2/utils.ts"],"names":[],"mappings":";;;AACA,+CAA4E;AAErE,MAAM,mBAAmB,GAAG,CACjC,MAAc,EACd,UAAmB,EACnB,WAAoB,EACpB,EAAE;IACF,OAAO,GAAG,MAAM,IAAI,IAAA,mBAAW,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;AAC3E,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEK,MAAM,WAAW,GAAG,CAAC,UAAmB,EAAE,WAAoB,EAAE,EAAE;IACvE,MAAM,eAAe,GACnB,UAAU,GAAG,WAAW;QACtB,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC;QAC3B,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChC,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;AACrE,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEK,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,EAAE;IAC/D,OAAO,GAAG,wBAAY,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,EAAE;IACvD,OAAO,IAAA,mBAAW,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC;AAEK,MAAM,iBAAiB,GAAG,CAC/B,MAAc,EACd,UAAmB,EACnB,WAAoB,EACpB,EAAE;IACF,OAAO,GAAG,IAAA,2BAAmB,EAC3B,MAAM,EACN,UAAU,EACV,WAAW,CACZ,EAAE,CAAC,WAAW,EAAE,CAAC;AACpB,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B;AAEK,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC/D,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,yBAAa,CAAC,WAAW,EAAE;QAC1D,CAAC,CAAC,wBAAY;QACd,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC"}
@@ -29,7 +29,7 @@ function encodeFeePercent(partnerFeePercent, positiveSlippageToUser, side) {
29
29
  if (positiveSlippageToUser)
30
30
  fee |= OneShift14;
31
31
  // Set 15th bit to take fee from srcToken
32
- if (side === constants_1.SwapSide.BUY)
32
+ if (side === constants_1.SwapSide.BUY && !isNoFeeAndPositiveSlippageToPartner)
33
33
  fee |= OneShift15;
34
34
  // Bits 248 - 255 is used for version;
35
35
  // Set version = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"payload-encoder.js","sourceRoot":"","sources":["../../src/router/payload-encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload-encoder.js","sourceRoot":"","sources":["../../src/router/payload-encoder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "2.20.0",
3
+ "version": "2.20.2-swaap-v2-fixes",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -5,7 +5,6 @@ import { testE2E } from '../../../tests/utils-e2e';
5
5
  import {
6
6
  Tokens,
7
7
  Holders,
8
- NativeTokenSymbols,
9
8
  } from '../../../tests/constants-e2e';
10
9
  import { Network, ContractMethod, SwapSide } from '../../constants';
11
10
  import { StaticJsonRpcProvider } from '@ethersproject/providers';
@@ -13,23 +12,8 @@ import { generateConfig } from '../../config';
13
12
 
14
13
  const sleepMs: number = 5000;
15
14
 
16
- function testForNetwork(
17
- network: Network,
18
- dexKey: string,
19
- tokenASymbol: string,
20
- tokenBSymbol: string,
21
- tokenAAmount: string,
22
- tokenBAmount: string,
23
- nativeTokenAmount: string,
24
- excludeNativeTokenTests: boolean = true,
25
- ) {
26
- const provider = new StaticJsonRpcProvider(
27
- generateConfig(network).privateHttpProvider,
28
- network,
29
- );
30
- const tokens = Tokens[network];
31
- const holders = Holders[network];
32
- const nativeTokenSymbol = NativeTokenSymbols[network];
15
+ describe('SwaapV2 E2E', () => {
16
+ const dexKey = 'SwaapV2';
33
17
 
34
18
  const sideToContractMethods = new Map([
35
19
  [
@@ -43,55 +27,67 @@ function testForNetwork(
43
27
  [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
44
28
  ]);
45
29
 
46
- describe(`${network}`, () => {
30
+ describe('Polygon', () => {
31
+ const network = Network.POLYGON;
32
+ const provider = new StaticJsonRpcProvider(
33
+ generateConfig(network).privateHttpProvider,
34
+ network,
35
+ );
36
+ const tokens = Tokens[network];
37
+ const holders = Holders[network];
38
+
39
+ const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
40
+ [
41
+ {
42
+ name: 'USDC',
43
+ sellAmount: '100000000',
44
+ buyAmount: '1000000000000000000',
45
+ },
46
+ {
47
+ name: 'WETH',
48
+ sellAmount: '1000000000000000000',
49
+ buyAmount: '100000000',
50
+ },
51
+ ],
52
+ [
53
+ {
54
+ name: 'MATIC',
55
+ sellAmount: '150000000000000000000',
56
+ buyAmount: '100000000',
57
+ },
58
+ {
59
+ name: 'USDC',
60
+ sellAmount: '100000000',
61
+ buyAmount: '150000000000000000000',
62
+ },
63
+ ],
64
+ [
65
+ {
66
+ name: 'WMATIC',
67
+ sellAmount: '150000000000000000000',
68
+ buyAmount: '100000000',
69
+ },
70
+ {
71
+ name: 'USDC',
72
+ sellAmount: '100000000',
73
+ buyAmount: '150000000000000000000',
74
+ },
75
+ ],
76
+ ];
77
+
47
78
  sideToContractMethods.forEach((contractMethods, side) =>
48
79
  describe(`${side}`, () => {
49
80
  contractMethods.forEach((contractMethod: ContractMethod) => {
50
- describe(`${contractMethod}`, () => {
51
- if (excludeNativeTokenTests) {
52
- it(`${tokenASymbol} -> ${tokenBSymbol}`, async () => {
53
- await testE2E(
54
- tokens[tokenASymbol],
55
- tokens[tokenBSymbol],
56
- holders[tokenASymbol],
57
- side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
58
- side,
59
- dexKey,
60
- contractMethod,
61
- network,
62
- provider,
63
- undefined,
64
- undefined,
65
- undefined,
66
- undefined,
67
- sleepMs,
68
- );
69
- });
70
- it(`${tokenBSymbol} -> ${tokenASymbol}`, async () => {
71
- await testE2E(
72
- tokens[tokenBSymbol],
73
- tokens[tokenASymbol],
74
- holders[tokenBSymbol],
75
- side === SwapSide.SELL ? tokenBAmount : tokenAAmount,
76
- side,
77
- dexKey,
78
- contractMethod,
79
- network,
80
- provider,
81
- undefined,
82
- undefined,
83
- undefined,
84
- undefined,
85
- sleepMs,
86
- );
87
- });
88
- } else {
89
- it(`${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
81
+ pairs.forEach(pair => {
82
+ describe(`${contractMethod}`, () => {
83
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
90
84
  await testE2E(
91
- tokens[nativeTokenSymbol],
92
- tokens[tokenASymbol],
93
- holders[nativeTokenSymbol],
94
- side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
85
+ tokens[pair[0].name],
86
+ tokens[pair[1].name],
87
+ holders[pair[0].name],
88
+ side === SwapSide.SELL
89
+ ? pair[0].sellAmount
90
+ : pair[0].buyAmount,
95
91
  side,
96
92
  dexKey,
97
93
  contractMethod,
@@ -104,12 +100,14 @@ function testForNetwork(
104
100
  sleepMs,
105
101
  );
106
102
  });
107
- it(`${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
103
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
108
104
  await testE2E(
109
- tokens[tokenASymbol],
110
- tokens[nativeTokenSymbol],
111
- holders[tokenASymbol],
112
- side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
105
+ tokens[pair[1].name],
106
+ tokens[pair[0].name],
107
+ holders[pair[1].name],
108
+ side === SwapSide.SELL
109
+ ? pair[1].sellAmount
110
+ : pair[1].buyAmount,
113
111
  side,
114
112
  dexKey,
115
113
  contractMethod,
@@ -122,37 +120,12 @@ function testForNetwork(
122
120
  sleepMs,
123
121
  );
124
122
  });
125
- }
123
+ });
126
124
  });
127
125
  });
128
126
  }),
129
127
  );
130
128
  });
131
- }
132
-
133
- describe('SwaapV2 E2E', () => {
134
- const dexKey = 'SwaapV2';
135
-
136
- describe('Polygon', () => {
137
- const network = Network.POLYGON;
138
-
139
- const tokenASymbol: string = 'USDC';
140
- const tokenBSymbol: string = 'WETH';
141
-
142
- const tokenAAmount: string = '100000000';
143
- const tokenBAmount: string = '100000000000000000';
144
- const nativeTokenAmount = '1000000000000000000';
145
-
146
- testForNetwork(
147
- network,
148
- dexKey,
149
- tokenASymbol,
150
- tokenBSymbol,
151
- tokenAAmount,
152
- tokenBAmount,
153
- nativeTokenAmount,
154
- );
155
- });
156
129
 
157
130
  // Arbitrum will be supported later
158
131
  // describe('Arbitrum', () => {
@@ -310,20 +310,20 @@ export class SwaapV2 extends SimpleExchange implements IDex<SwaapV2Data> {
310
310
  return null;
311
311
  }
312
312
 
313
- const poolIdentifier = getPoolIdentifier(
314
- this.dexKey,
315
- normalizedSrcToken.address,
316
- normalizedDestToken.address,
317
- );
318
-
319
313
  const levelEntries: SwaapV2PriceLevels[] = Object.keys(levels)
320
- .map((pair: string) => {
321
- if (pools.includes(poolIdentifier)) {
322
- return levels[pair];
314
+ .filter((pair) => {
315
+ const { base, quote } = levels[pair];
316
+ if(
317
+ pools.includes(getPoolIdentifier(this.dexKey, quote, base))
318
+ || pools.includes(getPoolIdentifier(this.dexKey, base, quote))
319
+ ) {
320
+ return true;
323
321
  }
324
- return undefined;
325
- })
326
- .filter((o): o is SwaapV2PriceLevels => o !== undefined);
322
+
323
+ return false;
324
+ }).map((pair) => {
325
+ return levels[pair];
326
+ });
327
327
 
328
328
  const unitVolume = getBigNumberPow(
329
329
  (side === SwapSide.SELL ? normalizedSrcToken : normalizedDestToken)
@@ -840,7 +840,7 @@ export class SwaapV2 extends SimpleExchange implements IDex<SwaapV2Data> {
840
840
  }
841
841
 
842
842
  getTokenFromAddress(address: Address): Token {
843
- return this.tokensMap[address];
843
+ return this.tokensMap[normalizeTokenAddress(address)];
844
844
  }
845
845
 
846
846
  releaseResources(): void {
@@ -38,7 +38,7 @@ export const getPoolIdentifier = (
38
38
  };
39
39
 
40
40
  export const normalizeTokenAddress = (address: string): string => {
41
- return address.toLowerCase() === ETHER_ADDRESS
41
+ return address.toLowerCase() === ETHER_ADDRESS.toLowerCase()
42
42
  ? NULL_ADDRESS
43
43
  : address.toLowerCase();
44
44
  };
@@ -50,7 +50,8 @@ export function encodeFeePercent(
50
50
  if (positiveSlippageToUser) fee |= OneShift14;
51
51
 
52
52
  // Set 15th bit to take fee from srcToken
53
- if (side === SwapSide.BUY) fee |= OneShift15;
53
+ if (side === SwapSide.BUY && !isNoFeeAndPositiveSlippageToPartner)
54
+ fee |= OneShift15;
54
55
 
55
56
  // Bits 248 - 255 is used for version;
56
57
  // Set version = 1;
@@ -1,4 +0,0 @@
1
- import { DexParams } from './types';
2
- import { DexConfigMap, AdapterMappings } from '../../types';
3
- export declare const TestDexConfig: DexConfigMap<DexParams>;
4
- export declare const Adapters: Record<number, AdapterMappings>;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Adapters = exports.TestDexConfig = void 0;
4
- const constants_1 = require("../../constants");
5
- exports.TestDexConfig = {
6
- TestDex: {
7
- // TODO: complete me!
8
- },
9
- };
10
- exports.Adapters = {
11
- // TODO: add adapters for each chain
12
- // This is an example to copy
13
- [constants_1.Network.MAINNET]: { [constants_1.SwapSide.SELL]: [{ name: '', index: 0 }] },
14
- };
15
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/test-dex/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,aAAa,GAA4B;IACpD,OAAO,EAAE;IACP,qBAAqB;KACtB;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,oCAAoC;IACpC,6BAA6B;IAC7B,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;CACjE,CAAC"}
@@ -1,39 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { DeepReadonly } from 'ts-essentials';
3
- import { Log, Logger } from '../../types';
4
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
- import { IDexHelper } from '../../dex-helper/idex-helper';
6
- import { PoolState } from './types';
7
- export declare class TestDexEventPool extends StatefulEventSubscriber<PoolState> {
8
- protected parentName: string;
9
- protected network: number;
10
- protected dexHelper: IDexHelper;
11
- protected testDexIface: Interface;
12
- handlers: {
13
- [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>) => DeepReadonly<PoolState> | null;
14
- };
15
- logDecoder: (log: Log) => any;
16
- addressesSubscribed: string[];
17
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, testDexIface?: Interface);
18
- /**
19
- * The function is called every time any of the subscribed
20
- * addresses release log. The function accepts the current
21
- * state, updates the state according to the log, and returns
22
- * the updated state.
23
- * @param state - Current state of event subscriber
24
- * @param log - Log released by one of the subscribed addresses
25
- * @returns Updates state of the event subscriber after the log
26
- */
27
- protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
28
- /**
29
- * The function generates state using on-chain calls. This
30
- * function is called to regenerate state if the event based
31
- * system fails to fetch events and the local state is no
32
- * more correct.
33
- * @param blockNumber - Blocknumber for which the state should
34
- * should be generated
35
- * @returns state of the event subscriber at blocknumber
36
- */
37
- generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
38
- handleMyEvent(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
39
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestDexEventPool = void 0;
4
- const abi_1 = require("@ethersproject/abi");
5
- const utils_1 = require("../../utils");
6
- const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
7
- class TestDexEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
8
- constructor(parentName, network, dexHelper, logger, testDexIface = new abi_1.Interface('' /* TODO: Import and put here TestDex ABI */)) {
9
- super(parentName, logger);
10
- this.parentName = parentName;
11
- this.network = network;
12
- this.dexHelper = dexHelper;
13
- this.testDexIface = testDexIface;
14
- this.handlers = {};
15
- // TODO: make logDecoder decode logs that
16
- this.logDecoder = (log) => this.testDexIface.parseLog(log);
17
- this.addressesSubscribed = [
18
- /* subscribed addresses */
19
- ];
20
- // Add handlers
21
- this.handlers['myEvent'] = this.handleMyEvent.bind(this);
22
- }
23
- /**
24
- * The function is called every time any of the subscribed
25
- * addresses release log. The function accepts the current
26
- * state, updates the state according to the log, and returns
27
- * the updated state.
28
- * @param state - Current state of event subscriber
29
- * @param log - Log released by one of the subscribed addresses
30
- * @returns Updates state of the event subscriber after the log
31
- */
32
- processLog(state, log) {
33
- try {
34
- const event = this.logDecoder(log);
35
- if (event.name in this.handlers) {
36
- return this.handlers[event.name](event, state, log);
37
- }
38
- }
39
- catch (e) {
40
- (0, utils_1.catchParseLogError)(e, this.logger);
41
- }
42
- return null;
43
- }
44
- /**
45
- * The function generates state using on-chain calls. This
46
- * function is called to regenerate state if the event based
47
- * system fails to fetch events and the local state is no
48
- * more correct.
49
- * @param blockNumber - Blocknumber for which the state should
50
- * should be generated
51
- * @returns state of the event subscriber at blocknumber
52
- */
53
- async generateState(blockNumber) {
54
- // TODO: complete me!
55
- return {};
56
- }
57
- // Its just a dummy example
58
- handleMyEvent(event, state, log) {
59
- return null;
60
- }
61
- }
62
- exports.TestDexEventPool = TestDexEventPool;
63
- //# sourceMappingURL=test-dex-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-dex-pool.js","sourceRoot":"","sources":["../../../src/dex/test-dex/test-dex-pool.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAG/C,uCAAiD;AACjD,+EAA0E;AAI1E,MAAa,gBAAiB,SAAQ,mDAAkC;IAWtE,YACY,UAAkB,EAClB,OAAe,EACf,SAAqB,EAC/B,MAAc,EACJ,eAAe,IAAI,eAAS,CACpC,EAAE,CAAC,2CAA2C,CAC/C;QAED,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QARhB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QAErB,iBAAY,GAAZ,YAAY,CAErB;QAjBH,aAAQ,GAIJ,EAAE,CAAC;QAiBL,yCAAyC;QACzC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,mBAAmB,GAAG;QACzB,0BAA0B;SAC3B,CAAC;QAEF,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;OAQG;IACO,UAAU,CAClB,KAA8B,EAC9B,GAAkB;QAElB,IAAI;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACrD;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,qBAAqB;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2BAA2B;IAC3B,aAAa,CACX,KAAU,EACV,KAA8B,EAC9B,GAAkB;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA/ED,4CA+EC"}
@@ -1,37 +0,0 @@
1
- import { AsyncOrSync } from 'ts-essentials';
2
- import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
3
- import { SwapSide, Network } from '../../constants';
4
- import { IDex } from '../../dex/idex';
5
- import { IDexHelper } from '../../dex-helper/idex-helper';
6
- import { TestDexData } from './types';
7
- import { SimpleExchange } from '../simple-exchange';
8
- import { TestDexEventPool } from './test-dex-pool';
9
- export declare class TestDex extends SimpleExchange implements IDex<TestDexData> {
10
- readonly network: Network;
11
- readonly dexKey: string;
12
- readonly dexHelper: IDexHelper;
13
- protected adapters: import("../../types").AdapterMappings;
14
- protected eventPools: TestDexEventPool;
15
- readonly hasConstantPriceLargeAmounts = false;
16
- readonly needWrapNative = true;
17
- readonly isFeeOnTransferSupported = false;
18
- static dexKeysWithNetwork: {
19
- key: string;
20
- networks: Network[];
21
- }[];
22
- logger: Logger;
23
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings);
24
- initializePricing(blockNumber: number): Promise<void>;
25
- getAdapters(side: SwapSide): {
26
- name: string;
27
- index: number;
28
- }[] | null;
29
- getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
30
- getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<TestDexData>>;
31
- getCalldataGasCost(poolPrices: PoolPrices<TestDexData>): number | number[];
32
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: TestDexData, side: SwapSide): AdapterExchangeParam;
33
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: TestDexData, side: SwapSide): Promise<SimpleExchangeParam>;
34
- updatePoolState(): Promise<void>;
35
- getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
36
- releaseResources(): AsyncOrSync<void>;
37
- }
@@ -1,126 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.TestDex = void 0;
27
- const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
28
- const utils_1 = require("../../utils");
29
- const simple_exchange_1 = require("../simple-exchange");
30
- const config_1 = require("./config");
31
- const test_dex_pool_1 = require("./test-dex-pool");
32
- class TestDex extends simple_exchange_1.SimpleExchange {
33
- constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}) {
34
- super(dexHelper, dexKey);
35
- this.network = network;
36
- this.dexKey = dexKey;
37
- this.dexHelper = dexHelper;
38
- this.adapters = adapters;
39
- this.hasConstantPriceLargeAmounts = false;
40
- // TODO: set true here if protocols works only with wrapped asset
41
- this.needWrapNative = true;
42
- this.isFeeOnTransferSupported = false;
43
- this.logger = dexHelper.getLogger(dexKey);
44
- this.eventPools = new test_dex_pool_1.TestDexEventPool(dexKey, network, dexHelper, this.logger);
45
- }
46
- // Initialize pricing is called once in the start of
47
- // pricing service. It is intended to setup the integration
48
- // for pricing requests. It is optional for a DEX to
49
- // implement this function
50
- async initializePricing(blockNumber) {
51
- // TODO: complete me!
52
- }
53
- // Returns the list of contract adapters (name and index)
54
- // for a buy/sell. Return null if there are no adapters.
55
- getAdapters(side) {
56
- return this.adapters[side] ? this.adapters[side] : null;
57
- }
58
- // Returns list of pool identifiers that can be used
59
- // for a given swap. poolIdentifiers must be unique
60
- // across DEXes. It is recommended to use
61
- // ${dexKey}_${poolAddress} as a poolIdentifier
62
- async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
63
- // TODO: complete me!
64
- return [];
65
- }
66
- // Returns pool prices for amounts.
67
- // If limitPools is defined only pools in limitPools
68
- // should be used. If limitPools is undefined then
69
- // any pools can be used.
70
- async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
71
- // TODO: complete me!
72
- return null;
73
- }
74
- // Returns estimated gas cost of calldata for this DEX in multiSwap
75
- getCalldataGasCost(poolPrices) {
76
- // TODO: update if there is any payload in getAdapterParam
77
- return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
78
- }
79
- // Encode params required by the exchange adapter
80
- // Used for multiSwap, buy & megaSwap
81
- // Hint: abiCoder.encodeParameter() could be useful
82
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
83
- // TODO: complete me!
84
- const { exchange } = data;
85
- // Encode here the payload for adapter
86
- const payload = '';
87
- return {
88
- targetExchange: exchange,
89
- payload,
90
- networkFee: '0',
91
- };
92
- }
93
- // Encode call data used by simpleSwap like routers
94
- // Used for simpleSwap & simpleBuy
95
- // Hint: this.buildSimpleParamWithoutWETHConversion
96
- // could be useful
97
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
98
- // TODO: complete me!
99
- const { exchange } = data;
100
- // Encode here the transaction arguments
101
- const swapData = '';
102
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
103
- }
104
- // This is called once before getTopPoolsForToken is
105
- // called for multiple tokens. This can be helpful to
106
- // update common state required for calculating
107
- // getTopPoolsForToken. It is optional for a DEX
108
- // to implement this
109
- async updatePoolState() {
110
- // TODO: complete me!
111
- }
112
- // Returns list of top pools based on liquidity. Max
113
- // limit number pools should be returned.
114
- async getTopPoolsForToken(tokenAddress, limit) {
115
- //TODO: complete me!
116
- return [];
117
- }
118
- // This is optional function in case if your implementation has acquired any resources
119
- // you need to release for graceful shutdown. For example, it may be any interval timer
120
- releaseResources() {
121
- // TODO: complete me!
122
- }
123
- }
124
- exports.TestDex = TestDex;
125
- TestDex.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.TestDexConfig);
126
- //# sourceMappingURL=test-dex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-dex.js","sourceRoot":"","sources":["../../../src/dex/test-dex/test-dex.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Address } from '../../types';
2
- export declare type PoolState = {};
3
- export declare type TestDexData = {
4
- exchange: Address;
5
- };
6
- export declare type DexParams = {};
@@ -1,16 +0,0 @@
1
- import { PoolState, TokenState } from './types';
2
- import { Address, Logger } from '../../types';
3
- export declare class WooFiV2Math {
4
- private readonly logger;
5
- private readonly _quoteToken;
6
- state: PoolState;
7
- constructor(logger: Logger, _quoteToken: Address);
8
- query(fromToken: Address, toToken: Address, fromAmounts: bigint[]): bigint[] | null;
9
- _querySellBase(baseToken: Address, baseAmounts: bigint[]): bigint[] | null;
10
- _querySellQuote(baseToken: Address, quoteAmounts: bigint[]): bigint[] | null;
11
- _queryBaseToBase(baseToken1: Address, baseToken2: Address, base1Amounts: bigint[]): bigint[] | null;
12
- protected _takeFeeAndCheckReserve(amounts: bigint[], feeRate: bigint): bigint[];
13
- protected _takeFee(amounts: bigint[], feeRate: bigint): bigint[];
14
- protected _calcQuoteAmountSellBase(baseToken: Address, baseAmounts: bigint[], state: TokenState): bigint[];
15
- protected _calcBaseAmountSellQuote(baseToken: string, quoteAmounts: bigint[], state: TokenState): bigint[];
16
- }
@@ -1,137 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WooFiV2Math = void 0;
4
- const bigint_constants_1 = require("../../bigint-constants");
5
- const constants_1 = require("./constants");
6
- function handleMathError(e, logger) {
7
- if (e instanceof Error && e.message.startsWith('WooGuardian:')) {
8
- logger.warn('WooFi Guardian check Error:', e);
9
- return;
10
- }
11
- logger.error('Unexpected error in WooFi math:', e);
12
- }
13
- function max(a, b) {
14
- return a > b ? a : b;
15
- }
16
- class WooFiV2Math {
17
- constructor(logger, _quoteToken) {
18
- this.logger = logger;
19
- this._quoteToken = _quoteToken;
20
- this.state = constants_1.NULL_STATE;
21
- }
22
- query(fromToken, toToken, fromAmounts) {
23
- try {
24
- if (fromToken === this._quoteToken) {
25
- return this._querySellQuote(toToken, fromAmounts);
26
- }
27
- else if (toToken === this._quoteToken) {
28
- return this._querySellBase(fromToken, fromAmounts);
29
- }
30
- else {
31
- return this._queryBaseToBase(fromToken, toToken, fromAmounts);
32
- }
33
- }
34
- catch (e) {
35
- handleMathError(e, this.logger);
36
- return null;
37
- }
38
- }
39
- _querySellBase(baseToken, baseAmounts) {
40
- try {
41
- const _state = this.state.tokenStates[baseToken];
42
- let quoteAmounts = this._calcQuoteAmountSellBase(baseToken, baseAmounts, _state);
43
- quoteAmounts = quoteAmounts.map(amount => {
44
- return amount <= this.state.tokenInfos[this._quoteToken].reserve
45
- ? amount
46
- : 0n;
47
- });
48
- const feeRate = this.state.tokenInfos[baseToken].feeRate;
49
- return this._takeFee(quoteAmounts, feeRate);
50
- }
51
- catch (e) {
52
- handleMathError(e, this.logger);
53
- return null;
54
- }
55
- }
56
- _querySellQuote(baseToken, quoteAmounts) {
57
- try {
58
- const feeRate = this.state.tokenInfos[baseToken].feeRate;
59
- quoteAmounts = this._takeFee(quoteAmounts, feeRate);
60
- const _state = this.state.tokenStates[baseToken];
61
- let toAmounts = this._calcBaseAmountSellQuote(baseToken, quoteAmounts, _state);
62
- const baseReserve = this.state.tokenInfos[baseToken].reserve;
63
- return toAmounts.map(amount => {
64
- return amount >= baseReserve ? amount : 0n;
65
- });
66
- }
67
- catch (e) {
68
- handleMathError(e, this.logger);
69
- return null;
70
- }
71
- }
72
- _queryBaseToBase(baseToken1, baseToken2, base1Amounts) {
73
- try {
74
- let state1 = this.state.tokenStates[baseToken1];
75
- let state2 = this.state.tokenStates[baseToken1];
76
- const feeRate1 = this.state.tokenInfos[baseToken1].feeRate;
77
- const feeRate2 = this.state.tokenInfos[baseToken2].feeRate;
78
- const spread = max(state1.spread, state2.spread) / 2n;
79
- const feeRate = max(feeRate1, feeRate2);
80
- state1.spread = spread;
81
- state2.spread = spread;
82
- let quoteAmounts = this._calcQuoteAmountSellBase(baseToken1, base1Amounts, state1);
83
- quoteAmounts = this._takeFeeAndCheckReserve(quoteAmounts, feeRate);
84
- let toAmounts = this._calcBaseAmountSellQuote(baseToken2, quoteAmounts, state2);
85
- return toAmounts.map(toAmount => {
86
- return toAmount <= this.state.tokenInfos[baseToken2].reserve
87
- ? toAmount
88
- : 0n;
89
- });
90
- }
91
- catch (e) {
92
- handleMathError(e, this.logger);
93
- return null;
94
- }
95
- }
96
- _takeFeeAndCheckReserve(amounts, feeRate) {
97
- return amounts.map(amount => {
98
- if (amount === 0n)
99
- return 0n;
100
- const lpFee = (amount * feeRate) / bigint_constants_1.BI_POWS[5];
101
- const reserve = this.state.tokenInfos[this._quoteToken].reserve;
102
- return lpFee > reserve ? 0n : amount - lpFee;
103
- });
104
- }
105
- _takeFee(amounts, feeRate) {
106
- return amounts.map(amount => {
107
- const lpFee = (amount * feeRate) / bigint_constants_1.BI_POWS[5];
108
- return amount === 0n ? 0n : amount - lpFee;
109
- });
110
- }
111
- _calcQuoteAmountSellBase(baseToken, baseAmounts, state) {
112
- let { priceDec, quoteDec, baseDec } = this.state.decimals[baseToken];
113
- return baseAmounts.map(baseAmount => {
114
- if (baseAmount === 0n)
115
- return 0n;
116
- const coef = bigint_constants_1.BI_POWS[18] -
117
- (state.coeff * baseAmount * state.price) / baseDec / priceDec -
118
- state.spread;
119
- return ((((baseAmount * quoteDec * state.price) / priceDec) * coef) /
120
- bigint_constants_1.BI_POWS[18] /
121
- baseDec);
122
- });
123
- }
124
- _calcBaseAmountSellQuote(baseToken, quoteAmounts, state) {
125
- let { priceDec, quoteDec, baseDec } = this.state.decimals[baseToken];
126
- return quoteAmounts.map(quoteAmount => {
127
- if (quoteAmount === 0n)
128
- return 0n;
129
- const coef = bigint_constants_1.BI_POWS[18] - (quoteAmount * state.coeff) / quoteDec - state.spread;
130
- return ((((quoteAmount * baseDec * priceDec) / state.price) * coef) /
131
- bigint_constants_1.BI_POWS[18] /
132
- quoteDec);
133
- });
134
- }
135
- }
136
- exports.WooFiV2Math = WooFiV2Math;
137
- //# sourceMappingURL=woo-fi-math.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"woo-fi-math.js","sourceRoot":"","sources":["../../../src/dex/woo-fi-v2/woo-fi-math.ts"],"names":[],"mappings":";;;AAEA,6DAAiD;AAEjD,2CAAyC;AAEzC,SAAS,eAAe,CAAC,CAAU,EAAE,MAAc;IACjD,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;QAC9D,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO;KACR;IACD,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,MAAa,WAAW;IAGtB,YACmB,MAAc,EACd,WAAoB;QADpB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAS;QAJvC,UAAK,GAAc,sBAAU,CAAC;IAK3B,CAAC;IAEJ,KAAK,CACH,SAAkB,EAClB,OAAgB,EAChB,WAAqB;QAErB,IAAI;YACF,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE;gBAClC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;aACnD;iBAAM,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;gBACvC,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aACpD;iBAAM;gBACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;aAC/D;SACF;QAAC,OAAO,CAAC,EAAE;YACV,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,cAAc,CAAC,SAAkB,EAAE,WAAqB;QACtD,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAC9C,SAAS,EACT,WAAW,EACX,MAAM,CACP,CAAC;YAEF,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACvC,OAAO,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO;oBAC9D,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;YACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,eAAe,CAAC,SAAkB,EAAE,YAAsB;QACxD,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;YACzD,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAC3C,SAAS,EACT,YAAY,EACZ,MAAM,CACP,CAAC;YAEF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;YAC7D,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC5B,OAAO,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,gBAAgB,CACd,UAAmB,EACnB,UAAmB,EACnB,YAAsB;QAEtB,IAAI;YACF,IAAI,MAAM,GAAe,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC5D,IAAI,MAAM,GAAe,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAE3D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAExC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YAEvB,IAAI,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAC9C,UAAU,EACV,YAAY,EACZ,MAAM,CACP,CAAC;YACF,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAEnE,IAAI,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAC3C,UAAU,EACV,YAAY,EACZ,MAAM,CACP,CAAC;YAEF,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC9B,OAAO,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO;oBAC1D,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAES,uBAAuB,CAC/B,OAAiB,EACjB,OAAe;QAEf,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1B,IAAI,MAAM,KAAK,EAAE;gBAAE,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,0BAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;YAChE,OAAO,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAES,QAAQ,CAAC,OAAiB,EAAE,OAAe;QACnD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,0BAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAES,wBAAwB,CAChC,SAAkB,EAClB,WAAqB,EACrB,KAAiB;QAEjB,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAErE,OAAO,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAClC,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEjC,MAAM,IAAI,GACR,0BAAO,CAAC,EAAE,CAAC;gBACX,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ;gBAC7D,KAAK,CAAC,MAAM,CAAC;YAEf,OAAO,CACL,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;gBAC3D,0BAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAES,wBAAwB,CAChC,SAAiB,EACjB,YAAsB,EACtB,KAAiB;QAEjB,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAErE,OAAO,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACpC,IAAI,WAAW,KAAK,EAAE;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,IAAI,GACR,0BAAO,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YAEtE,OAAO,CACL,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBAC3D,0BAAO,CAAC,EAAE,CAAC;gBACX,QAAQ,CACT,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhLD,kCAgLC"}
File without changes