@venusprotocol/liquidity-hub 2.1.0-dev.4 → 2.1.0-dev.5

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 (40) hide show
  1. package/README.md +111 -30
  2. package/contracts/Hub/Hub.sol +71 -63
  3. package/contracts/adapters/AdapterCentrifuge.sol +5 -0
  4. package/contracts/adapters/AdapterCoreV1.sol +6 -0
  5. package/contracts/adapters/AdapterFRV.sol +27 -7
  6. package/contracts/adapters/AdapterFlux.sol +6 -0
  7. package/contracts/adapters/AdapterSpokeV1.sol +428 -0
  8. package/contracts/interfaces/IHub.sol +6 -0
  9. package/contracts/interfaces/IHubLens.sol +71 -0
  10. package/contracts/interfaces/IResourceAdapter.sol +23 -7
  11. package/contracts/interfaces/IYieldGroupBase.sol +6 -1
  12. package/contracts/interfaces/external/ISpokeComptroller.sol +69 -0
  13. package/contracts/interfaces/external/IVTokenIsolated.sol +153 -0
  14. package/contracts/lens/HubCapacityMath.sol +610 -0
  15. package/contracts/lens/HubLens.sol +311 -0
  16. package/deployments/bscmainnet/AdapterCentrifuge.json +21 -2
  17. package/deployments/bscmainnet/AdapterCoreV1.json +21 -2
  18. package/deployments/bscmainnet/AdapterFRV.json +21 -2
  19. package/deployments/bscmainnet/AdapterFlux.json +21 -2
  20. package/deployments/bscmainnet/AdapterSpokeV1.json +339 -0
  21. package/deployments/bscmainnet/HubImpl.json +16 -3
  22. package/deployments/bscmainnet/HubLens.json +89 -0
  23. package/deployments/bscmainnet/SpokeBeacon.json +110 -0
  24. package/deployments/bscmainnet/SpokeSource_U.json +1083 -0
  25. package/deployments/bscmainnet/SpokeSource_USDC.json +1083 -0
  26. package/deployments/bscmainnet/SpokeSource_USDT.json +1083 -0
  27. package/deployments/bscmainnet/YieldGroupSpokeImpl.json +1083 -0
  28. package/deployments/bscmainnet_addresses.json +13 -6
  29. package/deployments/bsctestnet/AdapterCentrifuge.json +21 -2
  30. package/deployments/bsctestnet/AdapterCoreV1.json +21 -2
  31. package/deployments/bsctestnet/AdapterFRV.json +21 -2
  32. package/deployments/bsctestnet/AdapterFlux.json +21 -2
  33. package/deployments/bsctestnet/AdapterSpokeV1.json +339 -0
  34. package/deployments/bsctestnet/HubImpl.json +16 -3
  35. package/deployments/bsctestnet/HubLens.json +89 -0
  36. package/deployments/bsctestnet/SpokeBeacon.json +110 -0
  37. package/deployments/bsctestnet/SpokeSource_USDT.json +1083 -0
  38. package/deployments/bsctestnet/YieldGroupSpokeImpl.json +1083 -0
  39. package/deployments/bsctestnet_addresses.json +11 -6
  40. package/package.json +1 -1
@@ -2,10 +2,11 @@
2
2
  "name": "bscmainnet",
3
3
  "chainId": 56,
4
4
  "addresses": {
5
- "AdapterCentrifuge": "0x680cE4422264ecDAd3590cB50FE254D4c153f427",
6
- "AdapterCoreV1": "0x4E514a0C7aB9d140eE204dfA0017574270D92944",
7
- "AdapterFRV": "0x1FA0365bDd603452CE96BE3c0e12Db5515a35902",
8
- "AdapterFlux": "0xA81bDf813A428053E764C34Bc679b3E4d0807be3",
5
+ "AdapterCentrifuge": "0xaa9D52758890997D91950E595886FF9CDEca81ae",
6
+ "AdapterCoreV1": "0xa061cC2F62BDa2D6bA53Fb98847aD9822DA085dd",
7
+ "AdapterFRV": "0x1824caA965Ac05ae5C9C2819e045337e2cF5657c",
8
+ "AdapterFlux": "0x9a1a7F6aebA4a1A3e85Ae1Dba90a7A2A52803404",
9
+ "AdapterSpokeV1": "0x231915FfE3e3A6Be09B0E5c73EFA2F1a4FF8Aa69",
9
10
  "CentrifugeBeacon": "0xAe90Cfb3E2Bc97508F58E7e076Acf38f3bfC820f",
10
11
  "CentrifugeSource_USDC": "0x84bAeCF7Ac76039f731a0780EB59A03b2C7B593c",
11
12
  "CentrifugeSource_USDT": "0xDA5AFfeb43719f517676E031a727071c7D400983",
@@ -22,16 +23,22 @@
22
23
  "FluxSource_USDC": "0xA65bB4b20542268B64CF08871a98D75342AFE927",
23
24
  "FluxSource_USDT": "0xe3df38E12E37ED80E1b3ccf2bdf84F9e1527ce14",
24
25
  "HubBeacon": "0x0f20e1004962e2DF16c16FC15460Dc6480626321",
25
- "HubImpl": "0x44BCabAF2e63A7B883EDeA6A721d47b4bC081d02",
26
+ "HubImpl": "0xb94925bF8Cc70d0F00226fA1f07d895Cb5Fbef4f",
27
+ "HubLens": "0xE5d8A002A794CcDba248ba774a359eF2B9E4Ba8B",
26
28
  "HubRegistry": "0x6D93Fd479f2d37445CFBe132412e316a0364acc2",
27
29
  "HubRegistryImpl": "0x4426a09d5425ca2103896A88C1e9a1F5779a4d3a",
28
30
  "Hub_U": "0x0e5AA174d4F31b757a237eb1999DE151596788B0",
29
31
  "Hub_USDC": "0x9D2D9592cF8DFbf59107fAab703d08494BE14617",
30
32
  "Hub_USDT": "0x18AfDACF30F8671021dec4b78297E39d2FE87226",
31
33
  "Migrator": "0xfe6b8BEf1215C19Cd247FbF495ef560932F1Eb9B",
34
+ "SpokeBeacon": "0x652AAa1CD21f47a92D04680C1d9Bf99cC1Fb8975",
35
+ "SpokeSource_U": "0xcA3f9AFD7C4c1022E4A37a12671Ef57B8A7bfc51",
36
+ "SpokeSource_USDC": "0x4cd4aB2F88E39D3F3e481bb2555EcdF00266f717",
37
+ "SpokeSource_USDT": "0x3cC1eDE91419dC7EC199a06704EC8ECAb665a684",
32
38
  "YieldGroupCentrifugeImpl": "0x4996aa488f5269B5C544Dab1C2d1126F6bBdFF24",
33
39
  "YieldGroupCoreImpl": "0x3BccED778CAaf97AE8ff8Bedc16d2165aA15771b",
34
40
  "YieldGroupFRVImpl": "0x72D115b1Be69a2065fED0B0574F95B3E46BD4502",
35
- "YieldGroupFluxImpl": "0xFD49a719E0bF7f588F77bBEdf10dd8E843774499"
41
+ "YieldGroupFluxImpl": "0xFD49a719E0bF7f588F77bBEdf10dd8E843774499",
42
+ "YieldGroupSpokeImpl": "0xAF3055b3b88011Db4de7e910d730Ad6F412d7b39"
36
43
  }
37
44
  }
@@ -1,6 +1,6 @@
1
1
  {
2
- "address": "0x8219375B48a9fcca0F9E5eA1c1B171524aa347E1",
3
- "block": 131148296,
2
+ "address": "0x63Ce07c3F1500B283B6d3451BdC3E3C6211a6c7F",
3
+ "block": 136536156,
4
4
  "chainId": 97,
5
5
  "contract": "AdapterCentrifuge",
6
6
  "abi": [
@@ -295,6 +295,25 @@
295
295
  "outputs": [],
296
296
  "stateMutability": "nonpayable"
297
297
  },
298
+ {
299
+ "type": "function",
300
+ "name": "resourceName",
301
+ "inputs": [
302
+ {
303
+ "name": "resource",
304
+ "type": "address",
305
+ "internalType": "address"
306
+ }
307
+ ],
308
+ "outputs": [
309
+ {
310
+ "name": "",
311
+ "type": "string",
312
+ "internalType": "string"
313
+ }
314
+ ],
315
+ "stateMutability": "view"
316
+ },
298
317
  {
299
318
  "type": "function",
300
319
  "name": "spotAPYBps",
@@ -1,6 +1,6 @@
1
1
  {
2
- "address": "0xDf669957448eCB23309eEFda4de230c62d22AE33",
3
- "block": 119459720,
2
+ "address": "0x07c80ed1F928913ab68E1fABB2fe0439CdC99F88",
3
+ "block": 136536156,
4
4
  "chainId": 97,
5
5
  "contract": "AdapterCoreV1",
6
6
  "abi": [
@@ -158,6 +158,25 @@
158
158
  ],
159
159
  "stateMutability": "view"
160
160
  },
161
+ {
162
+ "type": "function",
163
+ "name": "resourceName",
164
+ "inputs": [
165
+ {
166
+ "name": "resource",
167
+ "type": "address",
168
+ "internalType": "address"
169
+ }
170
+ ],
171
+ "outputs": [
172
+ {
173
+ "name": "",
174
+ "type": "string",
175
+ "internalType": "string"
176
+ }
177
+ ],
178
+ "stateMutability": "view"
179
+ },
161
180
  {
162
181
  "type": "function",
163
182
  "name": "spotAPYBps",
@@ -1,6 +1,6 @@
1
1
  {
2
- "address": "0xeF0E85ab9A23F50EB4595CF7e2F5461feF7E7fc5",
3
- "block": 119459746,
2
+ "address": "0xcdd9cf27C388dAc9e89De257505aff9290183537",
3
+ "block": 136536156,
4
4
  "chainId": 97,
5
5
  "contract": "AdapterFRV",
6
6
  "abi": [
@@ -132,6 +132,25 @@
132
132
  ],
133
133
  "stateMutability": "view"
134
134
  },
135
+ {
136
+ "type": "function",
137
+ "name": "resourceName",
138
+ "inputs": [
139
+ {
140
+ "name": "resource",
141
+ "type": "address",
142
+ "internalType": "address"
143
+ }
144
+ ],
145
+ "outputs": [
146
+ {
147
+ "name": "",
148
+ "type": "string",
149
+ "internalType": "string"
150
+ }
151
+ ],
152
+ "stateMutability": "view"
153
+ },
135
154
  {
136
155
  "type": "function",
137
156
  "name": "spotAPYBps",
@@ -1,6 +1,6 @@
1
1
  {
2
- "address": "0x15Dca35ae0b16BeceabAEC9Dea49630e8C601730",
3
- "block": 119459780,
2
+ "address": "0x51d8cAdc16Df3F8Cd0D1B536e943FbDcE77AC523",
3
+ "block": 136536156,
4
4
  "chainId": 97,
5
5
  "contract": "AdapterFlux",
6
6
  "abi": [
@@ -151,6 +151,25 @@
151
151
  ],
152
152
  "stateMutability": "view"
153
153
  },
154
+ {
155
+ "type": "function",
156
+ "name": "resourceName",
157
+ "inputs": [
158
+ {
159
+ "name": "resource",
160
+ "type": "address",
161
+ "internalType": "address"
162
+ }
163
+ ],
164
+ "outputs": [
165
+ {
166
+ "name": "",
167
+ "type": "string",
168
+ "internalType": "string"
169
+ }
170
+ ],
171
+ "stateMutability": "view"
172
+ },
154
173
  {
155
174
  "type": "function",
156
175
  "name": "spotAPYBps",
@@ -0,0 +1,339 @@
1
+ {
2
+ "address": "0x439034668f201B9f2D45286b4518e6DB122B5e17",
3
+ "block": 137111675,
4
+ "chainId": 97,
5
+ "contract": "AdapterSpokeV1",
6
+ "abi": [
7
+ {
8
+ "type": "constructor",
9
+ "inputs": [],
10
+ "stateMutability": "nonpayable"
11
+ },
12
+ {
13
+ "type": "function",
14
+ "name": "EXP_SCALE",
15
+ "inputs": [],
16
+ "outputs": [
17
+ {
18
+ "name": "",
19
+ "type": "uint256",
20
+ "internalType": "uint256"
21
+ }
22
+ ],
23
+ "stateMutability": "view"
24
+ },
25
+ {
26
+ "type": "function",
27
+ "name": "UNCAPPED_DEPOSIT_ROOM",
28
+ "inputs": [],
29
+ "outputs": [
30
+ {
31
+ "name": "",
32
+ "type": "uint256",
33
+ "internalType": "uint256"
34
+ }
35
+ ],
36
+ "stateMutability": "view"
37
+ },
38
+ {
39
+ "type": "function",
40
+ "name": "accrue",
41
+ "inputs": [
42
+ {
43
+ "name": "resource",
44
+ "type": "address",
45
+ "internalType": "address"
46
+ }
47
+ ],
48
+ "outputs": [],
49
+ "stateMutability": "nonpayable"
50
+ },
51
+ {
52
+ "type": "function",
53
+ "name": "asset",
54
+ "inputs": [
55
+ {
56
+ "name": "resource",
57
+ "type": "address",
58
+ "internalType": "address"
59
+ }
60
+ ],
61
+ "outputs": [
62
+ {
63
+ "name": "",
64
+ "type": "address",
65
+ "internalType": "address"
66
+ }
67
+ ],
68
+ "stateMutability": "view"
69
+ },
70
+ {
71
+ "type": "function",
72
+ "name": "deposit",
73
+ "inputs": [
74
+ {
75
+ "name": "resource",
76
+ "type": "address",
77
+ "internalType": "address"
78
+ },
79
+ {
80
+ "name": "amount",
81
+ "type": "uint256",
82
+ "internalType": "uint256"
83
+ }
84
+ ],
85
+ "outputs": [
86
+ {
87
+ "name": "deposited",
88
+ "type": "uint256",
89
+ "internalType": "uint256"
90
+ }
91
+ ],
92
+ "stateMutability": "nonpayable"
93
+ },
94
+ {
95
+ "type": "function",
96
+ "name": "maxDeposit",
97
+ "inputs": [
98
+ {
99
+ "name": "resource",
100
+ "type": "address",
101
+ "internalType": "address"
102
+ }
103
+ ],
104
+ "outputs": [
105
+ {
106
+ "name": "",
107
+ "type": "uint256",
108
+ "internalType": "uint256"
109
+ }
110
+ ],
111
+ "stateMutability": "view"
112
+ },
113
+ {
114
+ "type": "function",
115
+ "name": "maxWithdraw",
116
+ "inputs": [
117
+ {
118
+ "name": "resource",
119
+ "type": "address",
120
+ "internalType": "address"
121
+ },
122
+ {
123
+ "name": "holder",
124
+ "type": "address",
125
+ "internalType": "address"
126
+ }
127
+ ],
128
+ "outputs": [
129
+ {
130
+ "name": "",
131
+ "type": "uint256",
132
+ "internalType": "uint256"
133
+ }
134
+ ],
135
+ "stateMutability": "view"
136
+ },
137
+ {
138
+ "type": "function",
139
+ "name": "receiptBalance",
140
+ "inputs": [
141
+ {
142
+ "name": "resource",
143
+ "type": "address",
144
+ "internalType": "address"
145
+ },
146
+ {
147
+ "name": "holder",
148
+ "type": "address",
149
+ "internalType": "address"
150
+ }
151
+ ],
152
+ "outputs": [
153
+ {
154
+ "name": "",
155
+ "type": "uint256",
156
+ "internalType": "uint256"
157
+ }
158
+ ],
159
+ "stateMutability": "view"
160
+ },
161
+ {
162
+ "type": "function",
163
+ "name": "resourceName",
164
+ "inputs": [
165
+ {
166
+ "name": "resource",
167
+ "type": "address",
168
+ "internalType": "address"
169
+ }
170
+ ],
171
+ "outputs": [
172
+ {
173
+ "name": "",
174
+ "type": "string",
175
+ "internalType": "string"
176
+ }
177
+ ],
178
+ "stateMutability": "view"
179
+ },
180
+ {
181
+ "type": "function",
182
+ "name": "spotAPYBps",
183
+ "inputs": [
184
+ {
185
+ "name": "resource",
186
+ "type": "address",
187
+ "internalType": "address"
188
+ },
189
+ {
190
+ "name": "",
191
+ "type": "uint256",
192
+ "internalType": "uint256"
193
+ }
194
+ ],
195
+ "outputs": [
196
+ {
197
+ "name": "",
198
+ "type": "uint64",
199
+ "internalType": "uint64"
200
+ }
201
+ ],
202
+ "stateMutability": "view"
203
+ },
204
+ {
205
+ "type": "function",
206
+ "name": "totalAssets",
207
+ "inputs": [
208
+ {
209
+ "name": "resource",
210
+ "type": "address",
211
+ "internalType": "address"
212
+ },
213
+ {
214
+ "name": "holder",
215
+ "type": "address",
216
+ "internalType": "address"
217
+ }
218
+ ],
219
+ "outputs": [
220
+ {
221
+ "name": "",
222
+ "type": "uint256",
223
+ "internalType": "uint256"
224
+ }
225
+ ],
226
+ "stateMutability": "view"
227
+ },
228
+ {
229
+ "type": "function",
230
+ "name": "validateRegistration",
231
+ "inputs": [
232
+ {
233
+ "name": "resource",
234
+ "type": "address",
235
+ "internalType": "address"
236
+ }
237
+ ],
238
+ "outputs": [],
239
+ "stateMutability": "view"
240
+ },
241
+ {
242
+ "type": "function",
243
+ "name": "withdraw",
244
+ "inputs": [
245
+ {
246
+ "name": "resource",
247
+ "type": "address",
248
+ "internalType": "address"
249
+ },
250
+ {
251
+ "name": "amount",
252
+ "type": "uint256",
253
+ "internalType": "uint256"
254
+ },
255
+ {
256
+ "name": "to",
257
+ "type": "address",
258
+ "internalType": "address"
259
+ }
260
+ ],
261
+ "outputs": [],
262
+ "stateMutability": "nonpayable"
263
+ },
264
+ {
265
+ "type": "error",
266
+ "name": "DepositBelowOneVToken",
267
+ "inputs": [
268
+ {
269
+ "name": "resource",
270
+ "type": "address",
271
+ "internalType": "address"
272
+ },
273
+ {
274
+ "name": "amount",
275
+ "type": "uint256",
276
+ "internalType": "uint256"
277
+ },
278
+ {
279
+ "name": "minimum",
280
+ "type": "uint256",
281
+ "internalType": "uint256"
282
+ }
283
+ ]
284
+ },
285
+ {
286
+ "type": "error",
287
+ "name": "MarketNotListed",
288
+ "inputs": [
289
+ {
290
+ "name": "resource",
291
+ "type": "address",
292
+ "internalType": "address"
293
+ }
294
+ ]
295
+ },
296
+ {
297
+ "type": "error",
298
+ "name": "NotDelegateCall",
299
+ "inputs": []
300
+ },
301
+ {
302
+ "type": "error",
303
+ "name": "SupplyNotAllowed",
304
+ "inputs": [
305
+ {
306
+ "name": "resource",
307
+ "type": "address",
308
+ "internalType": "address"
309
+ },
310
+ {
311
+ "name": "supplier",
312
+ "type": "address",
313
+ "internalType": "address"
314
+ }
315
+ ]
316
+ },
317
+ {
318
+ "type": "error",
319
+ "name": "VTokenUnderfilled",
320
+ "inputs": [
321
+ {
322
+ "name": "resource",
323
+ "type": "address",
324
+ "internalType": "address"
325
+ },
326
+ {
327
+ "name": "requested",
328
+ "type": "uint256",
329
+ "internalType": "uint256"
330
+ },
331
+ {
332
+ "name": "actual",
333
+ "type": "uint256",
334
+ "internalType": "uint256"
335
+ }
336
+ ]
337
+ }
338
+ ]
339
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
- "address": "0x9Ea3900fC0a413eFCe485F19d8681498b9600A41",
3
- "block": 119459619,
2
+ "address": "0xf5BF6a82ebA3A06747f45de26D8AC9604ca5dbE4",
3
+ "block": 136535901,
4
4
  "chainId": 97,
5
5
  "contract": "Hub",
6
6
  "abi": [
@@ -594,7 +594,7 @@
594
594
  "name": "maxMint",
595
595
  "inputs": [
596
596
  {
597
- "name": "receiver",
597
+ "name": "",
598
598
  "type": "address",
599
599
  "internalType": "address"
600
600
  }
@@ -1832,6 +1832,19 @@
1832
1832
  ],
1833
1833
  "anonymous": false
1834
1834
  },
1835
+ {
1836
+ "type": "event",
1837
+ "name": "YieldGroupAccrualFailed",
1838
+ "inputs": [
1839
+ {
1840
+ "name": "yieldGroup",
1841
+ "type": "address",
1842
+ "indexed": true,
1843
+ "internalType": "address"
1844
+ }
1845
+ ],
1846
+ "anonymous": false
1847
+ },
1835
1848
  {
1836
1849
  "type": "event",
1837
1850
  "name": "YieldGroupAdded",
@@ -0,0 +1,89 @@
1
+ {
2
+ "address": "0x0D0C640AA4da71cE610EFD6a04acCE6e3Ae419C2",
3
+ "block": 137111288,
4
+ "chainId": 97,
5
+ "contract": "HubLens",
6
+ "abi": [
7
+ {
8
+ "type": "function",
9
+ "name": "depositCapacityBreakdown",
10
+ "inputs": [
11
+ {
12
+ "name": "hub",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ }
16
+ ],
17
+ "outputs": [
18
+ {
19
+ "name": "groups",
20
+ "type": "address[]",
21
+ "internalType": "address[]"
22
+ },
23
+ {
24
+ "name": "room",
25
+ "type": "uint256[]",
26
+ "internalType": "uint256[]"
27
+ }
28
+ ],
29
+ "stateMutability": "view"
30
+ },
31
+ {
32
+ "type": "function",
33
+ "name": "maxDeposit",
34
+ "inputs": [
35
+ {
36
+ "name": "hub",
37
+ "type": "address",
38
+ "internalType": "address"
39
+ }
40
+ ],
41
+ "outputs": [
42
+ {
43
+ "name": "assets",
44
+ "type": "uint256",
45
+ "internalType": "uint256"
46
+ }
47
+ ],
48
+ "stateMutability": "view"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "maxMint",
53
+ "inputs": [
54
+ {
55
+ "name": "hub",
56
+ "type": "address",
57
+ "internalType": "address"
58
+ }
59
+ ],
60
+ "outputs": [
61
+ {
62
+ "name": "shares",
63
+ "type": "uint256",
64
+ "internalType": "uint256"
65
+ }
66
+ ],
67
+ "stateMutability": "view"
68
+ },
69
+ {
70
+ "type": "function",
71
+ "name": "spotAPYBps",
72
+ "inputs": [
73
+ {
74
+ "name": "hub",
75
+ "type": "address",
76
+ "internalType": "address"
77
+ }
78
+ ],
79
+ "outputs": [
80
+ {
81
+ "name": "apyBps",
82
+ "type": "uint64",
83
+ "internalType": "uint64"
84
+ }
85
+ ],
86
+ "stateMutability": "view"
87
+ }
88
+ ]
89
+ }