@paraswap/dex-lib 2.49.2-dackieswapv3-base.0 → 2.49.2-hashflow

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 (175) hide show
  1. package/build/abi/Redstone.json +739 -0
  2. package/build/abi/angle/stagToken.json +963 -0
  3. package/build/abi/angle-transmuter/MorphoOracle.json +193 -0
  4. package/build/abi/angle-transmuter/MorphoVault.json +2506 -0
  5. package/build/abi/angle-transmuter/Pyth.json +1534 -0
  6. package/build/abi/angle-transmuter/Transmuter.json +1711 -0
  7. package/build/abi/pharaoh/PharaohPool.abi.json +1582 -0
  8. package/build/abi/smardex/smardex-factory.json +185 -0
  9. package/build/abi/smardex/smardex-pool.json +578 -0
  10. package/build/abi/smardex/smardex-router.json +648 -0
  11. package/build/abi/trader-joe-v2_1/FactoryABI.json +1208 -0
  12. package/build/abi/trader-joe-v2_1/PairABI.json +1493 -0
  13. package/build/abi/trader-joe-v2_1/RouterABI.json +1489 -0
  14. package/build/abi/trader-joe-v2_1/StateMulticall.json +193 -0
  15. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +55 -0
  16. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +183 -0
  17. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +1 -0
  18. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +50 -0
  19. package/build/dex/angle-staked-stable/angle-staked-stable.js +278 -0
  20. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -0
  21. package/build/dex/angle-staked-stable/config.d.ts +4 -0
  22. package/build/dex/angle-staked-stable/config.js +131 -0
  23. package/build/dex/angle-staked-stable/config.js.map +1 -0
  24. package/build/dex/angle-staked-stable/types.d.ts +17 -0
  25. package/build/dex/angle-staked-stable/types.js +3 -0
  26. package/build/dex/angle-staked-stable/types.js.map +1 -0
  27. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +61 -0
  28. package/build/dex/angle-transmuter/angle-transmuter-pool.js +415 -0
  29. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +1 -0
  30. package/build/dex/angle-transmuter/angle-transmuter.d.ts +59 -0
  31. package/build/dex/angle-transmuter/angle-transmuter.js +262 -0
  32. package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -0
  33. package/build/dex/angle-transmuter/backedOracle.d.ts +19 -0
  34. package/build/dex/angle-transmuter/backedOracle.js +56 -0
  35. package/build/dex/angle-transmuter/backedOracle.js.map +1 -0
  36. package/build/dex/angle-transmuter/config.d.ts +4 -0
  37. package/build/dex/angle-transmuter/config.js +30 -0
  38. package/build/dex/angle-transmuter/config.js.map +1 -0
  39. package/build/dex/angle-transmuter/constants.d.ts +77 -0
  40. package/build/dex/angle-transmuter/constants.js +94 -0
  41. package/build/dex/angle-transmuter/constants.js.map +1 -0
  42. package/build/dex/angle-transmuter/morphoOracle.d.ts +42 -0
  43. package/build/dex/angle-transmuter/morphoOracle.js +179 -0
  44. package/build/dex/angle-transmuter/morphoOracle.js.map +1 -0
  45. package/build/dex/angle-transmuter/morphoVault.d.ts +19 -0
  46. package/build/dex/angle-transmuter/morphoVault.js +78 -0
  47. package/build/dex/angle-transmuter/morphoVault.js.map +1 -0
  48. package/build/dex/angle-transmuter/pyth.d.ts +19 -0
  49. package/build/dex/angle-transmuter/pyth.js +70 -0
  50. package/build/dex/angle-transmuter/pyth.js.map +1 -0
  51. package/build/dex/angle-transmuter/redstone.d.ts +20 -0
  52. package/build/dex/angle-transmuter/redstone.js +73 -0
  53. package/build/dex/angle-transmuter/redstone.js.map +1 -0
  54. package/build/dex/angle-transmuter/transmuter.d.ts +52 -0
  55. package/build/dex/angle-transmuter/transmuter.js +374 -0
  56. package/build/dex/angle-transmuter/transmuter.js.map +1 -0
  57. package/build/dex/angle-transmuter/types.d.ts +188 -0
  58. package/build/dex/angle-transmuter/types.js +33 -0
  59. package/build/dex/angle-transmuter/types.js.map +1 -0
  60. package/build/dex/angle-transmuter/utils.d.ts +9 -0
  61. package/build/dex/angle-transmuter/utils.js +252 -0
  62. package/build/dex/angle-transmuter/utils.js.map +1 -0
  63. package/build/dex/hashflow/constants.d.ts +27 -0
  64. package/build/dex/hashflow/constants.js +29 -1
  65. package/build/dex/hashflow/constants.js.map +1 -1
  66. package/build/dex/hashflow/hashflow.d.ts +3 -2
  67. package/build/dex/hashflow/hashflow.js +77 -12
  68. package/build/dex/hashflow/hashflow.js.map +1 -1
  69. package/build/dex/hashflow/types.d.ts +11 -0
  70. package/build/dex/hashflow/types.js +9 -0
  71. package/build/dex/hashflow/types.js.map +1 -1
  72. package/build/dex/index.js +2 -0
  73. package/build/dex/index.js.map +1 -1
  74. package/build/dex/pancakeswap-v3/config.js +0 -15
  75. package/build/dex/pancakeswap-v3/config.js.map +1 -1
  76. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +1 -1
  77. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  78. package/build/dex/smardex/subgraph-queries.d.ts +1 -0
  79. package/build/dex/smardex/subgraph-queries.js +17 -0
  80. package/build/dex/smardex/subgraph-queries.js.map +1 -0
  81. package/build/dex/smardex/usd-reserves.d.ts +23 -0
  82. package/build/dex/smardex/usd-reserves.js +86 -0
  83. package/build/dex/smardex/usd-reserves.js.map +1 -0
  84. package/build/dex/solidly/config.js +12 -0
  85. package/build/dex/solidly/config.js.map +1 -1
  86. package/build/dex/solidly/forks-override/pharaohV1.d.ts +8 -0
  87. package/build/dex/solidly/forks-override/pharaohV1.js +15 -0
  88. package/build/dex/solidly/forks-override/pharaohV1.js.map +1 -0
  89. package/build/dex/solidly/solidly.js +1 -0
  90. package/build/dex/solidly/solidly.js.map +1 -1
  91. package/build/dex/trader-joe-v2-1-2/config.d.ts +4 -0
  92. package/build/dex/trader-joe-v2-1-2/config.js +47 -0
  93. package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
  94. package/build/dex/trader-joe-v2-1-2/constants.d.ts +20 -0
  95. package/build/dex/trader-joe-v2-1-2/constants.js +22 -0
  96. package/build/dex/trader-joe-v2-1-2/constants.js.map +1 -0
  97. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +37 -0
  98. package/build/dex/trader-joe-v2-1-2/math/index.js +291 -0
  99. package/build/dex/trader-joe-v2-1-2/math/index.js.map +1 -0
  100. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +60 -0
  101. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +248 -0
  102. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
  103. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +53 -0
  104. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +307 -0
  105. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
  106. package/build/dex/trader-joe-v2-1-2/types.d.ts +82 -0
  107. package/build/dex/trader-joe-v2-1-2/types.js +9 -0
  108. package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
  109. package/build/dex/trader-joe-v2_1/config.d.ts +4 -0
  110. package/build/dex/trader-joe-v2_1/config.js +47 -0
  111. package/build/dex/trader-joe-v2_1/config.js.map +1 -0
  112. package/build/dex/trader-joe-v2_1/constants.d.ts +20 -0
  113. package/build/dex/trader-joe-v2_1/constants.js +22 -0
  114. package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
  115. package/build/dex/trader-joe-v2_1/math/index.d.ts +37 -0
  116. package/build/dex/trader-joe-v2_1/math/index.js +291 -0
  117. package/build/dex/trader-joe-v2_1/math/index.js.map +1 -0
  118. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  119. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +384 -0
  120. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
  121. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +60 -0
  122. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +247 -0
  123. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +1 -0
  124. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +53 -0
  125. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +307 -0
  126. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +1 -0
  127. package/build/dex/trader-joe-v2_1/types.d.ts +82 -0
  128. package/build/dex/trader-joe-v2_1/types.js +9 -0
  129. package/build/dex/trader-joe-v2_1/types.js.map +1 -0
  130. package/build/dex/uniswap-v3/config.js +1 -1
  131. package/build/dex/uniswap-v3/config.js.map +1 -1
  132. package/build/dex/uniswap-v3/uniswap-v3.js +1 -1
  133. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  134. package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
  135. package/build/dex/wombat/wombat-pool-poller.js +164 -0
  136. package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
  137. package/build/dex-helper/Cache.d.ts +31 -0
  138. package/build/dex-helper/Cache.js +106 -0
  139. package/build/dex-helper/Cache.js.map +1 -0
  140. package/build/dex-helper/RedisBatcher.d.ts +20 -0
  141. package/build/dex-helper/RedisBatcher.js +75 -0
  142. package/build/dex-helper/RedisBatcher.js.map +1 -0
  143. package/build/dex-helper/RedisWrapper.d.ts +37 -0
  144. package/build/dex-helper/RedisWrapper.js +165 -0
  145. package/build/dex-helper/RedisWrapper.js.map +1 -0
  146. package/package.json +1 -1
  147. package/src/dex/hashflow/constants.ts +32 -0
  148. package/src/dex/hashflow/hashflow.ts +131 -19
  149. package/src/dex/hashflow/types.ts +20 -2
  150. package/src/dex/index.ts +2 -0
  151. package/src/dex/pancakeswap-v3/config.ts +0 -16
  152. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +1 -3
  153. package/src/dex/solidly/config.ts +14 -0
  154. package/src/dex/solidly/forks-override/pharaohV1.ts +10 -0
  155. package/src/dex/solidly/solidly-e2e.test.ts +21 -0
  156. package/src/dex/solidly/solidly-integration.test.ts +143 -0
  157. package/src/dex/solidly/solidly.ts +1 -0
  158. package/src/dex/uniswap-v3/config.ts +1 -1
  159. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +2 -2
  160. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +2 -2
  161. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -1
  162. package/tests/constants-e2e.ts +5 -0
  163. package/.vscode/launch.json +0 -53
  164. package/.vscode/settings.json +0 -2
  165. package/.vscode/tasks.json +0 -15
  166. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
  167. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +0 -1
  168. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +0 -53
  169. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +0 -1
  170. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +0 -17
  171. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +0 -64
  172. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +0 -1
  173. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +0 -17
  174. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +0 -79
  175. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +0 -1
@@ -87,9 +87,7 @@ export class PancakeswapV3
87
87
  intervalTask?: NodeJS.Timeout;
88
88
 
89
89
  public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
90
- getDexKeysWithNetwork(
91
- _.pick(PancakeswapV3Config, ['PancakeswapV3', 'DackieSwapV3']),
92
- );
90
+ getDexKeysWithNetwork(_.pick(PancakeswapV3Config, ['PancakeswapV3']));
93
91
 
94
92
  logger: Logger;
95
93
 
@@ -159,6 +159,20 @@ export const SolidlyConfig: DexConfigMap<DexParams> = {
159
159
  feeCode: 0,
160
160
  },
161
161
  },
162
+ PharaohV1: {
163
+ [Network.AVALANCHE]: {
164
+ subgraphURL:
165
+ 'https://api.studio.thegraph.com/query/66247/pharaoh-legacy/version/latest',
166
+ factoryAddress: '0xAAA16c016BF556fcD620328f0759252E29b1AB57',
167
+ router: '0x609AcD8Fc955Dd7E744c7DFFc9930a7A6654DE43',
168
+ initCode:
169
+ '0xbf2404274de2b11f05e5aebd49e508de933034cb5fa2d0ac3de8cbd4bcef47dc',
170
+ poolGasCost: 180 * 1000,
171
+ stableFee: 5,
172
+ volatileFee: 25,
173
+ feeCode: 0,
174
+ },
175
+ },
162
176
  Equalizer: {
163
177
  [Network.FANTOM]: {
164
178
  factoryAddress: '0xc6366EFD0AF1d09171fe0EBF32c7943BB310832a',
@@ -0,0 +1,10 @@
1
+ import { Network } from '../../../constants';
2
+ import { getDexKeysWithNetwork } from '../../../utils';
3
+ import { SolidlyConfig } from '../config';
4
+ import _ from 'lodash';
5
+ import { Ramses } from './ramses';
6
+
7
+ export class PharaohV1 extends Ramses {
8
+ public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
9
+ getDexKeysWithNetwork(_.pick(SolidlyConfig, ['PharaohV1']));
10
+ }
@@ -1245,6 +1245,27 @@ describe('Solidly E2E', () => {
1245
1245
  });
1246
1246
  });
1247
1247
  });
1248
+
1249
+ describe('PharaohV1', () => {
1250
+ const dexKey = 'PharaohV1';
1251
+
1252
+ const tokenASymbol: string = 'USDC';
1253
+ const tokenBSymbol: string = 'WAVAX';
1254
+
1255
+ const tokenAAmount: string = '100000';
1256
+ const tokenBAmount: string = '100000000000000000';
1257
+ const nativeTokenAmount = '100000000000000000';
1258
+
1259
+ testForNetwork(
1260
+ network,
1261
+ dexKey,
1262
+ tokenASymbol,
1263
+ tokenBSymbol,
1264
+ tokenAAmount,
1265
+ tokenBAmount,
1266
+ nativeTokenAmount,
1267
+ );
1268
+ });
1248
1269
  });
1249
1270
 
1250
1271
  describe('Arbitrum', () => {
@@ -19,6 +19,7 @@ import { VelodromeV2 } from './forks-override/velodromeV2';
19
19
  import { Equalizer } from './forks-override/equalizer';
20
20
  import { Velocimeter } from './forks-override/velocimeter';
21
21
  import { Usdfi } from './forks-override/usdfi';
22
+ import { PharaohV1 } from './forks-override/pharaohV1';
22
23
 
23
24
  const amounts18 = [0n, BI_POWS[18], 2000000000000000000n];
24
25
  const amounts6 = [0n, BI_POWS[6], 2000000n];
@@ -1443,6 +1444,148 @@ describe('Solidly integration tests', () => {
1443
1444
  });
1444
1445
  });
1445
1446
 
1447
+ describe('Avalanche', () => {
1448
+ const network = Network.AVALANCHE;
1449
+ const dexHelper = new DummyDexHelper(network);
1450
+ const checkOnChainPricing = constructCheckOnChainPricing(dexHelper);
1451
+
1452
+ describe('PharaohV1', function () {
1453
+ const dexKey = 'PharaohV1';
1454
+ const pharaohV1 = new PharaohV1(network, dexKey, dexHelper);
1455
+
1456
+ describe('UniswapV2 like pool', function () {
1457
+ const TokenASymbol = 'USDC';
1458
+ const tokenA = Tokens[network][TokenASymbol];
1459
+ const TokenBSymbol = 'WAVAX';
1460
+ const tokenB = Tokens[network][TokenBSymbol];
1461
+
1462
+ const amounts = amounts18;
1463
+
1464
+ it('getPoolIdentifiers and getPricesVolume', async function () {
1465
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
1466
+ const pools = await pharaohV1.getPoolIdentifiers(
1467
+ tokenA,
1468
+ tokenB,
1469
+ SwapSide.SELL,
1470
+ blocknumber,
1471
+ );
1472
+ console.log(
1473
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1474
+ pools,
1475
+ );
1476
+
1477
+ expect(pools.length).toBeGreaterThan(0);
1478
+
1479
+ console.log('AMOUNTS: ', amounts);
1480
+
1481
+ const poolPrices = await pharaohV1.getPricesVolume(
1482
+ tokenA,
1483
+ tokenB,
1484
+ amounts,
1485
+ SwapSide.SELL,
1486
+ blocknumber,
1487
+ pools,
1488
+ );
1489
+ console.log(
1490
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1491
+ util.inspect(poolPrices, false, null, true),
1492
+ );
1493
+
1494
+ expect(poolPrices).not.toBeNull();
1495
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
1496
+
1497
+ // Check if onchain pricing equals to calculated ones
1498
+
1499
+ for (const poolPrice of poolPrices || []) {
1500
+ await checkOnChainPricing(
1501
+ pharaohV1,
1502
+ 'getAmountOut',
1503
+ blocknumber,
1504
+ poolPrice.prices,
1505
+ poolPrice.poolAddresses![0],
1506
+ tokenA.address,
1507
+ amounts,
1508
+ );
1509
+ }
1510
+ });
1511
+
1512
+ it('getTopPoolsForToken', async function () {
1513
+ const poolLiquidity = await pharaohV1.getTopPoolsForToken(
1514
+ tokenA.address,
1515
+ 10,
1516
+ );
1517
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
1518
+
1519
+ checkPoolsLiquidity(poolLiquidity, tokenA.address, dexKey);
1520
+ });
1521
+ });
1522
+
1523
+ describe('Curve like stable pool', function () {
1524
+ const TokenASymbol = 'USDT';
1525
+ const tokenA = Tokens[network][TokenASymbol];
1526
+ const TokenBSymbol = 'USDC';
1527
+ const tokenB = Tokens[network][TokenBSymbol];
1528
+
1529
+ const amounts = amounts6;
1530
+
1531
+ it('getPoolIdentifiers and getPricesVolume', async function () {
1532
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
1533
+ const pools = await pharaohV1.getPoolIdentifiers(
1534
+ tokenA,
1535
+ tokenB,
1536
+ SwapSide.SELL,
1537
+ blocknumber,
1538
+ );
1539
+ console.log(
1540
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1541
+ pools,
1542
+ );
1543
+
1544
+ expect(pools.length).toBeGreaterThan(0);
1545
+
1546
+ const poolPrices = await pharaohV1.getPricesVolume(
1547
+ tokenA,
1548
+ tokenB,
1549
+ amounts,
1550
+ SwapSide.SELL,
1551
+ blocknumber,
1552
+ pools,
1553
+ );
1554
+ console.log(
1555
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1556
+ poolPrices,
1557
+ );
1558
+
1559
+ expect(poolPrices).not.toBeNull();
1560
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
1561
+
1562
+ // Check if onchain pricing equals to calculated ones
1563
+ for (const poolPrice of poolPrices || []) {
1564
+ await checkOnChainPricing(
1565
+ pharaohV1,
1566
+ 'getAmountOut',
1567
+ blocknumber,
1568
+ poolPrice.prices,
1569
+ poolPrice.poolAddresses![0],
1570
+ tokenA.address,
1571
+ amounts,
1572
+ );
1573
+ }
1574
+ });
1575
+
1576
+ it('getTopPoolsForToken', async function () {
1577
+ const poolLiquidity = await pharaohV1.getTopPoolsForToken(
1578
+ tokenA.address,
1579
+ 10,
1580
+ );
1581
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
1582
+
1583
+ checkPoolsLiquidity(poolLiquidity, tokenA.address, dexKey);
1584
+ });
1585
+ });
1586
+ });
1587
+ });
1588
+
1446
1589
  describe('Optimism', () => {
1447
1590
  const network = Network.OPTIMISM;
1448
1591
  const dexHelper = new DummyDexHelper(network);
@@ -78,6 +78,7 @@ export class Solidly extends UniswapV2 {
78
78
  'Equalizer',
79
79
  'Velocimeter',
80
80
  'Usdfi',
81
+ 'PharaohV1',
81
82
  ]),
82
83
  );
83
84
 
@@ -261,7 +261,7 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
261
261
  'https://api.thegraph.com/subgraphs/name/ramsesexchange/concentrated-liquidity-graph',
262
262
  },
263
263
  },
264
- Pharaoh: {
264
+ PharaohV2: {
265
265
  [Network.AVALANCHE]: {
266
266
  factory: '0xAAA32926fcE6bE95ea2c51cB4Fcb60836D320C42',
267
267
  deployer: '0x95120704f4E2D545Aea8b6B3c16d9Da1fa32E30F',
@@ -696,8 +696,8 @@ describe('UniswapV3 E2E', () => {
696
696
  });
697
697
  });
698
698
 
699
- describe('Pharaoh', () => {
700
- const dexKey = 'Pharaoh';
699
+ describe('PharaohV2', () => {
700
+ const dexKey = 'PharaohV2';
701
701
 
702
702
  describe('Avalanche', () => {
703
703
  const network = Network.AVALANCHE;
@@ -613,8 +613,8 @@ describe('RamsesV2', () => {
613
613
  });
614
614
  });
615
615
 
616
- describe('Pharaoh', () => {
617
- const dexKey = 'Pharaoh';
616
+ describe('PharaohV2', () => {
617
+ const dexKey = 'PharaohV2';
618
618
  let blockNumber: number;
619
619
  let uniswapV3: UniswapV3;
620
620
  let uniswapV3Mainnet: UniswapV3;
@@ -104,7 +104,7 @@ export class UniswapV3
104
104
  'ChronosV3',
105
105
  'Retro',
106
106
  'BaseswapV3',
107
- 'Pharaoh',
107
+ 'PharaohV2',
108
108
  'AlienBaseV3',
109
109
  ]),
110
110
  );
@@ -669,6 +669,10 @@ export const Tokens: {
669
669
  },
670
670
  },
671
671
  [Network.AVALANCHE]: {
672
+ PHAR: {
673
+ address: '0xAAAB9D12A30504559b0C5a9A5977fEE4A6081c6b',
674
+ decimals: 18,
675
+ },
672
676
  USDCe: {
673
677
  address: '0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664',
674
678
  decimals: 6,
@@ -1236,6 +1240,7 @@ export const Holders: {
1236
1240
  YUSD: '0x6c1a5ef2acde1fd2fc68def440d2c1eb35bae24a',
1237
1241
  BTCb: '0x84c06d3c27821d0136f66306f5028d43ceac268d',
1238
1242
  AMPL: '0xfcaA5ea7F8eb0631BcA72C345025C0A5a6D93f0E',
1243
+ PHAR: '0x654296D56532f62B7d91d335791d3c364a9385b5',
1239
1244
  },
1240
1245
  [Network.ARBITRUM]: {
1241
1246
  SEN: '0xcb19b6b4971bd4206bab176c75b1efe3e28ee5a8',
@@ -1,53 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "type": "node",
6
- "request": "launch",
7
- "name": "Current",
8
- "program": "${file}",
9
- "preLaunchTask": "npm: build",
10
- "sourceMaps": true,
11
- "smartStep": true,
12
- "internalConsoleOptions": "openOnSessionStart",
13
- "outFiles": ["${workspaceFolder}/build/**/*.js"]
14
- },
15
- {
16
- "type": "node",
17
- "request": "launch",
18
- "name": "Debug dex integration",
19
- "program": "${workspaceFolder}/node_modules/ts-node/dist/bin.js",
20
- "args": [
21
- "--project",
22
- "tsconfig.json",
23
- // "${workspaceFolder}/src/dex/algebra/scripts/validate-state.ts",
24
- "${workspaceFolder}/src/dex/camelot/camelot-pool-discovery.test.ts",
25
- // "${workspaceFolder}/src/dex/solidly-v3/scripts/check-event-pool-event.ts",
26
- // "${workspaceFolder}/scripts/dex-integration.ts",
27
- "test",
28
- "wombat"
29
- ],
30
- "console": "integratedTerminal",
31
- "internalConsoleOptions": "neverOpen",
32
- "runtimeArgs": ["--nolazy"],
33
- "sourceMaps": true,
34
- "smartStep": true,
35
- "skipFiles": ["<node_internals>/**"],
36
- "cwd": "${workspaceFolder}"
37
- },
38
- {
39
- "type": "node",
40
- "name": "Jest file",
41
- "request": "launch",
42
- "program": "${workspaceFolder}/node_modules/jest/bin/jest.js",
43
- // "program": "${workspaceFolder}/src/dex/camelot/scripts/validate-state.ts",
44
- // "args": ["src/dex/balancer-v1/balancer-v1-e2e.test.ts"],
45
- // "args": ["${relativeFile}"],
46
- "args": ["${file}"],
47
- "cwd": "${workspaceRoot}",
48
- "console": "integratedTerminal",
49
- "internalConsoleOptions": "neverOpen",
50
- "sourceMaps": true
51
- }
52
- ]
53
- }
@@ -1,2 +0,0 @@
1
- {
2
- }
@@ -1,15 +0,0 @@
1
- {
2
- "version": "2.0.0",
3
- "tasks": [
4
- {
5
- "label": "tsc: build - tsconfig.json",
6
- "type": "typescript",
7
- "tsconfig": "tsconfig.json",
8
- "problemMatcher": ["$tsc"],
9
- "group": {
10
- "kind": "build",
11
- "isDefault": true
12
- }
13
- }
14
- ]
15
- }
@@ -1,52 +0,0 @@
1
- [
2
- {
3
- "inputs": [
4
- {
5
- "components": [
6
- { "internalType": "bytes", "name": "path", "type": "bytes" },
7
- { "internalType": "address", "name": "recipient", "type": "address" },
8
- { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
9
- {
10
- "internalType": "uint256",
11
- "name": "amountOutMinimum",
12
- "type": "uint256"
13
- }
14
- ],
15
- "internalType": "struct ISwapRouter.ExactInputParams",
16
- "name": "params",
17
- "type": "tuple"
18
- }
19
- ],
20
- "name": "exactInput",
21
- "outputs": [
22
- { "internalType": "uint256", "name": "amountOut", "type": "uint256" }
23
- ],
24
- "stateMutability": "payable",
25
- "type": "function"
26
- },
27
- {
28
- "inputs": [
29
- {
30
- "components": [
31
- { "internalType": "bytes", "name": "path", "type": "bytes" },
32
- { "internalType": "address", "name": "recipient", "type": "address" },
33
- { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
34
- {
35
- "internalType": "uint256",
36
- "name": "amountInMaximum",
37
- "type": "uint256"
38
- }
39
- ],
40
- "internalType": "struct ISwapRouter.ExactOutputParams",
41
- "name": "params",
42
- "type": "tuple"
43
- }
44
- ],
45
- "name": "exactOutput",
46
- "outputs": [
47
- { "internalType": "uint256", "name": "amountIn", "type": "uint256" }
48
- ],
49
- "stateMutability": "payable",
50
- "type": "function"
51
- }
52
- ]
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- /* eslint-disable no-console */
7
- const dotenv_1 = __importDefault(require("dotenv"));
8
- dotenv_1.default.config();
9
- const constants_1 = require("../../../constants");
10
- const dex_helper_1 = require("../../../dex-helper");
11
- const config_1 = require("./../config");
12
- const solidly_v3_1 = require("../solidly-v3");
13
- const dex = 'SolidlyV3';
14
- const factory = config_1.SolidlyV3Config[dex][constants_1.Network.MAINNET].factory;
15
- const blockHeaders = {};
16
- async function checkForPoolEvents(startBlockNumber, endBlockNumber) {
17
- const network = constants_1.Network.MAINNET;
18
- const dexHelper = new dex_helper_1.DummyDexHelper(network);
19
- const solidlyV3 = new solidly_v3_1.SolidlyV3(network, dex, dexHelper);
20
- await solidlyV3.initializePricing(startBlockNumber);
21
- const logsToDispatch = await dexHelper.provider.getLogs({
22
- fromBlock: startBlockNumber,
23
- toBlock: endBlockNumber,
24
- address: factory,
25
- });
26
- const logsByBlockNumber = {};
27
- for (let log of logsToDispatch) {
28
- if (!logsByBlockNumber[log.blockNumber]) {
29
- logsByBlockNumber[log.blockNumber] = [];
30
- }
31
- logsByBlockNumber[log.blockNumber].push(log);
32
- }
33
- const sortedBlocks = Object.keys(logsByBlockNumber)
34
- .map(Number)
35
- .sort((a, b) => Number(a) - Number(b));
36
- for (let blockNumber of sortedBlocks) {
37
- if (!blockHeaders[blockNumber]) {
38
- blockHeaders[blockNumber] = await dexHelper.web3Provider.eth.getBlock(blockNumber);
39
- }
40
- await solidlyV3.factory?.update(logsByBlockNumber[blockNumber], {
41
- [blockNumber]: blockHeaders[blockNumber],
42
- });
43
- }
44
- return true;
45
- }
46
- async function main() {
47
- // event for https://etherscan.io/tx/0x2bef7c17f3f775525f076aeb20567ee25eb820e92aa8422fbfe4bed652fd2bd3
48
- checkForPoolEvents(18758010, 18758019);
49
- }
50
- main()
51
- .then(() => console.log('Done'))
52
- .catch(e => console.error(e));
53
- //# sourceMappingURL=check-event-pool-event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check-event-pool-event.js","sourceRoot":"","sources":["../../../../src/dex/solidly-v3/scripts/check-event-pool-event.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAIhB,kDAA6C;AAC7C,oDAAqD;AACrD,wCAA8C;AAC9C,8CAA0C;AAE1C,MAAM,GAAG,GAAG,WAAW,CAAC;AACxB,MAAM,OAAO,GAAG,wBAAe,CAAC,GAAG,CAAC,CAAC,mBAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAC9D,MAAM,YAAY,GAAgC,EAAE,CAAC;AAErD,KAAK,UAAU,kBAAkB,CAC/B,gBAAwB,EACxB,cAAsB;IAEtB,MAAM,OAAO,GAAG,mBAAO,CAAC,OAAO,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,2BAAc,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtD,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAA0B,EAAE,CAAC;IACpD,KAAK,IAAI,GAAG,IAAI,cAAc,EAAE;QAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACvC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;SACzC;QACD,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAChD,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YAC9B,YAAY,CAAC,WAAW,CAAC,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACnE,WAAW,CACZ,CAAC;SACH;QAED,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC9D,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC;SACzC,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,uGAAuG;IACvG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Network, SwapSide } from '../../../../constants';
2
- import { IDexHelper } from '../../../../dex-helper';
3
- import { DexConfigMap, SimpleExchangeParam } from '../../../../types';
4
- import { DexParams, UniswapV3Data } from '../../types';
5
- import { UniswapV3 } from '../../uniswap-v3';
6
- export declare const AlienBaseV3Config: DexConfigMap<DexParams>;
7
- export declare class AlienBaseV3 extends UniswapV3 {
8
- protected network: Network;
9
- protected dexHelper: IDexHelper;
10
- static dexKeysWithNetwork: {
11
- key: string;
12
- networks: Network[];
13
- }[];
14
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
15
- static getDirectFunctionName(): string[];
16
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: UniswapV3Data, side: SwapSide): Promise<SimpleExchangeParam>;
17
- }
@@ -1,64 +0,0 @@
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.AlienBaseV3 = exports.AlienBaseV3Config = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const constants_1 = require("../../../../constants");
9
- const utils_1 = require("../../../../utils");
10
- const types_1 = require("../../types");
11
- const uniswap_v3_1 = require("../../uniswap-v3");
12
- const AlienBaseV3Router_abi_json_1 = __importDefault(require("../../../../abi/uniswap-v3/AlienBaseV3Router.abi.json"));
13
- exports.AlienBaseV3Config = {
14
- AlienBaseV3: {
15
- [constants_1.Network.BASE]: {
16
- factory: '0x0Fd83557b2be93617c9C1C1B6fd549401C74558C',
17
- quoter: '0x4fDBD73aD4B1DDde594BF05497C15f76308eFfb9',
18
- router: '0xB20C411FC84FBB27e78608C24d0056D974ea9411',
19
- supportedFees: [10000n, 3000n, 750n, 200n],
20
- stateMulticall: '0x7160f736c52e1e78e92FD4eE4D73e21A7Cf4F950',
21
- uniswapMulticall: '0x091e99cb1C49331a94dD62755D168E941AbD0693',
22
- chunksCount: 10,
23
- initRetryFrequency: 10,
24
- initHash: `0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`,
25
- subgraphURL: 'https://api.studio.thegraph.com/query/59130/v3alb/0.3',
26
- },
27
- },
28
- };
29
- class AlienBaseV3 extends uniswap_v3_1.UniswapV3 {
30
- constructor(network, dexKey, dexHelper) {
31
- super(network, dexKey, dexHelper, {}, new abi_1.Interface(AlienBaseV3Router_abi_json_1.default), undefined, exports.AlienBaseV3Config[dexKey][network]);
32
- this.network = network;
33
- this.dexHelper = dexHelper;
34
- }
35
- static getDirectFunctionName() {
36
- return [];
37
- }
38
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
39
- const swapFunction = side === constants_1.SwapSide.SELL
40
- ? types_1.UniswapV3Functions.exactInput
41
- : types_1.UniswapV3Functions.exactOutput;
42
- const path = this._encodePath(data.path, side);
43
- const swapFunctionParams = side === constants_1.SwapSide.SELL
44
- ? {
45
- recipient: this.augustusAddress,
46
- amountIn: srcAmount,
47
- amountOutMinimum: destAmount,
48
- path,
49
- }
50
- : {
51
- recipient: this.augustusAddress,
52
- amountOut: destAmount,
53
- amountInMaximum: srcAmount,
54
- path,
55
- };
56
- const swapData = this.routerIface.encodeFunctionData(swapFunction, [
57
- swapFunctionParams,
58
- ]);
59
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.config.router);
60
- }
61
- }
62
- exports.AlienBaseV3 = AlienBaseV3;
63
- AlienBaseV3.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(exports.AlienBaseV3Config);
64
- //# sourceMappingURL=alien-base-v3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alien-base-v3.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAC/C,qDAA0D;AAG1D,6CAA0D;AAC1D,uCAMqB;AACrB,iDAA6C;AAC7C,uHAAyF;AAE5E,QAAA,iBAAiB,GAA4B;IACxD,WAAW,EAAE;QACX,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;YACd,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,MAAM,EAAE,4CAA4C;YACpD,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;YAC1C,cAAc,EAAE,4CAA4C;YAC5D,gBAAgB,EAAE,4CAA4C;YAC9D,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,EAAE;YACtB,QAAQ,EAAE,oEAAoE;YAC9E,WAAW,EAAE,uDAAuD;SACrE;KACF;CACF,CAAC;AAMF,MAAa,WAAY,SAAQ,sBAAS;IAIxC,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,EAAE,EACF,IAAI,eAAS,CAAC,oCAAoB,CAAC,EACnC,SAAS,EACT,yBAAiB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CACnC,CAAC;QAZQ,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;IAWjC,CAAC;IAED,MAAM,CAAC,qBAAqB;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,MAAM,YAAY,GAChB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC,0BAAkB,CAAC,UAAU;YAC/B,CAAC,CAAC,0BAAkB,CAAC,WAAW,CAAC;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,kBAAkB,GACtB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,QAAQ,EAAE,SAAS;gBACnB,gBAAgB,EAAE,UAAU;gBAC5B,IAAI;aACL;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,SAAS,EAAE,UAAU;gBACrB,eAAe,EAAE,SAAS;gBAC1B,IAAI;aACL,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACjE,kBAAkB;SACnB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAC;IACJ,CAAC;;AAjEH,kCAkEC;AAjEe,8BAAkB,GAC9B,IAAA,6BAAqB,EAAC,yBAAiB,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Network, SwapSide } from '../../../../constants';
2
- import { IDexHelper } from '../../../../dex-helper';
3
- import { DexConfigMap, SimpleExchangeParam } from '../../../../types';
4
- import { DexParams, UniswapV3Data } from '../../types';
5
- import { UniswapV3 } from '../../uniswap-v3';
6
- export declare const AlienBaseV3Config: DexConfigMap<DexParams>;
7
- export declare class AlienV3 extends UniswapV3 {
8
- protected network: Network;
9
- protected dexHelper: IDexHelper;
10
- static dexKeysWithNetwork: {
11
- key: string;
12
- networks: Network[];
13
- }[];
14
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
15
- static getDirectFunctionName(): string[];
16
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: UniswapV3Data, side: SwapSide): Promise<SimpleExchangeParam>;
17
- }