@paraswap/dex-lib 3.8.30 → 3.8.32-inception

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 (250) hide show
  1. package/build/abi/AaveV1_lending_pool.json +27 -0
  2. package/build/abi/Aave_GSM.json +751 -0
  3. package/build/abi/aave-gsm/Aave_GSM.json +751 -0
  4. package/build/abi/aave-gsm/IFeeStrategy.json +78 -0
  5. package/build/abi/inception/inception-ineth-pool.json +1062 -0
  6. package/build/abi/inception/inception-ineth.json +609 -0
  7. package/build/abi/inception/inception-ratio-feed.json +93 -0
  8. package/build/abi/inception/inception-vault.json +991 -0
  9. package/build/abi/platypus/asset.json +490 -0
  10. package/build/abi/platypus/avax-pool.json +820 -0
  11. package/build/abi/platypus/oracle.json +119 -0
  12. package/build/abi/platypus/pool.json +677 -0
  13. package/build/abi/smardex/all/smardex-router.json +648 -0
  14. package/build/abi/smardex/layer-1/smardex-factory.json +242 -0
  15. package/build/abi/smardex/layer-1/smardex-pool.json +506 -0
  16. package/build/abi/smardex/layer-2/smardex-factory.json +185 -0
  17. package/build/abi/smardex/layer-2/smardex-pool.json +578 -0
  18. package/build/abi/stkGHO.json +1131 -0
  19. package/build/abi/swaap-v1/pool.json +1346 -0
  20. package/build/abi/usual-bond/usd0pp.abi.json +867 -0
  21. package/build/dex/aave-gsm/aave-gsm-pool.d.ts +28 -0
  22. package/build/dex/aave-gsm/aave-gsm-pool.js +117 -0
  23. package/build/dex/aave-gsm/aave-gsm-pool.js.map +1 -0
  24. package/build/dex/aave-gsm/aave-gsm.d.ts +43 -0
  25. package/build/dex/aave-gsm/aave-gsm.js +306 -0
  26. package/build/dex/aave-gsm/aave-gsm.js.map +1 -0
  27. package/build/dex/aave-gsm/config.d.ts +3 -0
  28. package/build/dex/aave-gsm/config.js +17 -0
  29. package/build/dex/aave-gsm/config.js.map +1 -0
  30. package/build/dex/aave-gsm/types.d.ts +18 -0
  31. package/build/dex/aave-gsm/types.js +3 -0
  32. package/build/dex/aave-gsm/types.js.map +1 -0
  33. package/build/dex/aave-v1/aave-v1.d.ts +34 -0
  34. package/build/dex/aave-v1/aave-v1.js +180 -0
  35. package/build/dex/aave-v1/aave-v1.js.map +1 -0
  36. package/build/dex/aave-v1/config.d.ts +11 -0
  37. package/build/dex/aave-v1/config.js +20 -0
  38. package/build/dex/aave-v1/config.js.map +1 -0
  39. package/build/dex/aave-v1/tokens-mainnet.json +134 -0
  40. package/build/dex/aave-v1/tokens.d.ts +3 -0
  41. package/build/dex/aave-v1/tokens.js +50 -0
  42. package/build/dex/aave-v1/tokens.js.map +1 -0
  43. package/build/dex/aave-v1/types.d.ts +12 -0
  44. package/build/dex/aave-v1/types.js +3 -0
  45. package/build/dex/aave-v1/types.js.map +1 -0
  46. package/build/dex/idle-dao/idle-dao-pool.d.ts +56 -0
  47. package/build/dex/idle-dao/idle-dao-pool.js +176 -0
  48. package/build/dex/idle-dao/idle-dao-pool.js.map +1 -0
  49. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +16 -0
  50. package/build/dex/idle-dao/idle-dao-pooling-pool.js +57 -0
  51. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +1 -0
  52. package/build/dex/idle-dao/scripts.d.ts +9 -0
  53. package/build/dex/idle-dao/scripts.js +552 -0
  54. package/build/dex/idle-dao/scripts.js.map +1 -0
  55. package/build/dex/inception/config.d.ts +4 -0
  56. package/build/dex/inception/config.js +109 -0
  57. package/build/dex/inception/config.js.map +1 -0
  58. package/build/dex/inception/inception-event-pool.d.ts +16 -0
  59. package/build/dex/inception/inception-event-pool.js +48 -0
  60. package/build/dex/inception/inception-event-pool.js.map +1 -0
  61. package/build/dex/inception/inception-native.d.ts +43 -0
  62. package/build/dex/inception/inception-native.js +131 -0
  63. package/build/dex/inception/inception-native.js.map +1 -0
  64. package/build/dex/inception/inception-pool.d.ts +18 -0
  65. package/build/dex/inception/inception-pool.js +32 -0
  66. package/build/dex/inception/inception-pool.js.map +1 -0
  67. package/build/dex/inception/inception-price-feed.d.ts +19 -0
  68. package/build/dex/inception/inception-price-feed.js +51 -0
  69. package/build/dex/inception/inception-price-feed.js.map +1 -0
  70. package/build/dex/inception/inception.d.ts +43 -0
  71. package/build/dex/inception/inception.js +180 -0
  72. package/build/dex/inception/inception.js.map +1 -0
  73. package/build/dex/inception/tokens.d.ts +9 -0
  74. package/build/dex/inception/tokens.js +28 -0
  75. package/build/dex/inception/tokens.js.map +1 -0
  76. package/build/dex/inception/types.d.ts +22 -0
  77. package/build/dex/inception/types.js +3 -0
  78. package/build/dex/inception/types.js.map +1 -0
  79. package/build/dex/inception/utils.d.ts +7 -0
  80. package/build/dex/inception/utils.js +58 -0
  81. package/build/dex/inception/utils.js.map +1 -0
  82. package/build/dex/index.js +6 -0
  83. package/build/dex/index.js.map +1 -1
  84. package/build/dex/platypus/asset.d.ts +14 -0
  85. package/build/dex/platypus/asset.js +97 -0
  86. package/build/dex/platypus/asset.js.map +1 -0
  87. package/build/dex/platypus/config.d.ts +11 -0
  88. package/build/dex/platypus/config.js +69 -0
  89. package/build/dex/platypus/config.js.map +1 -0
  90. package/build/dex/platypus/platypus.d.ts +63 -0
  91. package/build/dex/platypus/platypus.js +473 -0
  92. package/build/dex/platypus/platypus.js.map +1 -0
  93. package/build/dex/platypus/pool-avax.d.ts +8 -0
  94. package/build/dex/platypus/pool-avax.js +54 -0
  95. package/build/dex/platypus/pool-avax.js.map +1 -0
  96. package/build/dex/platypus/pool-base.d.ts +19 -0
  97. package/build/dex/platypus/pool-base.js +86 -0
  98. package/build/dex/platypus/pool-base.js.map +1 -0
  99. package/build/dex/platypus/pool-pure.d.ts +8 -0
  100. package/build/dex/platypus/pool-pure.js +37 -0
  101. package/build/dex/platypus/pool-pure.js.map +1 -0
  102. package/build/dex/platypus/pool-subscriber.d.ts +14 -0
  103. package/build/dex/platypus/pool-subscriber.js +167 -0
  104. package/build/dex/platypus/pool-subscriber.js.map +1 -0
  105. package/build/dex/platypus/pool.d.ts +8 -0
  106. package/build/dex/platypus/pool.js +58 -0
  107. package/build/dex/platypus/pool.js.map +1 -0
  108. package/build/dex/platypus/types.d.ts +92 -0
  109. package/build/dex/platypus/types.js +10 -0
  110. package/build/dex/platypus/types.js.map +1 -0
  111. package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
  112. package/build/dex/quickswap/spiritswap-v3.js +19 -0
  113. package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
  114. package/build/dex/smardex/config.d.ts +4 -0
  115. package/build/dex/smardex/config.js +64 -0
  116. package/build/dex/smardex/config.js.map +1 -0
  117. package/build/dex/smardex/constants.d.ts +18 -0
  118. package/build/dex/smardex/constants.js +33 -0
  119. package/build/dex/smardex/constants.js.map +1 -0
  120. package/build/dex/smardex/sdk/constants.d.ts +6 -0
  121. package/build/dex/smardex/sdk/constants.js +13 -0
  122. package/build/dex/smardex/sdk/constants.js.map +1 -0
  123. package/build/dex/smardex/sdk/core.d.ts +113 -0
  124. package/build/dex/smardex/sdk/core.js +499 -0
  125. package/build/dex/smardex/sdk/core.js.map +1 -0
  126. package/build/dex/smardex/sdk/errors.d.ts +15 -0
  127. package/build/dex/smardex/sdk/errors.js +22 -0
  128. package/build/dex/smardex/sdk/errors.js.map +1 -0
  129. package/build/dex/smardex/sdk/types.d.ts +62 -0
  130. package/build/dex/smardex/sdk/types.js +3 -0
  131. package/build/dex/smardex/sdk/types.js.map +1 -0
  132. package/build/dex/smardex/sdk/utils.d.ts +44 -0
  133. package/build/dex/smardex/sdk/utils.js +133 -0
  134. package/build/dex/smardex/sdk/utils.js.map +1 -0
  135. package/build/dex/smardex/smardex-event-pool.d.ts +28 -0
  136. package/build/dex/smardex/smardex-event-pool.js +119 -0
  137. package/build/dex/smardex/smardex-event-pool.js.map +1 -0
  138. package/build/dex/smardex/smardex.d.ts +65 -0
  139. package/build/dex/smardex/smardex.js +519 -0
  140. package/build/dex/smardex/smardex.js.map +1 -0
  141. package/build/dex/smardex/types.d.ts +55 -0
  142. package/build/dex/smardex/types.js +3 -0
  143. package/build/dex/smardex/types.js.map +1 -0
  144. package/build/dex/solidly/forks-override/cone.d.ts +22 -0
  145. package/build/dex/solidly/forks-override/cone.js +53 -0
  146. package/build/dex/solidly/forks-override/cone.js.map +1 -0
  147. package/build/dex/solidly/forks-override/solisnek.d.ts +8 -0
  148. package/build/dex/solidly/forks-override/solisnek.js +15 -0
  149. package/build/dex/solidly/forks-override/solisnek.js.map +1 -0
  150. package/build/dex/stkgho/config.d.ts +3 -0
  151. package/build/dex/stkgho/config.js +14 -0
  152. package/build/dex/stkgho/config.js.map +1 -0
  153. package/build/dex/stkgho/stkgho-pool.d.ts +41 -0
  154. package/build/dex/stkgho/stkgho-pool.js +81 -0
  155. package/build/dex/stkgho/stkgho-pool.js.map +1 -0
  156. package/build/dex/stkgho/stkgho.d.ts +41 -0
  157. package/build/dex/stkgho/stkgho.js +163 -0
  158. package/build/dex/stkgho/stkgho.js.map +1 -0
  159. package/build/dex/stkgho/types.d.ts +11 -0
  160. package/build/dex/stkgho/types.js +3 -0
  161. package/build/dex/stkgho/types.js.map +1 -0
  162. package/build/dex/swaap-v1/config.d.ts +17 -0
  163. package/build/dex/swaap-v1/config.js +56 -0
  164. package/build/dex/swaap-v1/config.js.map +1 -0
  165. package/build/dex/swaap-v1/constants.d.ts +6 -0
  166. package/build/dex/swaap-v1/constants.js +17 -0
  167. package/build/dex/swaap-v1/constants.js.map +1 -0
  168. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +25 -0
  169. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +62 -0
  170. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +1 -0
  171. package/build/dex/swaap-v1/libraries/Const.d.ts +18 -0
  172. package/build/dex/swaap-v1/libraries/Const.js +26 -0
  173. package/build/dex/swaap-v1/libraries/Const.js.map +1 -0
  174. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +77 -0
  175. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +316 -0
  176. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +1 -0
  177. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +75 -0
  178. package/build/dex/swaap-v1/libraries/LogExpMath.js +418 -0
  179. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +1 -0
  180. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +185 -0
  181. package/build/dex/swaap-v1/libraries/MathMMM.js +453 -0
  182. package/build/dex/swaap-v1/libraries/MathMMM.js.map +1 -0
  183. package/build/dex/swaap-v1/libraries/Num.d.ts +31 -0
  184. package/build/dex/swaap-v1/libraries/Num.js +167 -0
  185. package/build/dex/swaap-v1/libraries/Num.js.map +1 -0
  186. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +23 -0
  187. package/build/dex/swaap-v1/libraries/PoolQuotations.js +131 -0
  188. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +1 -0
  189. package/build/dex/swaap-v1/libraries/Struct.d.ts +56 -0
  190. package/build/dex/swaap-v1/libraries/Struct.js +3 -0
  191. package/build/dex/swaap-v1/libraries/Struct.js.map +1 -0
  192. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +45 -0
  193. package/build/dex/swaap-v1/swaap-v1-pool.js +656 -0
  194. package/build/dex/swaap-v1/swaap-v1-pool.js.map +1 -0
  195. package/build/dex/swaap-v1/swaap-v1.d.ts +62 -0
  196. package/build/dex/swaap-v1/swaap-v1.js +379 -0
  197. package/build/dex/swaap-v1/swaap-v1.js.map +1 -0
  198. package/build/dex/swaap-v1/types.d.ts +106 -0
  199. package/build/dex/swaap-v1/types.js +9 -0
  200. package/build/dex/swaap-v1/types.js.map +1 -0
  201. package/build/dex/usual-bond/config.d.ts +3 -0
  202. package/build/dex/usual-bond/config.js +13 -0
  203. package/build/dex/usual-bond/config.js.map +1 -0
  204. package/build/dex/usual-bond/types.d.ts +7 -0
  205. package/build/dex/usual-bond/types.js +3 -0
  206. package/build/dex/usual-bond/types.js.map +1 -0
  207. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  208. package/build/dex/usual-bond/usual-bond.js +162 -0
  209. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  210. package/build/dex/zerox/index.d.ts +1 -1
  211. package/build/dex/zerox/index.js.map +1 -1
  212. package/package.json +2 -3
  213. package/src/abi/aave-gsm/Aave_GSM.json +751 -0
  214. package/src/abi/aave-gsm/IFeeStrategy.json +78 -0
  215. package/src/abi/inception/inception-ineth-pool.json +1062 -0
  216. package/src/abi/inception/inception-ineth.json +609 -0
  217. package/src/abi/inception/inception-ratio-feed.json +93 -0
  218. package/src/abi/inception/inception-vault.json +991 -0
  219. package/src/abi/stkGHO.json +1131 -0
  220. package/src/dex/aave-gsm/aave-gsm-e2e.test.ts +109 -0
  221. package/src/dex/aave-gsm/aave-gsm-events.test.ts +79 -0
  222. package/src/dex/aave-gsm/aave-gsm-integration.test.ts +522 -0
  223. package/src/dex/aave-gsm/aave-gsm-pool.ts +178 -0
  224. package/src/dex/aave-gsm/aave-gsm.ts +410 -0
  225. package/src/dex/aave-gsm/config.ts +16 -0
  226. package/src/dex/aave-gsm/types.ts +23 -0
  227. package/src/dex/inception/config.ts +109 -0
  228. package/src/dex/inception/inception-e2e.test.ts +67 -0
  229. package/src/dex/inception/inception-event-pool.ts +58 -0
  230. package/src/dex/inception/inception-events.test.ts +66 -0
  231. package/src/dex/inception/inception-integration.test.ts +76 -0
  232. package/src/dex/inception/inception.ts +238 -0
  233. package/src/dex/inception/tokens.ts +37 -0
  234. package/src/dex/inception/types.ts +26 -0
  235. package/src/dex/inception/utils.ts +71 -0
  236. package/src/dex/index.ts +6 -0
  237. package/src/dex/stkgho/config.ts +14 -0
  238. package/src/dex/stkgho/stkgho-e2e.test.ts +77 -0
  239. package/src/dex/stkgho/stkgho-events.test.ts +79 -0
  240. package/src/dex/stkgho/stkgho-integration.test.ts +226 -0
  241. package/src/dex/stkgho/stkgho-pool.ts +111 -0
  242. package/src/dex/stkgho/stkgho.ts +221 -0
  243. package/src/dex/stkgho/types.ts +14 -0
  244. package/tests/constants-e2e.ts +110 -7
  245. package/.idea/codeStyles/Project.xml +0 -59
  246. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  247. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  248. package/.idea/modules.xml +0 -8
  249. package/.idea/paraswap-dex-lib.iml +0 -12
  250. package/.idea/vcs.xml +0 -6
@@ -0,0 +1,221 @@
1
+ import { AsyncOrSync } from 'ts-essentials';
2
+ import {
3
+ Token,
4
+ Address,
5
+ ExchangePrices,
6
+ PoolPrices,
7
+ AdapterExchangeParam,
8
+ SimpleExchangeParam,
9
+ PoolLiquidity,
10
+ Logger,
11
+ NumberAsString,
12
+ DexExchangeParam,
13
+ } from '../../types';
14
+ import { SwapSide, Network } from '../../constants';
15
+ import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
16
+ import { getDexKeysWithNetwork } from '../../utils';
17
+ import { IDex } from '../../dex/idex';
18
+ import { IDexHelper } from '../../dex-helper/idex-helper';
19
+ import { DexParams, PoolState, StkGHOData } from './types';
20
+ import { SimpleExchange } from '../simple-exchange';
21
+ import { StkGHOConfig } from './config';
22
+ import { StkGHOEventPool } from './stkgho-pool';
23
+ import { Interface } from '@ethersproject/abi';
24
+ import StkGHO_ABI from '../../abi/stkGHO.json';
25
+
26
+ export class StkGHO extends SimpleExchange implements IDex<StkGHOData> {
27
+ static readonly stkGHOInterface = new Interface(StkGHO_ABI);
28
+ protected eventPool: StkGHOEventPool;
29
+
30
+ readonly hasConstantPriceLargeAmounts = false;
31
+ readonly needWrapNative = true;
32
+
33
+ protected config: DexParams;
34
+
35
+ readonly isFeeOnTransferSupported = false;
36
+ readonly exchangeRateUnit = 1_000_000_000_000_000_000n;
37
+
38
+ public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
39
+ getDexKeysWithNetwork(StkGHOConfig);
40
+
41
+ logger: Logger;
42
+
43
+ constructor(
44
+ readonly network: Network,
45
+ readonly dexKey: string,
46
+ readonly dexHelper: IDexHelper,
47
+ ) {
48
+ super(dexHelper, dexKey);
49
+ this.logger = dexHelper.getLogger(dexKey);
50
+ this.eventPool = new StkGHOEventPool(
51
+ dexKey,
52
+ dexKey,
53
+ network,
54
+ dexHelper,
55
+ this.logger,
56
+ );
57
+
58
+ const config = StkGHOConfig[dexKey][network];
59
+ this.config = {
60
+ stkGHO: config.stkGHO.toLowerCase(),
61
+ GHO: config.GHO.toLowerCase(),
62
+ };
63
+ }
64
+
65
+ async initializePricing(blockNumber: number) {
66
+ const state = await this.eventPool.generateState(blockNumber);
67
+
68
+ this.eventPool.initialize(blockNumber, {
69
+ state,
70
+ });
71
+ }
72
+
73
+ getAdapters(side: SwapSide): { name: string; index: number }[] | null {
74
+ return null;
75
+ }
76
+
77
+ async getPoolIdentifiers(
78
+ srcToken: Token,
79
+ destToken: Token,
80
+ side: SwapSide,
81
+ blockNumber: number,
82
+ ): Promise<string[]> {
83
+ const srcTokenAddress = srcToken.address.toLowerCase();
84
+ const destTokenAddress = destToken.address.toLowerCase();
85
+
86
+ if (
87
+ srcTokenAddress === this.config.GHO &&
88
+ destTokenAddress === this.config.stkGHO
89
+ ) {
90
+ return [`${this.dexKey}`];
91
+ } else {
92
+ return [];
93
+ }
94
+ }
95
+
96
+ async getPoolState(blockNumber: number): Promise<PoolState> {
97
+ const eventState = this.eventPool.getState(blockNumber);
98
+ if (eventState) return eventState;
99
+ const onChainState = await this.eventPool.generateState(blockNumber);
100
+ this.eventPool.setState(onChainState, blockNumber);
101
+ return onChainState;
102
+ }
103
+
104
+ async getPricesVolume(
105
+ srcToken: Token,
106
+ destToken: Token,
107
+ amounts: bigint[],
108
+ side: SwapSide,
109
+ blockNumber: number,
110
+ limitPools?: string[],
111
+ ): Promise<null | ExchangePrices<StkGHOData>> {
112
+ if (side === SwapSide.BUY) {
113
+ return null;
114
+ }
115
+
116
+ const srcTokenAddress = srcToken.address.toLowerCase();
117
+ const destTokenAddress = destToken.address.toLowerCase();
118
+
119
+ if (
120
+ srcTokenAddress != this.config.GHO ||
121
+ destTokenAddress != this.config.stkGHO
122
+ ) {
123
+ return null;
124
+ }
125
+
126
+ const state = await this.getPoolState(blockNumber);
127
+
128
+ return [
129
+ {
130
+ unit: state.exchangeRate,
131
+ prices: amounts.map(
132
+ amount => (state.exchangeRate * amount) / this.exchangeRateUnit,
133
+ ),
134
+ data: {
135
+ exchange: this.dexKey,
136
+ },
137
+ poolAddresses: [this.config.stkGHO],
138
+ exchange: this.dexKey,
139
+ gasCost: 100_000,
140
+ poolIdentifier: `${this.dexKey}`,
141
+ },
142
+ ];
143
+ }
144
+
145
+ getCalldataGasCost(poolPrices: PoolPrices<StkGHOData>): number | number[] {
146
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
147
+ }
148
+
149
+ getAdapterParam(
150
+ srcToken: string,
151
+ destToken: string,
152
+ srcAmount: string,
153
+ destAmount: string,
154
+ data: StkGHOData,
155
+ side: SwapSide,
156
+ ): AdapterExchangeParam {
157
+ const { exchange } = data;
158
+
159
+ const payload = '';
160
+
161
+ return {
162
+ targetExchange: exchange,
163
+ payload,
164
+ networkFee: '0',
165
+ };
166
+ }
167
+
168
+ async updatePoolState(): Promise<void> {}
169
+
170
+ async getDexParam(
171
+ srcToken: Address,
172
+ destToken: Address,
173
+ srcAmount: NumberAsString,
174
+ destAmount: NumberAsString,
175
+ recipient: Address,
176
+ data: StkGHOData,
177
+ side: SwapSide,
178
+ ): Promise<DexExchangeParam> {
179
+ const exchangeData = StkGHO.stkGHOInterface.encodeFunctionData('stake', [
180
+ recipient,
181
+ srcAmount,
182
+ ]);
183
+
184
+ return {
185
+ needWrapNative: this.needWrapNative,
186
+ dexFuncHasRecipient: true,
187
+ exchangeData,
188
+ targetExchange: this.config.stkGHO,
189
+ returnAmountPos: undefined,
190
+ };
191
+ }
192
+
193
+ async getTopPoolsForToken(
194
+ tokenAddress: Address,
195
+ limit: number,
196
+ ): Promise<PoolLiquidity[]> {
197
+ tokenAddress = tokenAddress.toLowerCase();
198
+
199
+ if (tokenAddress == this.config.GHO) {
200
+ return [
201
+ {
202
+ exchange: this.dexKey,
203
+ address: this.config.stkGHO,
204
+ connectorTokens: [
205
+ {
206
+ decimals: 18,
207
+ address: this.config.stkGHO,
208
+ },
209
+ ],
210
+ liquidityUSD: 1_000_000_000_000, // GHO to stkGHO supply is unlimited
211
+ },
212
+ ];
213
+ } else {
214
+ return [];
215
+ }
216
+ }
217
+
218
+ // This is optional function in case if your implementation has acquired any resources
219
+ // you need to release for graceful shutdown. For example, it may be any interval timer
220
+ releaseResources(): AsyncOrSync<void> {}
221
+ }
@@ -0,0 +1,14 @@
1
+ import { Address } from '../../types';
2
+
3
+ export type PoolState = {
4
+ exchangeRate: bigint;
5
+ };
6
+
7
+ export type StkGHOData = {
8
+ exchange: Address;
9
+ };
10
+
11
+ export type DexParams = {
12
+ stkGHO: Address;
13
+ GHO: Address;
14
+ };
@@ -1,12 +1,12 @@
1
1
  import {
2
- SmartTokenParams,
3
- balanceOfFn,
2
+ _allowancesFn,
3
+ _balancesFn,
4
4
  allowanceFn,
5
- SmartToken,
6
- balancesFn,
7
5
  allowedFn,
8
- _balancesFn,
9
- _allowancesFn,
6
+ balanceOfFn,
7
+ balancesFn,
8
+ SmartToken,
9
+ SmartTokenParams,
10
10
  } from '../tests/smart-tokens';
11
11
  import { Address } from '../src/types';
12
12
  import { ETHER_ADDRESS, Network } from '../src/constants';
@@ -455,6 +455,10 @@ export const Tokens: {
455
455
  address: '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f',
456
456
  decimals: 18,
457
457
  },
458
+ stkGHO: {
459
+ address: '0x1a88Df1cFe15Af22B3c4c783D4e6F7F9e0C1885d',
460
+ decimals: 18,
461
+ },
458
462
  USDe: {
459
463
  address: '0x4c9EDD5852cd905f086C759E8383e09bff1E68B3',
460
464
  decimals: 18,
@@ -499,6 +503,94 @@ export const Tokens: {
499
503
  address: '0x23878914efe38d27c4d67ab83ed1b93a74d4086a',
500
504
  decimals: 6,
501
505
  },
506
+ instETH: {
507
+ address: '0x7FA768E035F956c41d6aeaa3Bd857e7E5141CAd5',
508
+ decimals: 18,
509
+ },
510
+ inrETH: {
511
+ address: '0x80d69e79258FE9D056c822461c4eb0B4ca8802E2',
512
+ decimals: 18,
513
+ },
514
+ inoETH: {
515
+ address: '0x9181f633e9b9f15a32d5e37094f4c93b333e0e92',
516
+ decimals: 18,
517
+ },
518
+ inosETH: {
519
+ address: '0xfD07fD5EBEa6F24888a397997E262179Bf494336',
520
+ decimals: 18,
521
+ },
522
+ inankrETH: {
523
+ address: '0xfa2629B9cF3998D52726994E0FcdB750224D8B9D',
524
+ decimals: 18,
525
+ },
526
+ incbETH: {
527
+ address: '0xbf19eead55a6b100667f04f8fbc5371e03e8ab2e',
528
+ decimals: 18,
529
+ },
530
+ inwbETH: {
531
+ address: '0xda9b11cd701e10c2ec1a284f80820edd128c5246',
532
+ decimals: 18,
533
+ },
534
+ inswETH: {
535
+ address: '0xc3ade5ace1bbb033ccae8177c12ecbfa16bd6a9d',
536
+ decimals: 18,
537
+ },
538
+ inETHx: {
539
+ address: '0x57a5a0567187ff4a8dcc1a9bba86155e355878f2',
540
+ decimals: 18,
541
+ },
542
+ insfrxETH: {
543
+ address: '0x668308d77be3533c909a692302cb4d135bf8041c',
544
+ decimals: 18,
545
+ },
546
+ inmETH: {
547
+ address: '0xeCf3672A6d2147E2A77f07069Fb48d8Cf6F6Fbf9',
548
+ decimals: 18,
549
+ },
550
+ inlsETH: {
551
+ address: '0x94b888e11a9e960a9c3b3528eb6ac807b27ca62e',
552
+ decimals: 18,
553
+ },
554
+ inETH: {
555
+ address: '0xf073bAC22DAb7FaF4a3Dd6c6189a70D54110525C',
556
+ decimals: 18,
557
+ },
558
+ rETH: {
559
+ address: '0xae78736Cd615f374D3085123A210448E74Fc6393',
560
+ decimals: 18,
561
+ },
562
+ oETH: {
563
+ address: '0x856c4Efb76C1D1AE02e20CEB03A2A6a08b0b8dC3',
564
+ decimals: 18,
565
+ },
566
+ osETH: {
567
+ address: '0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38',
568
+ decimals: 18,
569
+ },
570
+ cbETH: {
571
+ address: '0xBe9895146f7AF43049ca1c1AE358B0541Ea49704',
572
+ decimals: 18,
573
+ },
574
+ wbETH: {
575
+ address: '0xa2E3356610840701BDf5611a53974510Ae27E2e1',
576
+ decimals: 18,
577
+ },
578
+ ETHx: {
579
+ address: '0xA35b1B31Ce002FBF2058D22F30f95D405200A15b',
580
+ decimals: 18,
581
+ },
582
+ sfrxETH: {
583
+ address: '0xac3E018457B222d93114458476f3E3416Abbe38F',
584
+ decimals: 18,
585
+ },
586
+ mETH: {
587
+ address: '0xd5F7838F5C461fefF7FE49ea5ebaF7728bB0ADfa',
588
+ decimals: 18,
589
+ },
590
+ lsETH: {
591
+ address: '0x8c1BEd5b9a0928467c9B1341Da1D7BD5e10b6549',
592
+ decimals: 18,
593
+ },
502
594
  rUSD: {
503
595
  address: '0x65D72AA8DA931F047169112fcf34f52DbaAE7D18',
504
596
  decimals: 18,
@@ -1518,7 +1610,7 @@ export const Holders: {
1518
1610
  sDAI: '0x4C612E3B15b96Ff9A6faED838F8d07d479a8dD4c',
1519
1611
  CVX: '0x0aCA67Fa70B142A3b9bF2eD89A81B40ff85dACdC',
1520
1612
  MIM: '0xa046a8660e66d178ee07ec97c585eeb6aa18c26c',
1521
- AnkETH: '0xF7260D4ADc48fEefd5a19a9Eb23f9747CeE15C92',
1613
+ AnkETH: '0xBB2d41AcfEA24A3A2aD4A6F95C3AcE1cC98c6ed6',
1522
1614
  DAI: '0xd1668fb5f690c59ab4b0cabad0f8c1617895052b',
1523
1615
  oldFRAX: '0x183d0dc5867c01bfb1dbbc41d6a9d3de6e044626',
1524
1616
  newFRAX: '0x183d0dc5867c01bfb1dbbc41d6a9d3de6e044626',
@@ -1585,6 +1677,17 @@ export const Holders: {
1585
1677
  stataUSDT: '0x6803364AceD5181877abC11E865FB27cB654a426',
1586
1678
  aaveUSDT: '0x32c98a981Fe7C333Bd4e8E7630E8e0CF5ce20987',
1587
1679
  weETH: '0x267ed5f71EE47D3E45Bb1569Aa37889a2d10f91e',
1680
+ rETH: '0x9985dF20D7e9103ECBCeb16a84956434B6f06ae8',
1681
+ oETH: '0xDcEe70654261AF21C44c093C300eD3Bb97b78192',
1682
+ osETH: '0xe080027Bd47353b5D1639772b4a75E9Ed3658A0d',
1683
+ cbETH: '0xd35faBF6Ec806f4D772617956A2058CdE086C6E0',
1684
+ wbETH: '0xc6C010287683FD3Db7865016e3e1D6468Dd73aA6',
1685
+ ETHx: '0x4F2083f5fBede34C2714aFfb3105539775f7FE64',
1686
+ sfrxETH: '0xC2545C68a71F6803264bdE885870fD72D361fB9E',
1687
+ mETH: '0xc3350595eD42EbE94556277bc77D257c76065291',
1688
+ lsETH: '0xAe60d8180437b5C34bB956822ac2710972584473',
1689
+ SWETH: '0xc585DF3a8C9ca0c614D023A812624bE36161502B',
1690
+ inankrETH: '0x310C8f5274F74258cDe1E5101b50A0502b884aC4',
1588
1691
  rUSD: '0xEC2eda1C4F981E468ABF62424a10B69B738b498E',
1589
1692
  arUSD: '0xeFc24206053a452e2299BF3b8f964512b041Db4C',
1590
1693
  },
@@ -1,59 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <code_scheme name="Project" version="173">
3
- <HTMLCodeStyleSettings>
4
- <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
- </HTMLCodeStyleSettings>
6
- <JSCodeStyleSettings version="0">
7
- <option name="FORCE_SEMICOLON_STYLE" value="true" />
8
- <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
9
- <option name="USE_DOUBLE_QUOTES" value="false" />
10
- <option name="FORCE_QUOTE_STYlE" value="true" />
11
- <option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
12
- <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
13
- <option name="SPACES_WITHIN_IMPORTS" value="true" />
14
- </JSCodeStyleSettings>
15
- <TypeScriptCodeStyleSettings version="0">
16
- <option name="FORCE_SEMICOLON_STYLE" value="true" />
17
- <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
18
- <option name="USE_DOUBLE_QUOTES" value="false" />
19
- <option name="FORCE_QUOTE_STYlE" value="true" />
20
- <option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
21
- <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
22
- <option name="SPACES_WITHIN_IMPORTS" value="true" />
23
- </TypeScriptCodeStyleSettings>
24
- <VueCodeStyleSettings>
25
- <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
26
- <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
27
- </VueCodeStyleSettings>
28
- <codeStyleSettings language="HTML">
29
- <option name="SOFT_MARGINS" value="80" />
30
- <indentOptions>
31
- <option name="INDENT_SIZE" value="2" />
32
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
33
- <option name="TAB_SIZE" value="2" />
34
- </indentOptions>
35
- </codeStyleSettings>
36
- <codeStyleSettings language="JavaScript">
37
- <option name="SOFT_MARGINS" value="80" />
38
- <indentOptions>
39
- <option name="INDENT_SIZE" value="2" />
40
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
41
- <option name="TAB_SIZE" value="2" />
42
- </indentOptions>
43
- </codeStyleSettings>
44
- <codeStyleSettings language="TypeScript">
45
- <option name="SOFT_MARGINS" value="80" />
46
- <indentOptions>
47
- <option name="INDENT_SIZE" value="2" />
48
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
49
- <option name="TAB_SIZE" value="2" />
50
- </indentOptions>
51
- </codeStyleSettings>
52
- <codeStyleSettings language="Vue">
53
- <option name="SOFT_MARGINS" value="80" />
54
- <indentOptions>
55
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
56
- </indentOptions>
57
- </codeStyleSettings>
58
- </code_scheme>
59
- </component>
@@ -1,5 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <state>
3
- <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
- </state>
5
- </component>
@@ -1,6 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
- </profile>
6
- </component>
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,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="WEB_MODULE" version="4">
3
- <component name="NewModuleRootManager">
4
- <content url="file://$MODULE_DIR$">
5
- <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
- <excludeFolder url="file://$MODULE_DIR$/temp" />
7
- <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
- </content>
9
- <orderEntry type="inheritedJdk" />
10
- <orderEntry type="sourceFolder" forTests="false" />
11
- </component>
12
- </module>
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>