@juicedollar/jusd 1.0.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 (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +356 -0
  3. package/contracts/Equity.sol +457 -0
  4. package/contracts/JuiceDollar.sol +363 -0
  5. package/contracts/Leadrate.sol +79 -0
  6. package/contracts/MintingHubV2/MintingHub.sol +445 -0
  7. package/contracts/MintingHubV2/Position.sol +810 -0
  8. package/contracts/MintingHubV2/PositionFactory.sol +69 -0
  9. package/contracts/MintingHubV2/PositionRoller.sol +159 -0
  10. package/contracts/MintingHubV2/interface/IMintingHub.sol +26 -0
  11. package/contracts/MintingHubV2/interface/IPosition.sol +90 -0
  12. package/contracts/MintingHubV2/interface/IPositionFactory.sol +20 -0
  13. package/contracts/Savings.sol +141 -0
  14. package/contracts/SavingsVaultJUSD.sol +140 -0
  15. package/contracts/StablecoinBridge.sol +109 -0
  16. package/contracts/StartUSD.sol +16 -0
  17. package/contracts/gateway/CoinLendingGateway.sol +223 -0
  18. package/contracts/gateway/FrontendGateway.sol +224 -0
  19. package/contracts/gateway/MintingHubGateway.sol +87 -0
  20. package/contracts/gateway/SavingsGateway.sol +51 -0
  21. package/contracts/gateway/interface/ICoinLendingGateway.sol +73 -0
  22. package/contracts/gateway/interface/IFrontendGateway.sol +49 -0
  23. package/contracts/gateway/interface/IMintingHubGateway.sol +12 -0
  24. package/contracts/impl/ERC3009.sol +171 -0
  25. package/contracts/interface/IJuiceDollar.sol +54 -0
  26. package/contracts/interface/ILeadrate.sol +7 -0
  27. package/contracts/interface/IReserve.sol +9 -0
  28. package/contracts/interface/ISavingsJUSD.sol +49 -0
  29. package/contracts/test/FreakToken.sol +25 -0
  30. package/contracts/test/Math.sol +339 -0
  31. package/contracts/test/MockEquity.sol +15 -0
  32. package/contracts/test/PositionExpirationTest.sol +75 -0
  33. package/contracts/test/PositionRollingTest.sol +65 -0
  34. package/contracts/test/TestFlashLoan.sol +84 -0
  35. package/contracts/test/TestFlashLoanGateway.sol +49 -0
  36. package/contracts/test/TestMathUtil.sol +40 -0
  37. package/contracts/test/TestToken.sol +45 -0
  38. package/contracts/test/TestWcBTC.sol +35 -0
  39. package/contracts/utils/MathUtil.sol +61 -0
  40. package/dist/index.d.mts +8761 -0
  41. package/dist/index.d.ts +8761 -0
  42. package/dist/index.js +11119 -0
  43. package/dist/index.mjs +11073 -0
  44. package/exports/abis/MintingHubV2/PositionFactoryV2.ts +90 -0
  45. package/exports/abis/MintingHubV2/PositionRoller.ts +183 -0
  46. package/exports/abis/MintingHubV2/PositionV2.ts +999 -0
  47. package/exports/abis/core/CoinLendingGateway.ts +427 -0
  48. package/exports/abis/core/Equity.ts +1286 -0
  49. package/exports/abis/core/FrontendGateway.ts +906 -0
  50. package/exports/abis/core/JuiceDollar.ts +1366 -0
  51. package/exports/abis/core/MintingHubGateway.ts +865 -0
  52. package/exports/abis/core/SavingsGateway.ts +559 -0
  53. package/exports/abis/core/SavingsVaultJUSD.ts +920 -0
  54. package/exports/abis/utils/ERC20.ts +310 -0
  55. package/exports/abis/utils/ERC20PermitLight.ts +520 -0
  56. package/exports/abis/utils/Leadrate.ts +175 -0
  57. package/exports/abis/utils/MintingHubV2.ts +682 -0
  58. package/exports/abis/utils/Ownable.ts +76 -0
  59. package/exports/abis/utils/Savings.ts +453 -0
  60. package/exports/abis/utils/StablecoinBridge.ts +209 -0
  61. package/exports/abis/utils/StartUSD.ts +315 -0
  62. package/exports/abis/utils/UniswapV3Pool.ts +638 -0
  63. package/exports/address.config.ts +48 -0
  64. package/exports/index.ts +28 -0
  65. package/package.json +87 -0
@@ -0,0 +1,427 @@
1
+ export const CoinLendingGatewayABI = [
2
+ {
3
+ inputs: [
4
+ {
5
+ internalType: 'address',
6
+ name: '_mintingHub',
7
+ type: 'address',
8
+ },
9
+ {
10
+ internalType: 'address',
11
+ name: '_wcbtc',
12
+ type: 'address',
13
+ },
14
+ {
15
+ internalType: 'address',
16
+ name: '_jusd',
17
+ type: 'address',
18
+ },
19
+ ],
20
+ stateMutability: 'nonpayable',
21
+ type: 'constructor',
22
+ },
23
+ {
24
+ inputs: [],
25
+ name: 'DirectCBTCNotAccepted',
26
+ type: 'error',
27
+ },
28
+ {
29
+ inputs: [],
30
+ name: 'EnforcedPause',
31
+ type: 'error',
32
+ },
33
+ {
34
+ inputs: [],
35
+ name: 'ExpectedPause',
36
+ type: 'error',
37
+ },
38
+ {
39
+ inputs: [],
40
+ name: 'InsufficientCoin',
41
+ type: 'error',
42
+ },
43
+ {
44
+ inputs: [],
45
+ name: 'InvalidPosition',
46
+ type: 'error',
47
+ },
48
+ {
49
+ inputs: [
50
+ {
51
+ internalType: 'address',
52
+ name: 'owner',
53
+ type: 'address',
54
+ },
55
+ ],
56
+ name: 'OwnableInvalidOwner',
57
+ type: 'error',
58
+ },
59
+ {
60
+ inputs: [
61
+ {
62
+ internalType: 'address',
63
+ name: 'account',
64
+ type: 'address',
65
+ },
66
+ ],
67
+ name: 'OwnableUnauthorizedAccount',
68
+ type: 'error',
69
+ },
70
+ {
71
+ inputs: [],
72
+ name: 'PriceAdjustmentFailed',
73
+ type: 'error',
74
+ },
75
+ {
76
+ inputs: [],
77
+ name: 'ReentrancyGuardReentrantCall',
78
+ type: 'error',
79
+ },
80
+ {
81
+ inputs: [],
82
+ name: 'TransferFailed',
83
+ type: 'error',
84
+ },
85
+ {
86
+ anonymous: false,
87
+ inputs: [
88
+ {
89
+ indexed: true,
90
+ internalType: 'address',
91
+ name: 'to',
92
+ type: 'address',
93
+ },
94
+ {
95
+ indexed: false,
96
+ internalType: 'uint256',
97
+ name: 'amount',
98
+ type: 'uint256',
99
+ },
100
+ ],
101
+ name: 'CoinRescued',
102
+ type: 'event',
103
+ },
104
+ {
105
+ anonymous: false,
106
+ inputs: [
107
+ {
108
+ indexed: true,
109
+ internalType: 'address',
110
+ name: 'previousOwner',
111
+ type: 'address',
112
+ },
113
+ {
114
+ indexed: true,
115
+ internalType: 'address',
116
+ name: 'newOwner',
117
+ type: 'address',
118
+ },
119
+ ],
120
+ name: 'OwnershipTransferred',
121
+ type: 'event',
122
+ },
123
+ {
124
+ anonymous: false,
125
+ inputs: [
126
+ {
127
+ indexed: false,
128
+ internalType: 'address',
129
+ name: 'account',
130
+ type: 'address',
131
+ },
132
+ ],
133
+ name: 'Paused',
134
+ type: 'event',
135
+ },
136
+ {
137
+ anonymous: false,
138
+ inputs: [
139
+ {
140
+ indexed: true,
141
+ internalType: 'address',
142
+ name: 'owner',
143
+ type: 'address',
144
+ },
145
+ {
146
+ indexed: true,
147
+ internalType: 'address',
148
+ name: 'position',
149
+ type: 'address',
150
+ },
151
+ {
152
+ indexed: false,
153
+ internalType: 'uint256',
154
+ name: 'coinAmount',
155
+ type: 'uint256',
156
+ },
157
+ {
158
+ indexed: false,
159
+ internalType: 'uint256',
160
+ name: 'mintAmount',
161
+ type: 'uint256',
162
+ },
163
+ {
164
+ indexed: false,
165
+ internalType: 'uint256',
166
+ name: 'liquidationPrice',
167
+ type: 'uint256',
168
+ },
169
+ ],
170
+ name: 'PositionCreatedWithCoin',
171
+ type: 'event',
172
+ },
173
+ {
174
+ anonymous: false,
175
+ inputs: [
176
+ {
177
+ indexed: true,
178
+ internalType: 'address',
179
+ name: 'token',
180
+ type: 'address',
181
+ },
182
+ {
183
+ indexed: true,
184
+ internalType: 'address',
185
+ name: 'to',
186
+ type: 'address',
187
+ },
188
+ {
189
+ indexed: false,
190
+ internalType: 'uint256',
191
+ name: 'amount',
192
+ type: 'uint256',
193
+ },
194
+ ],
195
+ name: 'TokenRescued',
196
+ type: 'event',
197
+ },
198
+ {
199
+ anonymous: false,
200
+ inputs: [
201
+ {
202
+ indexed: false,
203
+ internalType: 'address',
204
+ name: 'account',
205
+ type: 'address',
206
+ },
207
+ ],
208
+ name: 'Unpaused',
209
+ type: 'event',
210
+ },
211
+ {
212
+ inputs: [],
213
+ name: 'JUSD',
214
+ outputs: [
215
+ {
216
+ internalType: 'contract IJuiceDollar',
217
+ name: '',
218
+ type: 'address',
219
+ },
220
+ ],
221
+ stateMutability: 'view',
222
+ type: 'function',
223
+ },
224
+ {
225
+ inputs: [],
226
+ name: 'MINTING_HUB',
227
+ outputs: [
228
+ {
229
+ internalType: 'contract IMintingHubGateway',
230
+ name: '',
231
+ type: 'address',
232
+ },
233
+ ],
234
+ stateMutability: 'view',
235
+ type: 'function',
236
+ },
237
+ {
238
+ inputs: [],
239
+ name: 'WCBTC',
240
+ outputs: [
241
+ {
242
+ internalType: 'contract IWrappedCBTC',
243
+ name: '',
244
+ type: 'address',
245
+ },
246
+ ],
247
+ stateMutability: 'view',
248
+ type: 'function',
249
+ },
250
+ {
251
+ inputs: [
252
+ {
253
+ internalType: 'address',
254
+ name: 'parent',
255
+ type: 'address',
256
+ },
257
+ {
258
+ internalType: 'uint256',
259
+ name: 'initialMint',
260
+ type: 'uint256',
261
+ },
262
+ {
263
+ internalType: 'uint40',
264
+ name: 'expiration',
265
+ type: 'uint40',
266
+ },
267
+ {
268
+ internalType: 'bytes32',
269
+ name: 'frontendCode',
270
+ type: 'bytes32',
271
+ },
272
+ {
273
+ internalType: 'uint256',
274
+ name: 'liquidationPrice',
275
+ type: 'uint256',
276
+ },
277
+ ],
278
+ name: 'lendWithCoin',
279
+ outputs: [
280
+ {
281
+ internalType: 'address',
282
+ name: 'position',
283
+ type: 'address',
284
+ },
285
+ ],
286
+ stateMutability: 'payable',
287
+ type: 'function',
288
+ },
289
+ {
290
+ inputs: [
291
+ {
292
+ internalType: 'address',
293
+ name: 'owner',
294
+ type: 'address',
295
+ },
296
+ {
297
+ internalType: 'address',
298
+ name: 'parent',
299
+ type: 'address',
300
+ },
301
+ {
302
+ internalType: 'uint256',
303
+ name: 'initialMint',
304
+ type: 'uint256',
305
+ },
306
+ {
307
+ internalType: 'uint40',
308
+ name: 'expiration',
309
+ type: 'uint40',
310
+ },
311
+ {
312
+ internalType: 'bytes32',
313
+ name: 'frontendCode',
314
+ type: 'bytes32',
315
+ },
316
+ {
317
+ internalType: 'uint256',
318
+ name: 'liquidationPrice',
319
+ type: 'uint256',
320
+ },
321
+ ],
322
+ name: 'lendWithCoinFor',
323
+ outputs: [
324
+ {
325
+ internalType: 'address',
326
+ name: 'position',
327
+ type: 'address',
328
+ },
329
+ ],
330
+ stateMutability: 'payable',
331
+ type: 'function',
332
+ },
333
+ {
334
+ inputs: [],
335
+ name: 'owner',
336
+ outputs: [
337
+ {
338
+ internalType: 'address',
339
+ name: '',
340
+ type: 'address',
341
+ },
342
+ ],
343
+ stateMutability: 'view',
344
+ type: 'function',
345
+ },
346
+ {
347
+ inputs: [],
348
+ name: 'pause',
349
+ outputs: [],
350
+ stateMutability: 'nonpayable',
351
+ type: 'function',
352
+ },
353
+ {
354
+ inputs: [],
355
+ name: 'paused',
356
+ outputs: [
357
+ {
358
+ internalType: 'bool',
359
+ name: '',
360
+ type: 'bool',
361
+ },
362
+ ],
363
+ stateMutability: 'view',
364
+ type: 'function',
365
+ },
366
+ {
367
+ inputs: [],
368
+ name: 'renounceOwnership',
369
+ outputs: [],
370
+ stateMutability: 'nonpayable',
371
+ type: 'function',
372
+ },
373
+ {
374
+ inputs: [],
375
+ name: 'rescueCoin',
376
+ outputs: [],
377
+ stateMutability: 'nonpayable',
378
+ type: 'function',
379
+ },
380
+ {
381
+ inputs: [
382
+ {
383
+ internalType: 'address',
384
+ name: 'token',
385
+ type: 'address',
386
+ },
387
+ {
388
+ internalType: 'address',
389
+ name: 'to',
390
+ type: 'address',
391
+ },
392
+ {
393
+ internalType: 'uint256',
394
+ name: 'amount',
395
+ type: 'uint256',
396
+ },
397
+ ],
398
+ name: 'rescueToken',
399
+ outputs: [],
400
+ stateMutability: 'nonpayable',
401
+ type: 'function',
402
+ },
403
+ {
404
+ inputs: [
405
+ {
406
+ internalType: 'address',
407
+ name: 'newOwner',
408
+ type: 'address',
409
+ },
410
+ ],
411
+ name: 'transferOwnership',
412
+ outputs: [],
413
+ stateMutability: 'nonpayable',
414
+ type: 'function',
415
+ },
416
+ {
417
+ inputs: [],
418
+ name: 'unpause',
419
+ outputs: [],
420
+ stateMutability: 'nonpayable',
421
+ type: 'function',
422
+ },
423
+ {
424
+ stateMutability: 'payable',
425
+ type: 'receive',
426
+ },
427
+ ] as const;