@rev-net/core-v6 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.
- package/LICENSE +21 -0
- package/README.md +65 -0
- package/REVNET_SECURITY_CHECKLIST.md +164 -0
- package/SECURITY.md +68 -0
- package/SKILLS.md +166 -0
- package/deployments/revnet-core-v5/arbitrum/REVDeployer.json +2821 -0
- package/deployments/revnet-core-v5/arbitrum/REVLoans.json +2260 -0
- package/deployments/revnet-core-v5/arbitrum_sepolia/REVDeployer.json +2821 -0
- package/deployments/revnet-core-v5/arbitrum_sepolia/REVLoans.json +2260 -0
- package/deployments/revnet-core-v5/base/REVDeployer.json +2825 -0
- package/deployments/revnet-core-v5/base/REVLoans.json +2264 -0
- package/deployments/revnet-core-v5/base_sepolia/REVDeployer.json +2825 -0
- package/deployments/revnet-core-v5/base_sepolia/REVLoans.json +2264 -0
- package/deployments/revnet-core-v5/ethereum/REVDeployer.json +2825 -0
- package/deployments/revnet-core-v5/ethereum/REVLoans.json +2264 -0
- package/deployments/revnet-core-v5/optimism/REVDeployer.json +2821 -0
- package/deployments/revnet-core-v5/optimism/REVLoans.json +2260 -0
- package/deployments/revnet-core-v5/optimism_sepolia/REVDeployer.json +2825 -0
- package/deployments/revnet-core-v5/optimism_sepolia/REVLoans.json +2264 -0
- package/deployments/revnet-core-v5/sepolia/REVDeployer.json +2825 -0
- package/deployments/revnet-core-v5/sepolia/REVLoans.json +2264 -0
- package/docs/book.css +13 -0
- package/docs/book.toml +13 -0
- package/docs/solidity.min.js +74 -0
- package/docs/src/README.md +88 -0
- package/docs/src/SUMMARY.md +20 -0
- package/docs/src/src/README.md +7 -0
- package/docs/src/src/REVDeployer.sol/contract.REVDeployer.md +968 -0
- package/docs/src/src/REVLoans.sol/contract.REVLoans.md +1047 -0
- package/docs/src/src/interfaces/IREVDeployer.sol/interface.IREVDeployer.md +243 -0
- package/docs/src/src/interfaces/IREVLoans.sol/interface.IREVLoans.md +296 -0
- package/docs/src/src/interfaces/README.md +5 -0
- package/docs/src/src/structs/README.md +14 -0
- package/docs/src/src/structs/REVAutoIssuance.sol/struct.REVAutoIssuance.md +19 -0
- package/docs/src/src/structs/REVBuybackHookConfig.sol/struct.REVBuybackHookConfig.md +19 -0
- package/docs/src/src/structs/REVBuybackPoolConfig.sol/struct.REVBuybackPoolConfig.md +21 -0
- package/docs/src/src/structs/REVConfig.sol/struct.REVConfig.md +35 -0
- package/docs/src/src/structs/REVCroptopAllowedPost.sol/struct.REVCroptopAllowedPost.md +28 -0
- package/docs/src/src/structs/REVDeploy721TiersHookConfig.sol/struct.REVDeploy721TiersHookConfig.md +34 -0
- package/docs/src/src/structs/REVDescription.sol/struct.REVDescription.md +23 -0
- package/docs/src/src/structs/REVLoan.sol/struct.REVLoan.md +28 -0
- package/docs/src/src/structs/REVLoanSource.sol/struct.REVLoanSource.md +16 -0
- package/docs/src/src/structs/REVStageConfig.sol/struct.REVStageConfig.md +44 -0
- package/docs/src/src/structs/REVSuckerDeploymentConfig.sol/struct.REVSuckerDeploymentConfig.md +16 -0
- package/foundry.lock +11 -0
- package/foundry.toml +23 -0
- package/package.json +31 -0
- package/remappings.txt +1 -0
- package/script/Deploy.s.sol +350 -0
- package/script/helpers/RevnetCoreDeploymentLib.sol +72 -0
- package/slither-ci.config.json +10 -0
- package/sphinx.lock +507 -0
- package/src/REVDeployer.sol +1257 -0
- package/src/REVLoans.sol +1333 -0
- package/src/interfaces/IREVDeployer.sol +198 -0
- package/src/interfaces/IREVLoans.sol +241 -0
- package/src/structs/REVAutoIssuance.sol +11 -0
- package/src/structs/REVConfig.sol +17 -0
- package/src/structs/REVCroptopAllowedPost.sol +20 -0
- package/src/structs/REVDeploy721TiersHookConfig.sol +25 -0
- package/src/structs/REVDescription.sol +14 -0
- package/src/structs/REVLoan.sol +19 -0
- package/src/structs/REVLoanSource.sol +11 -0
- package/src/structs/REVStageConfig.sol +34 -0
- package/src/structs/REVSuckerDeploymentConfig.sol +11 -0
- package/test/REV.integrations.t.sol +420 -0
- package/test/REVAutoIssuanceFuzz.t.sol +276 -0
- package/test/REVDeployerAuditRegressions.t.sol +328 -0
- package/test/REVInvincibility.t.sol +1275 -0
- package/test/REVInvincibilityHandler.sol +357 -0
- package/test/REVLifecycle.t.sol +364 -0
- package/test/REVLoans.invariants.t.sol +642 -0
- package/test/REVLoansAttacks.t.sol +739 -0
- package/test/REVLoansAuditRegressions.t.sol +314 -0
- package/test/REVLoansFeeRecovery.t.sol +704 -0
- package/test/REVLoansSourced.t.sol +1732 -0
- package/test/REVLoansUnSourced.t.sol +331 -0
- package/test/TestPR09_ConversionDocumentation.t.sol +304 -0
- package/test/TestPR10_LiquidationBehavior.t.sol +340 -0
- package/test/TestPR11_LowFindings.t.sol +571 -0
- package/test/TestPR12_FlashLoanSurplus.t.sol +305 -0
- package/test/TestPR13_CrossSourceReallocation.t.sol +302 -0
- package/test/TestPR15_CashOutCallerValidation.t.sol +320 -0
- package/test/TestPR16_ZeroRepayment.t.sol +297 -0
- package/test/TestPR21_Uint112Overflow.t.sol +251 -0
- package/test/TestPR22_HookArrayOOB.t.sol +221 -0
- package/test/TestPR26_BurnHeldTokens.t.sol +331 -0
- package/test/TestPR27_CEIPattern.t.sol +448 -0
- package/test/TestPR29_SwapTerminalPermission.t.sol +206 -0
- package/test/TestPR32_MixedFixes.t.sol +529 -0
- package/test/helpers/MaliciousContracts.sol +233 -0
- package/test/mock/MockBuybackDataHook.sol +61 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# IREVDeployer
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/interfaces/IREVDeployer.sol)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
### CASH_OUT_DELAY
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
```solidity
|
|
10
|
+
function CASH_OUT_DELAY() external view returns (uint256);
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### CONTROLLER
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
```solidity
|
|
17
|
+
function CONTROLLER() external view returns (IJBController);
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### DIRECTORY
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
```solidity
|
|
24
|
+
function DIRECTORY() external view returns (IJBDirectory);
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### PROJECTS
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
```solidity
|
|
31
|
+
function PROJECTS() external view returns (IJBProjects);
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### PERMISSIONS
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
```solidity
|
|
38
|
+
function PERMISSIONS() external view returns (IJBPermissions);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### FEE
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
```solidity
|
|
45
|
+
function FEE() external view returns (uint256);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### SUCKER_REGISTRY
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
```solidity
|
|
52
|
+
function SUCKER_REGISTRY() external view returns (IJBSuckerRegistry);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### FEE_REVNET_ID
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
```solidity
|
|
59
|
+
function FEE_REVNET_ID() external view returns (uint256);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### PUBLISHER
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
```solidity
|
|
66
|
+
function PUBLISHER() external view returns (CTPublisher);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### HOOK_DEPLOYER
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
```solidity
|
|
73
|
+
function HOOK_DEPLOYER() external view returns (IJB721TiersHookDeployer);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### amountToAutoIssue
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
```solidity
|
|
80
|
+
function amountToAutoIssue(uint256 revnetId, uint256 stageId, address beneficiary) external view returns (uint256);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### buybackHookOf
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
```solidity
|
|
87
|
+
function buybackHookOf(uint256 revnetId) external view returns (IJBRulesetDataHook);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### cashOutDelayOf
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
```solidity
|
|
94
|
+
function cashOutDelayOf(uint256 revnetId) external view returns (uint256);
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### deploySuckersFor
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
```solidity
|
|
101
|
+
function deploySuckersFor(
|
|
102
|
+
uint256 revnetId,
|
|
103
|
+
REVSuckerDeploymentConfig calldata suckerDeploymentConfiguration
|
|
104
|
+
)
|
|
105
|
+
external
|
|
106
|
+
returns (address[] memory suckers);
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### hashedEncodedConfigurationOf
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
```solidity
|
|
113
|
+
function hashedEncodedConfigurationOf(uint256 revnetId) external view returns (bytes32);
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### isSplitOperatorOf
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
```solidity
|
|
120
|
+
function isSplitOperatorOf(uint256 revnetId, address addr) external view returns (bool);
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### loansOf
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
```solidity
|
|
127
|
+
function loansOf(uint256 revnetId) external view returns (address);
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### tiered721HookOf
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
```solidity
|
|
134
|
+
function tiered721HookOf(uint256 revnetId) external view returns (IJB721TiersHook);
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### autoIssueFor
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
```solidity
|
|
141
|
+
function autoIssueFor(uint256 revnetId, uint256 stageId, address beneficiary) external;
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### deployFor
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
```solidity
|
|
148
|
+
function deployFor(
|
|
149
|
+
uint256 revnetId,
|
|
150
|
+
REVConfig memory configuration,
|
|
151
|
+
JBTerminalConfig[] memory terminalConfigurations,
|
|
152
|
+
REVBuybackHookConfig memory buybackHookConfiguration,
|
|
153
|
+
REVSuckerDeploymentConfig memory suckerDeploymentConfiguration
|
|
154
|
+
)
|
|
155
|
+
external
|
|
156
|
+
returns (uint256);
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### deployWith721sFor
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
```solidity
|
|
163
|
+
function deployWith721sFor(
|
|
164
|
+
uint256 revnetId,
|
|
165
|
+
REVConfig calldata configuration,
|
|
166
|
+
JBTerminalConfig[] memory terminalConfigurations,
|
|
167
|
+
REVBuybackHookConfig memory buybackHookConfiguration,
|
|
168
|
+
REVSuckerDeploymentConfig memory suckerDeploymentConfiguration,
|
|
169
|
+
REVDeploy721TiersHookConfig memory tiered721HookConfiguration,
|
|
170
|
+
REVCroptopAllowedPost[] memory allowedPosts
|
|
171
|
+
)
|
|
172
|
+
external
|
|
173
|
+
returns (uint256, IJB721TiersHook hook);
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### setSplitOperatorOf
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
```solidity
|
|
180
|
+
function setSplitOperatorOf(uint256 revnetId, address newSplitOperator) external;
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Events
|
|
184
|
+
### ReplaceSplitOperator
|
|
185
|
+
|
|
186
|
+
```solidity
|
|
187
|
+
event ReplaceSplitOperator(uint256 indexed revnetId, address indexed newSplitOperator, address caller);
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### DeploySuckers
|
|
191
|
+
|
|
192
|
+
```solidity
|
|
193
|
+
event DeploySuckers(
|
|
194
|
+
uint256 indexed revnetId,
|
|
195
|
+
bytes32 encodedConfigurationHash,
|
|
196
|
+
REVSuckerDeploymentConfig suckerDeploymentConfiguration,
|
|
197
|
+
address caller
|
|
198
|
+
);
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### DeployRevnet
|
|
202
|
+
|
|
203
|
+
```solidity
|
|
204
|
+
event DeployRevnet(
|
|
205
|
+
uint256 indexed revnetId,
|
|
206
|
+
REVConfig configuration,
|
|
207
|
+
JBTerminalConfig[] terminalConfigurations,
|
|
208
|
+
REVBuybackHookConfig buybackHookConfiguration,
|
|
209
|
+
REVSuckerDeploymentConfig suckerDeploymentConfiguration,
|
|
210
|
+
JBRulesetConfig[] rulesetConfigurations,
|
|
211
|
+
bytes32 encodedConfigurationHash,
|
|
212
|
+
address caller
|
|
213
|
+
);
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### SetCashOutDelay
|
|
217
|
+
|
|
218
|
+
```solidity
|
|
219
|
+
event SetCashOutDelay(uint256 indexed revnetId, uint256 cashOutDelay, address caller);
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### AutoIssue
|
|
223
|
+
|
|
224
|
+
```solidity
|
|
225
|
+
event AutoIssue(
|
|
226
|
+
uint256 indexed revnetId, uint256 indexed stageId, address indexed beneficiary, uint256 count, address caller
|
|
227
|
+
);
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### StoreAutoIssuanceAmount
|
|
231
|
+
|
|
232
|
+
```solidity
|
|
233
|
+
event StoreAutoIssuanceAmount(
|
|
234
|
+
uint256 indexed revnetId, uint256 indexed stageId, address indexed beneficiary, uint256 count, address caller
|
|
235
|
+
);
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### SetAdditionalOperator
|
|
239
|
+
|
|
240
|
+
```solidity
|
|
241
|
+
event SetAdditionalOperator(uint256 revnetId, address additionalOperator, uint256[] permissionIds, address caller);
|
|
242
|
+
```
|
|
243
|
+
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# IREVLoans
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/interfaces/IREVLoans.sol)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
### LOAN_LIQUIDATION_DURATION
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
```solidity
|
|
10
|
+
function LOAN_LIQUIDATION_DURATION() external view returns (uint256);
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### PERMIT2
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
```solidity
|
|
17
|
+
function PERMIT2() external view returns (IPermit2);
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### CONTROLLER
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
```solidity
|
|
24
|
+
function CONTROLLER() external view returns (IJBController);
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### REVNETS
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
```solidity
|
|
31
|
+
function REVNETS() external view returns (IREVDeployer);
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### DIRECTORY
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
```solidity
|
|
38
|
+
function DIRECTORY() external view returns (IJBDirectory);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### PRICES
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
```solidity
|
|
45
|
+
function PRICES() external view returns (IJBPrices);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### PROJECTS
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
```solidity
|
|
52
|
+
function PROJECTS() external view returns (IJBProjects);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### REV_ID
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
```solidity
|
|
59
|
+
function REV_ID() external view returns (uint256);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### REV_PREPAID_FEE_PERCENT
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
```solidity
|
|
66
|
+
function REV_PREPAID_FEE_PERCENT() external view returns (uint256);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### MIN_PREPAID_FEE_PERCENT
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
```solidity
|
|
73
|
+
function MIN_PREPAID_FEE_PERCENT() external view returns (uint256);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### MAX_PREPAID_FEE_PERCENT
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
```solidity
|
|
80
|
+
function MAX_PREPAID_FEE_PERCENT() external view returns (uint256);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### borrowableAmountFrom
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
```solidity
|
|
87
|
+
function borrowableAmountFrom(
|
|
88
|
+
uint256 revnetId,
|
|
89
|
+
uint256 collateral,
|
|
90
|
+
uint256 decimals,
|
|
91
|
+
uint256 currency
|
|
92
|
+
)
|
|
93
|
+
external
|
|
94
|
+
view
|
|
95
|
+
returns (uint256);
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### determineSourceFeeAmount
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
```solidity
|
|
102
|
+
function determineSourceFeeAmount(
|
|
103
|
+
REVLoan memory loan,
|
|
104
|
+
uint256 amount
|
|
105
|
+
)
|
|
106
|
+
external
|
|
107
|
+
view
|
|
108
|
+
returns (uint256 sourceFeeAmount);
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### isLoanSourceOf
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
```solidity
|
|
115
|
+
function isLoanSourceOf(uint256 revnetId, IJBPayoutTerminal terminal, address token) external view returns (bool);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### loanOf
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
```solidity
|
|
122
|
+
function loanOf(uint256 loanId) external view returns (REVLoan memory);
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### loanSourcesOf
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
```solidity
|
|
129
|
+
function loanSourcesOf(uint256 revnetId) external view returns (REVLoanSource[] memory);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### numberOfLoansFor
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
```solidity
|
|
136
|
+
function numberOfLoansFor(uint256 revnetId) external view returns (uint256);
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### revnetIdOfLoanWith
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
```solidity
|
|
143
|
+
function revnetIdOfLoanWith(uint256 loanId) external view returns (uint256);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### tokenUriResolver
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
```solidity
|
|
150
|
+
function tokenUriResolver() external view returns (IJBTokenUriResolver);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### totalBorrowedFrom
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
```solidity
|
|
157
|
+
function totalBorrowedFrom(
|
|
158
|
+
uint256 revnetId,
|
|
159
|
+
IJBPayoutTerminal terminal,
|
|
160
|
+
address token
|
|
161
|
+
)
|
|
162
|
+
external
|
|
163
|
+
view
|
|
164
|
+
returns (uint256);
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### totalCollateralOf
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
```solidity
|
|
171
|
+
function totalCollateralOf(uint256 revnetId) external view returns (uint256);
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### borrowFrom
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
```solidity
|
|
178
|
+
function borrowFrom(
|
|
179
|
+
uint256 revnetId,
|
|
180
|
+
REVLoanSource calldata source,
|
|
181
|
+
uint256 minBorrowAmount,
|
|
182
|
+
uint256 collateral,
|
|
183
|
+
address payable beneficiary,
|
|
184
|
+
uint256 prepaidFeePercent
|
|
185
|
+
)
|
|
186
|
+
external
|
|
187
|
+
returns (uint256 loanId, REVLoan memory loan);
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### liquidateExpiredLoansFrom
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
```solidity
|
|
194
|
+
function liquidateExpiredLoansFrom(uint256 revnetId, uint256 startingLoanId, uint256 count) external;
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### repayLoan
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
```solidity
|
|
201
|
+
function repayLoan(
|
|
202
|
+
uint256 loanId,
|
|
203
|
+
uint256 maxRepayBorrowAmount,
|
|
204
|
+
uint256 collateralCountToReturn,
|
|
205
|
+
address payable beneficiary,
|
|
206
|
+
JBSingleAllowance calldata allowance
|
|
207
|
+
)
|
|
208
|
+
external
|
|
209
|
+
payable
|
|
210
|
+
returns (uint256 paidOffLoanId, REVLoan memory loan);
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### reallocateCollateralFromLoan
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
```solidity
|
|
217
|
+
function reallocateCollateralFromLoan(
|
|
218
|
+
uint256 loanId,
|
|
219
|
+
uint256 collateralToTransfer,
|
|
220
|
+
REVLoanSource calldata source,
|
|
221
|
+
uint256 minBorrowAmount,
|
|
222
|
+
uint256 collateralToAdd,
|
|
223
|
+
address payable beneficiary,
|
|
224
|
+
uint256 prepaidFeePercent
|
|
225
|
+
)
|
|
226
|
+
external
|
|
227
|
+
payable
|
|
228
|
+
returns (uint256 reallocatedLoanId, uint256 newLoanId, REVLoan memory reallocatedLoan, REVLoan memory newLoan);
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### setTokenUriResolver
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
```solidity
|
|
235
|
+
function setTokenUriResolver(IJBTokenUriResolver resolver) external;
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Events
|
|
239
|
+
### Borrow
|
|
240
|
+
|
|
241
|
+
```solidity
|
|
242
|
+
event Borrow(
|
|
243
|
+
uint256 indexed loanId,
|
|
244
|
+
uint256 indexed revnetId,
|
|
245
|
+
REVLoan loan,
|
|
246
|
+
REVLoanSource source,
|
|
247
|
+
uint256 borrowAmount,
|
|
248
|
+
uint256 collateralCount,
|
|
249
|
+
uint256 sourceFeeAmount,
|
|
250
|
+
address payable beneficiary,
|
|
251
|
+
address caller
|
|
252
|
+
);
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Liquidate
|
|
256
|
+
|
|
257
|
+
```solidity
|
|
258
|
+
event Liquidate(uint256 indexed loanId, uint256 indexed revnetId, REVLoan loan, address caller);
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### RepayLoan
|
|
262
|
+
|
|
263
|
+
```solidity
|
|
264
|
+
event RepayLoan(
|
|
265
|
+
uint256 indexed loanId,
|
|
266
|
+
uint256 indexed revnetId,
|
|
267
|
+
uint256 indexed paidOffLoanId,
|
|
268
|
+
REVLoan loan,
|
|
269
|
+
REVLoan paidOffLoan,
|
|
270
|
+
uint256 repayBorrowAmount,
|
|
271
|
+
uint256 sourceFeeAmount,
|
|
272
|
+
uint256 collateralCountToReturn,
|
|
273
|
+
address payable beneficiary,
|
|
274
|
+
address caller
|
|
275
|
+
);
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### ReallocateCollateral
|
|
279
|
+
|
|
280
|
+
```solidity
|
|
281
|
+
event ReallocateCollateral(
|
|
282
|
+
uint256 indexed loanId,
|
|
283
|
+
uint256 indexed revnetId,
|
|
284
|
+
uint256 indexed reallocatedLoanId,
|
|
285
|
+
REVLoan reallocatedLoan,
|
|
286
|
+
uint256 removedcollateralCount,
|
|
287
|
+
address caller
|
|
288
|
+
);
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### SetTokenUriResolver
|
|
292
|
+
|
|
293
|
+
```solidity
|
|
294
|
+
event SetTokenUriResolver(IJBTokenUriResolver indexed resolver, address caller);
|
|
295
|
+
```
|
|
296
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
# Contents
|
|
4
|
+
- [REVAutoIssuance](REVAutoIssuance.sol/struct.REVAutoIssuance.md)
|
|
5
|
+
- [REVBuybackHookConfig](REVBuybackHookConfig.sol/struct.REVBuybackHookConfig.md)
|
|
6
|
+
- [REVBuybackPoolConfig](REVBuybackPoolConfig.sol/struct.REVBuybackPoolConfig.md)
|
|
7
|
+
- [REVConfig](REVConfig.sol/struct.REVConfig.md)
|
|
8
|
+
- [REVCroptopAllowedPost](REVCroptopAllowedPost.sol/struct.REVCroptopAllowedPost.md)
|
|
9
|
+
- [REVDeploy721TiersHookConfig](REVDeploy721TiersHookConfig.sol/struct.REVDeploy721TiersHookConfig.md)
|
|
10
|
+
- [REVDescription](REVDescription.sol/struct.REVDescription.md)
|
|
11
|
+
- [REVLoan](REVLoan.sol/struct.REVLoan.md)
|
|
12
|
+
- [REVLoanSource](REVLoanSource.sol/struct.REVLoanSource.md)
|
|
13
|
+
- [REVStageConfig](REVStageConfig.sol/struct.REVStageConfig.md)
|
|
14
|
+
- [REVSuckerDeploymentConfig](REVSuckerDeploymentConfig.sol/struct.REVSuckerDeploymentConfig.md)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# REVAutoIssuance
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/structs/REVAutoIssuance.sol)
|
|
3
|
+
|
|
4
|
+
**Notes:**
|
|
5
|
+
- member: chainId The ID of the chain on which the mint should be honored.
|
|
6
|
+
|
|
7
|
+
- member: count The number of tokens that should be minted.
|
|
8
|
+
|
|
9
|
+
- member: beneficiary The address that will receive the minted tokens.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
```solidity
|
|
13
|
+
struct REVAutoIssuance {
|
|
14
|
+
uint32 chainId;
|
|
15
|
+
uint104 count;
|
|
16
|
+
address beneficiary;
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# REVBuybackHookConfig
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/structs/REVBuybackHookConfig.sol)
|
|
3
|
+
|
|
4
|
+
**Notes:**
|
|
5
|
+
- member: dataHook The data hook to use.
|
|
6
|
+
|
|
7
|
+
- member: hookToConfigure The buyback hook to configure.
|
|
8
|
+
|
|
9
|
+
- member: poolConfigurations The pools to setup on the given buyback contract.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
```solidity
|
|
13
|
+
struct REVBuybackHookConfig {
|
|
14
|
+
IJBRulesetDataHook dataHook;
|
|
15
|
+
IJBBuybackHook hookToConfigure;
|
|
16
|
+
REVBuybackPoolConfig[] poolConfigurations;
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# REVBuybackPoolConfig
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/structs/REVBuybackPoolConfig.sol)
|
|
3
|
+
|
|
4
|
+
**Notes:**
|
|
5
|
+
- member: token The token to setup a pool for.
|
|
6
|
+
|
|
7
|
+
- member: poolFee The fee of the pool in which swaps occur when seeking the best price for a new participant.
|
|
8
|
+
This incentivizes liquidity providers. Out of 1_000_000. A common value is 1%, or 10_000. Other passible values are
|
|
9
|
+
0.3% and 0.1%.
|
|
10
|
+
|
|
11
|
+
- member: twapWindow The time window to take into account when quoting a price based on TWAP.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
```solidity
|
|
15
|
+
struct REVBuybackPoolConfig {
|
|
16
|
+
address token;
|
|
17
|
+
uint24 fee;
|
|
18
|
+
uint32 twapWindow;
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# REVConfig
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/structs/REVConfig.sol)
|
|
3
|
+
|
|
4
|
+
**Notes:**
|
|
5
|
+
- member: description The description of the revnet.
|
|
6
|
+
|
|
7
|
+
- member: baseCurrency The currency that the issuance is based on.
|
|
8
|
+
|
|
9
|
+
- member: premintTokenAmount The number of tokens that should be preminted to the initial operator.
|
|
10
|
+
|
|
11
|
+
- member: premintChainId The ID of the chain on which the premint should be honored.
|
|
12
|
+
|
|
13
|
+
- member: premintStage The stage during which the premint should be honored.
|
|
14
|
+
|
|
15
|
+
- member: splitOperator The address that will receive the token premint and initial production split,
|
|
16
|
+
and who is allowed to change who the operator is. Only the operator can replace itself after deployment.
|
|
17
|
+
|
|
18
|
+
- member: stageConfigurations The periods of changing constraints.
|
|
19
|
+
|
|
20
|
+
- member: loanSources The sources for loans.
|
|
21
|
+
|
|
22
|
+
- member: loans The loans contract, which can mint the revnet's tokens and use the revnet's balance.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
```solidity
|
|
26
|
+
struct REVConfig {
|
|
27
|
+
REVDescription description;
|
|
28
|
+
uint32 baseCurrency;
|
|
29
|
+
address splitOperator;
|
|
30
|
+
REVStageConfig[] stageConfigurations;
|
|
31
|
+
REVLoanSource[] loanSources;
|
|
32
|
+
address loans;
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# REVCroptopAllowedPost
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/structs/REVCroptopAllowedPost.sol)
|
|
3
|
+
|
|
4
|
+
Criteria for allowed posts.
|
|
5
|
+
|
|
6
|
+
**Notes:**
|
|
7
|
+
- member: category A category that should allow posts.
|
|
8
|
+
|
|
9
|
+
- member: minimumPrice The minimum price that a post to the specified category should cost.
|
|
10
|
+
|
|
11
|
+
- member: minimumTotalSupply The minimum total supply of NFTs that can be made available when minting.
|
|
12
|
+
|
|
13
|
+
- member: maxTotalSupply The max total supply of NFTs that can be made available when minting. Leave as 0 for
|
|
14
|
+
max.
|
|
15
|
+
|
|
16
|
+
- member: allowedAddresses A list of addresses that are allowed to post on the category through Croptop.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
```solidity
|
|
20
|
+
struct REVCroptopAllowedPost {
|
|
21
|
+
uint24 category;
|
|
22
|
+
uint104 minimumPrice;
|
|
23
|
+
uint32 minimumTotalSupply;
|
|
24
|
+
uint32 maximumTotalSupply;
|
|
25
|
+
address[] allowedAddresses;
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
package/docs/src/src/structs/REVDeploy721TiersHookConfig.sol/struct.REVDeploy721TiersHookConfig.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# REVDeploy721TiersHookConfig
|
|
2
|
+
[Git Source](https://github.com/rev-net/revnet-core-v5/blob/364afaae78a8f60af2b98252dc96af1c2e4760d3/src/structs/REVDeploy721TiersHookConfig.sol)
|
|
3
|
+
|
|
4
|
+
**Notes:**
|
|
5
|
+
- member: baseline721HookConfiguration The baseline config.
|
|
6
|
+
|
|
7
|
+
- member: salt The salt to base the collection's address on.
|
|
8
|
+
|
|
9
|
+
- member: splitOperatorCanAdjustTiers A flag indicating if the revnet's split operator can add tiers and remove
|
|
10
|
+
tiers if
|
|
11
|
+
the tier is allowed to be removed
|
|
12
|
+
|
|
13
|
+
- member: splitOperatorCanUpdateMetadata A flag indicating if the revnet's split operator can update the 721's
|
|
14
|
+
metadata.
|
|
15
|
+
|
|
16
|
+
- member: splitOperatorCanMint A flag indicating if the revnet's split operator can mint 721's from tiers that
|
|
17
|
+
allow it.
|
|
18
|
+
|
|
19
|
+
- member: splitOperatorCanIncreaseDiscountPercent A flag indicating if the revnet's split operator can increase
|
|
20
|
+
the
|
|
21
|
+
discount of a tier.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
```solidity
|
|
25
|
+
struct REVDeploy721TiersHookConfig {
|
|
26
|
+
JBDeploy721TiersHookConfig baseline721HookConfiguration;
|
|
27
|
+
bytes32 salt;
|
|
28
|
+
bool splitOperatorCanAdjustTiers;
|
|
29
|
+
bool splitOperatorCanUpdateMetadata;
|
|
30
|
+
bool splitOperatorCanMint;
|
|
31
|
+
bool splitOperatorCanIncreaseDiscountPercent;
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|