@paraswap/dex-lib 4.7.24 → 4.7.25-uni-v2-rpc-optimisation.0

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 (129) hide show
  1. package/build/abi/BProtocol.json +1155 -0
  2. package/build/abi/Jarvis.json +1172 -0
  3. package/build/abi/MStableAsset.json +1545 -0
  4. package/build/abi/OneInchLp.json +1304 -0
  5. package/build/abi/Onebit.json +736 -0
  6. package/build/abi/Shell.json +1294 -0
  7. package/build/abi/TraderJoeV2Router.json +50 -0
  8. package/build/abi/wUSDM.json +757 -0
  9. package/build/abi/zrx.v2.json +1967 -0
  10. package/build/abi/zrx.v3.json +3454 -0
  11. package/build/abi/zrx.v4.json +2193 -0
  12. package/build/dex/OneInchLp.d.ts +24 -0
  13. package/build/dex/OneInchLp.js +43 -0
  14. package/build/dex/OneInchLp.js.map +1 -0
  15. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  16. package/build/dex/bProtocol/bProtocol.js +56 -0
  17. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  18. package/build/dex/bProtocol/types.d.ts +11 -0
  19. package/build/dex/bProtocol/types.js +8 -0
  20. package/build/dex/bProtocol/types.js.map +1 -0
  21. package/build/dex/idle-dao/idle-dao.d.ts +0 -1
  22. package/build/dex/idle-dao/idle-dao.js +11 -23
  23. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  24. package/build/dex/index.js +0 -2
  25. package/build/dex/index.js.map +1 -1
  26. package/build/dex/infusion/infusion-stable-pool.d.ts +1 -1
  27. package/build/dex/infusion/infusion-stable-pool.js +1 -1
  28. package/build/dex/infusion/infusion-stable-pool.js.map +1 -1
  29. package/build/dex/infusion/infusion.d.ts +3 -3
  30. package/build/dex/infusion/infusion.js +104 -65
  31. package/build/dex/infusion/infusion.js.map +1 -1
  32. package/build/dex/jarvis.d.ts +56 -0
  33. package/build/dex/jarvis.js +163 -0
  34. package/build/dex/jarvis.js.map +1 -0
  35. package/build/dex/mStable.d.ts +44 -0
  36. package/build/dex/mStable.js +75 -0
  37. package/build/dex/mStable.js.map +1 -0
  38. package/build/dex/maker-psm/maker-psm.d.ts +41 -4
  39. package/build/dex/maker-psm/maker-psm.js +143 -40
  40. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  41. package/build/dex/onebit/onebit.d.ts +16 -0
  42. package/build/dex/onebit/onebit.js +61 -0
  43. package/build/dex/onebit/onebit.js.map +1 -0
  44. package/build/dex/onebit/types.d.ts +14 -0
  45. package/build/dex/onebit/types.js +8 -0
  46. package/build/dex/onebit/types.js.map +1 -0
  47. package/build/dex/se-vlr/config.d.ts +3 -0
  48. package/build/dex/se-vlr/config.js +24 -0
  49. package/build/dex/se-vlr/config.js.map +1 -0
  50. package/build/dex/{maker-psm/maker-psm-event-pool.d.ts → se-vlr/se-vlr-pool.d.ts} +11 -15
  51. package/build/dex/se-vlr/se-vlr-pool.js +70 -0
  52. package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
  53. package/build/dex/se-vlr/se-vlr.d.ts +35 -0
  54. package/build/dex/se-vlr/se-vlr.js +131 -0
  55. package/build/dex/se-vlr/se-vlr.js.map +1 -0
  56. package/build/dex/se-vlr/types.d.ts +6 -0
  57. package/build/dex/se-vlr/types.js +3 -0
  58. package/build/dex/se-vlr/types.js.map +1 -0
  59. package/build/dex/shell.d.ts +25 -0
  60. package/build/dex/shell.js +41 -0
  61. package/build/dex/shell.js.map +1 -0
  62. package/build/dex/solidly/config.js +6 -0
  63. package/build/dex/solidly/config.js.map +1 -1
  64. package/build/dex/solidly/forks-override/aerodrome.d.ts +1 -1
  65. package/build/dex/solidly/forks-override/aerodrome.js +14 -18
  66. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -1
  67. package/build/dex/solidly/forks-override/velodromeV2.js +1 -1
  68. package/build/dex/solidly/forks-override/velodromeV2.js.map +1 -1
  69. package/build/dex/solidly/solidly-stable-pool.d.ts +1 -1
  70. package/build/dex/solidly/solidly-stable-pool.js +1 -1
  71. package/build/dex/solidly/solidly-stable-pool.js.map +1 -1
  72. package/build/dex/solidly/solidly.d.ts +5 -4
  73. package/build/dex/solidly/solidly.js +112 -72
  74. package/build/dex/solidly/solidly.js.map +1 -1
  75. package/build/dex/solidly/types.d.ts +3 -0
  76. package/build/dex/trader-joe-v2.d.ts +40 -0
  77. package/build/dex/trader-joe-v2.js +74 -0
  78. package/build/dex/trader-joe-v2.js.map +1 -0
  79. package/build/dex/uniswap-v2/uniswap-v2.d.ts +6 -4
  80. package/build/dex/uniswap-v2/uniswap-v2.js +32 -10
  81. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  82. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  83. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  84. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  85. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -6
  86. package/build/dex/uniswap-v4/contract-math/Position.js +0 -29
  87. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  88. package/build/dex/usual-bond/config.d.ts +3 -0
  89. package/build/dex/usual-bond/config.js +13 -0
  90. package/build/dex/usual-bond/config.js.map +1 -0
  91. package/build/dex/usual-bond/types.d.ts +7 -0
  92. package/build/dex/usual-bond/types.js +3 -0
  93. package/build/dex/usual-bond/types.js.map +1 -0
  94. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  95. package/build/dex/usual-bond/usual-bond.js +176 -0
  96. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  97. package/build/dex/wusdm/config.d.ts +3 -0
  98. package/build/dex/wusdm/config.js +43 -0
  99. package/build/dex/wusdm/config.js.map +1 -0
  100. package/build/dex/wusdm/constants.d.ts +2 -0
  101. package/build/dex/wusdm/constants.js +6 -0
  102. package/build/dex/wusdm/constants.js.map +1 -0
  103. package/build/dex/wusdm/types.d.ts +18 -0
  104. package/build/dex/wusdm/types.js +11 -0
  105. package/build/dex/wusdm/types.js.map +1 -0
  106. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  107. package/build/dex/wusdm/wusdm-pool.js +74 -0
  108. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  109. package/build/dex/wusdm/wusdm.d.ts +46 -0
  110. package/build/dex/wusdm/wusdm.js +243 -0
  111. package/build/dex/wusdm/wusdm.js.map +1 -0
  112. package/build/dex/zerox/config.d.ts +2 -0
  113. package/build/dex/zerox/config.js +33 -0
  114. package/build/dex/zerox/config.js.map +1 -0
  115. package/build/dex/zerox/index.d.ts +22 -0
  116. package/build/dex/zerox/index.js +225 -0
  117. package/build/dex/zerox/index.js.map +1 -0
  118. package/build/dex/zerox/order.d.ts +88 -0
  119. package/build/dex/zerox/order.js +53 -0
  120. package/build/dex/zerox/order.js.map +1 -0
  121. package/build/dex/zerox/types.d.ts +73 -0
  122. package/build/dex/zerox/types.js +21 -0
  123. package/build/dex/zerox/types.js.map +1 -0
  124. package/package.json +1 -1
  125. package/build/dex/maker-psm/maker-psm-event-pool.js +0 -132
  126. package/build/dex/maker-psm/maker-psm-event-pool.js.map +0 -1
  127. package/build/executor/Executor02BytecodeBuilderMultiRoute.d.ts +0 -101
  128. package/build/executor/Executor02BytecodeBuilderMultiRoute.js +0 -877
  129. package/build/executor/Executor02BytecodeBuilderMultiRoute.js.map +0 -1
@@ -1,25 +1,20 @@
1
+ import { Interface } from '@ethersproject/abi';
1
2
  import { DeepReadonly } from 'ts-essentials';
2
- import { Address, Log, Logger } from '../../types';
3
+ import { Log, Logger } from '../../types';
3
4
  import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
4
5
  import { IDexHelper } from '../../dex-helper/idex-helper';
5
- import { PoolState, PoolConfig } from './types';
6
- export declare class MakerPsmEventPool extends StatefulEventSubscriber<PoolState> {
6
+ import { PoolState } from './types';
7
+ export declare class SeVlrEventPool extends StatefulEventSubscriber<PoolState> {
8
+ readonly parentName: string;
7
9
  protected network: number;
8
10
  protected dexHelper: IDexHelper;
9
- poolConfig: PoolConfig;
10
- protected vatAddress: Address;
11
+ protected seVlrIface: Interface;
11
12
  handlers: {
12
- [event: string]: (event: any, pool: PoolState, log: Log) => PoolState;
13
+ [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>) => DeepReadonly<PoolState> | null;
13
14
  };
14
15
  logDecoder: (log: Log) => any;
15
- to18ConversionFactor: bigint;
16
- bytes32Tout: string;
17
- bytes32Tin: string;
18
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, poolConfig: PoolConfig, vatAddress: Address);
19
- handleFile(event: any, pool: PoolState, log: Log): PoolState;
20
- handleSellGem(event: any, pool: PoolState, log: Log): PoolState;
21
- handleBuyGem(event: any, pool: PoolState, log: Log): PoolState;
22
- getIdentifier(): string;
16
+ addressesSubscribed: string[];
17
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, seVlrIface?: Interface);
23
18
  /**
24
19
  * The function is called every time any of the subscribed
25
20
  * addresses release log. The function accepts the current
@@ -39,5 +34,6 @@ export declare class MakerPsmEventPool extends StatefulEventSubscriber<PoolState
39
34
  * should be generated
40
35
  * @returns state of the event subscriber at blocknumber
41
36
  */
42
- generateState(blockNumber: number): Promise<Readonly<PoolState>>;
37
+ generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
38
+ handleMyEvent(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
43
39
  }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SeVlrEventPool = 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 SeVlrEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
8
+ parentName;
9
+ network;
10
+ dexHelper;
11
+ seVlrIface;
12
+ handlers = {};
13
+ logDecoder;
14
+ addressesSubscribed;
15
+ constructor(parentName, network, dexHelper, logger, seVlrIface = new abi_1.Interface('' /* TODO: Import and put here SeVlr ABI */)) {
16
+ // TODO: Add pool name
17
+ super(parentName, 'POOL_NAME', dexHelper, logger);
18
+ this.parentName = parentName;
19
+ this.network = network;
20
+ this.dexHelper = dexHelper;
21
+ this.seVlrIface = seVlrIface;
22
+ // TODO: make logDecoder decode logs that
23
+ this.logDecoder = (log) => this.seVlrIface.parseLog(log);
24
+ this.addressesSubscribed = [
25
+ /* subscribed addresses */
26
+ ];
27
+ // Add handlers
28
+ this.handlers['myEvent'] = this.handleMyEvent.bind(this);
29
+ }
30
+ /**
31
+ * The function is called every time any of the subscribed
32
+ * addresses release log. The function accepts the current
33
+ * state, updates the state according to the log, and returns
34
+ * the updated state.
35
+ * @param state - Current state of event subscriber
36
+ * @param log - Log released by one of the subscribed addresses
37
+ * @returns Updates state of the event subscriber after the log
38
+ */
39
+ processLog(state, log) {
40
+ try {
41
+ const event = this.logDecoder(log);
42
+ if (event.name in this.handlers) {
43
+ return this.handlers[event.name](event, state, log);
44
+ }
45
+ }
46
+ catch (e) {
47
+ (0, utils_1.catchParseLogError)(e, this.logger);
48
+ }
49
+ return null;
50
+ }
51
+ /**
52
+ * The function generates state using on-chain calls. This
53
+ * function is called to regenerate state if the event based
54
+ * system fails to fetch events and the local state is no
55
+ * more correct.
56
+ * @param blockNumber - Blocknumber for which the state should
57
+ * should be generated
58
+ * @returns state of the event subscriber at blocknumber
59
+ */
60
+ async generateState(blockNumber) {
61
+ // TODO: complete me!
62
+ return {};
63
+ }
64
+ // Its just a dummy example
65
+ handleMyEvent(event, state, log) {
66
+ return null;
67
+ }
68
+ }
69
+ exports.SeVlrEventPool = SeVlrEventPool;
70
+ //# sourceMappingURL=se-vlr-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"se-vlr-pool.js","sourceRoot":"","sources":["../../../src/dex/se-vlr/se-vlr-pool.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAG/C,uCAAiD;AACjD,+EAA0E;AAI1E,MAAa,cAAe,SAAQ,mDAAkC;IAczD;IACC;IACA;IAEA;IAjBZ,QAAQ,GAMJ,EAAE,CAAC;IAEP,UAAU,CAAoB;IAE9B,mBAAmB,CAAW;IAE9B,YACW,UAAkB,EACjB,OAAe,EACf,SAAqB,EAC/B,MAAc,EACJ,aAAa,IAAI,eAAS,CAClC,EAAE,CAAC,yCAAyC,CAC7C;QAED,sBAAsB;QACtB,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QATzC,eAAU,GAAV,UAAU,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QAErB,eAAU,GAAV,UAAU,CAEnB;QAKD,yCAAyC;QACzC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9D,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,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;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;AAlFD,wCAkFC"}
@@ -0,0 +1,35 @@
1
+ import { AsyncOrSync } from 'ts-essentials';
2
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, 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 { SeVlrData } from './types';
7
+ import { SimpleExchange } from '../simple-exchange';
8
+ import { SeVlrEventPool } from './se-vlr-pool';
9
+ export declare class SeVlr extends SimpleExchange implements IDex<SeVlrData> {
10
+ readonly network: Network;
11
+ readonly dexKey: string;
12
+ readonly dexHelper: IDexHelper;
13
+ protected eventPools: SeVlrEventPool;
14
+ readonly hasConstantPriceLargeAmounts = false;
15
+ readonly needWrapNative = true;
16
+ readonly isFeeOnTransferSupported = false;
17
+ static dexKeysWithNetwork: {
18
+ key: string;
19
+ networks: Network[];
20
+ }[];
21
+ logger: Logger;
22
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
23
+ initializePricing(blockNumber: number): Promise<void>;
24
+ getAdapters(side: SwapSide): {
25
+ name: string;
26
+ index: number;
27
+ }[] | null;
28
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
29
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<SeVlrData>>;
30
+ getCalldataGasCost(poolPrices: PoolPrices<SeVlrData>): number | number[];
31
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: SeVlrData, side: SwapSide): AdapterExchangeParam;
32
+ updatePoolState(): Promise<void>;
33
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
34
+ releaseResources(): AsyncOrSync<void>;
35
+ }
@@ -0,0 +1,131 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SeVlr = void 0;
37
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
38
+ const utils_1 = require("../../utils");
39
+ const simple_exchange_1 = require("../simple-exchange");
40
+ const config_1 = require("./config");
41
+ const se_vlr_pool_1 = require("./se-vlr-pool");
42
+ class SeVlr extends simple_exchange_1.SimpleExchange {
43
+ network;
44
+ dexKey;
45
+ dexHelper;
46
+ eventPools;
47
+ hasConstantPriceLargeAmounts = false;
48
+ // TODO: set true here if protocols works only with wrapped asset
49
+ needWrapNative = true;
50
+ isFeeOnTransferSupported = false;
51
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.SeVlrConfig);
52
+ logger;
53
+ constructor(network, dexKey, dexHelper) {
54
+ super(dexHelper, dexKey);
55
+ this.network = network;
56
+ this.dexKey = dexKey;
57
+ this.dexHelper = dexHelper;
58
+ this.logger = dexHelper.getLogger(dexKey);
59
+ this.eventPools = new se_vlr_pool_1.SeVlrEventPool(dexKey, network, dexHelper, this.logger);
60
+ }
61
+ // Initialize pricing is called once in the start of
62
+ // pricing service. It is intended to setup the integration
63
+ // for pricing requests. It is optional for a DEX to
64
+ // implement this function
65
+ async initializePricing(blockNumber) {
66
+ // TODO: complete me!
67
+ }
68
+ // Legacy: was only used for V5
69
+ // Returns the list of contract adapters (name and index)
70
+ // for a buy/sell. Return null if there are no adapters.
71
+ getAdapters(side) {
72
+ return null;
73
+ }
74
+ // Returns list of pool identifiers that can be used
75
+ // for a given swap. poolIdentifiers must be unique
76
+ // across DEXes. It is recommended to use
77
+ // ${dexKey}_${poolAddress} as a poolIdentifier
78
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
79
+ // TODO: complete me!
80
+ return [];
81
+ }
82
+ // Returns pool prices for amounts.
83
+ // If limitPools is defined only pools in limitPools
84
+ // should be used. If limitPools is undefined then
85
+ // any pools can be used.
86
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
87
+ // TODO: complete me!
88
+ return null;
89
+ }
90
+ // Returns estimated gas cost of calldata for this DEX in multiSwap
91
+ getCalldataGasCost(poolPrices) {
92
+ // TODO: update if there is any payload in getAdapterParam
93
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
94
+ }
95
+ // Encode params required by the exchange adapter
96
+ // V5: Used for multiSwap, buy & megaSwap
97
+ // V6: Not used, can be left blank
98
+ // Hint: abiCoder.encodeParameter() could be useful
99
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
100
+ // TODO: complete me!
101
+ const { exchange } = data;
102
+ // Encode here the payload for adapter
103
+ const payload = '';
104
+ return {
105
+ targetExchange: exchange,
106
+ payload,
107
+ networkFee: '0',
108
+ };
109
+ }
110
+ // This is called once before getTopPoolsForToken is
111
+ // called for multiple tokens. This can be helpful to
112
+ // update common state required for calculating
113
+ // getTopPoolsForToken. It is optional for a DEX
114
+ // to implement this
115
+ async updatePoolState() {
116
+ // TODO: complete me!
117
+ }
118
+ // Returns list of top pools based on liquidity. Max
119
+ // limit number pools should be returned.
120
+ async getTopPoolsForToken(tokenAddress, limit) {
121
+ //TODO: complete me!
122
+ return [];
123
+ }
124
+ // This is optional function in case if your implementation has acquired any resources
125
+ // you need to release for graceful shutdown. For example, it may be any interval timer
126
+ releaseResources() {
127
+ // TODO: complete me!
128
+ }
129
+ }
130
+ exports.SeVlr = SeVlr;
131
+ //# sourceMappingURL=se-vlr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"se-vlr.js","sourceRoot":"","sources":["../../../src/dex/se-vlr/se-vlr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,2EAA6D;AAC7D,uCAAoD;AAIpD,wDAAoD;AACpD,qCAAuC;AACvC,+CAA+C;AAE/C,MAAa,KAAM,SAAQ,gCAAc;IAe5B;IACA;IACA;IAhBD,UAAU,CAAiB;IAE5B,4BAA4B,GAAG,KAAK,CAAC;IAC9C,iEAAiE;IACxD,cAAc,GAAG,IAAI,CAAC;IAEtB,wBAAwB,GAAG,KAAK,CAAC;IAEnC,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,oBAAW,CAAC,CAAC;IAErC,MAAM,CAAS;IAEf,YACW,OAAgB,EAChB,MAAc,EACd,SAAqB;QAE9B,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAJhB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAY;QAG9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,4BAAc,CAClC,MAAM,EACN,OAAO,EACP,SAAS,EACT,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,2DAA2D;IAC3D,oDAAoD;IACpD,0BAA0B;IAC1B,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,qBAAqB;IACvB,CAAC;IAED,+BAA+B;IAC/B,yDAAyD;IACzD,wDAAwD;IACxD,WAAW,CAAC,IAAc;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,mDAAmD;IACnD,yCAAyC;IACzC,+CAA+C;IAC/C,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,qBAAqB;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mCAAmC;IACnC,oDAAoD;IACpD,kDAAkD;IAClD,yBAAyB;IACzB,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,qBAAqB;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAAC,UAAiC;QAClD,0DAA0D;QAC1D,OAAO,iBAAiB,CAAC,cAAc,CAAC;IAC1C,CAAC;IAED,iDAAiD;IACjD,yCAAyC;IACzC,kCAAkC;IAClC,mDAAmD;IACnD,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAe,EACf,IAAc;QAEd,qBAAqB;QACrB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAE1B,sCAAsC;QACtC,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,OAAO;YACL,cAAc,EAAE,QAAQ;YACxB,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,qDAAqD;IACrD,+CAA+C;IAC/C,gDAAgD;IAChD,oBAAoB;IACpB,KAAK,CAAC,eAAe;QACnB,qBAAqB;IACvB,CAAC;IAED,oDAAoD;IACpD,yCAAyC;IACzC,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,oBAAoB;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,sFAAsF;IACtF,uFAAuF;IACvF,gBAAgB;QACd,qBAAqB;IACvB,CAAC;;AAhIH,sBAiIC"}
@@ -0,0 +1,6 @@
1
+ import { Address } from '../../types';
2
+ export type PoolState = {};
3
+ export type SeVlrData = {
4
+ exchange: Address;
5
+ };
6
+ export type DexParams = {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/se-vlr/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { SwapSide } from '../constants';
3
+ import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
4
+ import { IDexTxBuilder } from './idex';
5
+ import { SimpleExchange } from './simple-exchange';
6
+ import { IDexHelper } from '../dex-helper';
7
+ export declare type ShellData = {
8
+ exchange: Address;
9
+ deadline?: number;
10
+ };
11
+ declare type ShellParam = [
12
+ _origin: string,
13
+ _target: string,
14
+ _originAmount: string,
15
+ _minTargetAmount: string,
16
+ _deadline: string
17
+ ];
18
+ export declare class Shell extends SimpleExchange implements IDexTxBuilder<ShellData, ShellParam> {
19
+ static dexKeys: string[];
20
+ exchangeRouterInterface: Interface;
21
+ constructor(dexHelper: IDexHelper);
22
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: ShellData, side: SwapSide): AdapterExchangeParam;
23
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: ShellData, side: SwapSide): Promise<SimpleExchangeParam>;
24
+ }
25
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Shell = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const simple_exchange_1 = require("./simple-exchange");
9
+ const Shell_json_1 = __importDefault(require("../abi/Shell.json"));
10
+ var ShellFunctions;
11
+ (function (ShellFunctions) {
12
+ ShellFunctions["originSwap"] = "originSwap";
13
+ })(ShellFunctions || (ShellFunctions = {}));
14
+ class Shell extends simple_exchange_1.SimpleExchange {
15
+ constructor(dexHelper) {
16
+ super(dexHelper, 'shell');
17
+ this.exchangeRouterInterface = new abi_1.Interface(Shell_json_1.default);
18
+ }
19
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
20
+ return {
21
+ targetExchange: data.exchange,
22
+ payload: '0x',
23
+ networkFee: '0',
24
+ };
25
+ }
26
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
27
+ const swapFunction = ShellFunctions.originSwap;
28
+ const swapFunctionParams = [
29
+ srcToken,
30
+ destToken,
31
+ srcAmount,
32
+ destAmount,
33
+ (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
34
+ ];
35
+ const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
36
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.exchange);
37
+ }
38
+ }
39
+ exports.Shell = Shell;
40
+ Shell.dexKeys = ['shell'];
41
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/dex/shell.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAI7D,uDAG2B;AAC3B,mEAAyC;AAczC,IAAK,cAEJ;AAFD,WAAK,cAAc;IACjB,2CAAyB,CAAA;AAC3B,CAAC,EAFI,cAAc,KAAd,cAAc,QAElB;AAED,MAAa,KACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,oBAA0B,CAAC,CAAC;IAC3E,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAe,EACf,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAe,EACf,IAAc;QAEd,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC;QAC/C,MAAM,kBAAkB,GAAe;YACrC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,IAAA,uDAAqC,GAAE;SACxC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;;AAxDH,sBAyDC;AArDQ,aAAO,GAAG,CAAC,OAAO,CAAC,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.Adapters = exports.SolidlyConfig = void 0;
4
7
  const constants_1 = require("../../constants");
8
+ const aerodrome_pool_factory_json_1 = __importDefault(require("../../abi/aerodrome/aerodrome-pool-factory.json"));
5
9
  exports.SolidlyConfig = {
6
10
  SolidlyV2: {
7
11
  [constants_1.Network.MAINNET]: {
@@ -59,6 +63,8 @@ exports.SolidlyConfig = {
59
63
  initCode: '0x1a8f01f7eab324003d9388f229ea17991eee9c9d14586f429799f3656790eba0',
60
64
  poolGasCost: 180 * 1000,
61
65
  feeCode: 0,
66
+ factoryAbi: aerodrome_pool_factory_json_1.default,
67
+ getPairMethodName: 'getPool',
62
68
  },
63
69
  },
64
70
  Thena: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/solidly/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/solidly/config.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,5 @@ export declare class Aerodrome extends VelodromeV2 {
10
10
  networks: Network[];
11
11
  }[];
12
12
  constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
13
- findSolidlyPair(from: Token, to: Token, stable: boolean): Promise<import("../types").SolidlyPair | null>;
13
+ findSolidlyPairs(from: Token, to: Token): Promise<import("../types").SolidlyPair[]>;
14
14
  }
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Aerodrome = void 0;
7
7
  const velodromeV2_1 = require("./velodromeV2");
8
- const constants_1 = require("../../../constants");
9
8
  const utils_1 = require("../../../utils");
10
9
  const lodash_1 = __importDefault(require("lodash"));
11
10
  const config_1 = require("../config");
@@ -20,30 +19,27 @@ class Aerodrome extends velodromeV2_1.VelodromeV2 {
20
19
  this.dexHelper = dexHelper;
21
20
  this.factory = new dexHelper.web3Provider.eth.Contract(aerodrome_pool_factory_json_1.default, config_1.SolidlyConfig[dexKey][network].factoryAddress);
22
21
  }
23
- async findSolidlyPair(from, to, stable) {
24
- if (from.address.toLowerCase() === to.address.toLowerCase())
25
- return null;
22
+ async findSolidlyPairs(from, to) {
26
23
  const [token0, token1] = from.address.toLowerCase() < to.address.toLowerCase()
27
24
  ? [from, to]
28
25
  : [to, from];
29
- const typePostfix = this.poolPostfix(stable);
26
+ const typePostfix = this.poolPostfix(true);
30
27
  const key = `${token0.address.toLowerCase()}-${token1.address.toLowerCase()}-${typePostfix}`;
31
28
  let pair = this.pairs[key];
32
29
  if (pair)
33
- return pair;
34
- let exchange = await this.factory.methods
35
- // Solidly has additional boolean parameter "StablePool"
36
- // At first we look for uniswap-like volatile pool
37
- .getPool(token0.address, token1.address, stable)
38
- .call();
39
- if (exchange === constants_1.NULL_ADDRESS) {
40
- pair = { token0, token1, stable };
41
- }
42
- else {
43
- pair = { token0, token1, exchange, stable };
44
- }
30
+ return [pair];
31
+ // let exchange = await this.factory.methods
32
+ // // Solidly has additional boolean parameter "StablePool"
33
+ // // At first we look for uniswap-like volatile pool
34
+ // .getPool(token0.address, token1.address, stable)
35
+ // .call();
36
+ // if (exchange === NULL_ADDRESS) {
37
+ // pair = { token0, token1, stable };
38
+ // } else {
39
+ // pair = { token0, token1, exchange, stable };
40
+ // }
45
41
  this.pairs[key] = pair;
46
- return pair;
42
+ return [pair];
47
43
  }
48
44
  }
49
45
  exports.Aerodrome = Aerodrome;
@@ -1 +1 @@
1
- {"version":3,"file":"aerodrome.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/aerodrome.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA4C;AAC5C,kDAA2D;AAC3D,0CAAuD;AACvD,oDAAuB;AACvB,sCAA0C;AAG1C,qHAAqF;AAErF,MAAa,SAAU,SAAQ,yBAAW;IAK5B;IAEA;IANL,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE9D,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAJxB,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QAI/B,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACpD,qCAA0B,EAC1B,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAC9C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAW,EAAE,EAAS,EAAE,MAAe;QAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC;QACzE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;YACnD,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7F,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO;YACvC,wDAAwD;YACxD,kDAAkD;aACjD,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;aAC/C,IAAI,EAAE,CAAC;QAEV,IAAI,QAAQ,KAAK,wBAAY,EAAE,CAAC;YAC9B,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;;AA1CH,8BA2CC"}
1
+ {"version":3,"file":"aerodrome.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/aerodrome.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA4C;AAE5C,0CAAuD;AACvD,oDAAuB;AACvB,sCAA0C;AAG1C,qHAAqF;AAErF,MAAa,SAAU,SAAQ,yBAAW;IAK5B;IAEA;IANL,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE9D,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAJxB,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QAI/B,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACpD,qCAA0B,EAC1B,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAC9C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAW,EAAE,EAAS;QAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;YACnD,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7F,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAExB,4CAA4C;QAC5C,6DAA6D;QAC7D,uDAAuD;QACvD,qDAAqD;QACrD,aAAa;QAEb,mCAAmC;QACnC,uCAAuC;QACvC,WAAW;QACX,iDAAiD;QACjD,IAAI;QACJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;;AAzCH,8BA0CC"}
@@ -41,7 +41,7 @@ class VelodromeV2 extends rpc_pool_tracker_1.SolidlyRpcPoolTracker {
41
41
  network;
42
42
  dexHelper;
43
43
  pools = [];
44
- static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['VelodromeV2']));
44
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['VelodromeV2', 'Aerodrome']));
45
45
  constructor(network, dexKey, dexHelper) {
46
46
  super(network, dexKey, dexHelper, true);
47
47
  this.network = network;
@@ -1 +1 @@
1
- {"version":3,"file":"velodromeV2.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/velodromeV2.ts"],"names":[],"mappings":";;;;;;AACA,0CAAuD;AACvD,sCAA0C;AAC1C,oDAAuB;AAGvB,4CAA+C;AAE/C,oDAA6E;AAE7E,0DAA4D;AAE5D,MAAM,qBAAqB,GAAG;IAC5B;QACE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChE,IAAI,EAAE,UAAU;QAChB,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;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,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;IACD;QACE,MAAM,EAAE;YACN,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1D,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;SACxD;QACD,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,uBAAuB,GAAG,IAAI,eAAS,CAAC,qBAAqB,CAAC,CAAC;AAUrE,MAAa,WAAY,SAAQ,wCAAqB;IAOxC;IAEA;IARL,KAAK,GAAW,EAAE,CAAC;IAEnB,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAEhE,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,uBAAuB,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBAC7D,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,MAAM;aACZ,CAAC;SACH,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,MAAa,EAAE,EAAE,CACpC,QAAQ,CACN,uBAAuB;aACpB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aACzC,QAAQ,EAAE,CACd,CAAC;QAEJ,OAAO;YACL,SAAS;YACT,WAAW;SACZ,CAAC;IACJ,CAAC;IAES,mBAAmB;QAC3B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,QAAQ,EAAE,uBAAuB,CAAC,kBAAkB,CAClD,gBAAgB,EAChB,EAAE,CACH;YACD,cAAc,EAAE,gCAAqB;SACtC,CAAC;IACJ,CAAC;IAES,eAAe,CAAC,KAAa;QACrC,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,QAAQ,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;YACzE,cAAc,EAAE,wBAAa;SAC9B,CAAC;IACJ,CAAC;;AAzDH,kCA0DC"}
1
+ {"version":3,"file":"velodromeV2.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/velodromeV2.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { SolidlyPoolOrderedParams } from './types';
2
2
  export declare class SolidlyStablePool {
3
- static getSellPrice(priceParams: SolidlyPoolOrderedParams, srcAmount: bigint, feeFactor: number): Promise<bigint>;
3
+ static getSellPrice(priceParams: SolidlyPoolOrderedParams, srcAmount: bigint, feeFactor: number): bigint;
4
4
  }
@@ -51,7 +51,7 @@ function _closeTo(a, b, target) {
51
51
  return false;
52
52
  }
53
53
  class SolidlyStablePool {
54
- static async getSellPrice(priceParams, srcAmount, feeFactor) {
54
+ static getSellPrice(priceParams, srcAmount, feeFactor) {
55
55
  const { reservesIn, reservesOut, decimalsIn, decimalsOut, fee } = priceParams;
56
56
  // FIXME: some dexes use uint112 others use uint256
57
57
  if (BigInt(reservesIn) + srcAmount > uniswap_v2_1.RESERVE_LIMIT) {
@@ -1 +1 @@
1
- {"version":3,"file":"solidly-stable-pool.js","sourceRoot":"","sources":["../../../src/dex/solidly/solidly-stable-pool.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AACjD,yDAAyD;AAGzD,MAAM,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAExB,SAAS,EAAE,CACT,CAAS,EACT,CAAS,EACT,SAAiB,EACjB,SAAiB;IAEjB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IAC7C,eAAe;IACf,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;AACzB,CAAC;AAED,SAAS,EAAE,CAAC,EAAU,EAAE,CAAS;IAC/B,OAAO,CACL,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG;QAC1C,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAC7C,CAAC;AACJ,CAAC;AAED,SAAS,EAAE,CAAC,EAAU,EAAE,CAAS;IAC/B,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;AAC5E,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,EAAU,EAAE,CAAS;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;QACD,IAAI,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc;IACpD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAa,iBAAiB;IAC5B,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,WAAqC,EACrC,SAAiB,EACjB,SAAiB;QAEjB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,GAC7D,WAAW,CAAC;QAEd,mDAAmD;QACnD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,0BAAa,EAAE,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAE3E,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QAEhD,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC;QACrD,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC;QACpD,MAAM,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC;IAClC,CAAC;CACF;AA5BD,8CA4BC"}
1
+ {"version":3,"file":"solidly-stable-pool.js","sourceRoot":"","sources":["../../../src/dex/solidly/solidly-stable-pool.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare class Solidly extends UniswapV2 {
13
13
  };
14
14
  stableFee?: number;
15
15
  volatileFee?: number;
16
+ getPairMethodName: string;
16
17
  readonly isFeeOnTransferSupported: boolean;
17
18
  readonly SRC_TOKEN_DEX_TRANSFERS = 1;
18
19
  readonly DEST_TOKEN_DEX_TRANSFERS = 1;
@@ -21,14 +22,14 @@ export declare class Solidly extends UniswapV2 {
21
22
  networks: Network[];
22
23
  }[];
23
24
  constructor(network: Network, dexKey: string, dexHelper: IDexHelper, isDynamicFees?: boolean, factoryAddress?: Address, subgraphURL?: string, initCode?: string, feeCode?: number, poolGasCost?: number, routerAddress?: Address);
24
- findSolidlyPair(from: Token, to: Token, stable: boolean): Promise<SolidlyPair | null>;
25
+ findSolidlyPairs(from: Token, to: Token): Promise<SolidlyPair[]>;
25
26
  batchCatchUpPairs(pairs: [Token, Token][], blockNumber: number): Promise<void>;
26
27
  getManyPoolReserves(pairs: SolidlyPair[], blockNumber: number): Promise<PoolState[]>;
27
- getSellPrice(priceParams: SolidlyPoolOrderedParams, srcAmount: bigint): Promise<bigint>;
28
- getBuyPrice(priceParams: SolidlyPoolOrderedParams, srcAmount: bigint): Promise<bigint>;
28
+ getSellPrice(priceParams: SolidlyPoolOrderedParams, srcAmount: bigint): bigint;
29
+ getBuyPrice(priceParams: SolidlyPoolOrderedParams, srcAmount: bigint): bigint;
29
30
  getPricesVolume(_from: Token, _to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams): Promise<ExchangePrices<UniswapV2Data> | null>;
30
31
  getTopPoolsForToken(tokenAddress: Address, count: number): Promise<PoolLiquidity[]>;
31
- getSolidlyPairOrderedParams(from: Token, to: Token, blockNumber: number, stable: boolean, tokenDexTransferFee: number): Promise<SolidlyPoolOrderedParams | null>;
32
+ getSolidlyPairOrderedParams(from: Token, to: Token, blockNumber: number, tokenDexTransferFee: number): Promise<Array<SolidlyPoolOrderedParams | null>>;
32
33
  getPoolIdentifiers(_from: Token, _to: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
33
34
  poolPostfix(stable: boolean): "S" | "U";
34
35
  getSimpleParam(src: Address, dest: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: UniswapData, side: SwapSide): Promise<SimpleExchangeParam>;