@paraswap/dex-lib 4.6.12 → 4.6.14

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 (116) 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/algebra/lib/AlgebraMath.js +3 -13
  16. package/build/dex/algebra/lib/AlgebraMath.js.map +1 -1
  17. package/build/dex/algebra/lib/TickManager.js +0 -5
  18. package/build/dex/algebra/lib/TickManager.js.map +1 -1
  19. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  20. package/build/dex/bProtocol/bProtocol.js +56 -0
  21. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  22. package/build/dex/bProtocol/types.d.ts +11 -0
  23. package/build/dex/bProtocol/types.js +8 -0
  24. package/build/dex/bProtocol/types.js.map +1 -0
  25. package/build/dex/idle-dao/idle-dao.d.ts +0 -1
  26. package/build/dex/idle-dao/idle-dao.js +11 -23
  27. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  28. package/build/dex/jarvis.d.ts +56 -0
  29. package/build/dex/jarvis.js +163 -0
  30. package/build/dex/jarvis.js.map +1 -0
  31. package/build/dex/mStable.d.ts +44 -0
  32. package/build/dex/mStable.js +75 -0
  33. package/build/dex/mStable.js.map +1 -0
  34. package/build/dex/maker-psm/maker-psm.d.ts +41 -4
  35. package/build/dex/maker-psm/maker-psm.js +143 -40
  36. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  37. package/build/dex/miro-migrator/constants.d.ts +1 -1
  38. package/build/dex/miro-migrator/constants.js +1 -1
  39. package/build/dex/miro-migrator/miro-migrator-pool.d.ts +0 -1
  40. package/build/dex/miro-migrator/miro-migrator-pool.js +0 -1
  41. package/build/dex/miro-migrator/miro-migrator-pool.js.map +1 -1
  42. package/build/dex/miro-migrator/miro-migrator.js +0 -1
  43. package/build/dex/miro-migrator/miro-migrator.js.map +1 -1
  44. package/build/dex/onebit/onebit.d.ts +16 -0
  45. package/build/dex/onebit/onebit.js +61 -0
  46. package/build/dex/onebit/onebit.js.map +1 -0
  47. package/build/dex/onebit/types.d.ts +14 -0
  48. package/build/dex/onebit/types.js +8 -0
  49. package/build/dex/onebit/types.js.map +1 -0
  50. package/build/dex/pancakeswap-v3/contract-math/Tick.d.ts +1 -1
  51. package/build/dex/pancakeswap-v3/contract-math/Tick.js +1 -10
  52. package/build/dex/pancakeswap-v3/contract-math/Tick.js.map +1 -1
  53. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js +3 -11
  54. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js.map +1 -1
  55. package/build/dex/shell.d.ts +25 -0
  56. package/build/dex/shell.js +41 -0
  57. package/build/dex/shell.js.map +1 -0
  58. package/build/dex/sky-converter/config.js +1 -1
  59. package/build/dex/trader-joe-v2.d.ts +40 -0
  60. package/build/dex/trader-joe-v2.js +74 -0
  61. package/build/dex/trader-joe-v2.js.map +1 -0
  62. package/build/dex/uniswap-v3/contract-math/Tick.d.ts +1 -1
  63. package/build/dex/uniswap-v3/contract-math/Tick.js +1 -10
  64. package/build/dex/uniswap-v3/contract-math/Tick.js.map +1 -1
  65. package/build/dex/uniswap-v3/contract-math/uniswap-v3-math.js +3 -11
  66. package/build/dex/uniswap-v3/contract-math/uniswap-v3-math.js.map +1 -1
  67. package/build/dex/uniswap-v3/contract-math/utils.js +0 -3
  68. package/build/dex/uniswap-v3/contract-math/utils.js.map +1 -1
  69. package/build/dex/uniswap-v3/types.d.ts +0 -3
  70. package/build/dex/uniswap-v3/types.js.map +1 -1
  71. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  72. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  73. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  74. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -6
  75. package/build/dex/uniswap-v4/contract-math/Position.js +0 -29
  76. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  77. package/build/dex/usual-bond/config.d.ts +3 -0
  78. package/build/dex/usual-bond/config.js +13 -0
  79. package/build/dex/usual-bond/config.js.map +1 -0
  80. package/build/dex/usual-bond/types.d.ts +7 -0
  81. package/build/dex/usual-bond/types.js +3 -0
  82. package/build/dex/usual-bond/types.js.map +1 -0
  83. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  84. package/build/dex/usual-bond/usual-bond.js +176 -0
  85. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  86. package/build/dex/wusdm/config.d.ts +3 -0
  87. package/build/dex/wusdm/config.js +43 -0
  88. package/build/dex/wusdm/config.js.map +1 -0
  89. package/build/dex/wusdm/constants.d.ts +2 -0
  90. package/build/dex/wusdm/constants.js +6 -0
  91. package/build/dex/wusdm/constants.js.map +1 -0
  92. package/build/dex/wusdm/types.d.ts +18 -0
  93. package/build/dex/wusdm/types.js +11 -0
  94. package/build/dex/wusdm/types.js.map +1 -0
  95. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  96. package/build/dex/wusdm/wusdm-pool.js +74 -0
  97. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  98. package/build/dex/wusdm/wusdm.d.ts +46 -0
  99. package/build/dex/wusdm/wusdm.js +243 -0
  100. package/build/dex/wusdm/wusdm.js.map +1 -0
  101. package/build/dex/zerox/config.d.ts +2 -0
  102. package/build/dex/zerox/config.js +33 -0
  103. package/build/dex/zerox/config.js.map +1 -0
  104. package/build/dex/zerox/index.d.ts +22 -0
  105. package/build/dex/zerox/index.js +225 -0
  106. package/build/dex/zerox/index.js.map +1 -0
  107. package/build/dex/zerox/order.d.ts +88 -0
  108. package/build/dex/zerox/order.js +53 -0
  109. package/build/dex/zerox/order.js.map +1 -0
  110. package/build/dex/zerox/types.d.ts +73 -0
  111. package/build/dex/zerox/types.js +21 -0
  112. package/build/dex/zerox/types.js.map +1 -0
  113. package/package.json +1 -1
  114. package/build/dex/maker-psm/maker-psm-event-pool.d.ts +0 -43
  115. package/build/dex/maker-psm/maker-psm-event-pool.js +0 -132
  116. package/build/dex/maker-psm/maker-psm-event-pool.js.map +0 -1
@@ -0,0 +1,88 @@
1
+ import { ZeroXSignedOrder, ZeroXSignedOrderV2, ZeroXSignedOrderV4 } from './types';
2
+ export declare class ZeroXOrder {
3
+ static formatOrderV4(order: ZeroXSignedOrderV4, version: number): {
4
+ makerToken: string;
5
+ takerToken: string;
6
+ makerAmount: string | number;
7
+ takerAmount: string | number;
8
+ maker: string;
9
+ taker: string;
10
+ txOrigin: string;
11
+ pool: string;
12
+ expiry: string | number;
13
+ salt: string | number;
14
+ };
15
+ static formatOrderV23(order: ZeroXSignedOrderV2, version: number): {
16
+ makerFeeAssetData: string;
17
+ takerFeeAssetData: string;
18
+ makerAddress: string;
19
+ takerAddress: string;
20
+ feeRecipientAddress: string;
21
+ senderAddress: string;
22
+ makerAssetAmount: string | number;
23
+ takerAssetAmount: string | number;
24
+ makerFee: string | number;
25
+ takerFee: string | number;
26
+ expirationTimeSeconds: string | number;
27
+ salt: string | number;
28
+ makerAssetData: string;
29
+ takerAssetData: string;
30
+ } | {
31
+ makerFeeAssetData?: undefined;
32
+ takerFeeAssetData?: undefined;
33
+ makerAddress: string;
34
+ takerAddress: string;
35
+ feeRecipientAddress: string;
36
+ senderAddress: string;
37
+ makerAssetAmount: string | number;
38
+ takerAssetAmount: string | number;
39
+ makerFee: string | number;
40
+ takerFee: string | number;
41
+ expirationTimeSeconds: string | number;
42
+ salt: string | number;
43
+ makerAssetData: string;
44
+ takerAssetData: string;
45
+ };
46
+ static formatOrders(order: ZeroXSignedOrder, version?: number): {
47
+ makerToken: string;
48
+ takerToken: string;
49
+ makerAmount: string | number;
50
+ takerAmount: string | number;
51
+ maker: string;
52
+ taker: string;
53
+ txOrigin: string;
54
+ pool: string;
55
+ expiry: string | number;
56
+ salt: string | number;
57
+ } | {
58
+ makerFeeAssetData: string;
59
+ takerFeeAssetData: string;
60
+ makerAddress: string;
61
+ takerAddress: string;
62
+ feeRecipientAddress: string;
63
+ senderAddress: string;
64
+ makerAssetAmount: string | number;
65
+ takerAssetAmount: string | number;
66
+ makerFee: string | number;
67
+ takerFee: string | number;
68
+ expirationTimeSeconds: string | number;
69
+ salt: string | number;
70
+ makerAssetData: string;
71
+ takerAssetData: string;
72
+ } | {
73
+ makerFeeAssetData?: undefined;
74
+ takerFeeAssetData?: undefined;
75
+ makerAddress: string;
76
+ takerAddress: string;
77
+ feeRecipientAddress: string;
78
+ senderAddress: string;
79
+ makerAssetAmount: string | number;
80
+ takerAssetAmount: string | number;
81
+ makerFee: string | number;
82
+ takerFee: string | number;
83
+ expirationTimeSeconds: string | number;
84
+ salt: string | number;
85
+ makerAssetData: string;
86
+ takerAssetData: string;
87
+ };
88
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZeroXOrder = void 0;
4
+ class ZeroXOrder {
5
+ static formatOrderV4(order, version) {
6
+ return {
7
+ makerToken: order.makerToken,
8
+ takerToken: order.takerToken,
9
+ makerAmount: order.makerAmount,
10
+ takerAmount: order.takerAmount,
11
+ maker: order.maker,
12
+ taker: order.taker,
13
+ txOrigin: order.txOrigin,
14
+ pool: order.pool,
15
+ expiry: order.expiry,
16
+ salt: order.salt,
17
+ };
18
+ }
19
+ static formatOrderV23(order, version) {
20
+ const feeAssetData = version === 3
21
+ ? {
22
+ makerFeeAssetData: order.makerFeeAssetData,
23
+ takerFeeAssetData: order.takerFeeAssetData,
24
+ }
25
+ : {};
26
+ return {
27
+ makerAddress: order.makerAddress,
28
+ takerAddress: order.takerAddress,
29
+ feeRecipientAddress: order.feeRecipientAddress,
30
+ senderAddress: order.senderAddress,
31
+ makerAssetAmount: order.makerAssetAmount,
32
+ takerAssetAmount: order.takerAssetAmount,
33
+ makerFee: order.makerFee,
34
+ takerFee: order.takerFee,
35
+ expirationTimeSeconds: order.expirationTimeSeconds,
36
+ salt: order.salt,
37
+ makerAssetData: order.makerAssetData,
38
+ takerAssetData: order.takerAssetData,
39
+ ...feeAssetData,
40
+ };
41
+ }
42
+ static formatOrders(order, version = 2) {
43
+ if (isV4Order(order, version)) {
44
+ return ZeroXOrder.formatOrderV4(order, version);
45
+ }
46
+ return ZeroXOrder.formatOrderV23(order, version);
47
+ }
48
+ }
49
+ exports.ZeroXOrder = ZeroXOrder;
50
+ function isV4Order(order, version = 2) {
51
+ return version === 4;
52
+ }
53
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/dex/zerox/order.ts"],"names":[],"mappings":";;;AAMA,MAAa,UAAU;IACrB,MAAM,CAAC,aAAa,CAAC,KAAyB,EAAE,OAAe;QAC7D,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAyB,EAAE,OAAe;QAC9D,MAAM,YAAY,GAChB,OAAO,KAAK,CAAC;YACX,CAAC,CAAC;gBACE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;aAC3C;YACH,CAAC,CAAC,EAAE,CAAC;QAET,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,GAAG,YAAY;SAChB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,KAAuB,EAAE,UAAkB,CAAC;QAC9D,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAC7B,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACjD;QACD,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAhDD,gCAgDC;AAED,SAAS,SAAS,CAChB,KAAuB,EACvB,UAAkB,CAAC;IAEnB,OAAO,OAAO,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { Address } from '@paraswap/sdk';
2
+ import { NumberAsString } from '../../types';
3
+ export declare enum OrderStatus {
4
+ INVALID = 0,
5
+ INVALID_MAKER_ASSET_AMOUNT = 1,
6
+ INVALID_TAKER_ASSET_AMOUNT = 2,
7
+ FILLABLE = 3,
8
+ EXPIRED = 4,
9
+ FULLY_FILLED = 5,
10
+ CANCELLED = 6
11
+ }
12
+ declare type Value = NumberAsString | number;
13
+ export interface ZeroXSignedOrderV2 {
14
+ senderAddress: string;
15
+ makerAddress: string;
16
+ takerAddress: string;
17
+ makerFee: Value;
18
+ takerFee: Value;
19
+ makerAssetAmount: Value;
20
+ takerAssetAmount: Value;
21
+ makerAssetData: string;
22
+ takerAssetData: string;
23
+ salt: Value;
24
+ exchangeAddress: string;
25
+ feeRecipientAddress: string;
26
+ expirationTimeSeconds: Value;
27
+ makerFeeAssetData: string;
28
+ takerFeeAssetData: string;
29
+ signature: string;
30
+ }
31
+ export interface ZeroXSignedOrderV4 {
32
+ makerToken: string;
33
+ takerToken: string;
34
+ makerAmount: Value;
35
+ takerAmount: Value;
36
+ maker: string;
37
+ taker: string;
38
+ txOrigin: string;
39
+ pool: string;
40
+ expiry: Value;
41
+ salt: Value;
42
+ signature: any;
43
+ }
44
+ export declare type ZeroXSignedOrder = ZeroXSignedOrderV2 | ZeroXSignedOrderV4;
45
+ export declare enum ZeroXFunctions {
46
+ swapOnZeroXv2 = "swapOnZeroXv2",
47
+ swapOnZeroXv4 = "swapOnZeroXv4",
48
+ swapOnZeroXv2WithPermit = "swapOnZeroXv2WithPermit",
49
+ swapOnZeroXv4WithPermit = "swapOnZeroXv4WithPermit"
50
+ }
51
+ export declare type ZeroXData = {
52
+ version: number;
53
+ order: ZeroXSignedOrder;
54
+ };
55
+ export declare type SwapOnZeroXParam = [
56
+ srcToken: Address,
57
+ destToken: Address,
58
+ srcAmount: NumberAsString,
59
+ destAmount: NumberAsString,
60
+ exchange: Address,
61
+ payload: string
62
+ ];
63
+ export declare type SwapOnZeroXWithPermitParam = [
64
+ srcToken: Address,
65
+ destToken: Address,
66
+ srcAmount: NumberAsString,
67
+ destAmount: NumberAsString,
68
+ exchange: Address,
69
+ payload: string,
70
+ permit: string
71
+ ];
72
+ export declare type ZeroXParam = SwapOnZeroXParam | SwapOnZeroXWithPermitParam;
73
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZeroXFunctions = exports.OrderStatus = void 0;
4
+ var OrderStatus;
5
+ (function (OrderStatus) {
6
+ OrderStatus[OrderStatus["INVALID"] = 0] = "INVALID";
7
+ OrderStatus[OrderStatus["INVALID_MAKER_ASSET_AMOUNT"] = 1] = "INVALID_MAKER_ASSET_AMOUNT";
8
+ OrderStatus[OrderStatus["INVALID_TAKER_ASSET_AMOUNT"] = 2] = "INVALID_TAKER_ASSET_AMOUNT";
9
+ OrderStatus[OrderStatus["FILLABLE"] = 3] = "FILLABLE";
10
+ OrderStatus[OrderStatus["EXPIRED"] = 4] = "EXPIRED";
11
+ OrderStatus[OrderStatus["FULLY_FILLED"] = 5] = "FULLY_FILLED";
12
+ OrderStatus[OrderStatus["CANCELLED"] = 6] = "CANCELLED";
13
+ })(OrderStatus = exports.OrderStatus || (exports.OrderStatus = {}));
14
+ var ZeroXFunctions;
15
+ (function (ZeroXFunctions) {
16
+ ZeroXFunctions["swapOnZeroXv2"] = "swapOnZeroXv2";
17
+ ZeroXFunctions["swapOnZeroXv4"] = "swapOnZeroXv4";
18
+ ZeroXFunctions["swapOnZeroXv2WithPermit"] = "swapOnZeroXv2WithPermit";
19
+ ZeroXFunctions["swapOnZeroXv4WithPermit"] = "swapOnZeroXv4WithPermit";
20
+ })(ZeroXFunctions = exports.ZeroXFunctions || (exports.ZeroXFunctions = {}));
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/zerox/types.ts"],"names":[],"mappings":";;;AAGA,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,mDAAO,CAAA;IACP,yFAA0B,CAAA;IAC1B,yFAA0B,CAAA;IAC1B,qDAAQ,CAAA;IACR,mDAAO,CAAA;IACP,6DAAY,CAAA;IACZ,uDAAS,CAAA;AACX,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB;AAuCD,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,qEAAmD,CAAA;IACnD,qEAAmD,CAAA;AACrD,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.6.12",
3
+ "version": "4.6.14",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -1,43 +0,0 @@
1
- import { DeepReadonly } from 'ts-essentials';
2
- import { Address, Log, Logger } from '../../types';
3
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
4
- import { IDexHelper } from '../../dex-helper/idex-helper';
5
- import { PoolState, PoolConfig } from './types';
6
- export declare class MakerPsmEventPool extends StatefulEventSubscriber<PoolState> {
7
- protected network: number;
8
- protected dexHelper: IDexHelper;
9
- poolConfig: PoolConfig;
10
- protected vatAddress: Address;
11
- handlers: {
12
- [event: string]: (event: any, pool: PoolState, log: Log) => PoolState;
13
- };
14
- logDecoder: (log: Log) => any;
15
- to18ConversionFactor: bigint;
16
- bytes32Tout: string;
17
- bytes32Tin: string;
18
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, poolConfig: PoolConfig, vatAddress: Address);
19
- handleFile(event: any, pool: PoolState, log: Log): PoolState;
20
- handleSellGem(event: any, pool: PoolState, log: Log): PoolState;
21
- handleBuyGem(event: any, pool: PoolState, log: Log): PoolState;
22
- getIdentifier(): string;
23
- /**
24
- * The function is called every time any of the subscribed
25
- * addresses release log. The function accepts the current
26
- * state, updates the state according to the log, and returns
27
- * the updated state.
28
- * @param state - Current state of event subscriber
29
- * @param log - Log released by one of the subscribed addresses
30
- * @returns Updates state of the event subscriber after the log
31
- */
32
- protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
33
- /**
34
- * The function generates state using on-chain calls. This
35
- * function is called to regenerate state if the event based
36
- * system fails to fetch events and the local state is no
37
- * more correct.
38
- * @param blockNumber - Blocknumber for which the state should
39
- * should be generated
40
- * @returns state of the event subscriber at blocknumber
41
- */
42
- generateState(blockNumber: number): Promise<Readonly<PoolState>>;
43
- }
@@ -1,132 +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.MakerPsmEventPool = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
9
- const utils_1 = require("../../utils");
10
- const psm_json_1 = __importDefault(require("../../abi/maker-psm/psm.json"));
11
- const vat_json_1 = __importDefault(require("../../abi/maker-psm/vat.json"));
12
- const vatInterface = new abi_1.Interface(vat_json_1.default);
13
- const psmInterface = new abi_1.Interface(psm_json_1.default);
14
- const bigIntify = (b) => BigInt(b.toString());
15
- async function getOnChainState(multiContract, poolConfigs, vatAddress, blockNumber) {
16
- const callData = poolConfigs
17
- .map(c => [
18
- {
19
- target: c.psmAddress,
20
- callData: psmInterface.encodeFunctionData('tin', []),
21
- },
22
- {
23
- target: c.psmAddress,
24
- callData: psmInterface.encodeFunctionData('tout', []),
25
- },
26
- {
27
- target: vatAddress,
28
- callData: vatInterface.encodeFunctionData('ilks', [c.identifier]),
29
- },
30
- ])
31
- .flat();
32
- const res = await multiContract.methods
33
- .aggregate(callData)
34
- .call({}, blockNumber);
35
- let i = 0;
36
- return poolConfigs.map(c => {
37
- const tin = bigIntify(psmInterface.decodeFunctionResult('tin', res.returnData[i++])[0]);
38
- const tout = bigIntify(psmInterface.decodeFunctionResult('tout', res.returnData[i++])[0]);
39
- const ilks = vatInterface.decodeFunctionResult('ilks', res.returnData[i++]);
40
- const Art = bigIntify(ilks.Art);
41
- const line = bigIntify(ilks.line);
42
- const rate = bigIntify(ilks.rate);
43
- return {
44
- tin,
45
- tout,
46
- Art,
47
- line,
48
- rate,
49
- };
50
- });
51
- }
52
- class MakerPsmEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
53
- network;
54
- dexHelper;
55
- poolConfig;
56
- vatAddress;
57
- handlers = {};
58
- logDecoder;
59
- to18ConversionFactor;
60
- bytes32Tout = '0x746f757400000000000000000000000000000000000000000000000000000000'; // bytes32('tout')
61
- bytes32Tin = '0x74696e0000000000000000000000000000000000000000000000000000000000'; // bytes32('tin')
62
- constructor(parentName, network, dexHelper, logger, poolConfig, vatAddress) {
63
- super(parentName, poolConfig.identifier, dexHelper, logger);
64
- this.network = network;
65
- this.dexHelper = dexHelper;
66
- this.poolConfig = poolConfig;
67
- this.vatAddress = vatAddress;
68
- this.logDecoder = (log) => psmInterface.parseLog(log);
69
- this.addressesSubscribed = [poolConfig.psmAddress];
70
- this.to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - poolConfig.gem.decimals);
71
- // Add handlers
72
- this.handlers['File'] = this.handleFile.bind(this);
73
- this.handlers['SellGem'] = this.handleSellGem.bind(this);
74
- this.handlers['BuyGem'] = this.handleBuyGem.bind(this);
75
- }
76
- handleFile(event, pool, log) {
77
- if (event.args.what === this.bytes32Tin) {
78
- pool.tin = bigIntify(event.args.data);
79
- }
80
- else if (event.args.what === this.bytes32Tout) {
81
- pool.tout = bigIntify(event.args.data);
82
- }
83
- return pool;
84
- }
85
- handleSellGem(event, pool, log) {
86
- pool.Art += bigIntify(event.args.value) * this.to18ConversionFactor;
87
- return pool;
88
- }
89
- handleBuyGem(event, pool, log) {
90
- pool.Art -= bigIntify(event.args.value) * this.to18ConversionFactor;
91
- return pool;
92
- }
93
- getIdentifier() {
94
- return `${this.parentName}_${this.poolConfig.psmAddress}`.toLowerCase();
95
- }
96
- /**
97
- * The function is called every time any of the subscribed
98
- * addresses release log. The function accepts the current
99
- * state, updates the state according to the log, and returns
100
- * the updated state.
101
- * @param state - Current state of event subscriber
102
- * @param log - Log released by one of the subscribed addresses
103
- * @returns Updates state of the event subscriber after the log
104
- */
105
- processLog(state, log) {
106
- try {
107
- const event = this.logDecoder(log);
108
- if (event.name in this.handlers) {
109
- return this.handlers[event.name](event, state, log);
110
- }
111
- return state;
112
- }
113
- catch (e) {
114
- this.logger.error(`Error_${this.parentName}_processLog could not parse the log with topic ${log.topics}:`, e);
115
- return null;
116
- }
117
- }
118
- /**
119
- * The function generates state using on-chain calls. This
120
- * function is called to regenerate state if the event based
121
- * system fails to fetch events and the local state is no
122
- * more correct.
123
- * @param blockNumber - Blocknumber for which the state should
124
- * should be generated
125
- * @returns state of the event subscriber at blocknumber
126
- */
127
- async generateState(blockNumber) {
128
- return (await getOnChainState(this.dexHelper.multiContract, [this.poolConfig], this.vatAddress, blockNumber))[0];
129
- }
130
- }
131
- exports.MakerPsmEventPool = MakerPsmEventPool;
132
- //# sourceMappingURL=maker-psm-event-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"maker-psm-event-pool.js","sourceRoot":"","sources":["../../../src/dex/maker-psm/maker-psm-event-pool.ts"],"names":[],"mappings":"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"}