@paraswap/dex-lib 2.27.0 → 2.27.1-ramses

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 (81) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/abi/curve-v1/StableSwapFRXETH.json +889 -0
  9. package/build/abi/curve-v1/StableSwapWBETH.json +1223 -0
  10. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  11. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  12. package/build/abi/wBETH.json +1527 -0
  13. package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
  14. package/build/abi/woo-fi/WooPP.abi.json +548 -0
  15. package/build/abi/woo-fi/Wooracle.abi.json +260 -0
  16. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  17. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  18. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  19. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  20. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  21. package/build/dex/balancer-v2/LinearMath.d.ts +19 -0
  22. package/build/dex/balancer-v2/LinearMath.js +179 -0
  23. package/build/dex/balancer-v2/LinearMath.js.map +1 -0
  24. package/build/dex/balancer-v2/LinearPool.d.ts +47 -0
  25. package/build/dex/balancer-v2/LinearPool.js +324 -0
  26. package/build/dex/balancer-v2/LinearPool.js.map +1 -0
  27. package/build/dex/balancer-v2/PhantomStablePool.d.ts +47 -0
  28. package/build/dex/balancer-v2/PhantomStablePool.js +294 -0
  29. package/build/dex/balancer-v2/PhantomStablePool.js.map +1 -0
  30. package/build/dex/balancer-v2/StableMath.d.ts +9 -0
  31. package/build/dex/balancer-v2/StableMath.js +272 -0
  32. package/build/dex/balancer-v2/StableMath.js.map +1 -0
  33. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +75 -0
  34. package/build/dex/balancer-v2/balancer-v2-pool.js +417 -0
  35. package/build/dex/balancer-v2/balancer-v2-pool.js.map +1 -0
  36. package/build/dex/curve-v1/pools/frxETHpool.d.ts +7 -0
  37. package/build/dex/curve-v1/pools/frxETHpool.js +27 -0
  38. package/build/dex/curve-v1/pools/frxETHpool.js.map +1 -0
  39. package/build/dex/curve-v1/pools/wbETHpool.d.ts +29 -0
  40. package/build/dex/curve-v1/pools/wbETHpool.js +408 -0
  41. package/build/dex/curve-v1/pools/wbETHpool.js.map +1 -0
  42. package/build/dex/index.js +2 -0
  43. package/build/dex/index.js.map +1 -1
  44. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  45. package/build/dex/pancakeswap-v3/types.js +3 -0
  46. package/build/dex/pancakeswap-v3/types.js.map +1 -0
  47. package/build/dex/quickswap-v3.d.ts +21 -0
  48. package/build/dex/quickswap-v3.js +40 -0
  49. package/build/dex/quickswap-v3.js.map +1 -0
  50. package/build/dex/solidly/config.js +13 -1
  51. package/build/dex/solidly/config.js.map +1 -1
  52. package/build/dex/solidly/forks-override/ramses.d.ts +8 -0
  53. package/build/dex/solidly/forks-override/ramses.js +15 -0
  54. package/build/dex/solidly/forks-override/ramses.js.map +1 -0
  55. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
  56. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
  57. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  58. package/build/dex/woo-fi/config.d.ts +4 -0
  59. package/build/dex/woo-fi/config.js +141 -0
  60. package/build/dex/woo-fi/config.js.map +1 -0
  61. package/build/dex/woo-fi/constants.d.ts +5 -0
  62. package/build/dex/woo-fi/constants.js +20 -0
  63. package/build/dex/woo-fi/constants.js.map +1 -0
  64. package/build/dex/woo-fi/types.d.ts +48 -0
  65. package/build/dex/woo-fi/types.js +3 -0
  66. package/build/dex/woo-fi/types.js.map +1 -0
  67. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
  68. package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
  69. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
  70. package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
  71. package/build/dex/woo-fi/woo-fi-math.js +300 -0
  72. package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
  73. package/build/dex/woo-fi/woo-fi.d.ts +65 -0
  74. package/build/dex/woo-fi/woo-fi.js +480 -0
  75. package/build/dex/woo-fi/woo-fi.js.map +1 -0
  76. package/package.json +1 -1
  77. package/src/dex/index.ts +2 -0
  78. package/src/dex/solidly/config.ts +15 -1
  79. package/src/dex/solidly/forks-override/ramses.ts +12 -0
  80. package/src/dex/solidly/solidly-e2e.test.ts +95 -0
  81. package/src/dex/solidly/solidly-integration.test.ts +136 -0
@@ -1179,5 +1179,100 @@ describe('Solidly E2E', () => {
1179
1179
  }),
1180
1180
  );
1181
1181
  });
1182
+
1183
+ describe('Ramses', () => {
1184
+ const dexKey = 'Ramses';
1185
+
1186
+ const sideToContractMethods = new Map([
1187
+ [
1188
+ SwapSide.SELL,
1189
+ [
1190
+ ContractMethod.simpleSwap,
1191
+ ContractMethod.multiSwap,
1192
+ ContractMethod.megaSwap,
1193
+ ],
1194
+ ],
1195
+ ]);
1196
+
1197
+ const pairs: { name: string; sellAmount: string }[][] = [
1198
+ [
1199
+ {
1200
+ name: 'ETH',
1201
+ sellAmount: '1000000000000000000',
1202
+ },
1203
+ {
1204
+ name: 'USDC',
1205
+ sellAmount: '100000000',
1206
+ },
1207
+ ],
1208
+ [
1209
+ {
1210
+ name: 'WETH',
1211
+ sellAmount: '1000000000000000000',
1212
+ },
1213
+ {
1214
+ name: 'USDC',
1215
+ sellAmount: '100000000',
1216
+ },
1217
+ ],
1218
+ [
1219
+ {
1220
+ name: 'USDT',
1221
+ sellAmount: '100000000',
1222
+ },
1223
+ {
1224
+ name: 'USDC',
1225
+ sellAmount: '100000000',
1226
+ },
1227
+ ],
1228
+ [
1229
+ {
1230
+ name: 'USDC',
1231
+ sellAmount: '100000000',
1232
+ },
1233
+ {
1234
+ name: 'DAI',
1235
+ sellAmount: '100000000000000000000',
1236
+ },
1237
+ ],
1238
+ ];
1239
+
1240
+ sideToContractMethods.forEach((contractMethods, side) =>
1241
+ describe(`${side}`, () => {
1242
+ contractMethods.forEach((contractMethod: ContractMethod) => {
1243
+ pairs.forEach(pair => {
1244
+ describe(`${contractMethod}`, () => {
1245
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
1246
+ await testE2E(
1247
+ tokens[pair[0].name],
1248
+ tokens[pair[1].name],
1249
+ holders[pair[0].name],
1250
+ pair[0].sellAmount,
1251
+ side,
1252
+ dexKey,
1253
+ contractMethod,
1254
+ network,
1255
+ provider,
1256
+ );
1257
+ });
1258
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
1259
+ await testE2E(
1260
+ tokens[pair[1].name],
1261
+ tokens[pair[0].name],
1262
+ holders[pair[1].name],
1263
+ pair[1].sellAmount,
1264
+ side,
1265
+ dexKey,
1266
+ contractMethod,
1267
+ network,
1268
+ provider,
1269
+ );
1270
+ });
1271
+ });
1272
+ });
1273
+ });
1274
+ }),
1275
+ );
1276
+ });
1182
1277
  });
1183
1278
  });
@@ -12,6 +12,8 @@ import solidlyPairABI from '../../abi/solidly/SolidlyPair.json';
12
12
  import { SpiritSwapV2 } from './forks-override/spiritSwapV2';
13
13
  import { Cone } from './forks-override/cone';
14
14
  import { Chronos } from './forks-override/chronos';
15
+ import { Ramses } from './forks-override/ramses';
16
+ import * as util from 'util';
15
17
 
16
18
  const amounts18 = [0n, BI_POWS[18], 2000000000000000000n];
17
19
  const amounts6 = [0n, BI_POWS[6], 2000000n];
@@ -768,5 +770,139 @@ describe('Solidly integration tests', () => {
768
770
  });
769
771
  });
770
772
  });
773
+
774
+ describe('Ramses', function () {
775
+ const dexKey = 'Ramses';
776
+ const ramses = new Ramses(network, dexKey, dexHelper);
777
+
778
+ describe('UniswapV2 like pool', function () {
779
+ const TokenASymbol = 'USDC';
780
+ const tokenA = Tokens[network][TokenASymbol];
781
+ const TokenBSymbol = 'WETH';
782
+ const tokenB = Tokens[network][TokenBSymbol];
783
+
784
+ const amounts = amounts6;
785
+
786
+ it('getPoolIdentifiers and getPricesVolume', async function () {
787
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
788
+ const pools = await ramses.getPoolIdentifiers(
789
+ tokenA,
790
+ tokenB,
791
+ SwapSide.SELL,
792
+ blocknumber,
793
+ );
794
+ console.log(
795
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
796
+ pools,
797
+ );
798
+
799
+ expect(pools.length).toBeGreaterThan(0);
800
+
801
+ const poolPrices = await ramses.getPricesVolume(
802
+ tokenA,
803
+ tokenB,
804
+ amounts,
805
+ SwapSide.SELL,
806
+ blocknumber,
807
+ pools,
808
+ );
809
+ console.log(
810
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
811
+ util.inspect(poolPrices, false, null, true),
812
+ );
813
+
814
+ expect(poolPrices).not.toBeNull();
815
+ // checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
816
+
817
+ // Check if onchain pricing equals to calculated ones
818
+
819
+ for (const i in poolPrices || []) {
820
+ await checkOnChainPricing(
821
+ ramses,
822
+ 'getAmountOut',
823
+ blocknumber,
824
+ poolPrices![i].prices,
825
+ poolPrices![i].poolAddresses![0],
826
+ tokenA.address,
827
+ amounts,
828
+ );
829
+ }
830
+ });
831
+
832
+ it('getTopPoolsForToken', async function () {
833
+ const poolLiquidity = await ramses.getTopPoolsForToken(
834
+ tokenA.address,
835
+ 10,
836
+ );
837
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
838
+
839
+ checkPoolsLiquidity(poolLiquidity, tokenA.address, dexKey);
840
+ });
841
+ });
842
+
843
+ describe('Curve like stable pool', function () {
844
+ const TokenASymbol = 'USDT';
845
+ const tokenA = Tokens[network][TokenASymbol];
846
+ const TokenBSymbol = 'USDC';
847
+ const tokenB = Tokens[network][TokenBSymbol];
848
+
849
+ const amounts = amounts6;
850
+
851
+ it('getPoolIdentifiers and getPricesVolume', async function () {
852
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
853
+ const pools = await ramses.getPoolIdentifiers(
854
+ tokenA,
855
+ tokenB,
856
+ SwapSide.SELL,
857
+ blocknumber,
858
+ );
859
+ console.log(
860
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
861
+ pools,
862
+ );
863
+
864
+ expect(pools.length).toBeGreaterThan(0);
865
+
866
+ const poolPrices = await ramses.getPricesVolume(
867
+ tokenA,
868
+ tokenB,
869
+ amounts,
870
+ SwapSide.SELL,
871
+ blocknumber,
872
+ pools,
873
+ );
874
+ console.log(
875
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
876
+ poolPrices,
877
+ );
878
+
879
+ expect(poolPrices).not.toBeNull();
880
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
881
+
882
+ // Check if onchain pricing equals to calculated ones
883
+ for (const i in poolPrices || []) {
884
+ await checkOnChainPricing(
885
+ ramses,
886
+ 'getAmountOut',
887
+ blocknumber,
888
+ poolPrices![i].prices,
889
+ poolPrices![i].poolAddresses![0],
890
+ tokenA.address,
891
+ amounts,
892
+ );
893
+ }
894
+ });
895
+
896
+ it('getTopPoolsForToken', async function () {
897
+ const poolLiquidity = await ramses.getTopPoolsForToken(
898
+ tokenA.address,
899
+ 10,
900
+ );
901
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
902
+
903
+ checkPoolsLiquidity(poolLiquidity, tokenA.address, dexKey);
904
+ });
905
+ });
906
+ });
771
907
  });
772
908
  });