@rev-net/core-v6 0.0.11 → 0.0.13
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/ADMINISTRATION.md +7 -7
- package/ARCHITECTURE.md +11 -11
- package/AUDIT_INSTRUCTIONS.md +295 -0
- package/CHANGE_LOG.md +316 -0
- package/README.md +9 -6
- package/RISKS.md +180 -35
- package/SKILLS.md +9 -11
- package/STYLE_GUIDE.md +14 -1
- package/USER_JOURNEYS.md +489 -0
- package/package.json +9 -9
- package/script/Deploy.s.sol +124 -40
- package/script/helpers/RevnetCoreDeploymentLib.sol +19 -6
- package/src/REVDeployer.sol +183 -175
- package/src/REVLoans.sol +65 -28
- package/src/interfaces/IREVDeployer.sol +25 -23
- package/src/structs/REV721TiersHookFlags.sol +1 -0
- package/src/structs/REVAutoIssuance.sol +1 -0
- package/src/structs/REVBaseline721HookConfig.sol +1 -0
- package/src/structs/REVConfig.sol +1 -0
- package/src/structs/REVCroptopAllowedPost.sol +1 -0
- package/src/structs/REVDeploy721TiersHookConfig.sol +13 -14
- package/src/structs/REVDescription.sol +1 -0
- package/src/structs/REVLoan.sol +1 -0
- package/src/structs/REVLoanSource.sol +1 -0
- package/src/structs/REVStageConfig.sol +1 -0
- package/src/structs/REVSuckerDeploymentConfig.sol +1 -0
- package/test/REV.integrations.t.sol +148 -19
- package/test/REVAutoIssuanceFuzz.t.sol +31 -6
- package/test/REVDeployerRegressions.t.sol +47 -9
- package/test/REVInvincibility.t.sol +83 -19
- package/test/REVInvincibilityHandler.sol +29 -0
- package/test/REVLifecycle.t.sol +36 -6
- package/test/REVLoans.invariants.t.sol +64 -10
- package/test/REVLoansAttacks.t.sol +54 -9
- package/test/REVLoansFeeRecovery.t.sol +61 -15
- package/test/REVLoansFindings.t.sol +42 -9
- package/test/REVLoansRegressions.t.sol +33 -6
- package/test/REVLoansSourceFeeRecovery.t.sol +491 -0
- package/test/REVLoansSourced.t.sol +79 -17
- package/test/REVLoansUnSourced.t.sol +61 -10
- package/test/TestBurnHeldTokens.t.sol +47 -11
- package/test/TestCEIPattern.t.sol +37 -6
- package/test/TestCashOutCallerValidation.t.sol +41 -8
- package/test/TestConversionDocumentation.t.sol +50 -13
- package/test/TestCrossCurrencyReclaim.t.sol +584 -0
- package/test/TestCrossSourceReallocation.t.sol +37 -6
- package/test/TestERC2771MetaTx.t.sol +557 -0
- package/test/TestEmptyBuybackSpecs.t.sol +45 -10
- package/test/TestFlashLoanSurplus.t.sol +39 -7
- package/test/TestHookArrayOOB.t.sol +42 -13
- package/test/TestLiquidationBehavior.t.sol +37 -7
- package/test/TestLoanSourceRotation.t.sol +525 -0
- package/test/TestLongTailEconomics.t.sol +651 -0
- package/test/TestLowFindings.t.sol +80 -8
- package/test/TestMixedFixes.t.sol +43 -9
- package/test/TestPermit2Signatures.t.sol +657 -0
- package/test/TestReallocationSandwich.t.sol +384 -0
- package/test/TestRevnetRegressions.t.sol +324 -0
- package/test/TestSplitWeightAdjustment.t.sol +52 -13
- package/test/TestSplitWeightE2E.t.sol +53 -18
- package/test/TestSplitWeightFork.t.sol +66 -21
- package/test/TestStageTransitionBorrowable.t.sol +38 -6
- package/test/TestSwapTerminalPermission.t.sol +37 -7
- package/test/TestUint112Overflow.t.sol +39 -6
- package/test/TestZeroRepayment.t.sol +37 -6
- package/test/fork/ForkTestBase.sol +66 -17
- package/test/fork/TestCashOutFork.t.sol +9 -3
- package/test/fork/TestLoanBorrowFork.t.sol +1 -0
- package/test/fork/TestLoanCrossRulesetFork.t.sol +11 -3
- package/test/fork/TestLoanLiquidationFork.t.sol +1 -0
- package/test/fork/TestLoanReallocateFork.t.sol +1 -0
- package/test/fork/TestLoanRepayFork.t.sol +1 -0
- package/test/fork/TestLoanTransferFork.t.sol +133 -0
- package/test/fork/TestSplitWeightFork.t.sol +3 -0
- package/test/helpers/REVEmpty721Config.sol +46 -0
- package/test/mock/MockBuybackDataHook.sol +1 -0
- package/test/regression/TestBurnPermissionRequired.t.sol +267 -0
- package/test/regression/TestCrossRevnetLiquidation.t.sol +228 -0
- package/test/regression/TestCumulativeLoanCounter.t.sol +38 -8
- package/test/regression/TestLiquidateGapHandling.t.sol +40 -8
- package/test/regression/TestZeroPriceFeed.t.sol +396 -0
|
@@ -1,23 +1,31 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
4
5
|
import "forge-std/Test.sol";
|
|
6
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
5
7
|
import /* {*} from */ "@bananapus/core-v6/test/helpers/TestBaseWorkflow.sol";
|
|
6
|
-
import /* {*} from "@bananapus/721-hook-v6/src/JB721TiersHookDeployer.sol";
|
|
8
|
+
// import /* {*} from "@bananapus/721-hook-v6/src/JB721TiersHookDeployer.sol";
|
|
9
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
7
10
|
import /* {*} from */ "./../src/REVDeployer.sol";
|
|
11
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
8
12
|
import "@croptop/core-v6/src/CTPublisher.sol";
|
|
9
13
|
import {MockBuybackDataHook} from "./mock/MockBuybackDataHook.sol";
|
|
10
14
|
|
|
15
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
11
16
|
import "@bananapus/core-v6/script/helpers/CoreDeploymentLib.sol";
|
|
17
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
12
18
|
import "@bananapus/721-hook-v6/script/helpers/Hook721DeploymentLib.sol";
|
|
19
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
13
20
|
import "@bananapus/suckers-v6/script/helpers/SuckerDeploymentLib.sol";
|
|
21
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
14
22
|
import "@croptop/core-v6/script/helpers/CroptopDeploymentLib.sol";
|
|
23
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
15
24
|
import "@bananapus/router-terminal-v6/script/helpers/RouterTerminalDeploymentLib.sol";
|
|
16
25
|
|
|
17
26
|
import {JBConstants} from "@bananapus/core-v6/src/libraries/JBConstants.sol";
|
|
18
27
|
import {JBAccountingContext} from "@bananapus/core-v6/src/structs/JBAccountingContext.sol";
|
|
19
28
|
import {JBRuleset} from "@bananapus/core-v6/src/structs/JBRuleset.sol";
|
|
20
|
-
import {JBRulesetMetadata} from "@bananapus/core-v6/src/structs/JBRulesetMetadata.sol";
|
|
21
29
|
import {JBSingleAllowance} from "@bananapus/core-v6/src/structs/JBSingleAllowance.sol";
|
|
22
30
|
import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
23
31
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
@@ -34,6 +42,7 @@ import {JB721TiersHook} from "@bananapus/721-hook-v6/src/JB721TiersHook.sol";
|
|
|
34
42
|
import {JB721TiersHookStore} from "@bananapus/721-hook-v6/src/JB721TiersHookStore.sol";
|
|
35
43
|
import {JBAddressRegistry} from "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
|
|
36
44
|
import {IJBAddressRegistry} from "@bananapus/address-registry-v6/src/interfaces/IJBAddressRegistry.sol";
|
|
45
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
37
46
|
|
|
38
47
|
/// @notice A fake terminal that returns garbage accounting contexts.
|
|
39
48
|
/// Used to test unvalidated loan source terminal rejection.
|
|
@@ -135,22 +144,36 @@ contract GarbageTerminal is ERC165, IJBPayoutTerminal {
|
|
|
135
144
|
/// Auto-issuance timing guard bypass (false positive)
|
|
136
145
|
/// repayLoan revert on excess collateral (false positive)
|
|
137
146
|
contract REVLoansFindings is TestBaseWorkflow {
|
|
147
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
138
148
|
bytes32 REV_DEPLOYER_SALT = "REVDeployer";
|
|
149
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
139
150
|
bytes32 ERC20_SALT = "REV_TOKEN";
|
|
140
151
|
|
|
152
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
141
153
|
REVDeployer REV_DEPLOYER;
|
|
154
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
142
155
|
JB721TiersHook EXAMPLE_HOOK;
|
|
156
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
143
157
|
IJB721TiersHookDeployer HOOK_DEPLOYER;
|
|
158
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
144
159
|
IJB721TiersHookStore HOOK_STORE;
|
|
160
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
145
161
|
IJBAddressRegistry ADDRESS_REGISTRY;
|
|
162
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
146
163
|
IREVLoans LOANS_CONTRACT;
|
|
164
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
147
165
|
IJBSuckerRegistry SUCKER_REGISTRY;
|
|
166
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
148
167
|
CTPublisher PUBLISHER;
|
|
168
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
149
169
|
MockBuybackDataHook MOCK_BUYBACK;
|
|
150
170
|
|
|
171
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
151
172
|
uint256 FEE_PROJECT_ID;
|
|
173
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
152
174
|
uint256 REVNET_ID;
|
|
153
175
|
|
|
176
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
154
177
|
address USER = makeAddr("user");
|
|
155
178
|
|
|
156
179
|
address private constant TRUSTED_FORWARDER = 0xB2b5841DBeF766d4b521221732F9B618fCf34A87;
|
|
@@ -162,8 +185,9 @@ contract REVLoansFindings is TestBaseWorkflow {
|
|
|
162
185
|
|
|
163
186
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
164
187
|
HOOK_STORE = new JB721TiersHookStore();
|
|
165
|
-
EXAMPLE_HOOK =
|
|
166
|
-
|
|
188
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
189
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
190
|
+
);
|
|
167
191
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
168
192
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
169
193
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -234,6 +258,7 @@ contract REVLoansFindings is TestBaseWorkflow {
|
|
|
234
258
|
});
|
|
235
259
|
|
|
236
260
|
REVConfig memory revnetConfiguration = REVConfig({
|
|
261
|
+
// forge-lint: disable-next-line(named-struct-fields)
|
|
237
262
|
description: REVDescription("Revnet", "$REV", "ipfs://test", ERC20_SALT),
|
|
238
263
|
baseCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
239
264
|
splitOperator: multisig(),
|
|
@@ -247,7 +272,9 @@ contract REVLoansFindings is TestBaseWorkflow {
|
|
|
247
272
|
terminalConfigurations: terminalConfigurations,
|
|
248
273
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
249
274
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256(abi.encodePacked("REV"))
|
|
250
|
-
})
|
|
275
|
+
}),
|
|
276
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
277
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
251
278
|
});
|
|
252
279
|
}
|
|
253
280
|
|
|
@@ -279,19 +306,22 @@ contract REVLoansFindings is TestBaseWorkflow {
|
|
|
279
306
|
});
|
|
280
307
|
|
|
281
308
|
REVConfig memory revnetConfiguration = REVConfig({
|
|
309
|
+
// forge-lint: disable-next-line(named-struct-fields)
|
|
282
310
|
description: REVDescription("Borrowable", "BRW", "ipfs://brw", "BRW_TOKEN"),
|
|
283
311
|
baseCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
284
312
|
splitOperator: multisig(),
|
|
285
313
|
stageConfigurations: stageConfigurations
|
|
286
314
|
});
|
|
287
315
|
|
|
288
|
-
REVNET_ID = REV_DEPLOYER.deployFor({
|
|
316
|
+
(REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
289
317
|
revnetId: 0,
|
|
290
318
|
configuration: revnetConfiguration,
|
|
291
319
|
terminalConfigurations: terminalConfigurations,
|
|
292
320
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
293
321
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256(abi.encodePacked("BRW"))
|
|
294
|
-
})
|
|
322
|
+
}),
|
|
323
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
324
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
295
325
|
});
|
|
296
326
|
}
|
|
297
327
|
|
|
@@ -510,6 +540,7 @@ contract REVLoansFindings is TestBaseWorkflow {
|
|
|
510
540
|
});
|
|
511
541
|
|
|
512
542
|
REVConfig memory config = REVConfig({
|
|
543
|
+
// forge-lint: disable-next-line(named-struct-fields)
|
|
513
544
|
description: REVDescription("FP1Test", "FP1", "ipfs://fp1", "FP1_TOKEN"),
|
|
514
545
|
baseCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
515
546
|
splitOperator: multisig(),
|
|
@@ -519,13 +550,15 @@ contract REVLoansFindings is TestBaseWorkflow {
|
|
|
519
550
|
// Record the deploy timestamp -- this is used for stage ID calculation.
|
|
520
551
|
uint256 deployTimestamp = block.timestamp;
|
|
521
552
|
|
|
522
|
-
uint256 fp1RevnetId = REV_DEPLOYER.deployFor({
|
|
553
|
+
(uint256 fp1RevnetId,) = REV_DEPLOYER.deployFor({
|
|
523
554
|
revnetId: 0,
|
|
524
555
|
configuration: config,
|
|
525
556
|
terminalConfigurations: terminalConfigurations,
|
|
526
557
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
527
558
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("FP1")
|
|
528
|
-
})
|
|
559
|
+
}),
|
|
560
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
561
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
529
562
|
});
|
|
530
563
|
|
|
531
564
|
// Step 2: Verify the second ruleset ID matches deployTimestamp + 1.
|
|
@@ -1,23 +1,31 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
4
5
|
import "forge-std/Test.sol";
|
|
6
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
5
7
|
import /* {*} from */ "@bananapus/core-v6/test/helpers/TestBaseWorkflow.sol";
|
|
6
|
-
import /* {*} from "@bananapus/721-hook-v6/src/JB721TiersHookDeployer.sol";
|
|
8
|
+
// import /* {*} from "@bananapus/721-hook-v6/src/JB721TiersHookDeployer.sol";
|
|
9
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
7
10
|
import /* {*} from */ "./../src/REVDeployer.sol";
|
|
11
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
8
12
|
import "@croptop/core-v6/src/CTPublisher.sol";
|
|
9
13
|
import {MockBuybackDataHook} from "./mock/MockBuybackDataHook.sol";
|
|
10
14
|
|
|
15
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
11
16
|
import "@bananapus/core-v6/script/helpers/CoreDeploymentLib.sol";
|
|
17
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
12
18
|
import "@bananapus/721-hook-v6/script/helpers/Hook721DeploymentLib.sol";
|
|
19
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
13
20
|
import "@bananapus/suckers-v6/script/helpers/SuckerDeploymentLib.sol";
|
|
21
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
14
22
|
import "@croptop/core-v6/script/helpers/CroptopDeploymentLib.sol";
|
|
23
|
+
// forge-lint: disable-next-line(unaliased-plain-import)
|
|
15
24
|
import "@bananapus/router-terminal-v6/script/helpers/RouterTerminalDeploymentLib.sol";
|
|
16
25
|
|
|
17
26
|
import {JBConstants} from "@bananapus/core-v6/src/libraries/JBConstants.sol";
|
|
18
27
|
import {JBAccountingContext} from "@bananapus/core-v6/src/structs/JBAccountingContext.sol";
|
|
19
28
|
import {REVLoans} from "../src/REVLoans.sol";
|
|
20
|
-
import {REVLoan} from "../src/structs/REVLoan.sol";
|
|
21
29
|
import {REVStageConfig, REVAutoIssuance} from "../src/structs/REVStageConfig.sol";
|
|
22
30
|
import {REVLoanSource} from "../src/structs/REVLoanSource.sol";
|
|
23
31
|
import {REVDescription} from "../src/structs/REVDescription.sol";
|
|
@@ -30,6 +38,7 @@ import {JB721TiersHookStore} from "@bananapus/721-hook-v6/src/JB721TiersHookStor
|
|
|
30
38
|
import {JBAddressRegistry} from "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
|
|
31
39
|
import {IJBAddressRegistry} from "@bananapus/address-registry-v6/src/interfaces/IJBAddressRegistry.sol";
|
|
32
40
|
import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
41
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
33
42
|
|
|
34
43
|
/// @notice A fake terminal that tracks whether useAllowanceOf was called.
|
|
35
44
|
/// @dev REVLoans.borrowFrom does not validate source terminal registration.
|
|
@@ -130,22 +139,36 @@ contract FakeTerminal is ERC165, IJBPayoutTerminal {
|
|
|
130
139
|
|
|
131
140
|
/// @notice Regression tests for REVLoans unvalidated source terminal.
|
|
132
141
|
contract REVLoansRegressions is TestBaseWorkflow {
|
|
142
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
133
143
|
bytes32 REV_DEPLOYER_SALT = "REVDeployer";
|
|
144
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
134
145
|
bytes32 ERC20_SALT = "REV_TOKEN";
|
|
135
146
|
|
|
147
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
136
148
|
REVDeployer REV_DEPLOYER;
|
|
149
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
137
150
|
JB721TiersHook EXAMPLE_HOOK;
|
|
151
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
138
152
|
IJB721TiersHookDeployer HOOK_DEPLOYER;
|
|
153
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
139
154
|
IJB721TiersHookStore HOOK_STORE;
|
|
155
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
140
156
|
IJBAddressRegistry ADDRESS_REGISTRY;
|
|
157
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
141
158
|
IREVLoans LOANS_CONTRACT;
|
|
159
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
142
160
|
IJBSuckerRegistry SUCKER_REGISTRY;
|
|
161
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
143
162
|
CTPublisher PUBLISHER;
|
|
163
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
144
164
|
MockBuybackDataHook MOCK_BUYBACK;
|
|
145
165
|
|
|
166
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
146
167
|
uint256 FEE_PROJECT_ID;
|
|
168
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
147
169
|
uint256 REVNET_ID;
|
|
148
170
|
|
|
171
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
149
172
|
address USER = makeAddr("user");
|
|
150
173
|
|
|
151
174
|
address private constant TRUSTED_FORWARDER = 0xB2b5841DBeF766d4b521221732F9B618fCf34A87;
|
|
@@ -157,8 +180,9 @@ contract REVLoansRegressions is TestBaseWorkflow {
|
|
|
157
180
|
|
|
158
181
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
159
182
|
HOOK_STORE = new JB721TiersHookStore();
|
|
160
|
-
EXAMPLE_HOOK =
|
|
161
|
-
|
|
183
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
184
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
185
|
+
);
|
|
162
186
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
163
187
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
164
188
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -222,6 +246,7 @@ contract REVLoansRegressions is TestBaseWorkflow {
|
|
|
222
246
|
});
|
|
223
247
|
|
|
224
248
|
REVConfig memory revnetConfiguration = REVConfig({
|
|
249
|
+
// forge-lint: disable-next-line(named-struct-fields)
|
|
225
250
|
description: REVDescription("H6Test", "H6T", "ipfs://h6test", "H6_TOKEN"),
|
|
226
251
|
baseCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
227
252
|
splitOperator: multisig(),
|
|
@@ -229,13 +254,15 @@ contract REVLoansRegressions is TestBaseWorkflow {
|
|
|
229
254
|
});
|
|
230
255
|
|
|
231
256
|
vm.prank(multisig());
|
|
232
|
-
REVNET_ID = REV_DEPLOYER.deployFor({
|
|
257
|
+
(REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
233
258
|
revnetId: FEE_PROJECT_ID,
|
|
234
259
|
configuration: revnetConfiguration,
|
|
235
260
|
terminalConfigurations: terminalConfigurations,
|
|
236
261
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
237
262
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("H6_TEST")
|
|
238
|
-
})
|
|
263
|
+
}),
|
|
264
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
265
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
239
266
|
});
|
|
240
267
|
}
|
|
241
268
|
|