@usdu-core/usdu-core 0.0.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 (107) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.env.example +6 -0
  3. package/.prettierrc.json +7 -0
  4. package/LICENSE +674 -0
  5. package/README.md +244 -0
  6. package/contracts/curve/CurveAdapterV1.sol +310 -0
  7. package/contracts/curve/CurveAdapterV1_1.sol +198 -0
  8. package/contracts/curve/helpers/ICurveStableSwapNG.json +566 -0
  9. package/contracts/curve/helpers/ICurveStableSwapNG.sol +177 -0
  10. package/contracts/deploy/VaultDeployer.sol +110 -0
  11. package/contracts/morpho/MorphoAdapterV1.sol +255 -0
  12. package/contracts/morpho/MorphoAdapterV1_1.sol +137 -0
  13. package/contracts/morpho/MorphoAdapterV1_2.sol +126 -0
  14. package/contracts/morpho/helpers/AggregatorV3Interface.sol +24 -0
  15. package/contracts/morpho/helpers/ChainlinkDataFeedLib.sol +36 -0
  16. package/contracts/morpho/helpers/ConstantsLib.sol +20 -0
  17. package/contracts/morpho/helpers/ErrorsLib.sol +17 -0
  18. package/contracts/morpho/helpers/IERC4626.sol +6 -0
  19. package/contracts/morpho/helpers/IMetaMorphoV1_1.sol +229 -0
  20. package/contracts/morpho/helpers/IMetaMorphoV1_1Factory.sol +32 -0
  21. package/contracts/morpho/helpers/IMorpho.sol +361 -0
  22. package/contracts/morpho/helpers/IMorphoCallbacks.sol +52 -0
  23. package/contracts/morpho/helpers/IMorphoChainlinkOracleV2.sol +39 -0
  24. package/contracts/morpho/helpers/IMorphoChainlinkOracleV2Factory.sol +56 -0
  25. package/contracts/morpho/helpers/IOracle.sol +15 -0
  26. package/contracts/morpho/helpers/MarketParamsLib.sol +21 -0
  27. package/contracts/morpho/helpers/MathLib.sol +45 -0
  28. package/contracts/morpho/helpers/Morpho.sol.bak +517 -0
  29. package/contracts/morpho/helpers/MorphoChainlinkOracleV2.sol +157 -0
  30. package/contracts/morpho/helpers/PendingLib.sol +47 -0
  31. package/contracts/morpho/helpers/SharesMathLib.sol +45 -0
  32. package/contracts/morpho/helpers/VaultLib.sol +18 -0
  33. package/contracts/reward/RewardDistributionV1.sol +110 -0
  34. package/contracts/reward/RewardRouterV0.sol +63 -0
  35. package/contracts/reward/Rewards.example.json +72 -0
  36. package/contracts/stablecoin/IStablecoin.sol +211 -0
  37. package/contracts/stablecoin/IStablecoinMetadata.sol +27 -0
  38. package/contracts/stablecoin/IStablecoinModifier.sol +52 -0
  39. package/contracts/stablecoin/Stablecoin.sol +376 -0
  40. package/contracts/stablecoin/libraries/ConstantsLib.sol +13 -0
  41. package/contracts/stablecoin/libraries/ErrorsLib.sol +45 -0
  42. package/contracts/stablecoin/libraries/EventsLib.sol +74 -0
  43. package/contracts/stablecoin/libraries/PendingLib.sol +38 -0
  44. package/contracts/vault/VaultAdapterRecoverV1.sol +29 -0
  45. package/contracts/vault/VaultAdapterV1.sol +126 -0
  46. package/dist/index.d.mts +16154 -0
  47. package/dist/index.d.ts +16154 -0
  48. package/dist/index.js +21134 -0
  49. package/dist/index.mjs +21061 -0
  50. package/docs/CoreVault: Integration of new Markets.md +197 -0
  51. package/docs/CoreVault: SupplyQueue.md +11 -0
  52. package/docs/Markets USDC Vault.md +35 -0
  53. package/docs/Markets USDU Vault.md +89 -0
  54. package/docs/Markets WETH Vault.md +35 -0
  55. package/docs/Overview.drawio +117 -0
  56. package/exports/abis/curve/CurveAdapterV1.ts +599 -0
  57. package/exports/abis/curve/CurveAdapterV1_1.ts +609 -0
  58. package/exports/abis/curve/CurveAdapterV1_2.ts +721 -0
  59. package/exports/abis/curve/helper/ICurveStableSwapNG.ts +1589 -0
  60. package/exports/abis/morpho/MorphoAdapterV1.ts +516 -0
  61. package/exports/abis/morpho/MorphoAdapterV1_1.ts +489 -0
  62. package/exports/abis/morpho/MorphoAdapterV1_2.ts +459 -0
  63. package/exports/abis/morpho/helper/AggregatorV3Interface.ts +113 -0
  64. package/exports/abis/morpho/helper/IMetaMorphoV1_1.ts +1483 -0
  65. package/exports/abis/morpho/helper/IMetaMorphoV1_1Base.ts +607 -0
  66. package/exports/abis/morpho/helper/IMetaMorphoV1_1StaticTyping.ts +696 -0
  67. package/exports/abis/morpho/helper/IMorpho.ts +1024 -0
  68. package/exports/abis/morpho/helper/IMorphoBase.ts +886 -0
  69. package/exports/abis/morpho/helper/IMorphoChainlinkOracleV2.ts +132 -0
  70. package/exports/abis/morpho/helper/IMorphoChainlinkOracleV2Factory.ts +109 -0
  71. package/exports/abis/morpho/helper/IMorphoFlashLoanCallback.ts +20 -0
  72. package/exports/abis/morpho/helper/IMorphoLiquidateCallback.ts +20 -0
  73. package/exports/abis/morpho/helper/IMorphoRepayCallback.ts +20 -0
  74. package/exports/abis/morpho/helper/IMorphoStaticTyping.ts +1003 -0
  75. package/exports/abis/morpho/helper/IMorphoSupplyCallback.ts +20 -0
  76. package/exports/abis/morpho/helper/IMorphoSupplyCollateralCallback.ts +20 -0
  77. package/exports/abis/morpho/helper/IMulticall.ts +21 -0
  78. package/exports/abis/morpho/helper/IOracle.ts +15 -0
  79. package/exports/abis/morpho/helper/IOwnable.ts +55 -0
  80. package/exports/abis/morpho/helper/MorphoChainlinkOracleV2.ts +188 -0
  81. package/exports/abis/openzeppelin/ERC20.ts +310 -0
  82. package/exports/abis/openzeppelin/ERC20Permit.ts +520 -0
  83. package/exports/abis/openzeppelin/IERC20.ts +185 -0
  84. package/exports/abis/openzeppelin/IERC20Metadata.ts +224 -0
  85. package/exports/abis/openzeppelin/IERC20Permit.ts +77 -0
  86. package/exports/abis/openzeppelin/IERC4626.ts +614 -0
  87. package/exports/abis/reward/RewardDistributionV1.ts +246 -0
  88. package/exports/abis/stablecoin/ErrorsLib.ts +114 -0
  89. package/exports/abis/stablecoin/EventsLib.ts +372 -0
  90. package/exports/abis/stablecoin/IStablecoin.ts +642 -0
  91. package/exports/abis/stablecoin/IStablecoinMetadata.ts +856 -0
  92. package/exports/abis/stablecoin/IStablecoinModifier.ts +15 -0
  93. package/exports/abis/stablecoin/Stablecoin.ts +1922 -0
  94. package/exports/abis/termmax/ITermMaxVault.ts +2335 -0
  95. package/exports/abis/vault/VaultAdapterRecoverV1.ts +490 -0
  96. package/exports/abis/vault/VaultAdapterV1.ts +459 -0
  97. package/exports/address.config.ts +113 -0
  98. package/exports/address.types.ts +130 -0
  99. package/exports/index.ts +61 -0
  100. package/hardhat.config.ts +231 -0
  101. package/helper/store.args.ts +17 -0
  102. package/helper/wallet.info.ts +3 -0
  103. package/helper/wallet.ts +41 -0
  104. package/install-macos.sh +46 -0
  105. package/package.json +73 -0
  106. package/tsconfig.json +15 -0
  107. package/tsup.config.ts +10 -0
@@ -0,0 +1,566 @@
1
+ [
2
+ {
3
+ "name": "Transfer",
4
+ "inputs": [
5
+ { "name": "sender", "type": "address", "indexed": true },
6
+ { "name": "receiver", "type": "address", "indexed": true },
7
+ { "name": "value", "type": "uint256", "indexed": false }
8
+ ],
9
+ "anonymous": false,
10
+ "type": "event"
11
+ },
12
+ {
13
+ "name": "Approval",
14
+ "inputs": [
15
+ { "name": "owner", "type": "address", "indexed": true },
16
+ { "name": "spender", "type": "address", "indexed": true },
17
+ { "name": "value", "type": "uint256", "indexed": false }
18
+ ],
19
+ "anonymous": false,
20
+ "type": "event"
21
+ },
22
+ {
23
+ "name": "TokenExchange",
24
+ "inputs": [
25
+ { "name": "buyer", "type": "address", "indexed": true },
26
+ { "name": "sold_id", "type": "int128", "indexed": false },
27
+ { "name": "tokens_sold", "type": "uint256", "indexed": false },
28
+ { "name": "bought_id", "type": "int128", "indexed": false },
29
+ { "name": "tokens_bought", "type": "uint256", "indexed": false }
30
+ ],
31
+ "anonymous": false,
32
+ "type": "event"
33
+ },
34
+ {
35
+ "name": "TokenExchangeUnderlying",
36
+ "inputs": [
37
+ { "name": "buyer", "type": "address", "indexed": true },
38
+ { "name": "sold_id", "type": "int128", "indexed": false },
39
+ { "name": "tokens_sold", "type": "uint256", "indexed": false },
40
+ { "name": "bought_id", "type": "int128", "indexed": false },
41
+ { "name": "tokens_bought", "type": "uint256", "indexed": false }
42
+ ],
43
+ "anonymous": false,
44
+ "type": "event"
45
+ },
46
+ {
47
+ "name": "AddLiquidity",
48
+ "inputs": [
49
+ { "name": "provider", "type": "address", "indexed": true },
50
+ { "name": "token_amounts", "type": "uint256[]", "indexed": false },
51
+ { "name": "fees", "type": "uint256[]", "indexed": false },
52
+ { "name": "invariant", "type": "uint256", "indexed": false },
53
+ { "name": "token_supply", "type": "uint256", "indexed": false }
54
+ ],
55
+ "anonymous": false,
56
+ "type": "event"
57
+ },
58
+ {
59
+ "name": "RemoveLiquidity",
60
+ "inputs": [
61
+ { "name": "provider", "type": "address", "indexed": true },
62
+ { "name": "token_amounts", "type": "uint256[]", "indexed": false },
63
+ { "name": "fees", "type": "uint256[]", "indexed": false },
64
+ { "name": "token_supply", "type": "uint256", "indexed": false }
65
+ ],
66
+ "anonymous": false,
67
+ "type": "event"
68
+ },
69
+ {
70
+ "name": "RemoveLiquidityOne",
71
+ "inputs": [
72
+ { "name": "provider", "type": "address", "indexed": true },
73
+ { "name": "token_id", "type": "int128", "indexed": false },
74
+ { "name": "token_amount", "type": "uint256", "indexed": false },
75
+ { "name": "coin_amount", "type": "uint256", "indexed": false },
76
+ { "name": "token_supply", "type": "uint256", "indexed": false }
77
+ ],
78
+ "anonymous": false,
79
+ "type": "event"
80
+ },
81
+ {
82
+ "name": "RemoveLiquidityImbalance",
83
+ "inputs": [
84
+ { "name": "provider", "type": "address", "indexed": true },
85
+ { "name": "token_amounts", "type": "uint256[]", "indexed": false },
86
+ { "name": "fees", "type": "uint256[]", "indexed": false },
87
+ { "name": "invariant", "type": "uint256", "indexed": false },
88
+ { "name": "token_supply", "type": "uint256", "indexed": false }
89
+ ],
90
+ "anonymous": false,
91
+ "type": "event"
92
+ },
93
+ {
94
+ "name": "RampA",
95
+ "inputs": [
96
+ { "name": "old_A", "type": "uint256", "indexed": false },
97
+ { "name": "new_A", "type": "uint256", "indexed": false },
98
+ { "name": "initial_time", "type": "uint256", "indexed": false },
99
+ { "name": "future_time", "type": "uint256", "indexed": false }
100
+ ],
101
+ "anonymous": false,
102
+ "type": "event"
103
+ },
104
+ {
105
+ "name": "StopRampA",
106
+ "inputs": [
107
+ { "name": "A", "type": "uint256", "indexed": false },
108
+ { "name": "t", "type": "uint256", "indexed": false }
109
+ ],
110
+ "anonymous": false,
111
+ "type": "event"
112
+ },
113
+ {
114
+ "name": "ApplyNewFee",
115
+ "inputs": [
116
+ { "name": "fee", "type": "uint256", "indexed": false },
117
+ { "name": "offpeg_fee_multiplier", "type": "uint256", "indexed": false }
118
+ ],
119
+ "anonymous": false,
120
+ "type": "event"
121
+ },
122
+ {
123
+ "name": "SetNewMATime",
124
+ "inputs": [
125
+ { "name": "ma_exp_time", "type": "uint256", "indexed": false },
126
+ { "name": "D_ma_time", "type": "uint256", "indexed": false }
127
+ ],
128
+ "anonymous": false,
129
+ "type": "event"
130
+ },
131
+ {
132
+ "stateMutability": "nonpayable",
133
+ "type": "constructor",
134
+ "inputs": [
135
+ { "name": "_name", "type": "string" },
136
+ { "name": "_symbol", "type": "string" },
137
+ { "name": "_A", "type": "uint256" },
138
+ { "name": "_fee", "type": "uint256" },
139
+ { "name": "_offpeg_fee_multiplier", "type": "uint256" },
140
+ { "name": "_ma_exp_time", "type": "uint256" },
141
+ { "name": "_coins", "type": "address[]" },
142
+ { "name": "_rate_multipliers", "type": "uint256[]" },
143
+ { "name": "_asset_types", "type": "uint8[]" },
144
+ { "name": "_method_ids", "type": "bytes4[]" },
145
+ { "name": "_oracles", "type": "address[]" }
146
+ ],
147
+ "outputs": []
148
+ },
149
+ {
150
+ "stateMutability": "nonpayable",
151
+ "type": "function",
152
+ "name": "exchange",
153
+ "inputs": [
154
+ { "name": "i", "type": "int128" },
155
+ { "name": "j", "type": "int128" },
156
+ { "name": "_dx", "type": "uint256" },
157
+ { "name": "_min_dy", "type": "uint256" }
158
+ ],
159
+ "outputs": [{ "name": "", "type": "uint256" }]
160
+ },
161
+ {
162
+ "stateMutability": "nonpayable",
163
+ "type": "function",
164
+ "name": "exchange",
165
+ "inputs": [
166
+ { "name": "i", "type": "int128" },
167
+ { "name": "j", "type": "int128" },
168
+ { "name": "_dx", "type": "uint256" },
169
+ { "name": "_min_dy", "type": "uint256" },
170
+ { "name": "_receiver", "type": "address" }
171
+ ],
172
+ "outputs": [{ "name": "", "type": "uint256" }]
173
+ },
174
+ {
175
+ "stateMutability": "nonpayable",
176
+ "type": "function",
177
+ "name": "exchange_received",
178
+ "inputs": [
179
+ { "name": "i", "type": "int128" },
180
+ { "name": "j", "type": "int128" },
181
+ { "name": "_dx", "type": "uint256" },
182
+ { "name": "_min_dy", "type": "uint256" }
183
+ ],
184
+ "outputs": [{ "name": "", "type": "uint256" }]
185
+ },
186
+ {
187
+ "stateMutability": "nonpayable",
188
+ "type": "function",
189
+ "name": "exchange_received",
190
+ "inputs": [
191
+ { "name": "i", "type": "int128" },
192
+ { "name": "j", "type": "int128" },
193
+ { "name": "_dx", "type": "uint256" },
194
+ { "name": "_min_dy", "type": "uint256" },
195
+ { "name": "_receiver", "type": "address" }
196
+ ],
197
+ "outputs": [{ "name": "", "type": "uint256" }]
198
+ },
199
+ {
200
+ "stateMutability": "nonpayable",
201
+ "type": "function",
202
+ "name": "add_liquidity",
203
+ "inputs": [
204
+ { "name": "_amounts", "type": "uint256[]" },
205
+ { "name": "_min_mint_amount", "type": "uint256" }
206
+ ],
207
+ "outputs": [{ "name": "", "type": "uint256" }]
208
+ },
209
+ {
210
+ "stateMutability": "nonpayable",
211
+ "type": "function",
212
+ "name": "add_liquidity",
213
+ "inputs": [
214
+ { "name": "_amounts", "type": "uint256[]" },
215
+ { "name": "_min_mint_amount", "type": "uint256" },
216
+ { "name": "_receiver", "type": "address" }
217
+ ],
218
+ "outputs": [{ "name": "", "type": "uint256" }]
219
+ },
220
+ {
221
+ "stateMutability": "nonpayable",
222
+ "type": "function",
223
+ "name": "remove_liquidity_one_coin",
224
+ "inputs": [
225
+ { "name": "_burn_amount", "type": "uint256" },
226
+ { "name": "i", "type": "int128" },
227
+ { "name": "_min_received", "type": "uint256" }
228
+ ],
229
+ "outputs": [{ "name": "", "type": "uint256" }]
230
+ },
231
+ {
232
+ "stateMutability": "nonpayable",
233
+ "type": "function",
234
+ "name": "remove_liquidity_one_coin",
235
+ "inputs": [
236
+ { "name": "_burn_amount", "type": "uint256" },
237
+ { "name": "i", "type": "int128" },
238
+ { "name": "_min_received", "type": "uint256" },
239
+ { "name": "_receiver", "type": "address" }
240
+ ],
241
+ "outputs": [{ "name": "", "type": "uint256" }]
242
+ },
243
+ {
244
+ "stateMutability": "nonpayable",
245
+ "type": "function",
246
+ "name": "remove_liquidity_imbalance",
247
+ "inputs": [
248
+ { "name": "_amounts", "type": "uint256[]" },
249
+ { "name": "_max_burn_amount", "type": "uint256" }
250
+ ],
251
+ "outputs": [{ "name": "", "type": "uint256" }]
252
+ },
253
+ {
254
+ "stateMutability": "nonpayable",
255
+ "type": "function",
256
+ "name": "remove_liquidity_imbalance",
257
+ "inputs": [
258
+ { "name": "_amounts", "type": "uint256[]" },
259
+ { "name": "_max_burn_amount", "type": "uint256" },
260
+ { "name": "_receiver", "type": "address" }
261
+ ],
262
+ "outputs": [{ "name": "", "type": "uint256" }]
263
+ },
264
+ {
265
+ "stateMutability": "nonpayable",
266
+ "type": "function",
267
+ "name": "remove_liquidity",
268
+ "inputs": [
269
+ { "name": "_burn_amount", "type": "uint256" },
270
+ { "name": "_min_amounts", "type": "uint256[]" }
271
+ ],
272
+ "outputs": [{ "name": "", "type": "uint256[]" }]
273
+ },
274
+ {
275
+ "stateMutability": "nonpayable",
276
+ "type": "function",
277
+ "name": "remove_liquidity",
278
+ "inputs": [
279
+ { "name": "_burn_amount", "type": "uint256" },
280
+ { "name": "_min_amounts", "type": "uint256[]" },
281
+ { "name": "_receiver", "type": "address" }
282
+ ],
283
+ "outputs": [{ "name": "", "type": "uint256[]" }]
284
+ },
285
+ {
286
+ "stateMutability": "nonpayable",
287
+ "type": "function",
288
+ "name": "remove_liquidity",
289
+ "inputs": [
290
+ { "name": "_burn_amount", "type": "uint256" },
291
+ { "name": "_min_amounts", "type": "uint256[]" },
292
+ { "name": "_receiver", "type": "address" },
293
+ { "name": "_claim_admin_fees", "type": "bool" }
294
+ ],
295
+ "outputs": [{ "name": "", "type": "uint256[]" }]
296
+ },
297
+ { "stateMutability": "nonpayable", "type": "function", "name": "withdraw_admin_fees", "inputs": [], "outputs": [] },
298
+ {
299
+ "stateMutability": "view",
300
+ "type": "function",
301
+ "name": "last_price",
302
+ "inputs": [{ "name": "i", "type": "uint256" }],
303
+ "outputs": [{ "name": "", "type": "uint256" }]
304
+ },
305
+ {
306
+ "stateMutability": "view",
307
+ "type": "function",
308
+ "name": "ema_price",
309
+ "inputs": [{ "name": "i", "type": "uint256" }],
310
+ "outputs": [{ "name": "", "type": "uint256" }]
311
+ },
312
+ {
313
+ "stateMutability": "view",
314
+ "type": "function",
315
+ "name": "get_p",
316
+ "inputs": [{ "name": "i", "type": "uint256" }],
317
+ "outputs": [{ "name": "", "type": "uint256" }]
318
+ },
319
+ {
320
+ "stateMutability": "view",
321
+ "type": "function",
322
+ "name": "price_oracle",
323
+ "inputs": [{ "name": "i", "type": "uint256" }],
324
+ "outputs": [{ "name": "", "type": "uint256" }]
325
+ },
326
+ { "stateMutability": "view", "type": "function", "name": "D_oracle", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
327
+ {
328
+ "stateMutability": "nonpayable",
329
+ "type": "function",
330
+ "name": "transfer",
331
+ "inputs": [
332
+ { "name": "_to", "type": "address" },
333
+ { "name": "_value", "type": "uint256" }
334
+ ],
335
+ "outputs": [{ "name": "", "type": "bool" }]
336
+ },
337
+ {
338
+ "stateMutability": "nonpayable",
339
+ "type": "function",
340
+ "name": "transferFrom",
341
+ "inputs": [
342
+ { "name": "_from", "type": "address" },
343
+ { "name": "_to", "type": "address" },
344
+ { "name": "_value", "type": "uint256" }
345
+ ],
346
+ "outputs": [{ "name": "", "type": "bool" }]
347
+ },
348
+ {
349
+ "stateMutability": "nonpayable",
350
+ "type": "function",
351
+ "name": "approve",
352
+ "inputs": [
353
+ { "name": "_spender", "type": "address" },
354
+ { "name": "_value", "type": "uint256" }
355
+ ],
356
+ "outputs": [{ "name": "", "type": "bool" }]
357
+ },
358
+ {
359
+ "stateMutability": "nonpayable",
360
+ "type": "function",
361
+ "name": "permit",
362
+ "inputs": [
363
+ { "name": "_owner", "type": "address" },
364
+ { "name": "_spender", "type": "address" },
365
+ { "name": "_value", "type": "uint256" },
366
+ { "name": "_deadline", "type": "uint256" },
367
+ { "name": "_v", "type": "uint8" },
368
+ { "name": "_r", "type": "bytes32" },
369
+ { "name": "_s", "type": "bytes32" }
370
+ ],
371
+ "outputs": [{ "name": "", "type": "bool" }]
372
+ },
373
+ {
374
+ "stateMutability": "view",
375
+ "type": "function",
376
+ "name": "DOMAIN_SEPARATOR",
377
+ "inputs": [],
378
+ "outputs": [{ "name": "", "type": "bytes32" }]
379
+ },
380
+ {
381
+ "stateMutability": "view",
382
+ "type": "function",
383
+ "name": "get_dx",
384
+ "inputs": [
385
+ { "name": "i", "type": "int128" },
386
+ { "name": "j", "type": "int128" },
387
+ { "name": "dy", "type": "uint256" }
388
+ ],
389
+ "outputs": [{ "name": "", "type": "uint256" }]
390
+ },
391
+ {
392
+ "stateMutability": "view",
393
+ "type": "function",
394
+ "name": "get_dy",
395
+ "inputs": [
396
+ { "name": "i", "type": "int128" },
397
+ { "name": "j", "type": "int128" },
398
+ { "name": "dx", "type": "uint256" }
399
+ ],
400
+ "outputs": [{ "name": "", "type": "uint256" }]
401
+ },
402
+ {
403
+ "stateMutability": "view",
404
+ "type": "function",
405
+ "name": "calc_withdraw_one_coin",
406
+ "inputs": [
407
+ { "name": "_burn_amount", "type": "uint256" },
408
+ { "name": "i", "type": "int128" }
409
+ ],
410
+ "outputs": [{ "name": "", "type": "uint256" }]
411
+ },
412
+ { "stateMutability": "view", "type": "function", "name": "totalSupply", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
413
+ {
414
+ "stateMutability": "view",
415
+ "type": "function",
416
+ "name": "get_virtual_price",
417
+ "inputs": [],
418
+ "outputs": [{ "name": "", "type": "uint256" }]
419
+ },
420
+ {
421
+ "stateMutability": "view",
422
+ "type": "function",
423
+ "name": "calc_token_amount",
424
+ "inputs": [
425
+ { "name": "_amounts", "type": "uint256[]" },
426
+ { "name": "_is_deposit", "type": "bool" }
427
+ ],
428
+ "outputs": [{ "name": "", "type": "uint256" }]
429
+ },
430
+ { "stateMutability": "view", "type": "function", "name": "A", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
431
+ { "stateMutability": "view", "type": "function", "name": "A_precise", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
432
+ {
433
+ "stateMutability": "view",
434
+ "type": "function",
435
+ "name": "balances",
436
+ "inputs": [{ "name": "i", "type": "uint256" }],
437
+ "outputs": [{ "name": "", "type": "uint256" }]
438
+ },
439
+ {
440
+ "stateMutability": "view",
441
+ "type": "function",
442
+ "name": "get_balances",
443
+ "inputs": [],
444
+ "outputs": [{ "name": "", "type": "uint256[]" }]
445
+ },
446
+ {
447
+ "stateMutability": "view",
448
+ "type": "function",
449
+ "name": "stored_rates",
450
+ "inputs": [],
451
+ "outputs": [{ "name": "", "type": "uint256[]" }]
452
+ },
453
+ {
454
+ "stateMutability": "view",
455
+ "type": "function",
456
+ "name": "dynamic_fee",
457
+ "inputs": [
458
+ { "name": "i", "type": "int128" },
459
+ { "name": "j", "type": "int128" }
460
+ ],
461
+ "outputs": [{ "name": "", "type": "uint256" }]
462
+ },
463
+ {
464
+ "stateMutability": "nonpayable",
465
+ "type": "function",
466
+ "name": "ramp_A",
467
+ "inputs": [
468
+ { "name": "_future_A", "type": "uint256" },
469
+ { "name": "_future_time", "type": "uint256" }
470
+ ],
471
+ "outputs": []
472
+ },
473
+ { "stateMutability": "nonpayable", "type": "function", "name": "stop_ramp_A", "inputs": [], "outputs": [] },
474
+ {
475
+ "stateMutability": "nonpayable",
476
+ "type": "function",
477
+ "name": "set_new_fee",
478
+ "inputs": [
479
+ { "name": "_new_fee", "type": "uint256" },
480
+ { "name": "_new_offpeg_fee_multiplier", "type": "uint256" }
481
+ ],
482
+ "outputs": []
483
+ },
484
+ {
485
+ "stateMutability": "nonpayable",
486
+ "type": "function",
487
+ "name": "set_ma_exp_time",
488
+ "inputs": [
489
+ { "name": "_ma_exp_time", "type": "uint256" },
490
+ { "name": "_D_ma_time", "type": "uint256" }
491
+ ],
492
+ "outputs": []
493
+ },
494
+ { "stateMutability": "view", "type": "function", "name": "N_COINS", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
495
+ {
496
+ "stateMutability": "view",
497
+ "type": "function",
498
+ "name": "coins",
499
+ "inputs": [{ "name": "arg0", "type": "uint256" }],
500
+ "outputs": [{ "name": "", "type": "address" }]
501
+ },
502
+ { "stateMutability": "view", "type": "function", "name": "fee", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
503
+ {
504
+ "stateMutability": "view",
505
+ "type": "function",
506
+ "name": "offpeg_fee_multiplier",
507
+ "inputs": [],
508
+ "outputs": [{ "name": "", "type": "uint256" }]
509
+ },
510
+ { "stateMutability": "view", "type": "function", "name": "admin_fee", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
511
+ { "stateMutability": "view", "type": "function", "name": "initial_A", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
512
+ { "stateMutability": "view", "type": "function", "name": "future_A", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
513
+ {
514
+ "stateMutability": "view",
515
+ "type": "function",
516
+ "name": "initial_A_time",
517
+ "inputs": [],
518
+ "outputs": [{ "name": "", "type": "uint256" }]
519
+ },
520
+ {
521
+ "stateMutability": "view",
522
+ "type": "function",
523
+ "name": "future_A_time",
524
+ "inputs": [],
525
+ "outputs": [{ "name": "", "type": "uint256" }]
526
+ },
527
+ {
528
+ "stateMutability": "view",
529
+ "type": "function",
530
+ "name": "admin_balances",
531
+ "inputs": [{ "name": "arg0", "type": "uint256" }],
532
+ "outputs": [{ "name": "", "type": "uint256" }]
533
+ },
534
+ { "stateMutability": "view", "type": "function", "name": "ma_exp_time", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
535
+ { "stateMutability": "view", "type": "function", "name": "D_ma_time", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
536
+ { "stateMutability": "view", "type": "function", "name": "ma_last_time", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }] },
537
+ { "stateMutability": "view", "type": "function", "name": "name", "inputs": [], "outputs": [{ "name": "", "type": "string" }] },
538
+ { "stateMutability": "view", "type": "function", "name": "symbol", "inputs": [], "outputs": [{ "name": "", "type": "string" }] },
539
+ { "stateMutability": "view", "type": "function", "name": "decimals", "inputs": [], "outputs": [{ "name": "", "type": "uint8" }] },
540
+ { "stateMutability": "view", "type": "function", "name": "version", "inputs": [], "outputs": [{ "name": "", "type": "string" }] },
541
+ {
542
+ "stateMutability": "view",
543
+ "type": "function",
544
+ "name": "balanceOf",
545
+ "inputs": [{ "name": "arg0", "type": "address" }],
546
+ "outputs": [{ "name": "", "type": "uint256" }]
547
+ },
548
+ {
549
+ "stateMutability": "view",
550
+ "type": "function",
551
+ "name": "allowance",
552
+ "inputs": [
553
+ { "name": "arg0", "type": "address" },
554
+ { "name": "arg1", "type": "address" }
555
+ ],
556
+ "outputs": [{ "name": "", "type": "uint256" }]
557
+ },
558
+ {
559
+ "stateMutability": "view",
560
+ "type": "function",
561
+ "name": "nonces",
562
+ "inputs": [{ "name": "arg0", "type": "address" }],
563
+ "outputs": [{ "name": "", "type": "uint256" }]
564
+ },
565
+ { "stateMutability": "view", "type": "function", "name": "salt", "inputs": [], "outputs": [{ "name": "", "type": "bytes32" }] }
566
+ ]