@paraswap/dex-lib 2.48.3 → 2.48.4-etherfi.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 (129) hide show
  1. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  2. package/build/abi/etherfi/eETHPool.json +9 -0
  3. package/build/abi/etherfi/weETH.json +20 -0
  4. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  5. package/build/dex/algebra/algebra-pool.d.ts +46 -0
  6. package/build/dex/algebra/algebra-pool.js +336 -0
  7. package/build/dex/algebra/algebra-pool.js.map +1 -0
  8. package/build/dex/etherfi.d.ts +26 -0
  9. package/build/dex/etherfi.js +82 -0
  10. package/build/dex/etherfi.js.map +1 -0
  11. package/build/dex/index.js +2 -0
  12. package/build/dex/index.js.map +1 -1
  13. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  14. package/build/dex/quickswap/camelot-v3.js +19 -0
  15. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  16. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  17. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  18. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  19. package/build/dex/uniswap-v2/rebase-tokens.json +7 -0
  20. package/package.json +1 -1
  21. package/src/abi/etherfi/eETHPool.json +9 -0
  22. package/src/abi/etherfi/weETH.json +20 -0
  23. package/src/dex/etherfi.ts +144 -0
  24. package/src/dex/index.ts +2 -0
  25. package/build/abi/Redstone.json +0 -739
  26. package/build/abi/angle/stagToken.json +0 -963
  27. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  28. package/build/abi/angle-transmuter/Transmuter.json +0 -1719
  29. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  30. package/build/abi/smardex/smardex-factory.json +0 -185
  31. package/build/abi/smardex/smardex-pool.json +0 -578
  32. package/build/abi/smardex/smardex-router.json +0 -648
  33. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  34. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  35. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  36. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  37. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -53
  38. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -175
  39. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
  40. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -42
  41. package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -232
  42. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
  43. package/build/dex/angle-staked-stable/config.d.ts +0 -4
  44. package/build/dex/angle-staked-stable/config.js +0 -26
  45. package/build/dex/angle-staked-stable/config.js.map +0 -1
  46. package/build/dex/angle-staked-stable/types.d.ts +0 -15
  47. package/build/dex/angle-staked-stable/types.js +0 -3
  48. package/build/dex/angle-staked-stable/types.js.map +0 -1
  49. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -43
  50. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -309
  51. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  52. package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -46
  53. package/build/dex/angle-transmuter/angle-transmuter.js +0 -233
  54. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  55. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  56. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  57. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  58. package/build/dex/angle-transmuter/config.d.ts +0 -4
  59. package/build/dex/angle-transmuter/config.js +0 -20
  60. package/build/dex/angle-transmuter/config.js.map +0 -1
  61. package/build/dex/angle-transmuter/constants.d.ts +0 -4
  62. package/build/dex/angle-transmuter/constants.js +0 -8
  63. package/build/dex/angle-transmuter/constants.js.map +0 -1
  64. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  65. package/build/dex/angle-transmuter/pyth.js +0 -71
  66. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  67. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  68. package/build/dex/angle-transmuter/redstone.js +0 -73
  69. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  70. package/build/dex/angle-transmuter/transmuter.d.ts +0 -50
  71. package/build/dex/angle-transmuter/transmuter.js +0 -314
  72. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  73. package/build/dex/angle-transmuter/types.d.ts +0 -144
  74. package/build/dex/angle-transmuter/types.js +0 -31
  75. package/build/dex/angle-transmuter/types.js.map +0 -1
  76. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  77. package/build/dex/angle-transmuter/utils.js +0 -264
  78. package/build/dex/angle-transmuter/utils.js.map +0 -1
  79. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  80. package/build/dex/smardex/subgraph-queries.js +0 -17
  81. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  82. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  83. package/build/dex/smardex/usd-reserves.js +0 -86
  84. package/build/dex/smardex/usd-reserves.js.map +0 -1
  85. package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
  86. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  87. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  88. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  89. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  90. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  91. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  92. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  93. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  94. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  95. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  96. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  97. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  98. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  99. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  100. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  101. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  102. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  103. package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
  104. package/build/dex/trader-joe-v2_1/config.js +0 -47
  105. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  106. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  107. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  108. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  109. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  110. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  111. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  112. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  113. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  114. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  115. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  116. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  117. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  118. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  119. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  120. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  121. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  122. package/build/dex/trader-joe-v2_1/types.js +0 -9
  123. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  124. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  125. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  126. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  127. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  128. package/build/dex-helper/RedisBatcher.js +0 -75
  129. 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,53 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { DeepReadonly } from 'ts-essentials';
3
- import { BlockHeader, Log, Logger } from '../../types';
4
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
- import { IDexHelper } from '../../dex-helper/idex-helper';
6
- import { DexParams, PoolState } from './types';
7
- export declare class AngleStakedStableEventPool extends StatefulEventSubscriber<PoolState> {
8
- readonly parentName: string;
9
- protected network: number;
10
- protected dexHelper: IDexHelper;
11
- protected config: DexParams;
12
- handlers: {
13
- [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<PoolState> | null;
14
- };
15
- static angleStakedStableIface: Interface;
16
- logDecoder: (log: Log) => any;
17
- addressesSubscribed: string[];
18
- BASE_27: bigint;
19
- HALF_BASE_27: bigint;
20
- ZERO: bigint;
21
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, config: DexParams);
22
- /**
23
- * The function is called every time any of the subscribed
24
- * addresses release log. The function accepts the current
25
- * state, updates the state according to the log, and returns
26
- * the updated state.
27
- * @param state - Current state of event subscriber
28
- * @param log - Log released by one of the subscribed addresses
29
- * @returns Updates state of the event subscriber after the log
30
- */
31
- protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<PoolState> | null;
32
- /**
33
- * The function generates state using on-chain calls. This
34
- * function is called to regenerate state if the event based
35
- * system fails to fetch events and the local state is no
36
- * more correct.
37
- * @param blockNumber - Blocknumber for which the state should
38
- * should be generated
39
- * @returns state of the event subscriber at blocknumber
40
- */
41
- generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
42
- getRateDeposit(amount: bigint, state: PoolState): bigint;
43
- getRateMint(shares: bigint, state: PoolState): bigint;
44
- getRateRedeem(shares: bigint, state: PoolState): bigint;
45
- getRateWithdraw(amount: bigint, state: PoolState): bigint;
46
- _accrue(state: PoolState): bigint;
47
- _computeUpdatedAssets(amount: bigint, rate: bigint, exp: bigint): bigint;
48
- handleAccrued(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
49
- handleRateUpdated(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
50
- handleDeposit(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
51
- handleWithdraw(event: any, state: PoolState, log: Readonly<Log>, blockHeader: BlockHeader): DeepReadonly<PoolState> | null;
52
- handleToggledPause(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
53
- }
@@ -1,175 +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
- class AngleStakedStableEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
12
- constructor(parentName, network, dexHelper, logger, config) {
13
- super(parentName, 'Staked_Stable', dexHelper, logger);
14
- this.parentName = parentName;
15
- this.network = network;
16
- this.dexHelper = dexHelper;
17
- this.config = config;
18
- this.handlers = {};
19
- this.BASE_27 = BigInt(1e27);
20
- this.HALF_BASE_27 = BigInt(1e27 / 2);
21
- this.ZERO = BigInt(0);
22
- this.logDecoder = (log) => AngleStakedStableEventPool.angleStakedStableIface.parseLog(log);
23
- this.addressesSubscribed = [config.stEUR];
24
- // Add handlers
25
- this.handlers['Accrued'] = this.handleAccrued.bind(this);
26
- this.handlers['Deposit'] = this.handleDeposit.bind(this);
27
- this.handlers['Withdraw'] = this.handleWithdraw.bind(this);
28
- this.handlers['ToggledPause'] = this.handleToggledPause.bind(this);
29
- this.handlers['RateUpdated'] = this.handleRateUpdated.bind(this);
30
- }
31
- /**
32
- * The function is called every time any of the subscribed
33
- * addresses release log. The function accepts the current
34
- * state, updates the state according to the log, and returns
35
- * the updated state.
36
- * @param state - Current state of event subscriber
37
- * @param log - Log released by one of the subscribed addresses
38
- * @returns Updates state of the event subscriber after the log
39
- */
40
- processLog(state, log, blockHeader) {
41
- try {
42
- const event = this.logDecoder(log);
43
- if (event.name in this.handlers) {
44
- return this.handlers[event.name](event, state, log, blockHeader);
45
- }
46
- }
47
- catch (e) {
48
- (0, utils_1.catchParseLogError)(e, this.logger);
49
- }
50
- return null;
51
- }
52
- /**
53
- * The function generates state using on-chain calls. This
54
- * function is called to regenerate state if the event based
55
- * system fails to fetch events and the local state is no
56
- * more correct.
57
- * @param blockNumber - Blocknumber for which the state should
58
- * should be generated
59
- * @returns state of the event subscriber at blocknumber
60
- */
61
- async generateState(blockNumber) {
62
- let poolState = {
63
- totalAssets: 0n,
64
- totalSupply: 0n,
65
- lastUpdate: 0n,
66
- paused: false,
67
- rate: 0n,
68
- };
69
- const multicall = [
70
- {
71
- target: this.config.stEUR,
72
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('totalAssets'),
73
- },
74
- {
75
- target: this.config.stEUR,
76
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('totalSupply'),
77
- },
78
- {
79
- target: this.config.stEUR,
80
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('lastUpdate'),
81
- },
82
- {
83
- target: this.config.stEUR,
84
- callData: AngleStakedStableEventPool.angleStakedStableIface.encodeFunctionData('paused'),
85
- },
86
- ];
87
- // on chain call
88
- const returnData = (await this.dexHelper.multiContract.methods
89
- .aggregate(multicall)
90
- .call({}, blockNumber)).returnData;
91
- // Decode
92
- poolState.totalAssets = (0, utils_1.bigIntify)(AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('totalAssets', returnData[0])[0]);
93
- poolState.totalSupply = (0, utils_1.bigIntify)(AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('totalSupply', returnData[1])[0]);
94
- poolState.lastUpdate = (0, utils_1.bigIntify)(AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('lastUpdate', returnData[2])[0]);
95
- poolState.paused =
96
- AngleStakedStableEventPool.angleStakedStableIface.decodeFunctionResult('paused', returnData[3])[0];
97
- return poolState;
98
- }
99
- getRateDeposit(amount, state) {
100
- const newTotalAssets = this._accrue(state);
101
- return amount == 0n || state.totalSupply == 0n
102
- ? amount
103
- : (amount * state.totalSupply) / newTotalAssets;
104
- }
105
- getRateMint(shares, state) {
106
- const newTotalAssets = this._accrue(state);
107
- const roundUp = (shares * newTotalAssets) % state.totalSupply > 0n ? 1n : 0n;
108
- return state.totalSupply == 0n
109
- ? shares
110
- : (shares * newTotalAssets) / state.totalSupply + roundUp;
111
- }
112
- getRateRedeem(shares, state) {
113
- const newTotalAssets = this._accrue(state);
114
- return state.totalSupply == 0n
115
- ? shares
116
- : (shares * newTotalAssets) / state.totalSupply;
117
- }
118
- getRateWithdraw(amount, state) {
119
- const newTotalAssets = this._accrue(state);
120
- const roundUp = (amount * state.totalSupply) % newTotalAssets > 0n ? 1n : 0n;
121
- return amount == 0n || state.totalSupply == 0n
122
- ? amount
123
- : (amount * state.totalSupply) / newTotalAssets + roundUp;
124
- }
125
- _accrue(state) {
126
- const newTotalAssets = this._computeUpdatedAssets(state.totalAssets, state.rate, (0, utils_1.currentBigIntTimestampInS)() - state.lastUpdate);
127
- return newTotalAssets;
128
- }
129
- _computeUpdatedAssets(amount, rate, exp) {
130
- if (exp == 0n || rate > 0)
131
- return amount;
132
- const expMinusOne = exp - 1n;
133
- const expMinusTwo = exp > 2n ? exp - 2n : 0n;
134
- const basePowerTwo = (rate * rate + this.HALF_BASE_27) / this.BASE_27;
135
- const basePowerThree = (basePowerTwo * rate + this.HALF_BASE_27) / this.BASE_27;
136
- const secondTerm = (exp * expMinusOne * basePowerTwo) / 2n;
137
- const thirdTerm = (exp * expMinusOne * expMinusTwo * basePowerThree) / 6n;
138
- return ((amount * (this.BASE_27 + rate * exp + secondTerm + thirdTerm)) /
139
- this.BASE_27);
140
- }
141
- handleAccrued(event, state, log, blockHeader) {
142
- const interest = (0, utils_1.bigIntify)(event.args.interest);
143
- state.totalAssets += interest;
144
- state.lastUpdate = (0, utils_1.bigIntify)(blockHeader.timestamp);
145
- return state;
146
- }
147
- handleRateUpdated(event, state, log, blockHeader) {
148
- state.lastUpdate = (0, utils_1.bigIntify)(blockHeader.timestamp);
149
- return state;
150
- }
151
- handleDeposit(event, state, log, blockHeader) {
152
- const assets = (0, utils_1.bigIntify)(event.args.assets);
153
- const shares = (0, utils_1.bigIntify)(event.args.shares);
154
- state.totalAssets += assets;
155
- state.totalSupply += shares;
156
- state.lastUpdate = (0, utils_1.bigIntify)(blockHeader.timestamp);
157
- return state;
158
- }
159
- handleWithdraw(event, state, log, blockHeader) {
160
- const assets = (0, utils_1.bigIntify)(event.args.assets);
161
- const shares = (0, utils_1.bigIntify)(event.args.shares);
162
- state.totalAssets -= assets;
163
- state.totalSupply -= shares;
164
- state.lastUpdate = (0, utils_1.bigIntify)(blockHeader.timestamp);
165
- return state;
166
- }
167
- handleToggledPause(event, state, log) {
168
- const pauseStatus = event.args.pauseStatus;
169
- state.paused = pauseStatus;
170
- return state;
171
- }
172
- }
173
- exports.AngleStakedStableEventPool = AngleStakedStableEventPool;
174
- AngleStakedStableEventPool.angleStakedStableIface = new abi_1.Interface(stagToken_json_1.default);
175
- //# 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,42 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { AsyncOrSync } from 'ts-essentials';
3
- import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
4
- import { SwapSide, Network } from '../../constants';
5
- import { IDex } from '../../dex/idex';
6
- import { IDexHelper } from '../../dex-helper/idex-helper';
7
- import { 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: AngleStakedStableEventPool | null;
26
- protected isPaused: boolean;
27
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings);
28
- initializePricing(blockNumber: number): Promise<void>;
29
- getAdapters(side: SwapSide): {
30
- name: string;
31
- index: number;
32
- }[] | null;
33
- getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
34
- getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<AngleStakedStableData>>;
35
- getCalldataGasCost(poolPrices: PoolPrices<AngleStakedStableData>): number | number[];
36
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AngleStakedStableData, side: SwapSide): AdapterExchangeParam;
37
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AngleStakedStableData, side: SwapSide): Promise<SimpleExchangeParam>;
38
- updatePoolState(): Promise<void>;
39
- getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
40
- releaseResources(): AsyncOrSync<void>;
41
- _knownAddress(srcToken: Token, destToken: Token): boolean;
42
- }