@paraswap/dex-lib 3.10.3 → 3.11.0-bebop

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 (193) hide show
  1. package/build/abi/Aave_GSM.json +751 -0
  2. package/build/abi/USDM.json +807 -0
  3. package/build/abi/{integral/pool.json → cables/CablesMainnetRFQ.json} +563 -521
  4. package/build/abi/inception/inception-ineth-pool.json +1062 -0
  5. package/build/abi/inception/inception-ineth.json +609 -0
  6. package/build/abi/inception/inception-ratio-feed.json +329 -0
  7. package/build/abi/inception/inception-vault.json +991 -0
  8. package/build/config.js +1 -0
  9. package/build/config.js.map +1 -1
  10. package/build/dex/aave-v1/aave-v1.d.ts +2 -1
  11. package/build/dex/aave-v1/aave-v1.js +22 -0
  12. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  13. package/build/dex/balancer-v2/config.js +1 -1
  14. package/build/dex/bebop/bebop.js +1 -1
  15. package/build/dex/bebop/bebop.js.map +1 -1
  16. package/build/dex/bebop/config.js +5 -0
  17. package/build/dex/bebop/config.js.map +1 -1
  18. package/build/dex/bebop/rate-fetcher.d.ts +3 -1
  19. package/build/dex/bebop/rate-fetcher.js +42 -2
  20. package/build/dex/bebop/rate-fetcher.js.map +1 -1
  21. package/build/dex/bebop/validators.d.ts +2 -0
  22. package/build/dex/bebop/validators.js +4 -1
  23. package/build/dex/bebop/validators.js.map +1 -1
  24. package/build/dex/bebop/websocket-fetcher.d.ts +35 -0
  25. package/build/dex/bebop/websocket-fetcher.js +87 -0
  26. package/build/dex/bebop/websocket-fetcher.js.map +1 -0
  27. package/build/dex/cables/cables.d.ts +57 -0
  28. package/build/dex/cables/cables.js +471 -0
  29. package/build/dex/cables/cables.js.map +1 -0
  30. package/build/dex/cables/config.d.ts +4 -0
  31. package/build/dex/cables/config.js +15 -0
  32. package/build/dex/cables/config.js.map +1 -0
  33. package/build/dex/cables/constants.d.ts +19 -0
  34. package/build/dex/cables/constants.js +26 -0
  35. package/build/dex/cables/constants.js.map +1 -0
  36. package/build/dex/cables/rate-fetcher.d.ts +34 -0
  37. package/build/dex/cables/rate-fetcher.js +106 -0
  38. package/build/dex/cables/rate-fetcher.js.map +1 -0
  39. package/build/dex/cables/types.d.ts +106 -0
  40. package/build/dex/cables/types.js +12 -0
  41. package/build/dex/cables/types.js.map +1 -0
  42. package/build/dex/cables/validators.d.ts +5 -0
  43. package/build/dex/cables/validators.js +49 -0
  44. package/build/dex/cables/validators.js.map +1 -0
  45. package/build/dex/idle-dao/idle-dao-pool.d.ts +56 -0
  46. package/build/dex/idle-dao/idle-dao-pool.js +176 -0
  47. package/build/dex/idle-dao/idle-dao-pool.js.map +1 -0
  48. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +16 -0
  49. package/build/dex/idle-dao/idle-dao-pooling-pool.js +57 -0
  50. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +1 -0
  51. package/build/dex/idle-dao/scripts.d.ts +9 -0
  52. package/build/dex/idle-dao/scripts.js +552 -0
  53. package/build/dex/idle-dao/scripts.js.map +1 -0
  54. package/build/dex/inception/config.d.ts +4 -0
  55. package/build/dex/inception/config.js +109 -0
  56. package/build/dex/inception/config.js.map +1 -0
  57. package/build/dex/inception/inception-event-pool.d.ts +16 -0
  58. package/build/dex/inception/inception-event-pool.js +51 -0
  59. package/build/dex/inception/inception-event-pool.js.map +1 -0
  60. package/build/dex/{integral/integral.d.ts → inception/inception-native.d.ts} +21 -19
  61. package/build/dex/inception/inception-native.js +131 -0
  62. package/build/dex/inception/inception-native.js.map +1 -0
  63. package/build/dex/inception/inception-pool.d.ts +18 -0
  64. package/build/dex/inception/inception-pool.js +32 -0
  65. package/build/dex/inception/inception-pool.js.map +1 -0
  66. package/build/dex/inception/inception-price-feed.d.ts +19 -0
  67. package/build/dex/inception/inception-price-feed.js +51 -0
  68. package/build/dex/inception/inception-price-feed.js.map +1 -0
  69. package/build/dex/inception/inception.d.ts +43 -0
  70. package/build/dex/inception/inception.js +204 -0
  71. package/build/dex/inception/inception.js.map +1 -0
  72. package/build/dex/inception/tokens.d.ts +9 -0
  73. package/build/dex/inception/tokens.js +28 -0
  74. package/build/dex/inception/tokens.js.map +1 -0
  75. package/build/dex/inception/types.d.ts +22 -0
  76. package/build/dex/inception/types.js +3 -0
  77. package/build/dex/inception/types.js.map +1 -0
  78. package/build/dex/inception/utils.d.ts +6 -0
  79. package/build/dex/inception/utils.js +37 -0
  80. package/build/dex/inception/utils.js.map +1 -0
  81. package/build/dex/jarvis.d.ts +2 -1
  82. package/build/dex/jarvis.js +58 -0
  83. package/build/dex/jarvis.js.map +1 -1
  84. package/build/dex/platypus/platypus.d.ts +2 -1
  85. package/build/dex/platypus/platypus.js +31 -0
  86. package/build/dex/platypus/platypus.js.map +1 -1
  87. package/build/dex/swaap-v1/swaap-v1.d.ts +2 -1
  88. package/build/dex/swaap-v1/swaap-v1.js +10 -0
  89. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  90. package/build/dex/zerox/index.d.ts +4 -26
  91. package/build/dex/zerox/index.js +50 -42
  92. package/build/dex/zerox/index.js.map +1 -1
  93. package/build/dex/zerox/types.d.ts +29 -0
  94. package/build/dex/zerox/types.js +8 -1
  95. package/build/dex/zerox/types.js.map +1 -1
  96. package/build/lib/fetcher/wsFetcher.d.ts +7 -3
  97. package/build/lib/fetcher/wsFetcher.js +64 -51
  98. package/build/lib/fetcher/wsFetcher.js.map +1 -1
  99. package/package.json +4 -2
  100. package/src/config.ts +1 -0
  101. package/src/dex/balancer-v2/config.ts +1 -1
  102. package/src/dex/bebop/bebop-e2e.test.ts +21 -0
  103. package/src/dex/bebop/bebop.proto +15 -0
  104. package/src/dex/bebop/bebop.ts +1 -1
  105. package/src/dex/bebop/config.ts +5 -0
  106. package/src/dex/bebop/rate-fetcher.ts +51 -6
  107. package/src/dex/bebop/validators.ts +4 -0
  108. package/src/lib/fetcher/wsFetcher.ts +79 -66
  109. package/.idea/aws.xml +0 -17
  110. package/.idea/codeStyles/Project.xml +0 -19
  111. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  112. package/.idea/misc.xml +0 -6
  113. package/.idea/modules.xml +0 -8
  114. package/.idea/paraswap-dex-lib.iml +0 -9
  115. package/.idea/prettier.xml +0 -7
  116. package/.idea/vcs.xml +0 -6
  117. package/build/abi/integral/factory.json +0 -333
  118. package/build/abi/integral/oracle.json +0 -501
  119. package/build/abi/integral/relayer.json +0 -1536
  120. package/build/dex/bProtocol.d.ts +0 -18
  121. package/build/dex/bProtocol.js +0 -39
  122. package/build/dex/bProtocol.js.map +0 -1
  123. package/build/dex/bancor.d.ts +0 -26
  124. package/build/dex/bancor.js +0 -58
  125. package/build/dex/bancor.js.map +0 -1
  126. package/build/dex/compound.d.ts +0 -18
  127. package/build/dex/compound.js +0 -46
  128. package/build/dex/compound.js.map +0 -1
  129. package/build/dex/curve-v2.d.ts +0 -58
  130. package/build/dex/curve-v2.js +0 -180
  131. package/build/dex/curve-v2.js.map +0 -1
  132. package/build/dex/dodo-v1.d.ts +0 -33
  133. package/build/dex/dodo-v1.js +0 -63
  134. package/build/dex/dodo-v1.js.map +0 -1
  135. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +0 -49
  136. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +0 -104
  137. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +0 -1
  138. package/build/dex/fluid-dex/fluid-dex-pool.d.ts +0 -47
  139. package/build/dex/fluid-dex/fluid-dex-pool.js +0 -119
  140. package/build/dex/fluid-dex/fluid-dex-pool.js.map +0 -1
  141. package/build/dex/integral/config.d.ts +0 -4
  142. package/build/dex/integral/config.js +0 -20
  143. package/build/dex/integral/config.js.map +0 -1
  144. package/build/dex/integral/context.d.ts +0 -40
  145. package/build/dex/integral/context.js +0 -158
  146. package/build/dex/integral/context.js.map +0 -1
  147. package/build/dex/integral/integral-factory.d.ts +0 -24
  148. package/build/dex/integral/integral-factory.js +0 -95
  149. package/build/dex/integral/integral-factory.js.map +0 -1
  150. package/build/dex/integral/integral-pool.d.ts +0 -50
  151. package/build/dex/integral/integral-pool.js +0 -149
  152. package/build/dex/integral/integral-pool.js.map +0 -1
  153. package/build/dex/integral/integral-pricing.d.ts +0 -18
  154. package/build/dex/integral/integral-pricing.js +0 -114
  155. package/build/dex/integral/integral-pricing.js.map +0 -1
  156. package/build/dex/integral/integral-relayer.d.ts +0 -42
  157. package/build/dex/integral/integral-relayer.js +0 -192
  158. package/build/dex/integral/integral-relayer.js.map +0 -1
  159. package/build/dex/integral/integral-token.d.ts +0 -27
  160. package/build/dex/integral/integral-token.js +0 -59
  161. package/build/dex/integral/integral-token.js.map +0 -1
  162. package/build/dex/integral/integral.js +0 -376
  163. package/build/dex/integral/integral.js.map +0 -1
  164. package/build/dex/integral/types.d.ts +0 -85
  165. package/build/dex/integral/types.js +0 -9
  166. package/build/dex/integral/types.js.map +0 -1
  167. package/build/dex/integral/utils-e2e.d.ts +0 -9
  168. package/build/dex/integral/utils-e2e.js +0 -131
  169. package/build/dex/integral/utils-e2e.js.map +0 -1
  170. package/build/dex/integral/utils.d.ts +0 -17
  171. package/build/dex/integral/utils.js +0 -94
  172. package/build/dex/integral/utils.js.map +0 -1
  173. package/build/dex/lido.d.ts +0 -19
  174. package/build/dex/lido.js +0 -42
  175. package/build/dex/lido.js.map +0 -1
  176. package/build/dex/onebit.d.ts +0 -25
  177. package/build/dex/onebit.js +0 -42
  178. package/build/dex/onebit.js.map +0 -1
  179. package/build/dex/smoothy.d.ts +0 -26
  180. package/build/dex/smoothy.js +0 -48
  181. package/build/dex/smoothy.js.map +0 -1
  182. package/build/dex/stable-pool.d.ts +0 -28
  183. package/build/dex/stable-pool.js +0 -62
  184. package/build/dex/stable-pool.js.map +0 -1
  185. package/build/dex/trader-joe-v2.1/optimizer.d.ts +0 -2
  186. package/build/dex/trader-joe-v2.1/optimizer.js +0 -47
  187. package/build/dex/trader-joe-v2.1/optimizer.js.map +0 -1
  188. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +0 -7
  189. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +0 -20
  190. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +0 -1
  191. package/build/dex/trader-joe-v2.1.d.ts +0 -43
  192. package/build/dex/trader-joe-v2.1.js +0 -79
  193. package/build/dex/trader-joe-v2.1.js.map +0 -1
@@ -1,18 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, SimpleExchangeParam } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { IDexHelper } from '../dex-helper';
7
- export declare type BProtocolData = {
8
- exchange: string;
9
- };
10
- declare type BProtocolParam = [lusdAmount: string, minEthReturn: string, dest: string];
11
- export declare class BProtocol extends SimpleExchange implements IDexTxBuilder<BProtocolData, BProtocolParam> {
12
- static dexKeys: string[];
13
- exchangeRouterInterface: Interface;
14
- constructor(dexHelper: IDexHelper);
15
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BProtocolData, side: SwapSide): AdapterExchangeParam;
16
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BProtocolData, side: SwapSide): Promise<SimpleExchangeParam>;
17
- }
18
- export {};
@@ -1,39 +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.BProtocol = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const simple_exchange_1 = require("./simple-exchange");
9
- const BProtocol_json_1 = __importDefault(require("../abi/BProtocol.json"));
10
- var BProtocolFunctions;
11
- (function (BProtocolFunctions) {
12
- BProtocolFunctions["swap"] = "swap";
13
- })(BProtocolFunctions || (BProtocolFunctions = {}));
14
- class BProtocol extends simple_exchange_1.SimpleExchange {
15
- constructor(dexHelper) {
16
- super(dexHelper, 'bprotocol');
17
- this.exchangeRouterInterface = new abi_1.Interface(BProtocol_json_1.default);
18
- }
19
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
20
- return {
21
- targetExchange: data.exchange,
22
- payload: '0x',
23
- networkFee: '0',
24
- };
25
- }
26
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
27
- const swapFunction = BProtocolFunctions.swap;
28
- const swapFunctionParams = [
29
- srcAmount,
30
- destAmount,
31
- this.augustusAddress,
32
- ];
33
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
34
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.exchange);
35
- }
36
- }
37
- exports.BProtocol = BProtocol;
38
- BProtocol.dexKeys = ['bprotocol'];
39
- //# sourceMappingURL=bProtocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bProtocol.js","sourceRoot":"","sources":["../../src/dex/bProtocol.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAI7D,uDAAmD;AACnD,2EAAiD;AAOjD,IAAK,kBAEJ;AAFD,WAAK,kBAAkB;IACrB,mCAAa,CAAA;AACf,CAAC,EAFI,kBAAkB,KAAlB,kBAAkB,QAEtB;AAED,MAAa,SACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9B,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAC1C,wBAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC7C,MAAM,kBAAkB,GAAmB;YACzC,SAAS;YACT,UAAU;YACV,IAAI,CAAC,eAAe;SACrB,CAAC;QACF,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,QAAQ,CACd,CAAC;IACJ,CAAC;;AAxDH,8BAyDC;AArDQ,iBAAO,GAAG,CAAC,WAAW,CAAC,CAAC"}
@@ -1,26 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { IDexHelper } from '../dex-helper';
7
- export declare type BancorData = {
8
- minDestToken: string;
9
- path: Address[];
10
- bancorNetwork?: string;
11
- };
12
- declare type BancorParam = [
13
- path: Address[],
14
- srcAmount: string,
15
- minDestToken: string,
16
- affiliateAccount: string,
17
- affiliateFee: string
18
- ];
19
- export declare class Bancor extends SimpleExchange implements IDexTxBuilder<BancorData, BancorParam> {
20
- static dexKeys: string[];
21
- exchangeRouterInterface: Interface;
22
- constructor(dexHelper: IDexHelper);
23
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BancorData, side: SwapSide): AdapterExchangeParam;
24
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BancorData, side: SwapSide): Promise<SimpleExchangeParam>;
25
- }
26
- export {};
@@ -1,58 +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.Bancor = 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 Bancor_json_1 = __importDefault(require("../abi/Bancor.json"));
11
- const BANCOR_NETWORK = {
12
- 1: '0x2F9EC37d6CcFFf1caB21733BdaDEdE11c823cCB0',
13
- };
14
- const BancorRegistry = {
15
- 1: '0x52ae12abe5d8bd778bd5397f99ca900624cfadd4',
16
- };
17
- var BancorFunctions;
18
- (function (BancorFunctions) {
19
- BancorFunctions["convert2"] = "convert2";
20
- })(BancorFunctions || (BancorFunctions = {}));
21
- class Bancor extends simple_exchange_1.SimpleExchange {
22
- constructor(dexHelper) {
23
- super(dexHelper, 'bancor');
24
- this.exchangeRouterInterface = new abi_1.Interface(Bancor_json_1.default);
25
- }
26
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
27
- if (side === constants_1.SwapSide.BUY)
28
- throw new Error(`Buy not supported`);
29
- const { path } = data;
30
- const payload = this.abiCoder.encodeParameter({
31
- ParentStruct: {
32
- path: 'address[]',
33
- },
34
- }, { path });
35
- return {
36
- targetExchange: BancorRegistry[this.network],
37
- payload,
38
- networkFee: '0',
39
- };
40
- }
41
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
42
- if (side === constants_1.SwapSide.BUY)
43
- throw new Error(`Buy not supported`);
44
- const defaultArgs = [
45
- data.path,
46
- srcAmount,
47
- data.minDestToken || '1',
48
- constants_1.NULL_ADDRESS,
49
- '0',
50
- ];
51
- const swapMethod = BancorFunctions.convert2;
52
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapMethod, defaultArgs);
53
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.bancorNetwork || BANCOR_NETWORK[this.network]);
54
- }
55
- }
56
- exports.Bancor = Bancor;
57
- Bancor.dexKeys = ['bancor'];
58
- //# sourceMappingURL=bancor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bancor.js","sourceRoot":"","sources":["../../src/dex/bancor.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAC7D,4CAAsD;AAGtD,uDAAmD;AACnD,qEAA2C;AAI3C,MAAM,cAAc,GAAkC;IACpD,CAAC,EAAE,4CAA4C;CAChD,CAAC;AAEF,MAAM,cAAc,GAAkC;IACpD,CAAC,EAAE,4CAA4C;CAChD,CAAC;AAgBF,IAAK,eAEJ;AAFD,WAAK,eAAe;IAClB,wCAAqB,CAAA;AACvB,CAAC,EAFI,eAAe,KAAf,eAAe,QAEnB;AAED,MAAa,MACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,qBAA2B,CAAC,CAAC;IAC5E,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,IAAI,EAAE,WAAW;aAClB;SACF,EACD,EAAE,IAAI,EAAE,CACT,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG;YAClB,IAAI,CAAC,IAAI;YACT,SAAS;YACT,IAAI,CAAC,YAAY,IAAI,GAAG;YACxB,wBAAY;YACZ,GAAG;SACJ,CAAC;QACF,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,UAAU,EACV,WAAW,CACZ,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CACnD,CAAC;IACJ,CAAC;;AAtEH,wBAuEC;AAnEQ,cAAO,GAAG,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, SimpleExchangeParam } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { IDexHelper } from '../dex-helper';
7
- export declare type CompoundData = {
8
- fromCToken: boolean;
9
- };
10
- declare type CompoundParam = [srcAmount: string];
11
- export declare class Compound extends SimpleExchange implements IDexTxBuilder<CompoundData, CompoundParam> {
12
- static dexKeys: string[];
13
- cethInterface: Interface;
14
- constructor(dexHelper: IDexHelper);
15
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CompoundData, side: SwapSide): AdapterExchangeParam;
16
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CompoundData, side: SwapSide): Promise<SimpleExchangeParam>;
17
- }
18
- export {};
@@ -1,46 +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.Compound = 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 Compound_CETH_json_1 = __importDefault(require("../abi/Compound_CETH.json")); // CETH abi
11
- const utils_1 = require("../utils");
12
- var CompoundFunctions;
13
- (function (CompoundFunctions) {
14
- CompoundFunctions["redeem"] = "redeem";
15
- CompoundFunctions["mint"] = "mint";
16
- })(CompoundFunctions || (CompoundFunctions = {}));
17
- class Compound extends simple_exchange_1.SimpleExchange {
18
- constructor(dexHelper) {
19
- super(dexHelper, 'compound');
20
- this.cethInterface = new abi_1.Interface(Compound_CETH_json_1.default);
21
- }
22
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
23
- const cToken = data.fromCToken ? srcToken : destToken; // Warning
24
- const payload = this.abiCoder.encodeParameter({
25
- ParentStruct: {
26
- cToken: 'address',
27
- },
28
- }, { cToken });
29
- return {
30
- // target exchange is not used by the contract
31
- targetExchange: constants_1.NULL_ADDRESS,
32
- payload,
33
- networkFee: '0',
34
- };
35
- }
36
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
37
- const cToken = data.fromCToken ? srcToken : destToken;
38
- const swapData = (0, utils_1.isETHAddress)(srcToken)
39
- ? this.cethInterface.encodeFunctionData(CompoundFunctions.mint)
40
- : this.erc20Interface.encodeFunctionData(data.fromCToken ? CompoundFunctions.redeem : CompoundFunctions.mint, [srcAmount]);
41
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, cToken);
42
- }
43
- }
44
- exports.Compound = Compound;
45
- Compound.dexKeys = ['compound'];
46
- //# sourceMappingURL=compound.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compound.js","sourceRoot":"","sources":["../../src/dex/compound.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAC7D,4CAAsD;AAGtD,uDAAmD;AACnD,mFAA6C,CAAC,WAAW;AACzD,oCAAwC;AAQxC,IAAK,iBAGJ;AAHD,WAAK,iBAAiB;IACpB,sCAAiB,CAAA;IACjB,kCAAa,CAAA;AACf,CAAC,EAHI,iBAAiB,KAAjB,iBAAiB,QAGrB;AAED,MAAa,QACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,eAAS,CAAC,4BAAsB,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAkB,EAClB,IAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;QAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,MAAM,EAAE,SAAS;aAClB;SACF,EACD,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,OAAO;YACL,8CAA8C;YAC9C,cAAc,EAAE,wBAAY;YAC5B,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAkB,EAClB,IAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACpC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EACnE,CAAC,SAAS,CAAC,CACZ,CAAC;QAEN,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;;AA/DH,4BAgEC;AA5DQ,gBAAO,GAAG,CAAC,UAAU,CAAC,CAAC"}
@@ -1,58 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, Address, ExchangeTxInfo, NumberAsString, PreprocessTransactionOptions, SimpleExchangeParam, Token, TxInfo } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { IDexHelper } from '../dex-helper';
7
- import { Logger } from 'log4js';
8
- import { OptimalSwapExchange } from '@paraswap/core';
9
- export declare enum CurveV2SwapType {
10
- EXCHANGE = 0,
11
- EXCHANGE_UNDERLYING = 1,
12
- EXCHANGE_GENERIC_FACTORY_ZAP = 2
13
- }
14
- declare type CurveV2Data = {
15
- i: number;
16
- j: number;
17
- exchange: string;
18
- originalPoolAddress: Address;
19
- swapType: CurveV2SwapType;
20
- isApproved?: boolean;
21
- };
22
- export declare type DirectCurveV2Param = [
23
- fromToken: Address,
24
- toToken: Address,
25
- exchange: Address,
26
- poolAddress: Address,
27
- fromAmount: NumberAsString,
28
- toAmount: NumberAsString,
29
- expectedAmount: NumberAsString,
30
- feePercent: NumberAsString,
31
- i: NumberAsString,
32
- j: NumberAsString,
33
- partner: Address,
34
- isApproved: boolean,
35
- swapType: CurveV2SwapType,
36
- beneficiary: Address,
37
- needWrapNative: boolean,
38
- permit: string,
39
- uuid: string
40
- ];
41
- export declare class CurveV2 extends SimpleExchange implements IDexTxBuilder<CurveV2Data, DirectCurveV2Param> {
42
- readonly dexHelper: IDexHelper;
43
- static dexKeys: string[];
44
- exchangeRouterInterface: Interface;
45
- genericFactoryZapIface: Interface;
46
- minConversionRate: string;
47
- needWrapNative: boolean;
48
- logger: Logger;
49
- readonly directSwapIface: Interface;
50
- constructor(dexHelper: IDexHelper);
51
- getAdapterParam(_0: string, _1: string, _2: string, _3: string, data: CurveV2Data, side: SwapSide): AdapterExchangeParam;
52
- getTokenFromAddress(address: Address): Token;
53
- preProcessTransaction(optimalSwapExchange: OptimalSwapExchange<CurveV2Data>, srcToken: Token, _0: Token, _1: SwapSide, options: PreprocessTransactionOptions): Promise<[OptimalSwapExchange<CurveV2Data>, ExchangeTxInfo]>;
54
- getDirectParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, expectedAmount: NumberAsString, data: CurveV2Data, side: SwapSide, permit: string, uuid: string, feePercent: NumberAsString, _0: NumberAsString, partner: string, beneficiary: string, contractMethod?: string): TxInfo<DirectCurveV2Param>;
55
- static getDirectFunctionName(): string[];
56
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CurveV2Data, side: SwapSide): Promise<SimpleExchangeParam>;
57
- }
58
- export {};
@@ -1,180 +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.CurveV2 = exports.CurveV2SwapType = 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 GenericFactoryZap_json_1 = __importDefault(require("../abi/curve-v2/GenericFactoryZap.json"));
11
- const DirectSwap_json_1 = __importDefault(require("../abi/DirectSwap.json"));
12
- const CurveV2_json_1 = __importDefault(require("../abi/CurveV2.json"));
13
- const ts_essentials_1 = require("ts-essentials");
14
- const utils_1 = require("../utils");
15
- var CurveV2SwapType;
16
- (function (CurveV2SwapType) {
17
- CurveV2SwapType[CurveV2SwapType["EXCHANGE"] = 0] = "EXCHANGE";
18
- CurveV2SwapType[CurveV2SwapType["EXCHANGE_UNDERLYING"] = 1] = "EXCHANGE_UNDERLYING";
19
- CurveV2SwapType[CurveV2SwapType["EXCHANGE_GENERIC_FACTORY_ZAP"] = 2] = "EXCHANGE_GENERIC_FACTORY_ZAP";
20
- })(CurveV2SwapType = exports.CurveV2SwapType || (exports.CurveV2SwapType = {}));
21
- const DIRECT_METHOD_NAME = 'directCurveV2Swap';
22
- var CurveV2SwapFunctions;
23
- (function (CurveV2SwapFunctions) {
24
- CurveV2SwapFunctions["exchange"] = "exchange(uint256 i, uint256 j, uint256 dx, uint256 minDy)";
25
- CurveV2SwapFunctions["exchange_underlying"] = "exchange_underlying(uint256 i, uint256 j, uint256 dx, uint256 minDy)";
26
- CurveV2SwapFunctions["exchange_in_generic_factory_zap"] = "exchange(address _pool, uint256 i, uint256 j, uint256 _dx, uint256 _min_dy)";
27
- })(CurveV2SwapFunctions || (CurveV2SwapFunctions = {}));
28
- class CurveV2 extends simple_exchange_1.SimpleExchange {
29
- constructor(dexHelper) {
30
- super(dexHelper, 'curvev2');
31
- this.dexHelper = dexHelper;
32
- this.minConversionRate = '1';
33
- this.needWrapNative = true;
34
- this.directSwapIface = new abi_1.Interface(DirectSwap_json_1.default);
35
- this.exchangeRouterInterface = new abi_1.Interface(CurveV2_json_1.default);
36
- this.genericFactoryZapIface = new abi_1.Interface(GenericFactoryZap_json_1.default);
37
- this.logger = dexHelper.getLogger(`CurveV2_${dexHelper.config.data.network}`);
38
- }
39
- getAdapterParam(_0, _1, _2, _3, data, side) {
40
- if (side === constants_1.SwapSide.BUY)
41
- throw new Error(`Buy not supported`);
42
- const { i, j, originalPoolAddress, swapType } = data;
43
- const payload = this.abiCoder.encodeParameter({
44
- ParentStruct: {
45
- i: 'uint256',
46
- j: 'uint256',
47
- originalPoolAddress: 'address',
48
- swapType: 'uint8',
49
- },
50
- }, {
51
- i,
52
- j,
53
- originalPoolAddress,
54
- swapType,
55
- });
56
- return {
57
- targetExchange: data.exchange,
58
- payload,
59
- networkFee: '0',
60
- };
61
- }
62
- getTokenFromAddress(address) {
63
- // In this Dex decimals are not used
64
- return { address, decimals: 0 };
65
- }
66
- async preProcessTransaction(optimalSwapExchange, srcToken, _0, _1, options) {
67
- if (!options.isDirectMethod) {
68
- return [
69
- optimalSwapExchange,
70
- {
71
- deadline: BigInt((0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)()),
72
- },
73
- ];
74
- }
75
- (0, ts_essentials_1.assert)(optimalSwapExchange.data !== undefined, `preProcessTransaction: data field is missing`);
76
- let isApproved;
77
- try {
78
- this.erc20Contract.options.address =
79
- this.dexHelper.config.wrapETH(srcToken).address;
80
- const allowance = await this.erc20Contract.methods
81
- .allowance(this.augustusAddress, optimalSwapExchange.data.exchange)
82
- .call(undefined, 'latest');
83
- isApproved =
84
- BigInt(allowance.toString()) >= BigInt(optimalSwapExchange.srcAmount);
85
- }
86
- catch (e) {
87
- this.logger.error(`preProcessTransaction failed to retrieve allowance info: `, e);
88
- }
89
- return [
90
- {
91
- ...optimalSwapExchange,
92
- data: {
93
- ...optimalSwapExchange.data,
94
- isApproved,
95
- },
96
- },
97
- {
98
- deadline: BigInt((0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)()),
99
- },
100
- ];
101
- }
102
- getDirectParam(srcToken, destToken, srcAmount, destAmount, expectedAmount, data, side, permit, uuid, feePercent, _0, partner, beneficiary, contractMethod) {
103
- if (contractMethod !== DIRECT_METHOD_NAME) {
104
- throw new Error(`Invalid contract method ${contractMethod}`);
105
- }
106
- (0, ts_essentials_1.assert)(side === constants_1.SwapSide.SELL, 'Buy not supported');
107
- let isApproved = !!data.isApproved;
108
- if (data.isApproved === undefined) {
109
- this.logger.warn(`isApproved is undefined, defaulting to false`);
110
- }
111
- const swapParams = [
112
- srcToken,
113
- destToken,
114
- data.exchange,
115
- data.originalPoolAddress,
116
- srcAmount,
117
- destAmount,
118
- expectedAmount,
119
- feePercent,
120
- data.i.toString(),
121
- data.j.toString(),
122
- partner,
123
- isApproved,
124
- data.swapType,
125
- beneficiary,
126
- // For now we always wrap native. We don't support non native trade
127
- true,
128
- permit,
129
- (0, utils_1.uuidToBytes16)(uuid),
130
- ];
131
- const encoder = (...params) => {
132
- return this.directSwapIface.encodeFunctionData(DIRECT_METHOD_NAME, [
133
- params,
134
- ]);
135
- };
136
- return {
137
- params: swapParams,
138
- encoder,
139
- networkFee: '0',
140
- };
141
- }
142
- static getDirectFunctionName() {
143
- return [DIRECT_METHOD_NAME];
144
- }
145
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
146
- if (side === constants_1.SwapSide.BUY)
147
- throw new Error(`Buy not supported`);
148
- const { exchange, i, j, originalPoolAddress, swapType } = data;
149
- const args = swapType === CurveV2SwapType.EXCHANGE_GENERIC_FACTORY_ZAP
150
- ? [
151
- originalPoolAddress,
152
- i.toString(),
153
- j.toString(),
154
- srcAmount,
155
- this.minConversionRate,
156
- ]
157
- : [i.toString(), j.toString(), srcAmount, this.minConversionRate];
158
- let swapMethod;
159
- switch (swapType) {
160
- case CurveV2SwapType.EXCHANGE:
161
- swapMethod = CurveV2SwapFunctions.exchange;
162
- break;
163
- case CurveV2SwapType.EXCHANGE_UNDERLYING:
164
- swapMethod = CurveV2SwapFunctions.exchange_underlying;
165
- break;
166
- case CurveV2SwapType.EXCHANGE_GENERIC_FACTORY_ZAP:
167
- swapMethod = CurveV2SwapFunctions.exchange_in_generic_factory_zap;
168
- break;
169
- default:
170
- throw new Error(`getSimpleParam: not all cases covered for CurveV2SwapTypes`);
171
- }
172
- const swapData = swapMethod === CurveV2SwapFunctions.exchange_in_generic_factory_zap
173
- ? this.genericFactoryZapIface.encodeFunctionData(swapMethod, args)
174
- : this.exchangeRouterInterface.encodeFunctionData(swapMethod, args);
175
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
176
- }
177
- }
178
- exports.CurveV2 = CurveV2;
179
- CurveV2.dexKeys = ['curvev2'];
180
- //# sourceMappingURL=curve-v2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"curve-v2.js","sourceRoot":"","sources":["../../src/dex/curve-v2.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { NumberAsString } from '@paraswap/core';
7
- import { IDexHelper } from '../dex-helper';
8
- export declare type DodoV1Data = {
9
- fromToken: Address;
10
- toToken: Address;
11
- dodoPairs: Address[];
12
- directions: string;
13
- isIncentive: boolean;
14
- deadLine: string;
15
- };
16
- declare type DodoV1Param = [
17
- fromToken: Address,
18
- toToken: Address,
19
- fromTokenAmount: NumberAsString,
20
- minReturnAmount: NumberAsString,
21
- dodoPairs: Address[],
22
- directions: NumberAsString,
23
- isIncentive: boolean,
24
- deadLine: NumberAsString
25
- ];
26
- export declare class DodoV1 extends SimpleExchange implements IDexTxBuilder<DodoV1Data, DodoV1Param> {
27
- static dexKeys: string[];
28
- dodoV2Proxy: Interface;
29
- constructor(dexHelper: IDexHelper);
30
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: DodoV1Data, side: SwapSide): AdapterExchangeParam;
31
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: DodoV1Data, side: SwapSide): Promise<SimpleExchangeParam>;
32
- }
33
- export {};
@@ -1,63 +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.DodoV1 = 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 dodo_v2_proxy_json_1 = __importDefault(require("../abi/dodo-v2-proxy.json"));
11
- // We use dodo-v2 proxy as the new proxy supports both v1 and v2
12
- const DODOV2ProxyAddress = {
13
- 1: '0xa356867fdcea8e71aeaf87805808803806231fdc',
14
- 56: '0x8F8Dd7DB1bDA5eD3da8C9daf3bfa471c12d58486',
15
- 42161: '0x88CBf433471A0CD8240D2a12354362988b4593E5',
16
- };
17
- const DODOAproveAddress = {
18
- 1: '0xCB859eA579b28e02B87A1FDE08d087ab9dbE5149',
19
- 56: '0xa128Ba44B2738A558A1fdC06d6303d52D3Cef8c1',
20
- 42161: '0xA867241cDC8d3b0C07C85cC06F25a0cD3b5474d8',
21
- };
22
- var DodoV1Functions;
23
- (function (DodoV1Functions) {
24
- DodoV1Functions["dodoSwapV1"] = "dodoSwapV1";
25
- })(DodoV1Functions || (DodoV1Functions = {}));
26
- class DodoV1 extends simple_exchange_1.SimpleExchange {
27
- constructor(dexHelper) {
28
- super(dexHelper, 'dodov1');
29
- this.dodoV2Proxy = new abi_1.Interface(dodo_v2_proxy_json_1.default);
30
- }
31
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
32
- const { dodoPairs, directions } = data;
33
- const payload = this.abiCoder.encodeParameter({
34
- ParentStruct: {
35
- dodoPairs: 'address[]',
36
- directions: 'uint256',
37
- },
38
- }, { dodoPairs, directions });
39
- return {
40
- targetExchange: DODOV2ProxyAddress[this.network],
41
- payload,
42
- networkFee: '0',
43
- };
44
- }
45
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
46
- const swapFunction = DodoV1Functions.dodoSwapV1;
47
- const swapFunctionParams = [
48
- srcToken,
49
- destToken,
50
- srcAmount,
51
- destAmount,
52
- data.dodoPairs,
53
- data.directions,
54
- data.isIncentive,
55
- constants_1.MAX_UINT,
56
- ];
57
- const swapData = this.dodoV2Proxy.encodeFunctionData(swapFunction, swapFunctionParams);
58
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, DODOV2ProxyAddress[this.network], DODOAproveAddress[this.network]);
59
- }
60
- }
61
- exports.DodoV1 = DodoV1;
62
- DodoV1.dexKeys = ['dodov1'];
63
- //# sourceMappingURL=dodo-v1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dodo-v1.js","sourceRoot":"","sources":["../../src/dex/dodo-v1.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAC7D,4CAAkD;AAGlD,uDAAmD;AACnD,mFAAuD;AAKvD,gEAAgE;AAChE,MAAM,kBAAkB,GAAmC;IACzD,CAAC,EAAE,4CAA4C;IAC/C,EAAE,EAAE,4CAA4C;IAChD,KAAK,EAAE,4CAA4C;CACpD,CAAC;AAEF,MAAM,iBAAiB,GAAmC;IACxD,CAAC,EAAE,4CAA4C;IAC/C,EAAE,EAAE,4CAA4C;IAChD,KAAK,EAAE,4CAA4C;CACpD,CAAC;AAqBF,IAAK,eAEJ;AAFD,WAAK,eAAe;IAClB,4CAAyB,CAAA;AAC3B,CAAC,EAFI,eAAe,KAAf,eAAe,QAEnB;AAED,MAAa,MACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,eAAS,CAAC,4BAAgC,CAAC,CAAC;IACrE,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,SAAS;aACtB;SACF,EACD,EAAE,SAAS,EAAE,UAAU,EAAE,CAC1B,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;YAChD,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC;QAChD,MAAM,kBAAkB,GAAgB;YACtC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,WAAW;YAChB,oBAAQ;SACT,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAClD,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAChC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAChC,CAAC;IACJ,CAAC;;AAvEH,wBAwEC;AApEQ,cAAO,GAAG,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,49 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { BytesLike } from 'ethers/lib/utils';
3
- import { DeepReadonly } from 'ts-essentials';
4
- import { Log, Logger } from '../../types';
5
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
6
- import { IDexHelper } from '../../dex-helper/idex-helper';
7
- import { CommonAddresses, Pool } from './types';
8
- import { MultiResult } from '../../lib/multi-wrapper';
9
- import { Address } from '../../types';
10
- export declare class FluidDexCommonAddresses extends StatefulEventSubscriber<Pool[]> {
11
- readonly parentName: string;
12
- readonly commonAddresses: CommonAddresses;
13
- protected network: number;
14
- protected dexHelper: IDexHelper;
15
- handlers: {
16
- [event: string]: (event: any, state: DeepReadonly<Pool[]>, log: Readonly<Log>) => Promise<DeepReadonly<Pool[]> | null>;
17
- };
18
- logDecoder: (log: Log) => any;
19
- addressesSubscribed: Address[];
20
- protected dexFactoryIface: Interface;
21
- protected resolverIface: Interface;
22
- constructor(parentName: string, commonAddresses: CommonAddresses, network: number, dexHelper: IDexHelper, logger: Logger);
23
- /**
24
- * Handle a trade rate change on the pool.
25
- */
26
- handleDexDeployed(event: any, state: DeepReadonly<Pool[]>, log: Readonly<Log>): Promise<DeepReadonly<Pool[]> | null>;
27
- decodePool: (result: MultiResult<BytesLike> | BytesLike) => Pool;
28
- /**
29
- * The function is called every time any of the subscribed
30
- * addresses release log. The function accepts the current
31
- * state, updates the state according to the log, and returns
32
- * the updated state.
33
- * @param state - Current state of event subscriber
34
- * @param log - Log released by one of the subscribed addresses
35
- * @returns Updates state of the event subscriber after the log
36
- */
37
- processLog(state: DeepReadonly<Pool[]>, log: Readonly<Log>): Promise<DeepReadonly<Pool[]> | null>;
38
- getStateOrGenerate(blockNumber: number, readonly?: boolean): Promise<DeepReadonly<Pool[]>>;
39
- /**
40
- * The function generates state using on-chain calls. This
41
- * function is called to regenerate state if the event based
42
- * system fails to fetch events and the local state is no
43
- * more correct.
44
- * @param blockNumber - Blocknumber for which the state should
45
- * should be generated
46
- * @returns state of the event subscriber at blocknumber
47
- */
48
- generateState(blockNumber: number): Promise<DeepReadonly<Pool[]>>;
49
- }