@paraswap/dex-lib 4.0.3-Cables.0 → 4.0.3

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 (217) hide show
  1. package/.vscode/launch.json +53 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/{integral/pool.json → inception/inception-ineth-pool.json} +558 -537
  5. package/build/abi/inception/inception-ratio-feed.json +329 -0
  6. package/build/abi/inception/inception-vault.json +991 -0
  7. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  8. package/build/abi/usual-m-smart-m/usualM.abi.json +483 -0
  9. package/build/abi/usual-m-usd0/usualCollateralDao.abi.json +681 -0
  10. package/build/abi/usual-m-wrapped-m/usualM.abi.json +509 -0
  11. package/build/abi/{integral/relayer.json → wombat/pool.json} +474 -721
  12. package/build/dex/aave-v1/aave-v1.d.ts +2 -1
  13. package/build/dex/aave-v1/aave-v1.js +23 -0
  14. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  15. package/build/dex/aave-v2/tokens-avalanche.json +44 -0
  16. package/build/dex/aave-v2/tokens-mainnet.json +188 -0
  17. package/build/dex/aave-v2/tokens-polygon.json +44 -0
  18. package/build/dex/algebra/algebra.js +2 -31
  19. package/build/dex/algebra/algebra.js.map +1 -1
  20. package/build/dex/balancer-v3/abi/balancerBatchRouter.d.ts +729 -0
  21. package/build/dex/balancer-v3/abi/balancerBatchRouter.js +732 -0
  22. package/build/dex/balancer-v3/abi/balancerBatchRouter.js.map +1 -0
  23. package/build/dex/balancer-v3/abi/balancerRouter.d.ts +1406 -0
  24. package/build/dex/balancer-v3/abi/balancerRouter.js +1175 -0
  25. package/build/dex/balancer-v3/abi/balancerRouter.js.map +1 -0
  26. package/build/dex/balancer-v3/abi/vaultExtension.V3.d.ts +2081 -0
  27. package/build/dex/balancer-v3/abi/vaultExtension.V3.js +1851 -0
  28. package/build/dex/balancer-v3/abi/vaultExtension.V3.js.map +1 -0
  29. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.d.ts +34 -0
  30. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js +406 -0
  31. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js.map +1 -0
  32. package/build/dex/bebop/bebop.js +1 -1
  33. package/build/dex/bebop/bebop.js.map +1 -1
  34. package/build/dex/cables/cables.d.ts +0 -1
  35. package/build/dex/cables/cables.js +88 -145
  36. package/build/dex/cables/cables.js.map +1 -1
  37. package/build/dex/cables/constants.js +1 -1
  38. package/build/dex/cables/constants.js.map +1 -1
  39. package/build/dex/cables/rate-fetcher.d.ts +0 -1
  40. package/build/dex/cables/rate-fetcher.js +10 -30
  41. package/build/dex/cables/rate-fetcher.js.map +1 -1
  42. package/build/dex/cables/types.d.ts +15 -16
  43. package/build/dex/cables/types.js +5 -2
  44. package/build/dex/cables/types.js.map +1 -1
  45. package/build/dex/dexalot/dexalot.js.map +1 -1
  46. package/build/dex/inception/config.d.ts +4 -0
  47. package/build/dex/inception/config.js +109 -0
  48. package/build/dex/inception/config.js.map +1 -0
  49. package/build/dex/inception/inception-event-pool.d.ts +16 -0
  50. package/build/dex/inception/inception-event-pool.js +49 -0
  51. package/build/dex/inception/inception-event-pool.js.map +1 -0
  52. package/build/dex/inception/inception.d.ts +43 -0
  53. package/build/dex/inception/inception.js +180 -0
  54. package/build/dex/inception/inception.js.map +1 -0
  55. package/build/dex/inception/tokens.d.ts +9 -0
  56. package/build/dex/inception/tokens.js +28 -0
  57. package/build/dex/inception/tokens.js.map +1 -0
  58. package/build/dex/inception/types.d.ts +22 -0
  59. package/build/dex/inception/types.js +3 -0
  60. package/build/dex/inception/types.js.map +1 -0
  61. package/build/dex/inception/utils.d.ts +7 -0
  62. package/build/dex/inception/utils.js +58 -0
  63. package/build/dex/inception/utils.js.map +1 -0
  64. package/build/dex/index.js +0 -2
  65. package/build/dex/index.js.map +1 -1
  66. package/build/dex/jarvis.d.ts +2 -1
  67. package/build/dex/jarvis.js +58 -0
  68. package/build/dex/jarvis.js.map +1 -1
  69. package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
  70. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  71. package/build/dex/maker-psm/scripts/validate-state.js +185 -0
  72. package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
  73. package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
  74. package/build/dex/platypus/platypus.d.ts +2 -1
  75. package/build/dex/platypus/platypus.js +45 -0
  76. package/build/dex/platypus/platypus.js.map +1 -1
  77. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  78. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  79. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  80. package/build/dex/stable-pool.js +1 -8
  81. package/build/dex/stable-pool.js.map +1 -1
  82. package/build/dex/swaap-v1/swaap-v1.d.ts +2 -1
  83. package/build/dex/swaap-v1/swaap-v1.js +14 -0
  84. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  85. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  86. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  87. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  88. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  89. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  90. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  91. package/build/dex/uniswap-v3/uniswap-v3-pricing.d.ts +4 -0
  92. package/build/dex/uniswap-v3/uniswap-v3-pricing.js +43 -0
  93. package/build/dex/uniswap-v3/uniswap-v3-pricing.js.map +1 -0
  94. package/build/dex/uniswap-v3/uniswap-v3-worker.d.ts +1 -0
  95. package/build/dex/uniswap-v3/uniswap-v3-worker.js +10 -0
  96. package/build/dex/uniswap-v3/uniswap-v3-worker.js.map +1 -0
  97. package/build/dex/usual/types.d.ts +13 -0
  98. package/build/dex/usual/types.js +3 -0
  99. package/build/dex/usual/types.js.map +1 -0
  100. package/build/dex/usual/usual-bond.d.ts +18 -0
  101. package/build/dex/usual/usual-bond.js +52 -0
  102. package/build/dex/usual/usual-bond.js.map +1 -0
  103. package/build/dex/usual/usual-m-smart-m.d.ts +17 -0
  104. package/build/dex/usual/usual-m-smart-m.js +50 -0
  105. package/build/dex/usual/usual-m-smart-m.js.map +1 -0
  106. package/build/dex/usual/usual-m-usd0.d.ts +17 -0
  107. package/build/dex/usual/usual-m-usd0.js +51 -0
  108. package/build/dex/usual/usual-m-usd0.js.map +1 -0
  109. package/build/dex/usual/usual-m-wrapped-m.d.ts +17 -0
  110. package/build/dex/usual/usual-m-wrapped-m.js +50 -0
  111. package/build/dex/usual/usual-m-wrapped-m.js.map +1 -0
  112. package/build/dex/usual/usual.d.ts +27 -0
  113. package/build/dex/usual/usual.js +125 -0
  114. package/build/dex/usual/usual.js.map +1 -0
  115. package/build/dex/usual-m-smart-m/config.d.ts +3 -0
  116. package/build/dex/usual-m-smart-m/config.js +13 -0
  117. package/build/dex/usual-m-smart-m/config.js.map +1 -0
  118. package/build/dex/usual-m-smart-m/types.d.ts +7 -0
  119. package/build/dex/usual-m-smart-m/types.js +3 -0
  120. package/build/dex/usual-m-smart-m/types.js.map +1 -0
  121. package/build/dex/usual-m-smart-m/usual-m-smart-m.d.ts +35 -0
  122. package/build/dex/usual-m-smart-m/usual-m-smart-m.js +161 -0
  123. package/build/dex/usual-m-smart-m/usual-m-smart-m.js.map +1 -0
  124. package/build/dex/usual-m-usd0/config.d.ts +3 -0
  125. package/build/dex/usual-m-usd0/config.js +14 -0
  126. package/build/dex/usual-m-usd0/config.js.map +1 -0
  127. package/build/dex/usual-m-usd0/types.d.ts +8 -0
  128. package/build/dex/usual-m-usd0/types.js +3 -0
  129. package/build/dex/usual-m-usd0/types.js.map +1 -0
  130. package/build/dex/usual-m-usd0/usual-m-usd0.d.ts +35 -0
  131. package/build/dex/usual-m-usd0/usual-m-usd0.js +159 -0
  132. package/build/dex/usual-m-usd0/usual-m-usd0.js.map +1 -0
  133. package/build/dex/zerox/index.d.ts +4 -26
  134. package/build/dex/zerox/index.js +50 -42
  135. package/build/dex/zerox/index.js.map +1 -1
  136. package/build/dex/zerox/types.d.ts +29 -0
  137. package/build/dex/zerox/types.js +8 -1
  138. package/build/dex/zerox/types.js.map +1 -1
  139. package/build/executor/Executor01BytecodeBuilder.js +6 -11
  140. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  141. package/build/executor/Executor02BytecodeBuilder.js +6 -11
  142. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  143. package/build/executor/Executor03BytecodeBuilder.js +6 -11
  144. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  145. package/build/lib/pub-sub.d.ts +35 -0
  146. package/build/lib/pub-sub.js +106 -0
  147. package/build/lib/pub-sub.js.map +1 -0
  148. package/build/types.d.ts +0 -1
  149. package/package.json +1 -1
  150. package/src/dex/algebra/algebra.ts +9 -48
  151. package/src/dex/bebop/bebop.ts +1 -1
  152. package/src/dex/dexalot/dexalot.ts +0 -1
  153. package/src/dex/index.ts +0 -2
  154. package/src/executor/Executor01BytecodeBuilder.ts +11 -15
  155. package/src/executor/Executor02BytecodeBuilder.ts +9 -13
  156. package/src/executor/Executor03BytecodeBuilder.ts +9 -16
  157. package/src/types.ts +0 -1
  158. package/tests/constants-e2e.ts +2 -2
  159. package/.idea/aws.xml +0 -17
  160. package/.idea/codeStyles/Project.xml +0 -19
  161. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  162. package/.idea/misc.xml +0 -6
  163. package/.idea/modules.xml +0 -8
  164. package/.idea/paraswap-dex-lib.iml +0 -9
  165. package/.idea/prettier.xml +0 -7
  166. package/.idea/vcs.xml +0 -6
  167. package/build/abi/integral/factory.json +0 -333
  168. package/build/abi/integral/oracle.json +0 -501
  169. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +0 -49
  170. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +0 -104
  171. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +0 -1
  172. package/build/dex/integral/config.d.ts +0 -4
  173. package/build/dex/integral/config.js +0 -20
  174. package/build/dex/integral/config.js.map +0 -1
  175. package/build/dex/integral/context.d.ts +0 -40
  176. package/build/dex/integral/context.js +0 -158
  177. package/build/dex/integral/context.js.map +0 -1
  178. package/build/dex/integral/integral-factory.d.ts +0 -24
  179. package/build/dex/integral/integral-factory.js +0 -95
  180. package/build/dex/integral/integral-factory.js.map +0 -1
  181. package/build/dex/integral/integral-pool.d.ts +0 -50
  182. package/build/dex/integral/integral-pool.js +0 -149
  183. package/build/dex/integral/integral-pool.js.map +0 -1
  184. package/build/dex/integral/integral-pricing.d.ts +0 -18
  185. package/build/dex/integral/integral-pricing.js +0 -114
  186. package/build/dex/integral/integral-pricing.js.map +0 -1
  187. package/build/dex/integral/integral-relayer.d.ts +0 -42
  188. package/build/dex/integral/integral-relayer.js +0 -192
  189. package/build/dex/integral/integral-relayer.js.map +0 -1
  190. package/build/dex/integral/integral-token.d.ts +0 -27
  191. package/build/dex/integral/integral-token.js +0 -59
  192. package/build/dex/integral/integral-token.js.map +0 -1
  193. package/build/dex/integral/integral.d.ts +0 -41
  194. package/build/dex/integral/integral.js +0 -376
  195. package/build/dex/integral/integral.js.map +0 -1
  196. package/build/dex/integral/types.d.ts +0 -85
  197. package/build/dex/integral/types.js +0 -9
  198. package/build/dex/integral/types.js.map +0 -1
  199. package/build/dex/integral/utils-e2e.d.ts +0 -9
  200. package/build/dex/integral/utils-e2e.js +0 -131
  201. package/build/dex/integral/utils-e2e.js.map +0 -1
  202. package/build/dex/integral/utils.d.ts +0 -17
  203. package/build/dex/integral/utils.js +0 -94
  204. package/build/dex/integral/utils.js.map +0 -1
  205. package/build/dex/trader-joe-v2.1/optimizer.d.ts +0 -2
  206. package/build/dex/trader-joe-v2.1/optimizer.js +0 -47
  207. package/build/dex/trader-joe-v2.1/optimizer.js.map +0 -1
  208. package/src/abi/cables/CablesMainnetRFQ.json +0 -1083
  209. package/src/dex/cables/cables-e2e.test.ts +0 -207
  210. package/src/dex/cables/cables-integration.test.ts +0 -391
  211. package/src/dex/cables/cables.ts +0 -1006
  212. package/src/dex/cables/config.ts +0 -13
  213. package/src/dex/cables/constants.ts +0 -35
  214. package/src/dex/cables/rate-fetcher.ts +0 -219
  215. package/src/dex/cables/types.ts +0 -130
  216. package/src/dex/cables/validators.test.ts +0 -151
  217. package/src/dex/cables/validators.ts +0 -61
@@ -0,0 +1,35 @@
1
+ import NodeCache from 'node-cache';
2
+ import { Network } from '../constants';
3
+ import { IDexHelper } from '../dex-helper';
4
+ type JsonPubSubMsg = {
5
+ expiresAt: number;
6
+ data: Record<string, unknown>;
7
+ };
8
+ type SetPubSubMsg = string[];
9
+ export declare class JsonPubSub {
10
+ private dexHelper;
11
+ private dexKey;
12
+ channel: string;
13
+ network: Network;
14
+ localCache: NodeCache;
15
+ constructor(dexHelper: IDexHelper, dexKey: string, channel: string);
16
+ initialize(): void;
17
+ subscribe(): void;
18
+ publish(data: Record<string, unknown>, ttl: number): void;
19
+ handleSubscription(json: JsonPubSubMsg): void;
20
+ getAndCache<T>(key: string): Promise<T | null>;
21
+ }
22
+ export declare class SetPubSub {
23
+ private dexHelper;
24
+ private dexKey;
25
+ channel: string;
26
+ network: Network;
27
+ set: Set<string>;
28
+ constructor(dexHelper: IDexHelper, dexKey: string, channel: string);
29
+ initialize(key: string): Promise<void>;
30
+ subscribe(): void;
31
+ publish(set: SetPubSubMsg): void;
32
+ handleSubscription(set: SetPubSubMsg): void;
33
+ has(key: string): Promise<boolean>;
34
+ }
35
+ export {};
@@ -0,0 +1,106 @@
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.SetPubSub = exports.JsonPubSub = void 0;
7
+ const node_cache_1 = __importDefault(require("node-cache"));
8
+ class JsonPubSub {
9
+ dexHelper;
10
+ dexKey;
11
+ channel;
12
+ network;
13
+ localCache = new node_cache_1.default();
14
+ constructor(dexHelper, dexKey, channel) {
15
+ this.dexHelper = dexHelper;
16
+ this.dexKey = dexKey;
17
+ this.network = this.dexHelper.config.data.network;
18
+ this.channel = `${this.network}_${this.dexKey}_${channel}`;
19
+ }
20
+ initialize() {
21
+ this.subscribe();
22
+ }
23
+ subscribe() {
24
+ this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
25
+ const decodedMsg = JSON.parse(msg);
26
+ this.handleSubscription(decodedMsg);
27
+ });
28
+ }
29
+ publish(data, ttl) {
30
+ const expiresAt = Math.round(Date.now() / 1000) + ttl;
31
+ this.dexHelper.cache.publish(this.channel, JSON.stringify({ expiresAt, data }));
32
+ }
33
+ handleSubscription(json) {
34
+ const { expiresAt, data } = json;
35
+ const now = Math.round(Date.now() / 1000);
36
+ // calculating ttl as message might come with the delay
37
+ const ttl = expiresAt - now;
38
+ const keys = Object.keys(data);
39
+ for (const key of keys) {
40
+ this.localCache.set(key, data[key], ttl);
41
+ }
42
+ }
43
+ async getAndCache(key) {
44
+ const localValue = this.localCache.get(key);
45
+ if (localValue) {
46
+ return localValue;
47
+ }
48
+ const [value, ttl] = await Promise.all([
49
+ this.dexHelper.cache.get(this.dexKey, this.network, key),
50
+ this.dexHelper.cache.ttl(this.dexKey, this.network, key),
51
+ ]);
52
+ if (value) {
53
+ // setting ttl same as in cache
54
+ // TODO-ps: check if ttl is not null
55
+ const parsedValue = JSON.parse(value);
56
+ this.localCache.set(key, parsedValue, Number(ttl));
57
+ return parsedValue;
58
+ }
59
+ return null;
60
+ }
61
+ }
62
+ exports.JsonPubSub = JsonPubSub;
63
+ class SetPubSub {
64
+ dexHelper;
65
+ dexKey;
66
+ channel;
67
+ network;
68
+ set = new Set();
69
+ constructor(dexHelper, dexKey, channel) {
70
+ this.dexHelper = dexHelper;
71
+ this.dexKey = dexKey;
72
+ this.network = this.dexHelper.config.data.network;
73
+ this.channel = `${this.network}_${this.dexKey}_${channel}`;
74
+ }
75
+ async initialize(key) {
76
+ // as there's no lazy load, we need to initialize the set
77
+ const initSet = await this.dexHelper.cache.smembers(key);
78
+ for (const member of initSet) {
79
+ this.set.add(member);
80
+ }
81
+ this.subscribe();
82
+ }
83
+ subscribe() {
84
+ this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
85
+ const decodedMsg = JSON.parse(msg);
86
+ this.handleSubscription(decodedMsg);
87
+ });
88
+ }
89
+ publish(set) {
90
+ // as there's no lazy load, also store locally
91
+ for (const key of set) {
92
+ this.set.add(key);
93
+ }
94
+ this.dexHelper.cache.publish(this.channel, JSON.stringify(set));
95
+ }
96
+ handleSubscription(set) {
97
+ for (const key of set) {
98
+ this.set.add(key);
99
+ }
100
+ }
101
+ async has(key) {
102
+ return this.set.has(key);
103
+ }
104
+ }
105
+ exports.SetPubSub = SetPubSub;
106
+ //# sourceMappingURL=pub-sub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pub-sub.js","sourceRoot":"","sources":["../../src/lib/pub-sub.ts"],"names":[],"mappings":"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"}
package/build/types.d.ts CHANGED
@@ -148,7 +148,6 @@ export type DexExchangeParam = {
148
148
  swappedAmountNotPresentInExchangeData?: boolean;
149
149
  preSwapUnwrapCalldata?: string;
150
150
  returnAmountPos: number | undefined;
151
- insertFromAmountPos?: number;
152
151
  permit2Approval?: boolean;
153
152
  };
154
153
  export type DexExchangeParamWithBooleanNeedWrapNative = DexExchangeParam & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.0.3-Cables.0",
3
+ "version": "4.0.3",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -69,10 +69,6 @@ const ALGEBRA_TICK_BASE_OVERHEAD = 75_000;
69
69
  const ALGEBRA_POOL_SEARCH_OVERHEAD = 10_000;
70
70
  const ALGEBRA_QUOTE_GASLIMIT = 2_000_000;
71
71
 
72
- const MAX_STALE_STATE_BLOCK_AGE = {
73
- [Network.ZKEVM]: 150, // approximately 3min
74
- };
75
-
76
72
  type IAlgebraEventPool =
77
73
  | AlgebraEventPoolV1_1
78
74
  | AlgebraEventPoolV1_9
@@ -240,20 +236,6 @@ export class Algebra extends SimpleExchange implements IDex<AlgebraData> {
240
236
 
241
237
  if (pool) {
242
238
  if (!pool.initFailed) {
243
- if (this.network !== Network.ZKEVM) return pool;
244
-
245
- if (
246
- pool.getStaleState() === null ||
247
- (pool.getState(blockNumber) === null &&
248
- blockNumber - pool.getStateBlockNumber() >
249
- MAX_STALE_STATE_BLOCK_AGE[this.network])
250
- ) {
251
- /* reload state, on zkEVM this would most likely timeout during request life
252
- * but would allow to rely on staleState for couple of min for next requests
253
- */
254
- await pool.initialize(blockNumber, { forceRegenerate: true });
255
- }
256
-
257
239
  return pool;
258
240
  } else {
259
241
  // if init failed then prefer to early return pool with empty state to fallback to rpc call
@@ -615,37 +597,16 @@ export class Algebra extends SimpleExchange implements IDex<AlgebraData> {
615
597
  let state = pool.getState(blockNumber);
616
598
 
617
599
  if (state === null) {
618
- if (this.network === Network.ZKEVM) {
619
- if (pool.initFailed) return null;
620
-
621
- if (
622
- blockNumber - pool.getStateBlockNumber() <=
623
- MAX_STALE_STATE_BLOCK_AGE[this.network]
624
- ) {
625
- this.logger.warn(
626
- `${_srcAddress}_${_destAddress}_${pool.name}_${
627
- pool.poolAddress
628
- } state fallback to latest early enough state. Current blockNumber=${blockNumber}, stateBlockNumber=${pool.getStateBlockNumber()}`,
629
- );
630
- state = pool.getStaleState();
631
- } else {
632
- this.logger.warn(
633
- `${_srcAddress}_${_destAddress}_${pool.name}_${pool.poolAddress} state is unhealthy, cannot compute price (no fallback on this chain)`,
634
- );
635
- return null; // never fallback as takes more time
636
- }
637
- } else {
638
- const rpcPrice = await this.getPricingFromRpc(
639
- _srcToken,
640
- _destToken,
641
- amounts,
642
- side,
643
- pool,
644
- transferFees,
645
- );
600
+ const rpcPrice = await this.getPricingFromRpc(
601
+ _srcToken,
602
+ _destToken,
603
+ amounts,
604
+ side,
605
+ pool,
606
+ transferFees,
607
+ );
646
608
 
647
- return rpcPrice;
648
- }
609
+ return rpcPrice;
649
610
  }
650
611
 
651
612
  if (!state) return null;
@@ -723,7 +723,7 @@ export class Bebop extends SimpleExchange implements IDex<BebopData> {
723
723
  }
724
724
  }
725
725
 
726
- if (side === SwapSide.SELL) {
726
+ if (side == SwapSide.SELL) {
727
727
  const requiredAmount = BigInt(optimalSwapExchange.destAmount);
728
728
  const quoteAmount = BigInt(
729
729
  response.buyTokens[utils.getAddress(destToken.address)].amount,
@@ -593,7 +593,6 @@ export class Dexalot extends SimpleExchange implements IDex<DexalotData> {
593
593
  .multipliedBy(10000)
594
594
  .toFixed(0)
595
595
  : options.slippageFactor.minus(1).multipliedBy(10000).toFixed(0);
596
-
597
596
  const rfqParams = {
598
597
  makerAsset: ethers.utils.getAddress(makerToken.address),
599
598
  takerAsset: ethers.utils.getAddress(takerToken.address),
package/src/dex/index.ts CHANGED
@@ -96,7 +96,6 @@ import { StkGHO } from './stkgho/stkgho';
96
96
  import { BalancerV3 } from './balancer-v3/balancer-v3';
97
97
  import { balancerV3Merge } from './balancer-v3/optimizer';
98
98
  import { SkyConverter } from './sky-converter/sky-converter';
99
- import { Cables } from './cables/cables';
100
99
  import { Stader } from './stader/stader';
101
100
 
102
101
  const LegacyDexes = [
@@ -188,7 +187,6 @@ const Dexes = [
188
187
  UsualBond,
189
188
  StkGHO,
190
189
  SkyConverter,
191
- Cables,
192
190
  FluidDex,
193
191
  ];
194
192
 
@@ -379,21 +379,17 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<
379
379
 
380
380
  let fromAmountPos = 0;
381
381
  if (insertFromAmount) {
382
- if (exchangeParam.insertFromAmountPos) {
383
- fromAmountPos = exchangeParam.insertFromAmountPos;
384
- } else {
385
- const fromAmount = ethers.utils.defaultAbiCoder.encode(
386
- ['uint256'],
387
- [swap.swapExchanges[swapExchangeIndex].srcAmount],
388
- );
389
-
390
- const fromAmountIndex = exchangeData
391
- .replace('0x', '')
392
- .indexOf(fromAmount.replace('0x', ''));
393
-
394
- fromAmountPos =
395
- (fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
396
- }
382
+ const fromAmount = ethers.utils.defaultAbiCoder.encode(
383
+ ['uint256'],
384
+ [swap.swapExchanges[swapExchangeIndex].srcAmount],
385
+ );
386
+
387
+ const fromAmountIndex = exchangeData
388
+ .replace('0x', '')
389
+ .indexOf(fromAmount.replace('0x', ''));
390
+
391
+ fromAmountPos =
392
+ (fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
397
393
  }
398
394
 
399
395
  return this.buildCallData(
@@ -335,20 +335,16 @@ export class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<
335
335
 
336
336
  let fromAmountPos = 0;
337
337
  if (insertFromAmount) {
338
- if (exchangeParam.insertFromAmountPos) {
339
- fromAmountPos = exchangeParam.insertFromAmountPos;
340
- } else {
341
- const fromAmount = ethers.utils.defaultAbiCoder.encode(
342
- ['uint256'],
343
- [swapExchange.srcAmount],
344
- );
345
- const fromAmountIndex = exchangeData
346
- .replace('0x', '')
347
- .indexOf(fromAmount.replace('0x', ''));
338
+ const fromAmount = ethers.utils.defaultAbiCoder.encode(
339
+ ['uint256'],
340
+ [swapExchange.srcAmount],
341
+ );
342
+ const fromAmountIndex = exchangeData
343
+ .replace('0x', '')
344
+ .indexOf(fromAmount.replace('0x', ''));
348
345
 
349
- fromAmountPos =
350
- (fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
351
- }
346
+ fromAmountPos =
347
+ (fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
352
348
  }
353
349
 
354
350
  return this.buildCallData(
@@ -331,31 +331,24 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
331
331
  let fromAmountPos = 0;
332
332
  let toAmountPos = 0;
333
333
  if (insertAmount) {
334
- if (exchangeParam.insertFromAmountPos) {
335
- fromAmountPos = exchangeParam.insertFromAmountPos;
336
- } else {
337
- const fromAmount = ethers.utils.defaultAbiCoder.encode(
338
- ['uint256'],
339
- [swap.swapExchanges[swapExchangeIndex].srcAmount],
340
- );
341
-
342
- const fromAmountIndex = exchangeData
343
- .replace('0x', '')
344
- .indexOf(fromAmount.replace('0x', ''));
345
-
346
- fromAmountPos =
347
- (fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
348
- }
349
-
334
+ const fromAmount = ethers.utils.defaultAbiCoder.encode(
335
+ ['uint256'],
336
+ [swap.swapExchanges[swapExchangeIndex].srcAmount],
337
+ );
350
338
  const toAmount = ethers.utils.defaultAbiCoder.encode(
351
339
  ['uint256'],
352
340
  [swap.swapExchanges[swapExchangeIndex].destAmount],
353
341
  );
354
342
 
343
+ const fromAmountIndex = exchangeData
344
+ .replace('0x', '')
345
+ .indexOf(fromAmount.replace('0x', ''));
355
346
  const toAmountIndex = exchangeData
356
347
  .replace('0x', '')
357
348
  .indexOf(toAmount.replace('0x', ''));
358
349
 
350
+ fromAmountPos =
351
+ (fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
359
352
  toAmountPos =
360
353
  (toAmountIndex !== -1 ? toAmountIndex : exchangeData.length) / 2;
361
354
  }
package/src/types.ts CHANGED
@@ -173,7 +173,6 @@ export type DexExchangeParam = {
173
173
  swappedAmountNotPresentInExchangeData?: boolean;
174
174
  preSwapUnwrapCalldata?: string;
175
175
  returnAmountPos: number | undefined;
176
- insertFromAmountPos?: number;
177
176
  permit2Approval?: boolean;
178
177
  };
179
178
 
@@ -1900,7 +1900,7 @@ export const Holders: {
1900
1900
  BETS: '0x8cc2284c90d05578633418f9cde104f402375a65',
1901
1901
  HATCHY: '0x14ec295ec8def851ec6e2959df872dd24e422631',
1902
1902
  USDCe: '0x3a2434c698f8d79af1f5a9e43013157ca8b11a66',
1903
- USDC: '0x64b4dE1b00EF830f3CC2FD68ee056aAD76C45BF6',
1903
+ USDC: '0xcc2da711D621A4491b338CAC88B9C0954db3e75B',
1904
1904
  USDTe: '0x84d34f4f83a87596cd3fb6887cff8f17bf5a7b83',
1905
1905
  WETHe: '0x9bdB521a97E95177BF252C253E256A60C3e14447',
1906
1906
  POPS: '0x5268c2331658cb0b2858cfa9db27d8f22f5434bc',
@@ -1916,7 +1916,7 @@ export const Holders: {
1916
1916
  TSD: '0x691A89db352B72dDb249bFe16503494eC0D920A4',
1917
1917
  THO: '0xc40d16c47394a506d451475c8a7c46c1175c1da1',
1918
1918
  aAvaUSDT: '0x50B1Ba98Cf117c9682048D56628B294ebbAA4ec2',
1919
- USDT: '0xCddc5d0Ebeb71a08ffF26909AA6c0d4e256b4fE1',
1919
+ USDT: '0x0d0707963952f2fba59dd06f2b425ace40b492fe',
1920
1920
  aAvaWAVAX: '0x1B18Df70863636AEe4BfBAb6F7C70ceBCA9bA404',
1921
1921
  oldFRAX: '0x4e3376018add04ebe4c46bf6f924ddec8c67aa7b',
1922
1922
  newFRAX: '0x4e3376018add04ebe4c46bf6f924ddec8c67aa7b',
package/.idea/aws.xml DELETED
@@ -1,17 +0,0 @@
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>
@@ -1,19 +0,0 @@
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>
@@ -1,5 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <state>
3
- <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
4
- </state>
5
- </component>
package/.idea/misc.xml DELETED
@@ -1,6 +0,0 @@
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>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
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>
@@ -1,9 +0,0 @@
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>
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="PrettierConfiguration">
4
- <option name="myRunOnSave" value="true" />
5
- <option name="myRunOnReformat" value="true" />
6
- </component>
7
- </project>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
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>