@paraswap/dex-lib 4.7.4 → 4.7.5-unified-blacklist.1

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 (144) hide show
  1. package/build/abi/BProtocol.json +1155 -0
  2. package/build/abi/Jarvis.json +1172 -0
  3. package/build/abi/MStableAsset.json +1545 -0
  4. package/build/abi/OneInchLp.json +1304 -0
  5. package/build/abi/Onebit.json +736 -0
  6. package/build/abi/Shell.json +1294 -0
  7. package/build/abi/TraderJoeV2Router.json +50 -0
  8. package/build/abi/wUSDM.json +757 -0
  9. package/build/abi/zrx.v2.json +1967 -0
  10. package/build/abi/zrx.v3.json +3454 -0
  11. package/build/abi/zrx.v4.json +2193 -0
  12. package/build/dex/OneInchLp.d.ts +24 -0
  13. package/build/dex/OneInchLp.js +43 -0
  14. package/build/dex/OneInchLp.js.map +1 -0
  15. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  16. package/build/dex/bProtocol/bProtocol.js +56 -0
  17. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  18. package/build/dex/bProtocol/types.d.ts +11 -0
  19. package/build/dex/bProtocol/types.js +8 -0
  20. package/build/dex/bProtocol/types.js.map +1 -0
  21. package/build/dex/bebop/bebop.d.ts +2 -4
  22. package/build/dex/bebop/bebop.js +3 -41
  23. package/build/dex/bebop/bebop.js.map +1 -1
  24. package/build/dex/bebop/constants.d.ts +0 -5
  25. package/build/dex/bebop/constants.js +1 -7
  26. package/build/dex/bebop/constants.js.map +1 -1
  27. package/build/dex/cables/cables.d.ts +3 -6
  28. package/build/dex/cables/cables.js +7 -51
  29. package/build/dex/cables/cables.js.map +1 -1
  30. package/build/dex/cables/constants.d.ts +0 -5
  31. package/build/dex/cables/constants.js +1 -6
  32. package/build/dex/cables/constants.js.map +1 -1
  33. package/build/dex/cables/rate-fetcher.d.ts +1 -3
  34. package/build/dex/cables/rate-fetcher.js +6 -8
  35. package/build/dex/cables/rate-fetcher.js.map +1 -1
  36. package/build/dex/cables/types.d.ts +1 -6
  37. package/build/dex/dexalot/constants.d.ts +0 -3
  38. package/build/dex/dexalot/constants.js +1 -4
  39. package/build/dex/dexalot/constants.js.map +1 -1
  40. package/build/dex/dexalot/dexalot.d.ts +2 -8
  41. package/build/dex/dexalot/dexalot.js +5 -43
  42. package/build/dex/dexalot/dexalot.js.map +1 -1
  43. package/build/dex/dexalot/rate-fetcher.d.ts +1 -3
  44. package/build/dex/dexalot/rate-fetcher.js +6 -8
  45. package/build/dex/dexalot/rate-fetcher.js.map +1 -1
  46. package/build/dex/dexalot/types.d.ts +1 -2
  47. package/build/dex/generic-rfq/generic-rfq.d.ts +0 -2
  48. package/build/dex/generic-rfq/generic-rfq.js +1 -8
  49. package/build/dex/generic-rfq/generic-rfq.js.map +1 -1
  50. package/build/dex/generic-rfq/rate-fetcher.d.ts +8 -10
  51. package/build/dex/generic-rfq/rate-fetcher.js +6 -11
  52. package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
  53. package/build/dex/hashflow/hashflow.d.ts +2 -5
  54. package/build/dex/hashflow/hashflow.js +4 -15
  55. package/build/dex/hashflow/hashflow.js.map +1 -1
  56. package/build/dex/idex.d.ts +12 -2
  57. package/build/dex/idle-dao/idle-dao.d.ts +0 -1
  58. package/build/dex/idle-dao/idle-dao.js +11 -23
  59. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  60. package/build/dex/jarvis.d.ts +56 -0
  61. package/build/dex/jarvis.js +163 -0
  62. package/build/dex/jarvis.js.map +1 -0
  63. package/build/dex/limit-order-exchange.d.ts +2 -2
  64. package/build/dex/limit-order-exchange.js +2 -2
  65. package/build/dex/limit-order-exchange.js.map +1 -1
  66. package/build/dex/mStable.d.ts +44 -0
  67. package/build/dex/mStable.js +75 -0
  68. package/build/dex/mStable.js.map +1 -0
  69. package/build/dex/maker-psm/maker-psm.d.ts +41 -4
  70. package/build/dex/maker-psm/maker-psm.js +143 -40
  71. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  72. package/build/dex/onebit/onebit.d.ts +16 -0
  73. package/build/dex/onebit/onebit.js +61 -0
  74. package/build/dex/onebit/onebit.js.map +1 -0
  75. package/build/dex/onebit/types.d.ts +14 -0
  76. package/build/dex/onebit/types.js +8 -0
  77. package/build/dex/onebit/types.js.map +1 -0
  78. package/build/dex/paraswap-limit-orders/paraswap-limit-orders.d.ts +0 -1
  79. package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js +0 -8
  80. package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js.map +1 -1
  81. package/build/dex/shell.d.ts +25 -0
  82. package/build/dex/shell.js +41 -0
  83. package/build/dex/shell.js.map +1 -0
  84. package/build/dex/simple-exchange-with-restrictions.d.ts +26 -0
  85. package/build/dex/simple-exchange-with-restrictions.js +94 -0
  86. package/build/dex/simple-exchange-with-restrictions.js.map +1 -0
  87. package/build/dex/swaap-v2/swaap-v2.d.ts +2 -5
  88. package/build/dex/swaap-v2/swaap-v2.js +4 -16
  89. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  90. package/build/dex/trader-joe-v2.d.ts +40 -0
  91. package/build/dex/trader-joe-v2.js +74 -0
  92. package/build/dex/trader-joe-v2.js.map +1 -0
  93. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  94. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  95. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  96. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -6
  97. package/build/dex/uniswap-v4/contract-math/Position.js +0 -29
  98. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  99. package/build/dex/usual-bond/config.d.ts +3 -0
  100. package/build/dex/usual-bond/config.js +13 -0
  101. package/build/dex/usual-bond/config.js.map +1 -0
  102. package/build/dex/usual-bond/types.d.ts +7 -0
  103. package/build/dex/usual-bond/types.js +3 -0
  104. package/build/dex/usual-bond/types.js.map +1 -0
  105. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  106. package/build/dex/usual-bond/usual-bond.js +176 -0
  107. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  108. package/build/dex/wusdm/config.d.ts +3 -0
  109. package/build/dex/wusdm/config.js +43 -0
  110. package/build/dex/wusdm/config.js.map +1 -0
  111. package/build/dex/wusdm/constants.d.ts +2 -0
  112. package/build/dex/wusdm/constants.js +6 -0
  113. package/build/dex/wusdm/constants.js.map +1 -0
  114. package/build/dex/wusdm/types.d.ts +18 -0
  115. package/build/dex/wusdm/types.js +11 -0
  116. package/build/dex/wusdm/types.js.map +1 -0
  117. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  118. package/build/dex/wusdm/wusdm-pool.js +74 -0
  119. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  120. package/build/dex/wusdm/wusdm.d.ts +46 -0
  121. package/build/dex/wusdm/wusdm.js +243 -0
  122. package/build/dex/wusdm/wusdm.js.map +1 -0
  123. package/build/dex/zerox/config.d.ts +2 -0
  124. package/build/dex/zerox/config.js +33 -0
  125. package/build/dex/zerox/config.js.map +1 -0
  126. package/build/dex/zerox/index.d.ts +22 -0
  127. package/build/dex/zerox/index.js +225 -0
  128. package/build/dex/zerox/index.js.map +1 -0
  129. package/build/dex/zerox/order.d.ts +88 -0
  130. package/build/dex/zerox/order.js +53 -0
  131. package/build/dex/zerox/order.js.map +1 -0
  132. package/build/dex/zerox/types.d.ts +73 -0
  133. package/build/dex/zerox/types.js +21 -0
  134. package/build/dex/zerox/types.js.map +1 -0
  135. package/build/dex-helper/dummy-dex-helper.js +14 -1
  136. package/build/dex-helper/dummy-dex-helper.js.map +1 -1
  137. package/build/dex-helper/icache.d.ts +2 -0
  138. package/build/pricing-helper.d.ts +1 -0
  139. package/build/pricing-helper.js +29 -0
  140. package/build/pricing-helper.js.map +1 -1
  141. package/package.json +1 -1
  142. package/build/dex/maker-psm/maker-psm-event-pool.d.ts +0 -43
  143. package/build/dex/maker-psm/maker-psm-event-pool.js +0 -132
  144. package/build/dex/maker-psm/maker-psm-event-pool.js.map +0 -1
@@ -0,0 +1,56 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { SwapSide } from '../constants';
3
+ import { AdapterExchangeParam, Address, DexExchangeParam, NumberAsString, SimpleExchangeParam } from '../types';
4
+ import { IDexTxBuilder } from './idex';
5
+ import { SimpleExchange } from './simple-exchange';
6
+ import { IDexHelper } from '../dex-helper';
7
+ export declare type JarvisData = {
8
+ derivatives: string;
9
+ destDerivatives?: string;
10
+ pools: string[];
11
+ fee: string;
12
+ method: JarvisFunctions;
13
+ router: Address;
14
+ };
15
+ declare type JarvisMintParam = [
16
+ derivative: string,
17
+ minNumTokens: string,
18
+ collateralAmount: string,
19
+ feePercentage: string,
20
+ expiration: string,
21
+ recipient: string
22
+ ];
23
+ declare type JarvisRedeemParam = [
24
+ derivative: string,
25
+ numTokens: string,
26
+ minCollateral: string,
27
+ feePercentage: string,
28
+ expiration: string,
29
+ recipient: string
30
+ ];
31
+ declare type JarvisExchangeParam = [
32
+ derivative: string,
33
+ destPool: string,
34
+ destDerivative: string,
35
+ numTokens: string,
36
+ minDestNumTokens: string,
37
+ feePercentage: string,
38
+ expiration: string,
39
+ recipient: string
40
+ ];
41
+ declare type JarvisParam = JarvisExchangeParam | JarvisMintParam | JarvisRedeemParam;
42
+ declare enum JarvisFunctions {
43
+ mint = "mint",
44
+ redeem = "redeem",
45
+ exchange = "exchange"
46
+ }
47
+ export declare class Jarvis extends SimpleExchange implements IDexTxBuilder<JarvisData, JarvisParam> {
48
+ static dexKeys: string[];
49
+ poolInterface: Interface;
50
+ needWrapNative: boolean;
51
+ constructor(dexHelper: IDexHelper);
52
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: JarvisData, side: SwapSide): AdapterExchangeParam;
53
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: JarvisData, side: SwapSide): Promise<SimpleExchangeParam>;
54
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: JarvisData, side: SwapSide): DexExchangeParam;
55
+ }
56
+ export {};
@@ -0,0 +1,163 @@
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.Jarvis = 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 Jarvis_json_1 = __importDefault(require("../abi/Jarvis.json"));
11
+ const utils_1 = require("../executor/utils");
12
+ const THIRTY_MINUTES = 60 * 30;
13
+ var JarvisFunctions;
14
+ (function (JarvisFunctions) {
15
+ JarvisFunctions["mint"] = "mint";
16
+ JarvisFunctions["redeem"] = "redeem";
17
+ JarvisFunctions["exchange"] = "exchange";
18
+ })(JarvisFunctions || (JarvisFunctions = {}));
19
+ class Jarvis extends simple_exchange_1.SimpleExchange {
20
+ constructor(dexHelper) {
21
+ super(dexHelper, 'jarvis');
22
+ this.needWrapNative = false;
23
+ this.poolInterface = new abi_1.Interface(Jarvis_json_1.default);
24
+ }
25
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
26
+ const { method } = data;
27
+ const type = [
28
+ JarvisFunctions.mint,
29
+ JarvisFunctions.redeem,
30
+ JarvisFunctions.exchange,
31
+ ].indexOf(method);
32
+ if (type === undefined) {
33
+ throw new Error(`Jarvis: Invalid OpType ${method}, Should be one of ['mint', 'exchange', 'redeem']`);
34
+ }
35
+ const payload = this.abiCoder.encodeParameter({
36
+ ParentStruct: {
37
+ opType: 'uint',
38
+ derivatives: 'address',
39
+ destDerivatives: 'address',
40
+ fee: 'uint128',
41
+ destPool: 'address',
42
+ expiration: 'uint128',
43
+ },
44
+ }, {
45
+ opType: type,
46
+ derivatives: data.derivatives,
47
+ destDerivatives: data.destDerivatives || constants_1.NULL_ADDRESS,
48
+ fee: data.fee,
49
+ destPool: data.pools[1] || constants_1.NULL_ADDRESS,
50
+ expiration: (Date.now() / 1000 + THIRTY_MINUTES).toFixed(0),
51
+ });
52
+ return {
53
+ targetExchange: data.pools[0],
54
+ payload,
55
+ networkFee: '0',
56
+ };
57
+ }
58
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
59
+ const swapFunction = data.method;
60
+ const timestamp = (Date.now() / 1000 + THIRTY_MINUTES).toFixed(0);
61
+ let swapFunctionParams;
62
+ switch (swapFunction) {
63
+ case JarvisFunctions.mint:
64
+ swapFunctionParams = [
65
+ data.derivatives,
66
+ destAmount,
67
+ srcAmount,
68
+ data.fee,
69
+ timestamp,
70
+ this.augustusAddress,
71
+ ];
72
+ break;
73
+ case JarvisFunctions.redeem:
74
+ swapFunctionParams = [
75
+ data.derivatives,
76
+ srcAmount,
77
+ destAmount,
78
+ data.fee,
79
+ timestamp,
80
+ this.augustusAddress,
81
+ ];
82
+ break;
83
+ case JarvisFunctions.exchange:
84
+ swapFunctionParams = [
85
+ data.derivatives,
86
+ data.pools[1],
87
+ data.destDerivatives,
88
+ srcAmount,
89
+ destAmount,
90
+ data.fee,
91
+ timestamp,
92
+ this.augustusAddress,
93
+ ];
94
+ break;
95
+ default:
96
+ throw new Error(`Unknown function ${swapFunction}`);
97
+ }
98
+ const swapData = this.poolInterface.encodeFunctionData(swapFunction, [
99
+ swapFunctionParams,
100
+ ]);
101
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.pools[0]);
102
+ }
103
+ getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
104
+ const swapFunction = data.method;
105
+ const timestamp = (Date.now() / 1000 + THIRTY_MINUTES).toFixed(0);
106
+ let swapFunctionParams;
107
+ let outputName;
108
+ switch (swapFunction) {
109
+ case JarvisFunctions.mint:
110
+ swapFunctionParams = [
111
+ data.derivatives,
112
+ destAmount,
113
+ srcAmount,
114
+ data.fee,
115
+ timestamp,
116
+ recipient,
117
+ ];
118
+ outputName = 'syntheticTokensMinted';
119
+ break;
120
+ case JarvisFunctions.redeem:
121
+ swapFunctionParams = [
122
+ data.derivatives,
123
+ srcAmount,
124
+ destAmount,
125
+ data.fee,
126
+ timestamp,
127
+ recipient,
128
+ ];
129
+ outputName = 'collateralRedeemed';
130
+ break;
131
+ case JarvisFunctions.exchange:
132
+ swapFunctionParams = [
133
+ data.derivatives,
134
+ data.pools[1],
135
+ data.destDerivatives,
136
+ srcAmount,
137
+ destAmount,
138
+ data.fee,
139
+ timestamp,
140
+ recipient,
141
+ ];
142
+ outputName = 'destNumTokensMinted';
143
+ break;
144
+ default:
145
+ throw new Error(`Unknown function ${swapFunction}`);
146
+ }
147
+ const swapData = this.poolInterface.encodeFunctionData(swapFunction, [
148
+ swapFunctionParams,
149
+ ]);
150
+ return {
151
+ needWrapNative: this.needWrapNative,
152
+ dexFuncHasRecipient: true,
153
+ exchangeData: swapData,
154
+ targetExchange: data.pools[0],
155
+ returnAmountPos: side === constants_1.SwapSide.SELL
156
+ ? (0, utils_1.extractReturnAmountPosition)(this.poolInterface, swapFunction, outputName)
157
+ : undefined,
158
+ };
159
+ }
160
+ }
161
+ exports.Jarvis = Jarvis;
162
+ Jarvis.dexKeys = ['jarvis'];
163
+ //# sourceMappingURL=jarvis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jarvis.js","sourceRoot":"","sources":["../../src/dex/jarvis.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { LIMIT_ORDER_PROVIDERS } from '../constants';
2
2
  import { IDexHelper } from '../dex-helper';
3
3
  import { ILimitOrderProvider } from '../dex-helper/ilimit-order-provider';
4
- import { SimpleExchange } from './simple-exchange';
5
- export declare abstract class LimitOrderExchange<LimitOrderResponse, LimitOrderPriceSummaryResponse> extends SimpleExchange {
4
+ import { SimpleExchangeWithRestrictions } from './simple-exchange-with-restrictions';
5
+ export declare abstract class LimitOrderExchange<LimitOrderResponse, LimitOrderPriceSummaryResponse> extends SimpleExchangeWithRestrictions {
6
6
  protected _limitOrderProvider?: ILimitOrderProvider<LimitOrderResponse, LimitOrderPriceSummaryResponse>;
7
7
  constructor(dexHelper: IDexHelper, name: string);
8
8
  abstract get limitOrderProviderName(): LIMIT_ORDER_PROVIDERS;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LimitOrderExchange = void 0;
4
- const simple_exchange_1 = require("./simple-exchange");
5
- class LimitOrderExchange extends simple_exchange_1.SimpleExchange {
4
+ const simple_exchange_with_restrictions_1 = require("./simple-exchange-with-restrictions");
5
+ class LimitOrderExchange extends simple_exchange_with_restrictions_1.SimpleExchangeWithRestrictions {
6
6
  _limitOrderProvider;
7
7
  constructor(dexHelper, name) {
8
8
  super(dexHelper, name);
@@ -1 +1 @@
1
- {"version":3,"file":"limit-order-exchange.js","sourceRoot":"","sources":["../../src/dex/limit-order-exchange.ts"],"names":[],"mappings":";;;AAKA,uDAAmD;AAEnD,MAAsB,kBAGpB,SAAQ,gCAAc;IACZ,mBAAmB,CAG3B;IAEF,YAAY,SAAqB,EAAE,IAAY;QAC7C,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAID,IAAI,kBAAkB,CACpB,kBAGC;QAED,IACE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;YACzC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,EACrC,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,oCAAoC,kBAAkB,CAAC,IAAI,iBAAiB,IAAI,CAAC,sBAAsB,GAAG,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAhCD,gDAgCC"}
1
+ {"version":3,"file":"limit-order-exchange.js","sourceRoot":"","sources":["../../src/dex/limit-order-exchange.ts"],"names":[],"mappings":";;;AAGA,2FAAqF;AAErF,MAAsB,kBAGpB,SAAQ,kEAA8B;IAC5B,mBAAmB,CAG3B;IAEF,YAAY,SAAqB,EAAE,IAAY;QAC7C,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAID,IAAI,kBAAkB,CACpB,kBAGC;QAED,IACE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;YACzC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,EACrC,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,oCAAoC,kBAAkB,CAAC,IAAI,iBAAiB,IAAI,CAAC,sBAAsB,GAAG,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAhCD,gDAgCC"}
@@ -0,0 +1,44 @@
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
+ declare enum MStableFunctions {
8
+ mint = "mint",
9
+ swap = "swap",
10
+ redeem = "redeem"
11
+ }
12
+ declare type MStableData = {
13
+ exchange: string;
14
+ opType: MStableFunctions;
15
+ isAssetContract: boolean;
16
+ };
17
+ declare type MStableMint = [
18
+ _input: string,
19
+ _inputQuantity: string,
20
+ _minOutputQuantity: string,
21
+ _recipient: string
22
+ ];
23
+ declare type MStableSwap = [
24
+ _input: string,
25
+ _output: string,
26
+ _inputQuantity: string,
27
+ _minOutputQuantity: string,
28
+ _recipient: string
29
+ ];
30
+ declare type MStableRedeem = [
31
+ _output: string,
32
+ _mAssetQuantity: string,
33
+ _minOutputQuantity: string,
34
+ _recipient: string
35
+ ];
36
+ declare type MStableParam = MStableMint | MStableSwap | MStableRedeem;
37
+ export declare class MStable extends SimpleExchange implements IDexTxBuilder<MStableData, MStableParam> {
38
+ static dexKeys: string[];
39
+ mStableAsset: Interface;
40
+ constructor(dexHelper: IDexHelper);
41
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: MStableData, side: SwapSide): AdapterExchangeParam;
42
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: MStableData, side: SwapSide): Promise<SimpleExchangeParam>;
43
+ }
44
+ export {};
@@ -0,0 +1,75 @@
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.MStable = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const simple_exchange_1 = require("./simple-exchange");
9
+ const MStableAsset_json_1 = __importDefault(require("../abi/MStableAsset.json"));
10
+ var MStableFunctions;
11
+ (function (MStableFunctions) {
12
+ MStableFunctions["mint"] = "mint";
13
+ MStableFunctions["swap"] = "swap";
14
+ MStableFunctions["redeem"] = "redeem";
15
+ })(MStableFunctions || (MStableFunctions = {}));
16
+ class MStable extends simple_exchange_1.SimpleExchange {
17
+ constructor(dexHelper) {
18
+ super(dexHelper, 'mStable');
19
+ this.mStableAsset = new abi_1.Interface(MStableAsset_json_1.default);
20
+ }
21
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
22
+ const { opType } = data;
23
+ const type = [
24
+ MStableFunctions.swap,
25
+ MStableFunctions.mint,
26
+ MStableFunctions.redeem,
27
+ ].indexOf(opType);
28
+ if (type === undefined) {
29
+ throw new Error(`mStable: Invalid OpType ${opType}, Should be one of ['mint', 'swap', 'redeem']`);
30
+ }
31
+ const payload = this.abiCoder.encodeParameter({
32
+ ParentStruct: {
33
+ opType: 'uint',
34
+ },
35
+ }, {
36
+ opType: type,
37
+ });
38
+ return {
39
+ targetExchange: data.exchange,
40
+ payload,
41
+ networkFee: '0',
42
+ };
43
+ }
44
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
45
+ const { opType, isAssetContract } = data;
46
+ const [swapFunction, swapFunctionsParams] = (() => {
47
+ switch (opType) {
48
+ case MStableFunctions.mint:
49
+ return [
50
+ opType,
51
+ [srcToken, srcAmount, destAmount, this.augustusAddress],
52
+ ];
53
+ case MStableFunctions.swap:
54
+ return [
55
+ opType,
56
+ [srcToken, destToken, srcAmount, destAmount, this.augustusAddress],
57
+ ];
58
+ case MStableFunctions.redeem:
59
+ return [
60
+ opType,
61
+ [destToken, srcAmount, destAmount, this.augustusAddress],
62
+ ];
63
+ default:
64
+ throw new Error(`mStable's OpType ${opType} not supported, failed to build`);
65
+ }
66
+ })();
67
+ // mStableAsset & mStablePool both have the same interface hence we can
68
+ // simply use mStableAsset contract
69
+ const swapData = this.mStableAsset.encodeFunctionData(swapFunction, swapFunctionsParams);
70
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.exchange);
71
+ }
72
+ }
73
+ exports.MStable = MStable;
74
+ MStable.dexKeys = ['mStable'];
75
+ //# sourceMappingURL=mStable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mStable.js","sourceRoot":"","sources":["../../src/dex/mStable.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAK7D,uDAAmD;AACnD,iFAAuD;AAIvD,IAAK,gBAIJ;AAJD,WAAK,gBAAgB;IACnB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,qCAAiB,CAAA;AACnB,CAAC,EAJI,gBAAgB,KAAhB,gBAAgB,QAIpB;AA4BD,MAAa,OACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,eAAS,CAAC,2BAAiC,CAAC,CAAC;IACvE,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG;YACX,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,MAAM;SACxB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAElB,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,+CAA+C,CACjF,CAAC;SACH;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,MAAM,EAAE,MAAM;aACf;SACF,EACD;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAC;QAEF,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,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAEzC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAG3C,EAAE;YACF,QAAQ,MAAM,EAAE;gBACd,KAAK,gBAAgB,CAAC,IAAI;oBACxB,OAAO;wBACL,MAAM;wBACN,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;qBACxD,CAAC;gBACJ,KAAK,gBAAgB,CAAC,IAAI;oBACxB,OAAO;wBACL,MAAM;wBACN,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;qBACnE,CAAC;gBACJ,KAAK,gBAAgB,CAAC,MAAM;oBAC1B,OAAO;wBACL,MAAM;wBACN,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;qBACzD,CAAC;gBACJ;oBACE,MAAM,IAAI,KAAK,CACb,oBAAoB,MAAM,iCAAiC,CAC5D,CAAC;aACL;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,uEAAuE;QACvE,mCAAmC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CACnD,YAAY,EACZ,mBAAmB,CACpB,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;;AAvGH,0BAwGC;AApGQ,eAAO,GAAG,CAAC,SAAS,CAAC,CAAC"}
@@ -1,11 +1,50 @@
1
- import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam, ExchangeTxInfo, PreprocessTransactionOptions } from '../../types';
1
+ import { DeepReadonly } from 'ts-essentials';
2
+ import { Token, Address, ExchangePrices, PoolPrices, Log, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam, ExchangeTxInfo, PreprocessTransactionOptions } from '../../types';
2
3
  import { SwapSide, Network } from '../../constants';
4
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
3
5
  import { IDex } from '../../dex/idex';
4
6
  import { IDexHelper } from '../../dex-helper/idex-helper';
5
7
  import { MakerPsmData, PoolState, PoolConfig, MakerPsmDirectPayload } from './types';
6
8
  import { SimpleExchange } from '../simple-exchange';
7
9
  import { OptimalSwapExchange } from '@paraswap/core';
8
- import { MakerPsmEventPool } from './maker-psm-event-pool';
10
+ export declare class MakerPsmEventPool extends StatefulEventSubscriber<PoolState> {
11
+ protected network: number;
12
+ protected dexHelper: IDexHelper;
13
+ poolConfig: PoolConfig;
14
+ protected vatAddress: Address;
15
+ handlers: {
16
+ [event: string]: (event: any, pool: PoolState, log: Log) => PoolState;
17
+ };
18
+ logDecoder: (log: Log) => any;
19
+ to18ConversionFactor: bigint;
20
+ bytes32Tout: string;
21
+ bytes32Tin: string;
22
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, poolConfig: PoolConfig, vatAddress: Address);
23
+ handleFile(event: any, pool: PoolState, log: Log): PoolState;
24
+ handleSellGem(event: any, pool: PoolState, log: Log): PoolState;
25
+ handleBuyGem(event: any, pool: PoolState, log: Log): PoolState;
26
+ getIdentifier(): string;
27
+ /**
28
+ * The function is called every time any of the subscribed
29
+ * addresses release log. The function accepts the current
30
+ * state, updates the state according to the log, and returns
31
+ * the updated state.
32
+ * @param state - Current state of event subscriber
33
+ * @param log - Log released by one of the subscribed addresses
34
+ * @returns Updates state of the event subscriber after the log
35
+ */
36
+ protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
37
+ /**
38
+ * The function generates state using on-chain calls. This
39
+ * function is called to regenerate state if the event based
40
+ * system fails to fetch events and the local state is no
41
+ * more correct.
42
+ * @param blockNumber - Blocknumber for which the state should
43
+ * should be generated
44
+ * @returns state of the event subscriber at blocknumber
45
+ */
46
+ generateState(blockNumber: number): Promise<Readonly<PoolState>>;
47
+ }
9
48
  export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmData, MakerPsmDirectPayload> {
10
49
  protected network: Network;
11
50
  protected dexHelper: IDexHelper;
@@ -36,7 +75,6 @@ export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmDat
36
75
  }, dai?: Token, vatAddress?: Address, poolConfigs?: PoolConfig[]);
37
76
  static getDirectFunctionNameV6(): string[];
38
77
  initializePricing(blockNumber: number): Promise<void>;
39
- private initializeEventPools;
40
78
  getAdapters(side: SwapSide): {
41
79
  name: string;
42
80
  index: number;
@@ -61,6 +99,5 @@ export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmDat
61
99
  encoder: (...params: (string | MakerPsmDirectPayload)[]) => string;
62
100
  networkFee: string;
63
101
  };
64
- updatePoolState(): Promise<void>;
65
102
  getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
66
103
  }