@paraswap/dex-lib 2.49.2 → 2.50.0

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 (151) hide show
  1. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  2. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  3. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  4. package/build/dex/algebra/algebra-pool-v1_1.d.ts +3 -2
  5. package/build/dex/algebra/algebra-pool-v1_1.js +3 -2
  6. package/build/dex/algebra/algebra-pool-v1_1.js.map +1 -1
  7. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.d.ts +16 -0
  8. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js +26 -0
  9. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js.map +1 -0
  10. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.d.ts +54 -0
  11. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.js +356 -0
  12. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.js.map +1 -0
  13. package/build/dex/algebra/algebra-pool.d.ts +46 -0
  14. package/build/dex/algebra/algebra-pool.js +336 -0
  15. package/build/dex/algebra/algebra-pool.js.map +1 -0
  16. package/build/dex/algebra/algebra.d.ts +2 -1
  17. package/build/dex/algebra/algebra.js +6 -1
  18. package/build/dex/algebra/algebra.js.map +1 -1
  19. package/build/dex/algebra/config.js +16 -0
  20. package/build/dex/algebra/config.js.map +1 -1
  21. package/build/dex/algebra/types.d.ts +1 -1
  22. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  23. package/build/dex/quickswap/camelot-v3.js +19 -0
  24. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  25. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  26. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  27. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  28. package/build/dex/uniswap-v2/rebase-tokens.json +7 -0
  29. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  30. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +64 -0
  31. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/dex/algebra/algebra-e2e.test.ts +22 -0
  34. package/src/dex/algebra/algebra-pool-v1_1.ts +3 -2
  35. package/src/dex/algebra/algebra-pool-v1_9_bidirectional_fee.ts +55 -0
  36. package/src/dex/algebra/algebra.ts +12 -3
  37. package/src/dex/algebra/config.ts +18 -0
  38. package/src/dex/algebra/types.ts +1 -1
  39. package/build/abi/Redstone.json +0 -739
  40. package/build/abi/angle/stagToken.json +0 -963
  41. package/build/abi/angle-transmuter/MorphoOracle.json +0 -193
  42. package/build/abi/angle-transmuter/MorphoVault.json +0 -2506
  43. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  44. package/build/abi/angle-transmuter/Transmuter.json +0 -1711
  45. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  46. package/build/abi/smardex/smardex-factory.json +0 -185
  47. package/build/abi/smardex/smardex-pool.json +0 -578
  48. package/build/abi/smardex/smardex-router.json +0 -648
  49. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  50. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  51. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  52. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  53. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -55
  54. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -183
  55. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
  56. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -50
  57. package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -280
  58. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
  59. package/build/dex/angle-staked-stable/config.d.ts +0 -4
  60. package/build/dex/angle-staked-stable/config.js +0 -46
  61. package/build/dex/angle-staked-stable/config.js.map +0 -1
  62. package/build/dex/angle-staked-stable/types.d.ts +0 -17
  63. package/build/dex/angle-staked-stable/types.js +0 -3
  64. package/build/dex/angle-staked-stable/types.js.map +0 -1
  65. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -61
  66. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -415
  67. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  68. package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -59
  69. package/build/dex/angle-transmuter/angle-transmuter.js +0 -262
  70. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  71. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  72. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  73. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  74. package/build/dex/angle-transmuter/config.d.ts +0 -4
  75. package/build/dex/angle-transmuter/config.js +0 -30
  76. package/build/dex/angle-transmuter/config.js.map +0 -1
  77. package/build/dex/angle-transmuter/constants.d.ts +0 -77
  78. package/build/dex/angle-transmuter/constants.js +0 -94
  79. package/build/dex/angle-transmuter/constants.js.map +0 -1
  80. package/build/dex/angle-transmuter/morphoOracle.d.ts +0 -42
  81. package/build/dex/angle-transmuter/morphoOracle.js +0 -179
  82. package/build/dex/angle-transmuter/morphoOracle.js.map +0 -1
  83. package/build/dex/angle-transmuter/morphoVault.d.ts +0 -19
  84. package/build/dex/angle-transmuter/morphoVault.js +0 -78
  85. package/build/dex/angle-transmuter/morphoVault.js.map +0 -1
  86. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  87. package/build/dex/angle-transmuter/pyth.js +0 -70
  88. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  89. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  90. package/build/dex/angle-transmuter/redstone.js +0 -73
  91. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  92. package/build/dex/angle-transmuter/transmuter.d.ts +0 -52
  93. package/build/dex/angle-transmuter/transmuter.js +0 -374
  94. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  95. package/build/dex/angle-transmuter/types.d.ts +0 -188
  96. package/build/dex/angle-transmuter/types.js +0 -33
  97. package/build/dex/angle-transmuter/types.js.map +0 -1
  98. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  99. package/build/dex/angle-transmuter/utils.js +0 -252
  100. package/build/dex/angle-transmuter/utils.js.map +0 -1
  101. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  102. package/build/dex/smardex/subgraph-queries.js +0 -17
  103. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  104. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  105. package/build/dex/smardex/usd-reserves.js +0 -86
  106. package/build/dex/smardex/usd-reserves.js.map +0 -1
  107. package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
  108. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  109. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  110. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  111. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  112. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  113. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  114. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  115. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  116. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  117. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  118. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  119. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  120. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  121. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  122. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  123. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  124. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  125. package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
  126. package/build/dex/trader-joe-v2_1/config.js +0 -47
  127. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  128. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  129. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  130. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  131. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  132. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  133. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  134. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  135. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  136. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  137. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  138. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  139. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  140. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  141. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  142. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  143. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  144. package/build/dex/trader-joe-v2_1/types.js +0 -9
  145. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  146. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  147. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  148. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  149. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  150. package/build/dex-helper/RedisBatcher.js +0 -75
  151. package/build/dex-helper/RedisBatcher.js.map +0 -1
@@ -1,193 +0,0 @@
1
- [
2
- {
3
- "inputs": [
4
- {
5
- "internalType": "address",
6
- "name": "factoryAddress",
7
- "type": "address"
8
- },
9
- {
10
- "internalType": "contract IERC20",
11
- "name": "tokenIn",
12
- "type": "address"
13
- },
14
- {
15
- "internalType": "contract IERC20",
16
- "name": "tokenOut",
17
- "type": "address"
18
- },
19
- {
20
- "internalType": "uint24",
21
- "name": "binStep",
22
- "type": "uint24"
23
- }
24
- ],
25
- "name": "getFullState",
26
- "outputs": [
27
- {
28
- "components": [
29
- {
30
- "internalType": "contract ILBPair",
31
- "name": "pair",
32
- "type": "address"
33
- },
34
- {
35
- "components": [
36
- {
37
- "internalType": "uint24",
38
- "name": "id",
39
- "type": "uint24"
40
- },
41
- {
42
- "internalType": "uint128",
43
- "name": "reserveX",
44
- "type": "uint128"
45
- },
46
- {
47
- "internalType": "uint128",
48
- "name": "reserveY",
49
- "type": "uint128"
50
- }
51
- ],
52
- "internalType": "struct ITraderJoeV21StateMulticall.Bin[]",
53
- "name": "bins",
54
- "type": "tuple[]"
55
- },
56
- {
57
- "internalType": "address",
58
- "name": "tokenX",
59
- "type": "address"
60
- },
61
- {
62
- "internalType": "address",
63
- "name": "tokenY",
64
- "type": "address"
65
- },
66
- {
67
- "internalType": "address",
68
- "name": "pairAddress",
69
- "type": "address"
70
- },
71
- {
72
- "internalType": "uint256",
73
- "name": "blockTimestamp",
74
- "type": "uint256"
75
- },
76
- {
77
- "components": [
78
- {
79
- "internalType": "uint128",
80
- "name": "reserveX",
81
- "type": "uint128"
82
- },
83
- {
84
- "internalType": "uint128",
85
- "name": "reserveY",
86
- "type": "uint128"
87
- }
88
- ],
89
- "internalType": "struct ITraderJoeV21StateMulticall.Reserves",
90
- "name": "reserves",
91
- "type": "tuple"
92
- },
93
- {
94
- "internalType": "uint24",
95
- "name": "activeId",
96
- "type": "uint24"
97
- },
98
- {
99
- "components": [
100
- {
101
- "internalType": "uint128",
102
- "name": "protocolFeeX",
103
- "type": "uint128"
104
- },
105
- {
106
- "internalType": "uint128",
107
- "name": "protocolFeeY",
108
- "type": "uint128"
109
- }
110
- ],
111
- "internalType": "struct ITraderJoeV21StateMulticall.ProtocolFees",
112
- "name": "protocolFees",
113
- "type": "tuple"
114
- },
115
- {
116
- "components": [
117
- {
118
- "internalType": "uint16",
119
- "name": "baseFactor",
120
- "type": "uint16"
121
- },
122
- {
123
- "internalType": "uint16",
124
- "name": "filterPeriod",
125
- "type": "uint16"
126
- },
127
- {
128
- "internalType": "uint16",
129
- "name": "decayPeriod",
130
- "type": "uint16"
131
- },
132
- {
133
- "internalType": "uint16",
134
- "name": "reductionFactor",
135
- "type": "uint16"
136
- },
137
- {
138
- "internalType": "uint24",
139
- "name": "variableFeeControl",
140
- "type": "uint24"
141
- },
142
- {
143
- "internalType": "uint16",
144
- "name": "protocolShare",
145
- "type": "uint16"
146
- },
147
- {
148
- "internalType": "uint24",
149
- "name": "maxVolatilityAccumulator",
150
- "type": "uint24"
151
- }
152
- ],
153
- "internalType": "struct ITraderJoeV21StateMulticall.StaticFeeParameters",
154
- "name": "staticFeeParameters",
155
- "type": "tuple"
156
- },
157
- {
158
- "components": [
159
- {
160
- "internalType": "uint24",
161
- "name": "volatilityAccumulator",
162
- "type": "uint24"
163
- },
164
- {
165
- "internalType": "uint24",
166
- "name": "volatilityReference",
167
- "type": "uint24"
168
- },
169
- {
170
- "internalType": "uint24",
171
- "name": "idReference",
172
- "type": "uint24"
173
- },
174
- {
175
- "internalType": "uint40",
176
- "name": "timeOfLastUpdate",
177
- "type": "uint40"
178
- }
179
- ],
180
- "internalType": "struct ITraderJoeV21StateMulticall.VariableFeeParameters",
181
- "name": "variableFeeParameters",
182
- "type": "tuple"
183
- }
184
- ],
185
- "internalType": "struct ITraderJoeV21StateMulticall.StateResult",
186
- "name": "state",
187
- "type": "tuple"
188
- }
189
- ],
190
- "stateMutability": "view",
191
- "type": "function"
192
- }
193
- ]
@@ -1,55 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import type { DeepReadonly } from 'ts-essentials';
3
- import type { BlockHeader, Log, Logger } from '../../types';
4
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
- import type { IDexHelper } from '../../dex-helper/idex-helper';
6
- import type { PoolState } from './types';
7
- export declare class AngleStakedStableEventPool extends StatefulEventSubscriber<PoolState> {
8
- readonly parentName: string;
9
- protected network: number;
10
- protected dexHelper: IDexHelper;
11
- stakeToken: string;
12
- agToken: string;
13
- handlers: {
14
- [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<PoolState> | null;
15
- };
16
- static angleStakedStableIface: Interface;
17
- static erc20Iface: Interface;
18
- logDecoder: (log: Log) => any;
19
- addressesSubscribed: string[];
20
- BASE_27: bigint;
21
- HALF_BASE_27: bigint;
22
- ZERO: bigint;
23
- constructor(parentName: string, network: number, dexHelper: IDexHelper, stakeToken: string, agToken: string, logger: Logger);
24
- /**
25
- * The function is called every time any of the subscribed
26
- * addresses release log. The function accepts the current
27
- * state, updates the state according to the log, and returns
28
- * the updated state.
29
- * @param state - Current state of event subscriber
30
- * @param log - Log released by one of the subscribed addresses
31
- * @returns Updates state of the event subscriber after the log
32
- */
33
- protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<PoolState> | null;
34
- /**
35
- * The function generates state using on-chain calls. This
36
- * function is called to regenerate state if the event based
37
- * system fails to fetch events and the local state is no
38
- * more correct.
39
- * @param blockNumber - Blocknumber for which the state should
40
- * should be generated
41
- * @returns state of the event subscriber at blocknumber
42
- */
43
- generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
44
- getRateDeposit(amount: bigint, state: PoolState): bigint;
45
- getRateMint(shares: bigint, state: PoolState): bigint;
46
- getRateRedeem(shares: bigint, state: PoolState): bigint;
47
- getRateWithdraw(amount: bigint, state: PoolState): bigint;
48
- _accrue(state: PoolState): bigint;
49
- _computeUpdatedAssets(amount: bigint, rate: bigint, exp: bigint): bigint;
50
- handleAccrued(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
51
- handleRateUpdated(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
52
- handleDeposit(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
53
- handleWithdraw(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
54
- handleToggledPause(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
55
- }
@@ -1,183 +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.AngleStakedStableEventPool = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const utils_1 = require("../../utils");
9
- const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
- const stagToken_json_1 = __importDefault(require("../../abi/angle/stagToken.json"));
11
- const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
12
- class AngleStakedStableEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
13
- constructor(parentName, network, dexHelper, stakeToken, agToken, logger) {
14
- super(parentName, 'Staked_Stable', dexHelper, logger);
15
- this.parentName = parentName;
16
- this.network = network;
17
- this.dexHelper = dexHelper;
18
- this.stakeToken = stakeToken;
19
- this.agToken = agToken;
20
- this.handlers = {};
21
- this.BASE_27 = BigInt(1e27);
22
- this.HALF_BASE_27 = BigInt(1e27 / 2);
23
- this.ZERO = BigInt(0);
24
- this.logDecoder = (log) => AngleStakedStableEventPool.angleStakedStableIface.parseLog(log);
25
- this.addressesSubscribed = [stakeToken];
26
- // Add handlers
27
- this.handlers.Accrued = this.handleAccrued.bind(this);
28
- this.handlers.Deposit = this.handleDeposit.bind(this);
29
- this.handlers.Withdraw = this.handleWithdraw.bind(this);
30
- this.handlers.ToggledPause = this.handleToggledPause.bind(this);
31
- this.handlers.RateUpdated = this.handleRateUpdated.bind(this);
32
- }
33
- /**
34
- * The function is called every time any of the subscribed
35
- * addresses release log. The function accepts the current
36
- * state, updates the state according to the log, and returns
37
- * the updated state.
38
- * @param state - Current state of event subscriber
39
- * @param log - Log released by one of the subscribed addresses
40
- * @returns Updates state of the event subscriber after the log
41
- */
42
- processLog(state, log, blockHeader) {
43
- try {
44
- const event = this.logDecoder(log);
45
- if (event.name in this.handlers) {
46
- return this.handlers[event.name](event, state, log, blockHeader);
47
- }
48
- }
49
- catch (e) {
50
- (0, utils_1.catchParseLogError)(e, this.logger);
51
- }
52
- return null;
53
- }
54
- /**
55
- * The function generates state using on-chain calls. This
56
- * function is called to regenerate state if the event based
57
- * system fails to fetch events and the local state is no
58
- * more correct.
59
- * @param blockNumber - Blocknumber for which the state should
60
- * should be generated
61
- * @returns state of the event subscriber at blocknumber
62
- */
63
- async generateState(blockNumber) {
64
- const poolState = {
65
- totalAssets: 0n,
66
- totalSupply: 0n,
67
- lastUpdate: 0n,
68
- paused: false,
69
- rate: 0n,
70
- };
71
- const multicall = [
72
- {
73
- target: this.agToken,
74
- callData: AngleStakedStableEventPool.erc20Iface.encodeFunctionData('balanceOf', [this.stakeToken]),
75
- },
76
- {
77
- target: this.stakeToken,
78
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('totalSupply'),
79
- },
80
- {
81
- target: this.stakeToken,
82
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('lastUpdate'),
83
- },
84
- {
85
- target: this.stakeToken,
86
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('paused'),
87
- },
88
- {
89
- target: this.stakeToken,
90
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('rate'),
91
- },
92
- ];
93
- // on chain call
94
- const returnData = (await this.dexHelper.multiContract.methods
95
- .aggregate(multicall)
96
- .call({}, blockNumber)).returnData;
97
- // Decode
98
- poolState.totalAssets = (0, utils_1.bigIntify)(AngleStakedStableEventPool.erc20Iface.decodeFunctionResult('balanceOf', returnData[0])[0]);
99
- poolState.totalSupply = (0, utils_1.bigIntify)(AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('totalSupply', returnData[1])[0]);
100
- poolState.lastUpdate = (0, utils_1.bigIntify)(AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('lastUpdate', returnData[2])[0]);
101
- poolState.paused =
102
- AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('paused', returnData[3])[0];
103
- poolState.rate = (0, utils_1.bigIntify)(AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('rate', returnData[4])[0]);
104
- return poolState;
105
- }
106
- getRateDeposit(amount, state) {
107
- const newTotalAssets = this._accrue(state);
108
- return amount === 0n || state.totalSupply === 0n
109
- ? amount
110
- : (amount * state.totalSupply) / newTotalAssets;
111
- }
112
- getRateMint(shares, state) {
113
- const newTotalAssets = this._accrue(state);
114
- const roundUp = (shares * newTotalAssets) % state.totalSupply > 0n ? 1n : 0n;
115
- return state.totalSupply === 0n
116
- ? shares
117
- : (shares * newTotalAssets) / state.totalSupply + roundUp;
118
- }
119
- getRateRedeem(shares, state) {
120
- const newTotalAssets = this._accrue(state);
121
- return state.totalSupply === 0n
122
- ? shares
123
- : (shares * newTotalAssets) / state.totalSupply;
124
- }
125
- getRateWithdraw(amount, state) {
126
- const newTotalAssets = this._accrue(state);
127
- const roundUp = (amount * state.totalSupply) % newTotalAssets > 0n ? 1n : 0n;
128
- return amount === 0n || state.totalSupply === 0n
129
- ? amount
130
- : (amount * state.totalSupply) / newTotalAssets + roundUp;
131
- }
132
- _accrue(state) {
133
- const newTotalAssets = this._computeUpdatedAssets(state.totalAssets, state.rate, (0, utils_1.currentBigIntTimestampInS)() - state.lastUpdate);
134
- return newTotalAssets;
135
- }
136
- _computeUpdatedAssets(amount, rate, exp) {
137
- if (exp === 0n || rate === 0n)
138
- return amount;
139
- const expMinusOne = exp - 1n;
140
- const expMinusTwo = exp > 2n ? exp - 2n : 0n;
141
- const basePowerTwo = (rate * rate + this.HALF_BASE_27) / this.BASE_27;
142
- const basePowerThree = (basePowerTwo * rate + this.HALF_BASE_27) / this.BASE_27;
143
- const secondTerm = (exp * expMinusOne * basePowerTwo) / 2n;
144
- const thirdTerm = (exp * expMinusOne * expMinusTwo * basePowerThree) / 6n;
145
- return ((amount * (this.BASE_27 + rate * exp + secondTerm + thirdTerm)) /
146
- this.BASE_27);
147
- }
148
- handleAccrued(event, state, log, blockHeader) {
149
- const interest = (0, utils_1.bigIntify)(event.args.interest);
150
- state.totalAssets += interest;
151
- state.lastUpdate = (0, utils_1.bigIntify)(blockHeader.timestamp);
152
- return state;
153
- }
154
- handleRateUpdated(event, state, log, blockHeader) {
155
- state.rate = (0, utils_1.bigIntify)(event.args.newRate);
156
- return state;
157
- }
158
- handleDeposit(event, state, log, blockHeader) {
159
- const assets = (0, utils_1.bigIntify)(event.args.assets);
160
- const shares = (0, utils_1.bigIntify)(event.args.shares);
161
- state.totalAssets += assets;
162
- state.totalSupply += shares;
163
- state.lastUpdate = (0, utils_1.bigIntify)(blockHeader.timestamp);
164
- return state;
165
- }
166
- handleWithdraw(event, state, log, blockHeader) {
167
- const assets = (0, utils_1.bigIntify)(event.args.assets);
168
- const shares = (0, utils_1.bigIntify)(event.args.shares);
169
- state.totalAssets -= assets;
170
- state.totalSupply -= shares;
171
- state.lastUpdate = (0, utils_1.bigIntify)(blockHeader.timestamp);
172
- return state;
173
- }
174
- handleToggledPause(event, state, log) {
175
- const pauseStatus = event.args.pauseStatus;
176
- state.paused = pauseStatus;
177
- return state;
178
- }
179
- }
180
- exports.AngleStakedStableEventPool = AngleStakedStableEventPool;
181
- AngleStakedStableEventPool.angleStakedStableIface = new abi_1.Interface(stagToken_json_1.default);
182
- AngleStakedStableEventPool.erc20Iface = new abi_1.Interface(erc20_json_1.default);
183
- //# sourceMappingURL=angle-staked-stable-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angle-staked-stable-pool.js","sourceRoot":"","sources":["../../../src/dex/angle-staked-stable/angle-staked-stable-pool.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import type { AsyncOrSync } from 'ts-essentials';
3
- import type { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
4
- import { SwapSide, type Network } from '../../constants';
5
- import type { IDex } from '../../dex/idex';
6
- import type { IDexHelper } from '../../dex-helper/idex-helper';
7
- import type { AngleStakedStableData, DexParams } from './types';
8
- import { SimpleExchange } from '../simple-exchange';
9
- import { AngleStakedStableEventPool } from './angle-staked-stable-pool';
10
- export declare class AngleStakedStable extends SimpleExchange implements IDex<AngleStakedStableData> {
11
- readonly network: Network;
12
- readonly dexKey: string;
13
- readonly dexHelper: IDexHelper;
14
- protected adapters: import("../../types").AdapterMappings;
15
- static readonly wstETHIface: Interface;
16
- protected config: DexParams;
17
- readonly hasConstantPriceLargeAmounts = false;
18
- readonly needWrapNative = true;
19
- readonly isFeeOnTransferSupported = false;
20
- static dexKeysWithNetwork: {
21
- key: string;
22
- networks: Network[];
23
- }[];
24
- logger: Logger;
25
- protected eventPools: {
26
- [key: string]: AngleStakedStableEventPool;
27
- };
28
- protected isPaused: {
29
- [key: string]: boolean;
30
- };
31
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings);
32
- initializePricing(blockNumber: number): Promise<void>;
33
- getAdapters(side: SwapSide): {
34
- name: string;
35
- index: number;
36
- }[] | null;
37
- getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
38
- getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<AngleStakedStableData>>;
39
- getCalldataGasCost(poolPrices: PoolPrices<AngleStakedStableData>): number | number[];
40
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AngleStakedStableData, side: SwapSide): AdapterExchangeParam;
41
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AngleStakedStableData, side: SwapSide): Promise<SimpleExchangeParam>;
42
- updatePoolState(): Promise<void>;
43
- getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
44
- releaseResources(): AsyncOrSync<void>;
45
- _knownAddress(srcToken: Token, destToken: Token): {
46
- known: boolean;
47
- agToken: string | null;
48
- stakeToken: string | null;
49
- };
50
- }