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