@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,315 @@
1
+ export const StartUSDABI = [
2
+ {
3
+ inputs: [],
4
+ stateMutability: 'nonpayable',
5
+ type: 'constructor',
6
+ },
7
+ {
8
+ inputs: [
9
+ {
10
+ internalType: 'address',
11
+ name: 'spender',
12
+ type: 'address',
13
+ },
14
+ {
15
+ internalType: 'uint256',
16
+ name: 'allowance',
17
+ type: 'uint256',
18
+ },
19
+ {
20
+ internalType: 'uint256',
21
+ name: 'needed',
22
+ type: 'uint256',
23
+ },
24
+ ],
25
+ name: 'ERC20InsufficientAllowance',
26
+ type: 'error',
27
+ },
28
+ {
29
+ inputs: [
30
+ {
31
+ internalType: 'address',
32
+ name: 'sender',
33
+ type: 'address',
34
+ },
35
+ {
36
+ internalType: 'uint256',
37
+ name: 'balance',
38
+ type: 'uint256',
39
+ },
40
+ {
41
+ internalType: 'uint256',
42
+ name: 'needed',
43
+ type: 'uint256',
44
+ },
45
+ ],
46
+ name: 'ERC20InsufficientBalance',
47
+ type: 'error',
48
+ },
49
+ {
50
+ inputs: [
51
+ {
52
+ internalType: 'address',
53
+ name: 'approver',
54
+ type: 'address',
55
+ },
56
+ ],
57
+ name: 'ERC20InvalidApprover',
58
+ type: 'error',
59
+ },
60
+ {
61
+ inputs: [
62
+ {
63
+ internalType: 'address',
64
+ name: 'receiver',
65
+ type: 'address',
66
+ },
67
+ ],
68
+ name: 'ERC20InvalidReceiver',
69
+ type: 'error',
70
+ },
71
+ {
72
+ inputs: [
73
+ {
74
+ internalType: 'address',
75
+ name: 'sender',
76
+ type: 'address',
77
+ },
78
+ ],
79
+ name: 'ERC20InvalidSender',
80
+ type: 'error',
81
+ },
82
+ {
83
+ inputs: [
84
+ {
85
+ internalType: 'address',
86
+ name: 'spender',
87
+ type: 'address',
88
+ },
89
+ ],
90
+ name: 'ERC20InvalidSpender',
91
+ type: 'error',
92
+ },
93
+ {
94
+ anonymous: false,
95
+ inputs: [
96
+ {
97
+ indexed: true,
98
+ internalType: 'address',
99
+ name: 'owner',
100
+ type: 'address',
101
+ },
102
+ {
103
+ indexed: true,
104
+ internalType: 'address',
105
+ name: 'spender',
106
+ type: 'address',
107
+ },
108
+ {
109
+ indexed: false,
110
+ internalType: 'uint256',
111
+ name: 'value',
112
+ type: 'uint256',
113
+ },
114
+ ],
115
+ name: 'Approval',
116
+ type: 'event',
117
+ },
118
+ {
119
+ anonymous: false,
120
+ inputs: [
121
+ {
122
+ indexed: true,
123
+ internalType: 'address',
124
+ name: 'from',
125
+ type: 'address',
126
+ },
127
+ {
128
+ indexed: true,
129
+ internalType: 'address',
130
+ name: 'to',
131
+ type: 'address',
132
+ },
133
+ {
134
+ indexed: false,
135
+ internalType: 'uint256',
136
+ name: 'value',
137
+ type: 'uint256',
138
+ },
139
+ ],
140
+ name: 'Transfer',
141
+ type: 'event',
142
+ },
143
+ {
144
+ inputs: [
145
+ {
146
+ internalType: 'address',
147
+ name: 'owner',
148
+ type: 'address',
149
+ },
150
+ {
151
+ internalType: 'address',
152
+ name: 'spender',
153
+ type: 'address',
154
+ },
155
+ ],
156
+ name: 'allowance',
157
+ outputs: [
158
+ {
159
+ internalType: 'uint256',
160
+ name: '',
161
+ type: 'uint256',
162
+ },
163
+ ],
164
+ stateMutability: 'view',
165
+ type: 'function',
166
+ },
167
+ {
168
+ inputs: [
169
+ {
170
+ internalType: 'address',
171
+ name: 'spender',
172
+ type: 'address',
173
+ },
174
+ {
175
+ internalType: 'uint256',
176
+ name: 'value',
177
+ type: 'uint256',
178
+ },
179
+ ],
180
+ name: 'approve',
181
+ outputs: [
182
+ {
183
+ internalType: 'bool',
184
+ name: '',
185
+ type: 'bool',
186
+ },
187
+ ],
188
+ stateMutability: 'nonpayable',
189
+ type: 'function',
190
+ },
191
+ {
192
+ inputs: [
193
+ {
194
+ internalType: 'address',
195
+ name: 'account',
196
+ type: 'address',
197
+ },
198
+ ],
199
+ name: 'balanceOf',
200
+ outputs: [
201
+ {
202
+ internalType: 'uint256',
203
+ name: '',
204
+ type: 'uint256',
205
+ },
206
+ ],
207
+ stateMutability: 'view',
208
+ type: 'function',
209
+ },
210
+ {
211
+ inputs: [],
212
+ name: 'decimals',
213
+ outputs: [
214
+ {
215
+ internalType: 'uint8',
216
+ name: '',
217
+ type: 'uint8',
218
+ },
219
+ ],
220
+ stateMutability: 'view',
221
+ type: 'function',
222
+ },
223
+ {
224
+ inputs: [],
225
+ name: 'name',
226
+ outputs: [
227
+ {
228
+ internalType: 'string',
229
+ name: '',
230
+ type: 'string',
231
+ },
232
+ ],
233
+ stateMutability: 'view',
234
+ type: 'function',
235
+ },
236
+ {
237
+ inputs: [],
238
+ name: 'symbol',
239
+ outputs: [
240
+ {
241
+ internalType: 'string',
242
+ name: '',
243
+ type: 'string',
244
+ },
245
+ ],
246
+ stateMutability: 'view',
247
+ type: 'function',
248
+ },
249
+ {
250
+ inputs: [],
251
+ name: 'totalSupply',
252
+ outputs: [
253
+ {
254
+ internalType: 'uint256',
255
+ name: '',
256
+ type: 'uint256',
257
+ },
258
+ ],
259
+ stateMutability: 'view',
260
+ type: 'function',
261
+ },
262
+ {
263
+ inputs: [
264
+ {
265
+ internalType: 'address',
266
+ name: 'to',
267
+ type: 'address',
268
+ },
269
+ {
270
+ internalType: 'uint256',
271
+ name: 'value',
272
+ type: 'uint256',
273
+ },
274
+ ],
275
+ name: 'transfer',
276
+ outputs: [
277
+ {
278
+ internalType: 'bool',
279
+ name: '',
280
+ type: 'bool',
281
+ },
282
+ ],
283
+ stateMutability: 'nonpayable',
284
+ type: 'function',
285
+ },
286
+ {
287
+ inputs: [
288
+ {
289
+ internalType: 'address',
290
+ name: 'from',
291
+ type: 'address',
292
+ },
293
+ {
294
+ internalType: 'address',
295
+ name: 'to',
296
+ type: 'address',
297
+ },
298
+ {
299
+ internalType: 'uint256',
300
+ name: 'value',
301
+ type: 'uint256',
302
+ },
303
+ ],
304
+ name: 'transferFrom',
305
+ outputs: [
306
+ {
307
+ internalType: 'bool',
308
+ name: '',
309
+ type: 'bool',
310
+ },
311
+ ],
312
+ stateMutability: 'nonpayable',
313
+ type: 'function',
314
+ },
315
+ ] as const;