@paraswap/dex-lib 3.7.7-skip-approval.1 → 3.7.8

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 (171) hide show
  1. package/build/dex/aave-v1/aave-v1.d.ts +2 -1
  2. package/build/dex/aave-v1/aave-v1.js +22 -0
  3. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  4. package/build/dex/aave-v3/aave-v3.js +1 -2
  5. package/build/dex/aave-v3/aave-v3.js.map +1 -1
  6. package/build/dex/angle-staked-stable/angle-staked-stable.js +1 -4
  7. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
  8. package/build/dex/compound/compound.js +1 -2
  9. package/build/dex/compound/compound.js.map +1 -1
  10. package/build/dex/etherfi.js +1 -4
  11. package/build/dex/etherfi.js.map +1 -1
  12. package/build/dex/idle-dao/idle-dao-pool.d.ts +56 -0
  13. package/build/dex/idle-dao/idle-dao-pool.js +176 -0
  14. package/build/dex/idle-dao/idle-dao-pool.js.map +1 -0
  15. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +16 -0
  16. package/build/dex/idle-dao/idle-dao-pooling-pool.js +57 -0
  17. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +1 -0
  18. package/build/dex/idle-dao/scripts.d.ts +9 -0
  19. package/build/dex/idle-dao/scripts.js +552 -0
  20. package/build/dex/idle-dao/scripts.js.map +1 -0
  21. package/build/dex/mStable.js +1 -1
  22. package/build/dex/mStable.js.map +1 -1
  23. package/build/dex/platypus/platypus.d.ts +2 -1
  24. package/build/dex/platypus/platypus.js +31 -0
  25. package/build/dex/platypus/platypus.js.map +1 -1
  26. package/build/dex/simple-exchange.d.ts +1 -1
  27. package/build/dex/simple-exchange.js +2 -4
  28. package/build/dex/simple-exchange.js.map +1 -1
  29. package/build/dex/spark/spark.js +1 -1
  30. package/build/dex/spark/spark.js.map +1 -1
  31. package/build/dex/swaap-v1/swaap-v1.d.ts +2 -1
  32. package/build/dex/swaap-v1/swaap-v1.js +10 -0
  33. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  34. package/build/executor/Executor01BytecodeBuilder.js +0 -1
  35. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  36. package/build/executor/Executor02BytecodeBuilder.js +0 -1
  37. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  38. package/build/executor/Executor03BytecodeBuilder.js +0 -1
  39. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  40. package/build/generic-swap-transaction-builder.js +2 -4
  41. package/build/generic-swap-transaction-builder.js.map +1 -1
  42. package/build/types.d.ts +0 -1
  43. package/build/utils.d.ts +1 -1
  44. package/package.json +1 -1
  45. package/src/dex/aave-v3/aave-v3-e2e.test.ts +9 -4
  46. package/src/dex/aave-v3/aave-v3.ts +0 -5
  47. package/src/dex/angle-staked-stable/angle-staked-stable.ts +0 -8
  48. package/src/dex/compound/compound.ts +0 -5
  49. package/src/dex/etherfi.ts +0 -5
  50. package/src/dex/mStable.ts +0 -4
  51. package/src/dex/simple-exchange.ts +5 -5
  52. package/src/dex/spark/spark-e2e.test.ts +3 -3
  53. package/src/dex/spark/spark.ts +0 -4
  54. package/src/executor/Executor01BytecodeBuilder.ts +0 -1
  55. package/src/executor/Executor02BytecodeBuilder.ts +0 -1
  56. package/src/executor/Executor03BytecodeBuilder.ts +0 -1
  57. package/src/executor/executor01-bytecode-builder-e2e.test.ts +0 -25
  58. package/src/executor/executor02-bytecode-builder-e2e.test.ts +0 -29
  59. package/src/generic-swap-transaction-builder.ts +1 -4
  60. package/src/types.ts +0 -1
  61. package/tests/constants-e2e.ts +9 -9
  62. package/tests/utils-e2e.ts +1 -1
  63. package/build/abi/Uncompressor.json +0 -250
  64. package/build/dex/bProtocol.d.ts +0 -18
  65. package/build/dex/bProtocol.js +0 -39
  66. package/build/dex/bProtocol.js.map +0 -1
  67. package/build/dex/bancor.d.ts +0 -26
  68. package/build/dex/bancor.js +0 -58
  69. package/build/dex/bancor.js.map +0 -1
  70. package/build/dex/compound.d.ts +0 -18
  71. package/build/dex/compound.js +0 -46
  72. package/build/dex/compound.js.map +0 -1
  73. package/build/dex/curve-v2.d.ts +0 -58
  74. package/build/dex/curve-v2.js +0 -180
  75. package/build/dex/curve-v2.js.map +0 -1
  76. package/build/dex/dodo-v1.d.ts +0 -33
  77. package/build/dex/dodo-v1.js +0 -63
  78. package/build/dex/dodo-v1.js.map +0 -1
  79. package/build/dex/etherfi/etherfi.d.ts +0 -26
  80. package/build/dex/etherfi/etherfi.js +0 -96
  81. package/build/dex/etherfi/etherfi.js.map +0 -1
  82. package/build/dex/lido.d.ts +0 -19
  83. package/build/dex/lido.js +0 -42
  84. package/build/dex/lido.js.map +0 -1
  85. package/build/dex/onebit.d.ts +0 -25
  86. package/build/dex/onebit.js +0 -42
  87. package/build/dex/onebit.js.map +0 -1
  88. package/build/dex/sdai/config.d.ts +0 -11
  89. package/build/dex/sdai/config.js +0 -21
  90. package/build/dex/sdai/config.js.map +0 -1
  91. package/build/dex/sdai/constants.d.ts +0 -2
  92. package/build/dex/sdai/constants.js +0 -6
  93. package/build/dex/sdai/constants.js.map +0 -1
  94. package/build/dex/sdai/scripts/validate-state.d.ts +0 -1
  95. package/build/dex/sdai/scripts/validate-state.js +0 -102
  96. package/build/dex/sdai/scripts/validate-state.js.map +0 -1
  97. package/build/dex/sdai/sdai-pool.d.ts +0 -16
  98. package/build/dex/sdai/sdai-pool.js +0 -85
  99. package/build/dex/sdai/sdai-pool.js.map +0 -1
  100. package/build/dex/sdai/sdai.d.ts +0 -51
  101. package/build/dex/sdai/sdai.js +0 -172
  102. package/build/dex/sdai/sdai.js.map +0 -1
  103. package/build/dex/sdai/types.d.ts +0 -21
  104. package/build/dex/sdai/types.js +0 -11
  105. package/build/dex/sdai/types.js.map +0 -1
  106. package/build/dex/sdai/utils.d.ts +0 -4
  107. package/build/dex/sdai/utils.js +0 -39
  108. package/build/dex/sdai/utils.js.map +0 -1
  109. package/build/dex/smoothy.d.ts +0 -26
  110. package/build/dex/smoothy.js +0 -48
  111. package/build/dex/smoothy.js.map +0 -1
  112. package/build/dex/stable-pool.d.ts +0 -28
  113. package/build/dex/stable-pool.js +0 -62
  114. package/build/dex/stable-pool.js.map +0 -1
  115. package/build/dex/trader-joe-v2.1.d.ts +0 -43
  116. package/build/dex/trader-joe-v2.1.js +0 -79
  117. package/build/dex/trader-joe-v2.1.js.map +0 -1
  118. package/build/executor/compressor/Compressor.d.ts +0 -23
  119. package/build/executor/compressor/Compressor.js +0 -144
  120. package/build/executor/compressor/Compressor.js.map +0 -1
  121. package/build/executor/compressor/compress.d.ts +0 -17
  122. package/build/executor/compressor/compress.js +0 -187
  123. package/build/executor/compressor/compress.js.map +0 -1
  124. package/build/executor/compressor/compress_functions/addressSubstitution.d.ts +0 -6
  125. package/build/executor/compressor/compress_functions/addressSubstitution.js +0 -29
  126. package/build/executor/compressor/compress_functions/addressSubstitution.js.map +0 -1
  127. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.d.ts +0 -10
  128. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js +0 -40
  129. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js.map +0 -1
  130. package/build/executor/compressor/compress_functions/byteSubstitution.d.ts +0 -11
  131. package/build/executor/compressor/compress_functions/byteSubstitution.js +0 -64
  132. package/build/executor/compressor/compress_functions/byteSubstitution.js.map +0 -1
  133. package/build/executor/compressor/compress_functions/ffSubstitution.d.ts +0 -7
  134. package/build/executor/compressor/compress_functions/ffSubstitution.js +0 -54
  135. package/build/executor/compressor/compress_functions/ffSubstitution.js.map +0 -1
  136. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.d.ts +0 -8
  137. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js +0 -67
  138. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js.map +0 -1
  139. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.d.ts +0 -8
  140. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js +0 -61
  141. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js.map +0 -1
  142. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.d.ts +0 -6
  143. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js +0 -37
  144. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js.map +0 -1
  145. package/build/executor/compressor/compress_functions/searchUnusedBytes.d.ts +0 -9
  146. package/build/executor/compressor/compress_functions/searchUnusedBytes.js +0 -33
  147. package/build/executor/compressor/compress_functions/searchUnusedBytes.js.map +0 -1
  148. package/build/executor/compressor/fetchSaved.d.ts +0 -0
  149. package/build/executor/compressor/fetchSaved.js +0 -17
  150. package/build/executor/compressor/fetchSaved.js.map +0 -1
  151. package/build/executor/compressor/utils/computeCostL2.d.ts +0 -2
  152. package/build/executor/compressor/utils/computeCostL2.js +0 -14
  153. package/build/executor/compressor/utils/computeCostL2.js.map +0 -1
  154. package/build/executor/compressor/utils/findLongestDuplicatedString.d.ts +0 -2
  155. package/build/executor/compressor/utils/findLongestDuplicatedString.js +0 -30
  156. package/build/executor/compressor/utils/findLongestDuplicatedString.js.map +0 -1
  157. package/build/executor/compressor/utils/getAllIndexes.d.ts +0 -2
  158. package/build/executor/compressor/utils/getAllIndexes.js +0 -12
  159. package/build/executor/compressor/utils/getAllIndexes.js.map +0 -1
  160. package/build/executor/compressor/utils/getByteForAddress.d.ts +0 -2
  161. package/build/executor/compressor/utils/getByteForAddress.js +0 -14
  162. package/build/executor/compressor/utils/getByteForAddress.js.map +0 -1
  163. package/build/executor/compressor/utils/intTo2Bytes.d.ts +0 -2
  164. package/build/executor/compressor/utils/intTo2Bytes.js +0 -14
  165. package/build/executor/compressor/utils/intTo2Bytes.js.map +0 -1
  166. package/build/executor/compressor/utils/intTo3Bytes.d.ts +0 -2
  167. package/build/executor/compressor/utils/intTo3Bytes.js +0 -18
  168. package/build/executor/compressor/utils/intTo3Bytes.js.map +0 -1
  169. package/build/executor/compressor/utils/intToByte.d.ts +0 -2
  170. package/build/executor/compressor/utils/intToByte.js +0 -10
  171. package/build/executor/compressor/utils/intToByte.js.map +0 -1
@@ -1,28 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, NumberAsString, SimpleExchangeParam } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { IDexHelper } from '../dex-helper';
7
- declare type StablePoolData = {
8
- exchange: string;
9
- i: string;
10
- j: string;
11
- deadline: string;
12
- };
13
- declare type StablePoolParam = [
14
- i: NumberAsString,
15
- j: NumberAsString,
16
- dx: NumberAsString,
17
- min_dy: NumberAsString,
18
- deadline?: string
19
- ];
20
- export declare class StablePool extends SimpleExchange implements IDexTxBuilder<StablePoolData, StablePoolParam> {
21
- static dexKeys: string[];
22
- exchangeRouterInterface: Interface;
23
- minConversionRate: string;
24
- constructor(dexHelper: IDexHelper);
25
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: StablePoolData, side: SwapSide): AdapterExchangeParam;
26
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: StablePoolData, side: SwapSide): Promise<SimpleExchangeParam>;
27
- }
28
- export {};
@@ -1,62 +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.StablePool = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const constants_1 = require("../constants");
9
- const simple_exchange_1 = require("./simple-exchange");
10
- const StablePool_json_1 = __importDefault(require("../abi/StablePool.json"));
11
- var StabePoolFunctions;
12
- (function (StabePoolFunctions) {
13
- StabePoolFunctions["swap"] = "swap";
14
- })(StabePoolFunctions || (StabePoolFunctions = {}));
15
- class StablePool extends simple_exchange_1.SimpleExchange {
16
- constructor(dexHelper) {
17
- super(dexHelper, 'stablePool');
18
- this.minConversionRate = '1';
19
- this.exchangeRouterInterface = new abi_1.Interface(StablePool_json_1.default);
20
- }
21
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
22
- if (side === constants_1.SwapSide.BUY)
23
- throw new Error(`Buy not supported`);
24
- const { i, j, deadline } = data;
25
- const payload = this.abiCoder.encodeParameter({
26
- ParentStruct: {
27
- i: 'int128',
28
- j: 'int128',
29
- deadline: 'uint256',
30
- },
31
- }, { i, j, deadline });
32
- return {
33
- targetExchange: data.exchange,
34
- payload,
35
- networkFee: '0',
36
- };
37
- }
38
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
39
- if (side === constants_1.SwapSide.BUY)
40
- throw new Error(`Buy not supported`);
41
- const { exchange, i, j, deadline } = data;
42
- const swapFunctionParams = [
43
- i,
44
- j,
45
- srcAmount,
46
- this.minConversionRate,
47
- deadline,
48
- ];
49
- const swapData = this.exchangeRouterInterface.encodeFunctionData(StabePoolFunctions.swap, swapFunctionParams);
50
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
51
- }
52
- }
53
- exports.StablePool = StablePool;
54
- StablePool.dexKeys = [
55
- 'nerve',
56
- 'saddle',
57
- 'ironv2',
58
- 'snowball',
59
- 'axial',
60
- 'zyberswapstable',
61
- ];
62
- //# sourceMappingURL=stable-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stable-pool.js","sourceRoot":"","sources":["../../src/dex/stable-pool.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4CAAwC;AAQxC,uDAAmD;AACnD,6EAAmD;AAmBnD,IAAK,kBAEJ;AAFD,WAAK,kBAAkB;IACrB,mCAAa,CAAA;AACf,CAAC,EAFI,kBAAkB,KAAlB,kBAAkB,QAEtB;AAED,MAAa,UACX,SAAQ,gCAAc;IActB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAHjC,sBAAiB,GAAG,GAAG,CAAC;QAItB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,yBAAa,CAAC,CAAC;IAC9D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;gBACX,QAAQ,EAAE,SAAS;aACpB;SACF,EACD,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CACnB,CAAC;QACF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1C,MAAM,kBAAkB,GAAoB;YAC1C,CAAC;YACD,CAAC;YACD,SAAS;YACT,IAAI,CAAC,iBAAiB;YACtB,QAAQ;SACT,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;;AA/EH,gCAgFC;AA5EQ,kBAAO,GAAG;IACf,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,iBAAiB;CAClB,CAAC"}
@@ -1,43 +0,0 @@
1
- import { SwapSide } from '../constants';
2
- import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
3
- import { IDexTxBuilder } from './idex';
4
- import { IDexHelper } from '../dex-helper';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { NumberAsString } from '@paraswap/core';
7
- import { AsyncOrSync } from 'ts-essentials';
8
- import { Interface } from '@ethersproject/abi';
9
- declare type RouterPath = [
10
- pairBinSteps: NumberAsString[],
11
- versions: NumberAsString[],
12
- tokenPath: Address[]
13
- ];
14
- declare type TraderJoeV2RouterSellParams = [
15
- _amountIn: NumberAsString,
16
- _amountOutMin: NumberAsString,
17
- _routerPath: RouterPath,
18
- to: Address,
19
- _deadline: string
20
- ];
21
- declare type TraderJoeV2RouterBuyParams = [
22
- _amountOut: NumberAsString,
23
- _amountInMax: NumberAsString,
24
- _routerPath: RouterPath,
25
- to: Address,
26
- _deadline: string
27
- ];
28
- declare type TraderJoeV2RouterParam = TraderJoeV2RouterSellParams | TraderJoeV2RouterBuyParams;
29
- export declare type TraderJoeV2Data = {
30
- tokenIn: string;
31
- tokenOut: string;
32
- binStep: string;
33
- };
34
- export declare class TraderJoeV21 extends SimpleExchange implements IDexTxBuilder<TraderJoeV2Data, TraderJoeV2RouterParam> {
35
- static dexKeys: string[];
36
- protected routerAddress: string;
37
- exchangeRouterInterface: Interface;
38
- needWrapNative: boolean;
39
- constructor(dexHelper: IDexHelper);
40
- getAdapterParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: TraderJoeV2Data, side: SwapSide): AdapterExchangeParam;
41
- getSimpleParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: TraderJoeV2Data, side: SwapSide): AsyncOrSync<SimpleExchangeParam>;
42
- }
43
- export {};
@@ -1,79 +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.TraderJoeV21 = void 0;
7
- const constants_1 = require("../constants");
8
- const simple_exchange_1 = require("./simple-exchange");
9
- const abi_1 = require("@ethersproject/abi");
10
- const TraderJoeV21Router_json_1 = __importDefault(require("../abi/TraderJoeV21Router.json"));
11
- const TRADERJOE_V2_1_ROUTER_ADDRESS = {
12
- [constants_1.Network.AVALANCHE]: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
13
- [constants_1.Network.ARBITRUM]: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
14
- [constants_1.Network.BSC]: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
15
- [constants_1.Network.MAINNET]: '0x9A93a421b74F1c5755b83dD2C211614dC419C44b',
16
- };
17
- var TraderJoeV2RouterFunctions;
18
- (function (TraderJoeV2RouterFunctions) {
19
- TraderJoeV2RouterFunctions["swapExactTokensForTokens"] = "swapExactTokensForTokens";
20
- TraderJoeV2RouterFunctions["swapTokensForExactTokens"] = "swapTokensForExactTokens";
21
- })(TraderJoeV2RouterFunctions || (TraderJoeV2RouterFunctions = {}));
22
- class TraderJoeV21 extends simple_exchange_1.SimpleExchange {
23
- constructor(dexHelper) {
24
- super(dexHelper, 'traderjoev2.1');
25
- this.needWrapNative = true;
26
- this.routerAddress =
27
- TRADERJOE_V2_1_ROUTER_ADDRESS[dexHelper.config.data.network];
28
- this.exchangeRouterInterface = new abi_1.Interface(TraderJoeV21Router_json_1.default);
29
- }
30
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
31
- let payload = this.abiCoder.encodeParameters(['tuple(tuple(uint256[],uint8[],address[]),uint256)'], [
32
- [
33
- [
34
- [
35
- data.binStep, // _pairBinSteps: uint256[]
36
- ],
37
- [
38
- 2, // _versions: uint8[]
39
- ],
40
- [
41
- data.tokenIn,
42
- data.tokenOut, // _tokenPath: address[]
43
- ],
44
- ],
45
- (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(), // _deadline: uint256
46
- ],
47
- ]);
48
- return {
49
- targetExchange: this.routerAddress,
50
- payload,
51
- networkFee: '0',
52
- };
53
- }
54
- getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
55
- const swapFunction = side === constants_1.SwapSide.SELL
56
- ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
57
- : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
58
- const swapFunctionParams = side === constants_1.SwapSide.SELL
59
- ? [
60
- srcAmount,
61
- destAmount,
62
- [[data.binStep], ['2'], [srcToken, destToken]],
63
- this.augustusAddress,
64
- (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
65
- ]
66
- : [
67
- destAmount,
68
- srcAmount,
69
- [[data.binStep], ['2'], [srcToken, destToken]],
70
- this.augustusAddress,
71
- (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
72
- ];
73
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
74
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.routerAddress);
75
- }
76
- }
77
- exports.TraderJoeV21 = TraderJoeV21;
78
- TraderJoeV21.dexKeys = ['traderjoev2.1'];
79
- //# sourceMappingURL=trader-joe-v2.1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trader-joe-v2.1.js","sourceRoot":"","sources":["../../src/dex/trader-joe-v2.1.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAiD;AAIjD,uDAG2B;AAG3B,4CAA6D;AAC7D,6FAAmE;AAEnE,MAAM,6BAA6B,GAAmC;IACpE,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,4CAA4C;IACjE,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IAChE,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE,4CAA4C;IAC3D,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,4CAA4C;CAChE,CAAC;AAiCF,IAAK,0BAGJ;AAHD,WAAK,0BAA0B;IAC7B,mFAAqD,CAAA;IACrD,mFAAqD,CAAA;AACvD,CAAC,EAHI,0BAA0B,KAA1B,0BAA0B,QAG9B;AACD,MAAa,YACX,SAAQ,gCAAc;IAQtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAHpC,mBAAc,GAAG,IAAI,CAAC;QAKpB,IAAI,CAAC,aAAa;YAChB,6BAA6B,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/D,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAC1C,iCAAuC,CACxC,CAAC;IACJ,CAAC;IAED,eAAe,CACb,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,IAAqB,EACrB,IAAc;QAEd,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAC1C,CAAC,mDAAmD,CAAC,EACrD;YACE;gBACE;oBACE;wBACE,IAAI,CAAC,OAAO,EAAE,2BAA2B;qBAC1C;oBACD;wBACE,CAAC,EAAE,qBAAqB;qBACzB;oBACD;wBACE,IAAI,CAAC,OAAO;wBACZ,IAAI,CAAC,QAAQ,EAAE,wBAAwB;qBACxC;iBACF;gBACD,IAAA,uDAAqC,GAAE,EAAE,qBAAqB;aAC/D;SACF,CACF,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,aAAa;YAClC,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,IAAqB,EACrB,IAAc;QAEd,MAAM,YAAY,GAChB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC,0BAA0B,CAAC,wBAAwB;YACrD,CAAC,CAAC,0BAA0B,CAAC,wBAAwB,CAAC;QAE1D,MAAM,kBAAkB,GACtB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC;gBACE,SAAS;gBACT,UAAU;gBACV,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,eAAe;gBACpB,IAAA,uDAAqC,GAAE;aACxC;YACH,CAAC,CAAC;gBACE,UAAU;gBACV,SAAS;gBACT,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,eAAe;gBACpB,IAAA,uDAAqC,GAAE;aACxC,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;;AAnGH,oCAoGC;AAhGQ,oBAAO,GAAG,CAAC,eAAe,CAAC,CAAC"}
@@ -1,23 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { Address, OptimalRate } from '@paraswap/core';
3
- import { Network } from '../../constants';
4
- import { ICache } from '../../dex-helper';
5
- import { MultiWrapper } from '../../lib/multi-wrapper';
6
- export declare class Compressor {
7
- protected network: Network;
8
- protected uncompressorAddress: Address;
9
- protected augustusV6Address: Address;
10
- protected multiWrapper: MultiWrapper;
11
- uncomporessorInterface: Interface;
12
- private cache;
13
- private readonly cacheSavedAddressesKey;
14
- constructor(network: Network, uncompressorAddress: Address, augustusV6Address: Address, cache: ICache, multiWrapper: MultiWrapper);
15
- compress(bytecode: string, priceRoute: OptimalRate, executorAddress: Address): Promise<string>;
16
- private detectRouteAddresses;
17
- private setSavedAddresses;
18
- private getSavedAddresses;
19
- private addOnChainSavedAddress;
20
- private getSavedAddressesOnChain;
21
- private createCacheKey;
22
- private filterKeys;
23
- }
@@ -1,144 +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.Compressor = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const constants_1 = require("../../constants");
9
- const decoders_1 = require("../../lib/decoders");
10
- const Uncompressor_json_1 = __importDefault(require("../../abi/Uncompressor.json"));
11
- const compress_1 = __importDefault(require("./compress"));
12
- const lodash_1 = require("lodash");
13
- const DEFAULT_SAVED_ADDRESS_CACHE_KEY_VALUE = 'true';
14
- // key = token_uncomporessAddress_network
15
- // key = token
16
- class Compressor {
17
- constructor(network, uncompressorAddress, augustusV6Address, cache, multiWrapper) {
18
- this.network = network;
19
- this.uncompressorAddress = uncompressorAddress;
20
- this.augustusV6Address = augustusV6Address;
21
- this.multiWrapper = multiWrapper;
22
- this.uncomporessorInterface = new abi_1.Interface(Uncompressor_json_1.default);
23
- this.cache = cache;
24
- this.cacheSavedAddressesKey = `${constants_1.CACHE_PREFIX}_compressed_addresses`;
25
- }
26
- async compress(bytecode, priceRoute, executorAddress) {
27
- const addressesToCompress = this.detectRouteAddresses(priceRoute);
28
- addressesToCompress.push(this.augustusV6Address);
29
- addressesToCompress.push(executorAddress);
30
- let addressesMapping = {};
31
- addressesToCompress.forEach(address => {
32
- addressesMapping[address.toLowerCase()] = { saved: false, index: -1 };
33
- });
34
- addressesMapping = await this.getSavedAddresses(addressesMapping);
35
- const allAddressesCached = Object.values(addressesMapping).every(approval => approval.saved === true);
36
- if (allAddressesCached) {
37
- return (0, compress_1.default)({
38
- initialCallData: bytecode,
39
- addresses: addressesMapping,
40
- }).compressedData;
41
- }
42
- addressesMapping = await this.addOnChainSavedAddress(addressesMapping);
43
- return (0, compress_1.default)({
44
- initialCallData: bytecode,
45
- addresses: addressesMapping,
46
- }).compressedData;
47
- }
48
- detectRouteAddresses(priceRoute) {
49
- const addresses = new Set();
50
- addresses.add(priceRoute.srcToken);
51
- addresses.add(priceRoute.destToken);
52
- for (const route of priceRoute.bestRoute) {
53
- for (const swap of route.swaps) {
54
- addresses.add(swap.srcToken);
55
- addresses.add(swap.destToken);
56
- for (const swapExchange of swap.swapExchanges) {
57
- // the most common fields
58
- if (swapExchange.data.router)
59
- addresses.add(swapExchange.data.router);
60
- if (swapExchange.data.factory)
61
- addresses.add(swapExchange.data.factory);
62
- if (swapExchange.poolAddresses) {
63
- swapExchange.poolAddresses.forEach(address => addresses.add(address));
64
- }
65
- }
66
- }
67
- }
68
- return Array.from(addresses);
69
- }
70
- async setSavedAddresses(addressesMapping) {
71
- const addresses = this.filterKeys(addressesMapping, true);
72
- if (addresses.length === 0)
73
- return;
74
- const mappings = Object.fromEntries(addresses.map(key => [
75
- this.createCacheKey(key),
76
- addressesMapping[key].index.toString(),
77
- ]));
78
- await this.cache.hmset(this.cacheSavedAddressesKey, mappings);
79
- }
80
- async getSavedAddresses(addressesMapping) {
81
- const addresses = Object.keys(addressesMapping);
82
- if (addresses.length === 0)
83
- return addressesMapping;
84
- const savedAddresses = await this.cache.hmget(this.cacheSavedAddressesKey, addresses.map(key => this.createCacheKey(key)));
85
- savedAddresses.forEach((index, i) => {
86
- const indexNum = Number.isInteger(index) ? Number(index) : -1;
87
- addressesMapping[addresses[i]] = {
88
- saved: Number.isInteger(index),
89
- index: indexNum,
90
- };
91
- });
92
- return addressesMapping;
93
- }
94
- async addOnChainSavedAddress(addressesMapping) {
95
- const newAddresses = this.filterKeys(addressesMapping, false);
96
- if (newAddresses.length === 0)
97
- return addressesMapping;
98
- const onChainSavedAddresses = await this.getSavedAddressesOnChain(newAddresses);
99
- const needUpdate = (0, lodash_1.some)(onChainSavedAddresses, v => v.saved);
100
- if (needUpdate) {
101
- const setNewAddressesInCache = {};
102
- Object.entries(onChainSavedAddresses).forEach(([address, { saved, index }]) => {
103
- if (saved) {
104
- addressesMapping[address] = { saved, index };
105
- setNewAddressesInCache[address] = { saved, index };
106
- }
107
- });
108
- await this.setSavedAddresses(setNewAddressesInCache);
109
- }
110
- return addressesMapping;
111
- }
112
- async getSavedAddressesOnChain(addresses) {
113
- const callData = addresses.map(address => ({
114
- target: this.uncompressorAddress,
115
- callData: this.uncomporessorInterface.encodeFunctionData('addressToByte', [address]),
116
- decodeFunction: decoders_1.bytes3ToString,
117
- }));
118
- const isAddressesSaved = await this.multiWrapper.tryAggregate(false, callData);
119
- const entries = isAddressesSaved.map((addressResult, i) => {
120
- const savedOnchain = addressResult.success
121
- ? parseInt(addressResult.returnData, 16) > 0
122
- : false;
123
- const index = savedOnchain ? parseInt(addressResult.returnData, 16) : -1;
124
- return [
125
- addresses[i],
126
- {
127
- saved: savedOnchain,
128
- index,
129
- },
130
- ];
131
- });
132
- return Object.fromEntries(entries);
133
- }
134
- createCacheKey(token) {
135
- return `${token}_${this.uncompressorAddress}_${this.network}`;
136
- }
137
- filterKeys(addressesMapping, saved = false) {
138
- return Object.entries(addressesMapping)
139
- .filter(([, app]) => app.saved === saved)
140
- .map(([key]) => key);
141
- }
142
- }
143
- exports.Compressor = Compressor;
144
- //# sourceMappingURL=Compressor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Compressor.js","sourceRoot":"","sources":["../../../src/executor/compressor/Compressor.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAG/C,+CAAwD;AAExD,iDAAoD;AAEpD,oFAA0D;AAC1D,0DAAwD;AACxD,mCAA8B;AAE9B,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAErD,yCAAyC;AACzC,cAAc;AAEd,MAAa,UAAU;IAOrB,YACY,OAAgB,EAChB,mBAA4B,EAC5B,iBAA0B,EACpC,KAAa,EACH,YAA0B;QAJ1B,YAAO,GAAP,OAAO,CAAS;QAChB,wBAAmB,GAAnB,mBAAmB,CAAS;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAS;QAE1B,iBAAY,GAAZ,YAAY,CAAc;QAEpC,IAAI,CAAC,sBAAsB,GAAG,IAAI,eAAS,CAAC,2BAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,sBAAsB,GAAG,GAAG,wBAAY,uBAAuB,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,UAAuB,EACvB,eAAwB;QAExB,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAElE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE1C,IAAI,gBAAgB,GAAqB,EAAE,CAAC;QAE5C,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACpC,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,gBAAgB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAElE,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAC9D,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CACpC,CAAC;QAEF,IAAI,kBAAkB,EAAE;YACtB,OAAO,IAAA,kBAAQ,EAAC;gBACd,eAAe,EAAE,QAAQ;gBACzB,SAAS,EAAE,gBAAgB;aAC5B,CAAC,CAAC,cAAc,CAAC;SACnB;QAED,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAEvE,OAAO,IAAA,kBAAQ,EAAC;YACd,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAC,cAAc,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAAC,UAAuB;QAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,SAAS,EAAE;YACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;gBAC9B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE9B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;oBAC7C,yBAAyB;oBACzB,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM;wBAAE,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtE,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO;wBAC3B,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAE3C,IAAI,YAAY,CAAC,aAAa,EAAE;wBAC9B,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAC3C,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CACvB,CAAC;qBACH;iBACF;aACF;SACF;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,gBAAkC;QAElC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CACjC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;SACvC,CAAC,CACH,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,gBAAkC;QAElC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAEpD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAC3C,IAAI,CAAC,sBAAsB,EAC3B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAC/C,CAAC;QAEF,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC/B,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC9B,KAAK,EAAE,QAAQ;aAChB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAEvD,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAC/D,YAAY,CACb,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,aAAI,EAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE7D,IAAI,UAAU,EAAE;YACd,MAAM,sBAAsB,GAAqB,EAAE,CAAC;YAEpD,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAC3C,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAI,KAAK,EAAE;oBACT,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;oBAC7C,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;iBACpD;YACH,CAAC,CACF,CAAC;YAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;SACtD;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,SAAmB;QAEnB,MAAM,QAAQ,GAA8B,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpE,MAAM,EAAE,IAAI,CAAC,mBAAmB;YAChC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CACtD,eAAe,EACf,CAAC,OAAO,CAAC,CACV;YACD,cAAc,EAAE,yBAAc;SAC/B,CAAC,CAAC,CAAC;QAEJ,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAC3D,KAAK,EACL,QAAQ,CACT,CAAC;QAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO;gBACxC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC;YAEV,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzE,OAAO;gBACL,SAAS,CAAC,CAAC,CAAC;gBACZ;oBACE,KAAK,EAAE,YAAY;oBACnB,KAAK;iBACN;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,KAAc;QACnC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC;IAEO,UAAU,CAAC,gBAAkC,EAAE,KAAK,GAAG,KAAK;QAClE,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAtMD,gCAsMC"}
@@ -1,17 +0,0 @@
1
- export declare type AddressesMapping = Record<string, {
2
- saved: boolean;
3
- index: number;
4
- }>;
5
- interface CompressInput {
6
- initialCallData: string;
7
- addresses: AddressesMapping;
8
- options?: any;
9
- network?: string;
10
- }
11
- interface CompressOutput {
12
- compressedData: string;
13
- initialCost: number;
14
- finalCost: number;
15
- }
16
- declare const compress: ({ initialCallData, addresses, options, network, }: CompressInput) => CompressOutput;
17
- export default compress;
@@ -1,187 +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
- const computeCostL2_1 = __importDefault(require("./utils/computeCostL2"));
7
- const intToByte_1 = __importDefault(require("./utils/intToByte"));
8
- const searchUnusedBytes_1 = __importDefault(require("./compress_functions/searchUnusedBytes"));
9
- const byteSubstitution_1 = __importDefault(require("./compress_functions/byteSubstitution"));
10
- const findLongestAndSubstitute_1 = __importDefault(require("./compress_functions/findLongestAndSubstitute"));
11
- const addressSubstitution_1 = __importDefault(require("./compress_functions/addressSubstitution"));
12
- const addressSubstitutionFromObject_1 = __importDefault(require("./compress_functions/addressSubstitutionFromObject"));
13
- const lodash_1 = require("lodash");
14
- const zeroByte = '00';
15
- const ffByte = 'ff';
16
- const trimHex = (hex) => {
17
- return hex.startsWith('0x') ? hex.slice(2) : hex;
18
- };
19
- const compress = function ({ initialCallData, addresses, options, network, }) {
20
- if (initialCallData.length % 2 !== 0)
21
- throw new Error('Initial data of odd length');
22
- if (!options)
23
- options = {};
24
- const initialCost = (0, computeCostL2_1.default)(initialCallData);
25
- initialCallData = trimHex(initialCallData);
26
- let callData = initialCallData;
27
- const savedAddresses = (0, lodash_1.pickBy)(addresses, v => v.saved);
28
- let newAddresses = Object.keys((0, lodash_1.pickBy)(addresses, v => !v.saved)).map(address => address.substring(2).toLocaleLowerCase());
29
- // SAVED ADDRESSES SUBSTITUTIONS
30
- if (!options.skipAddressSubstitution) {
31
- callData = (0, addressSubstitutionFromObject_1.default)({
32
- callData,
33
- addressesObject: savedAddresses,
34
- });
35
- }
36
- if (!options.skipNewAddressSubstitution) {
37
- // NEW ADDRESSES REMOVING USELESS AND HIGHLIGHTING GOOD
38
- newAddresses = newAddresses.filter(addr => callData.includes(addr));
39
- // NEW ADDRESSES SUBSTITUTIONS
40
- callData = (0, addressSubstitution_1.default)({
41
- callData,
42
- addresses: newAddresses,
43
- isSavedAddresses: false,
44
- });
45
- }
46
- // ZEROES SUBSTITUTIONS
47
- // I couldn't get ride of 0 around addresses because of potential zeroes absence around addresses in later call data formats
48
- // An idea could be to have another address prefix to handle this case (one with both sides having 00 by default), but it doesn't optimize that much
49
- let { compressedCallData, bufferOfOccurences } = (0, byteSubstitution_1.default)({
50
- byte: zeroByte,
51
- callData,
52
- addressPrefix: 'RR',
53
- newAddressPrefix: 'TT',
54
- });
55
- let numberOfZeroes = bufferOfOccurences;
56
- // console.log({numberOfZeroes})
57
- // COUNTING BYTES AND CHOSING MAX BYTE IN ZEROES
58
- // Counting bytes occurences in numberOfZeroes
59
- let byteCountsInZeroes = {};
60
- for (let i = 0; i < numberOfZeroes.length; i += 2) {
61
- const byte = numberOfZeroes.substring(i, i + 2);
62
- if (!byteCountsInZeroes[byte])
63
- byteCountsInZeroes[byte] = 1;
64
- else
65
- byteCountsInZeroes[byte]++;
66
- }
67
- // Finding max byte in numberOfZeroes
68
- let maxByteInZeroes = '';
69
- let maxInZeroes = 0;
70
- for (let byte of Object.keys(byteCountsInZeroes)) {
71
- if (byteCountsInZeroes[byte] > maxInZeroes) {
72
- maxInZeroes = byteCountsInZeroes[byte];
73
- maxByteInZeroes = byte;
74
- }
75
- }
76
- // Substituting max byte of numberOfZeroes in compressedData
77
- for (let i = 0; i < compressedCallData.length; i += 2) {
78
- const currentByte = compressedCallData.slice(i, i + 2);
79
- if (currentByte === zeroByte) {
80
- if (i < compressedCallData.length - 2) {
81
- const nextByte = compressedCallData.slice(i + 2, i + 4);
82
- if (nextByte === maxByteInZeroes) {
83
- compressedCallData =
84
- compressedCallData.substring(0, i + 2) +
85
- zeroByte +
86
- compressedCallData.substring(i + 4);
87
- i += 2;
88
- }
89
- }
90
- }
91
- else if (currentByte === 'RR')
92
- i += 6;
93
- else if (currentByte === 'TT')
94
- i += 2;
95
- }
96
- // console.log({maxByteInZeroes, maxInZeroes, compressedCallData})
97
- // SEARCH FOR UNIQUE ADDRESSES PREFIXES AND DUPLICATED STRING MARKERS
98
- let { addressPrefix, newAddressPrefix, duplicatedStringMarkers } = (0, searchUnusedBytes_1.default)({
99
- newAddresses,
100
- compressedCallData,
101
- });
102
- // console.log({addressPrefix, newAddressPrefix, duplicatedStringMarkers})
103
- // ADDRESSES PREFIX SUBSTITUTIONS
104
- if (addressPrefix &&
105
- addressPrefix !== '' &&
106
- !options.skipAddressSubstitution) {
107
- const regex = new RegExp('RR', 'g');
108
- compressedCallData = compressedCallData.replace(regex, addressPrefix);
109
- }
110
- else if (addressPrefix === '' && !options.skipAddressSubstitution) {
111
- // If no unused byte for addressPrefix remove the logic for address
112
- return compress({
113
- initialCallData: initialCallData,
114
- addresses,
115
- options: {
116
- skipAddressSubstitution: true,
117
- skipNewAddressSubstitution: true,
118
- },
119
- network,
120
- });
121
- }
122
- else if (options.skipAddressSubstitution) {
123
- addressPrefix = '00';
124
- }
125
- if (newAddressPrefix &&
126
- newAddressPrefix !== '' &&
127
- !options.skipNewAddressSubstitution) {
128
- const regex = new RegExp('TT', 'g');
129
- compressedCallData = compressedCallData.replace(regex, newAddressPrefix);
130
- }
131
- else if (newAddressPrefix === '' &&
132
- newAddresses.length &&
133
- !options.skipNewAddressSubstitution) {
134
- // If no unused byte for newAddressPrefix remove the logic for address
135
- return compress({
136
- initialCallData: initialCallData,
137
- addresses,
138
- options: {
139
- skipNewAddressSubstitution: true,
140
- },
141
- network,
142
- });
143
- }
144
- // INDEX OF METHOD SUBSTITUTION
145
- compressedCallData = ffByte + trimHex(compressedCallData);
146
- const newAddressesString = options.skipNewAddressSubstitution
147
- ? '00'
148
- : (0, intToByte_1.default)(newAddresses.length) +
149
- (newAddresses.length > 0 ? newAddressPrefix : '') +
150
- newAddresses.join('');
151
- const prefixCallData = addressPrefix + newAddressesString;
152
- // SUBSTITUTING FF
153
- const firstBytes = compressedCallData.substring(0, 2);
154
- const compressedFFSubstituted = (0, byteSubstitution_1.default)({
155
- byte: ffByte,
156
- callData: compressedCallData.substring(2),
157
- compressedCallData: firstBytes,
158
- addressPrefix: options.skipAddressSubstitution ? 'RR' : addressPrefix,
159
- newAddressPrefix: options.skipNewAddressSubstitution
160
- ? 'TT'
161
- : newAddressPrefix,
162
- });
163
- compressedCallData = compressedFFSubstituted.compressedCallData;
164
- // FINDING LONGEST RECURRENT STRINGS TO COMPRESS
165
- let { newCompressedData, nbOfDuplicatedStrings } = (0, findLongestAndSubstitute_1.default)({
166
- compressedCallData: compressedCallData.substring(2),
167
- markers: duplicatedStringMarkers,
168
- });
169
- if (newCompressedData)
170
- compressedCallData = firstBytes + newCompressedData;
171
- if (!maxByteInZeroes)
172
- maxByteInZeroes = '00';
173
- compressedCallData =
174
- '0x' + prefixCallData + maxByteInZeroes + compressedCallData + zeroByte;
175
- // We append the markers at the end of the string to find them back in the contract
176
- for (let i = 0; i < nbOfDuplicatedStrings; i++) {
177
- compressedCallData += duplicatedStringMarkers[i];
178
- }
179
- // 0x + address prefix (1B) | nbOfNewAddresses (1B) | newAddressPrefix (0/1B) | newAddresses (n * 20B) |
180
- // maxByteInZeroes (1B) | FF | compressedData | 00 | duplicatedStringMarkers
181
- const finalCost = (0, computeCostL2_1.default)(compressedCallData);
182
- if (compressedCallData.length % 2 !== 0)
183
- throw new Error('Data of odd length');
184
- return { compressedData: compressedCallData, initialCost, finalCost };
185
- };
186
- exports.default = compress;
187
- //# sourceMappingURL=compress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../src/executor/compressor/compress.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- declare const addressSubstitution: ({ callData, addresses, isSavedAddresses, }: {
2
- callData: string;
3
- addresses: string[];
4
- isSavedAddresses: boolean;
5
- }) => string;
6
- export default addressSubstitution;