@rev-net/core-v6 0.0.11 → 0.0.12
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/README.md +7 -4
- package/RISKS.md +2 -2
- package/SKILLS.md +8 -10
- package/STYLE_GUIDE.md +14 -1
- package/package.json +9 -9
- package/script/Deploy.s.sol +85 -35
- package/script/helpers/RevnetCoreDeploymentLib.sol +12 -5
- package/src/REVDeployer.sol +121 -129
- package/src/REVLoans.sol +14 -13
- package/src/interfaces/IREVDeployer.sol +25 -22
- package/src/structs/REVDeploy721TiersHookConfig.sol +12 -14
- package/test/REV.integrations.t.sol +17 -8
- package/test/REVAutoIssuanceFuzz.t.sol +9 -4
- package/test/REVDeployerRegressions.t.sol +13 -6
- package/test/REVInvincibility.t.sol +26 -12
- package/test/REVLifecycle.t.sol +9 -4
- package/test/REVLoans.invariants.t.sol +13 -6
- package/test/REVLoansAttacks.t.sol +12 -5
- package/test/REVLoansFeeRecovery.t.sol +12 -5
- package/test/REVLoansFindings.t.sol +16 -7
- package/test/REVLoansRegressions.t.sol +9 -4
- package/test/REVLoansSourced.t.sol +24 -11
- package/test/REVLoansUnSourced.t.sol +13 -6
- package/test/TestBurnHeldTokens.t.sol +16 -7
- package/test/TestCEIPattern.t.sol +12 -5
- package/test/TestCashOutCallerValidation.t.sol +12 -5
- package/test/TestConversionDocumentation.t.sol +25 -9
- package/test/TestCrossSourceReallocation.t.sol +12 -5
- package/test/TestEmptyBuybackSpecs.t.sol +23 -8
- package/test/TestFlashLoanSurplus.t.sol +12 -5
- package/test/TestHookArrayOOB.t.sol +19 -10
- package/test/TestLiquidationBehavior.t.sol +12 -5
- package/test/TestLowFindings.t.sol +16 -7
- package/test/TestMixedFixes.t.sol +16 -7
- package/test/TestSplitWeightAdjustment.t.sol +29 -12
- package/test/TestSplitWeightE2E.t.sol +24 -16
- package/test/TestSplitWeightFork.t.sol +20 -14
- package/test/TestStageTransitionBorrowable.t.sol +15 -5
- package/test/TestSwapTerminalPermission.t.sol +15 -5
- package/test/TestUint112Overflow.t.sol +12 -5
- package/test/TestZeroRepayment.t.sol +12 -5
- package/test/fork/ForkTestBase.sol +20 -14
- package/test/fork/TestCashOutFork.t.sol +8 -2
- package/test/fork/TestLoanCrossRulesetFork.t.sol +8 -2
- package/test/helpers/REVEmpty721Config.sol +45 -0
- package/test/regression/TestCumulativeLoanCounter.t.sol +12 -5
- package/test/regression/TestLiquidateGapHandling.t.sol +12 -5
|
@@ -7,6 +7,8 @@ import /* {*} from "@bananapus/721-hook-v6/src/JB721TiersHookDeployer.sol";
|
|
|
7
7
|
import /* {*} from */ "./../src/REVDeployer.sol";
|
|
8
8
|
import "@croptop/core-v6/src/CTPublisher.sol";
|
|
9
9
|
import {MockBuybackDataHook} from "./mock/MockBuybackDataHook.sol";
|
|
10
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
11
|
+
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
10
12
|
import "@bananapus/core-v6/script/helpers/CoreDeploymentLib.sol";
|
|
11
13
|
import "@bananapus/721-hook-v6/script/helpers/Hook721DeploymentLib.sol";
|
|
12
14
|
import "@bananapus/suckers-v6/script/helpers/SuckerDeploymentLib.sol";
|
|
@@ -59,8 +61,9 @@ contract TestLiquidationBehavior is TestBaseWorkflow {
|
|
|
59
61
|
FEE_PROJECT_ID = jbProjects().createFor(multisig());
|
|
60
62
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
61
63
|
HOOK_STORE = new JB721TiersHookStore();
|
|
62
|
-
EXAMPLE_HOOK =
|
|
63
|
-
|
|
64
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
65
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
66
|
+
);
|
|
64
67
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
65
68
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
66
69
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -133,7 +136,9 @@ contract TestLiquidationBehavior is TestBaseWorkflow {
|
|
|
133
136
|
terminalConfigurations: tc,
|
|
134
137
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
135
138
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("FEE")
|
|
136
|
-
})
|
|
139
|
+
}),
|
|
140
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
141
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
137
142
|
});
|
|
138
143
|
}
|
|
139
144
|
|
|
@@ -170,13 +175,15 @@ contract TestLiquidationBehavior is TestBaseWorkflow {
|
|
|
170
175
|
splitOperator: multisig(),
|
|
171
176
|
stageConfigurations: stages
|
|
172
177
|
});
|
|
173
|
-
REVNET_ID = REV_DEPLOYER.deployFor({
|
|
178
|
+
(REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
174
179
|
revnetId: 0,
|
|
175
180
|
configuration: cfg,
|
|
176
181
|
terminalConfigurations: tc,
|
|
177
182
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
178
183
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("NANA")
|
|
179
|
-
})
|
|
184
|
+
}),
|
|
185
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
186
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
180
187
|
});
|
|
181
188
|
}
|
|
182
189
|
|
|
@@ -30,6 +30,8 @@ import {JB721TiersHook} from "@bananapus/721-hook-v6/src/JB721TiersHook.sol";
|
|
|
30
30
|
import {JB721TiersHookStore} from "@bananapus/721-hook-v6/src/JB721TiersHookStore.sol";
|
|
31
31
|
import {JBAddressRegistry} from "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
|
|
32
32
|
import {IJBAddressRegistry} from "@bananapus/address-registry-v6/src/interfaces/IJBAddressRegistry.sol";
|
|
33
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
34
|
+
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
33
35
|
|
|
34
36
|
struct FeeProjectConfig {
|
|
35
37
|
REVConfig configuration;
|
|
@@ -166,13 +168,15 @@ contract TestLowFindings is TestBaseWorkflow {
|
|
|
166
168
|
stageConfigurations: stageConfigurations
|
|
167
169
|
});
|
|
168
170
|
|
|
169
|
-
revnetId = REV_DEPLOYER.deployFor({
|
|
171
|
+
(revnetId,) = REV_DEPLOYER.deployFor({
|
|
170
172
|
revnetId: 0,
|
|
171
173
|
configuration: revnetConfiguration,
|
|
172
174
|
terminalConfigurations: terminalConfigurations,
|
|
173
175
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
174
176
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256(abi.encodePacked("TWO"))
|
|
175
|
-
})
|
|
177
|
+
}),
|
|
178
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
179
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
176
180
|
});
|
|
177
181
|
}
|
|
178
182
|
|
|
@@ -219,13 +223,15 @@ contract TestLowFindings is TestBaseWorkflow {
|
|
|
219
223
|
stageConfigurations: stageConfigurations
|
|
220
224
|
});
|
|
221
225
|
|
|
222
|
-
revnetId = REV_DEPLOYER.deployFor({
|
|
226
|
+
(revnetId,) = REV_DEPLOYER.deployFor({
|
|
223
227
|
revnetId: 0,
|
|
224
228
|
configuration: revnetConfiguration,
|
|
225
229
|
terminalConfigurations: terminalConfigurations,
|
|
226
230
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
227
231
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256(abi.encodePacked("SGL"))
|
|
228
|
-
})
|
|
232
|
+
}),
|
|
233
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
234
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
229
235
|
});
|
|
230
236
|
}
|
|
231
237
|
|
|
@@ -235,8 +241,9 @@ contract TestLowFindings is TestBaseWorkflow {
|
|
|
235
241
|
FEE_PROJECT_ID = jbProjects().createFor(multisig());
|
|
236
242
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
237
243
|
HOOK_STORE = new JB721TiersHookStore();
|
|
238
|
-
EXAMPLE_HOOK =
|
|
239
|
-
|
|
244
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
245
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
246
|
+
);
|
|
240
247
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
241
248
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
242
249
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -278,7 +285,9 @@ contract TestLowFindings is TestBaseWorkflow {
|
|
|
278
285
|
revnetId: FEE_PROJECT_ID,
|
|
279
286
|
configuration: feeProjectConfig.configuration,
|
|
280
287
|
terminalConfigurations: feeProjectConfig.terminalConfigurations,
|
|
281
|
-
suckerDeploymentConfiguration: feeProjectConfig.suckerDeploymentConfiguration
|
|
288
|
+
suckerDeploymentConfiguration: feeProjectConfig.suckerDeploymentConfiguration,
|
|
289
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
290
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
282
291
|
});
|
|
283
292
|
|
|
284
293
|
vm.deal(USER, 1000 ether);
|
|
@@ -29,6 +29,8 @@ import {JB721TiersHook} from "@bananapus/721-hook-v6/src/JB721TiersHook.sol";
|
|
|
29
29
|
import {JB721TiersHookStore} from "@bananapus/721-hook-v6/src/JB721TiersHookStore.sol";
|
|
30
30
|
import {JBAddressRegistry} from "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
|
|
31
31
|
import {IJBAddressRegistry} from "@bananapus/address-registry-v6/src/interfaces/IJBAddressRegistry.sol";
|
|
32
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
33
|
+
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
32
34
|
|
|
33
35
|
/// @notice Tests for PR #32: liquidation boundary, reallocate msg.value, and decimal normalization fixes.
|
|
34
36
|
contract TestMixedFixes is TestBaseWorkflow {
|
|
@@ -57,8 +59,9 @@ contract TestMixedFixes is TestBaseWorkflow {
|
|
|
57
59
|
FEE_PROJECT_ID = jbProjects().createFor(multisig());
|
|
58
60
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
59
61
|
HOOK_STORE = new JB721TiersHookStore();
|
|
60
|
-
EXAMPLE_HOOK =
|
|
61
|
-
|
|
62
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
63
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
64
|
+
);
|
|
62
65
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
63
66
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
64
67
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -131,7 +134,9 @@ contract TestMixedFixes is TestBaseWorkflow {
|
|
|
131
134
|
terminalConfigurations: tc,
|
|
132
135
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
133
136
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("FEE")
|
|
134
|
-
})
|
|
137
|
+
}),
|
|
138
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
139
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
135
140
|
});
|
|
136
141
|
}
|
|
137
142
|
|
|
@@ -168,13 +173,15 @@ contract TestMixedFixes is TestBaseWorkflow {
|
|
|
168
173
|
splitOperator: multisig(),
|
|
169
174
|
stageConfigurations: stages
|
|
170
175
|
});
|
|
171
|
-
REVNET_ID = REV_DEPLOYER.deployFor({
|
|
176
|
+
(REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
172
177
|
revnetId: 0,
|
|
173
178
|
configuration: cfg,
|
|
174
179
|
terminalConfigurations: tc,
|
|
175
180
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
176
181
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("NANA")
|
|
177
|
-
})
|
|
182
|
+
}),
|
|
183
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
184
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
178
185
|
});
|
|
179
186
|
}
|
|
180
187
|
|
|
@@ -343,13 +350,15 @@ contract TestMixedFixes is TestBaseWorkflow {
|
|
|
343
350
|
splitOperator: multisig(),
|
|
344
351
|
stageConfigurations: stages
|
|
345
352
|
});
|
|
346
|
-
MIXED_REVNET_ID = REV_DEPLOYER.deployFor({
|
|
353
|
+
(MIXED_REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
347
354
|
revnetId: 0,
|
|
348
355
|
configuration: cfg,
|
|
349
356
|
terminalConfigurations: tc,
|
|
350
357
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
351
358
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("MIXED")
|
|
352
|
-
})
|
|
359
|
+
}),
|
|
360
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
361
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
353
362
|
});
|
|
354
363
|
}
|
|
355
364
|
|
|
@@ -32,6 +32,8 @@ import {IJBPayHook} from "@bananapus/core-v6/src/interfaces/IJBPayHook.sol";
|
|
|
32
32
|
import {JBBeforePayRecordedContext} from "@bananapus/core-v6/src/structs/JBBeforePayRecordedContext.sol";
|
|
33
33
|
import {JBPayHookSpecification} from "@bananapus/core-v6/src/structs/JBPayHookSpecification.sol";
|
|
34
34
|
import {JBTokenAmount} from "@bananapus/core-v6/src/structs/JBTokenAmount.sol";
|
|
35
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
36
|
+
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
35
37
|
|
|
36
38
|
/// @notice Tests for the split weight adjustment in REVDeployer.beforePayRecordedWith.
|
|
37
39
|
contract TestSplitWeightAdjustment is TestBaseWorkflow {
|
|
@@ -57,8 +59,9 @@ contract TestSplitWeightAdjustment is TestBaseWorkflow {
|
|
|
57
59
|
FEE_PROJECT_ID = jbProjects().createFor(multisig());
|
|
58
60
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
59
61
|
HOOK_STORE = new JB721TiersHookStore();
|
|
60
|
-
EXAMPLE_HOOK =
|
|
61
|
-
|
|
62
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
63
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
64
|
+
);
|
|
62
65
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
63
66
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
64
67
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -134,20 +137,27 @@ contract TestSplitWeightAdjustment is TestBaseWorkflow {
|
|
|
134
137
|
revnetId: FEE_PROJECT_ID,
|
|
135
138
|
configuration: feeCfg,
|
|
136
139
|
terminalConfigurations: feeTc,
|
|
137
|
-
suckerDeploymentConfiguration: feeSdc
|
|
140
|
+
suckerDeploymentConfiguration: feeSdc,
|
|
141
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
142
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
138
143
|
});
|
|
139
144
|
|
|
140
145
|
// Deploy the revnet.
|
|
141
146
|
(REVConfig memory cfg, JBTerminalConfig[] memory tc, REVSuckerDeploymentConfig memory sdc) =
|
|
142
147
|
_buildMinimalConfig();
|
|
143
148
|
cfg.description = REVDescription("Test2", "TS2", "ipfs://test2", "TEST_SALT_2");
|
|
144
|
-
revnetId = REV_DEPLOYER.deployFor({
|
|
145
|
-
revnetId: 0,
|
|
149
|
+
(revnetId,) = REV_DEPLOYER.deployFor({
|
|
150
|
+
revnetId: 0,
|
|
151
|
+
configuration: cfg,
|
|
152
|
+
terminalConfigurations: tc,
|
|
153
|
+
suckerDeploymentConfiguration: sdc,
|
|
154
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
155
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
146
156
|
});
|
|
147
157
|
}
|
|
148
158
|
|
|
149
|
-
/// @notice
|
|
150
|
-
function
|
|
159
|
+
/// @notice Empty 721 hook (no tiers) = no split adjustment, weight passes through.
|
|
160
|
+
function test_beforePay_empty721_noAdjustment() public {
|
|
151
161
|
uint256 revnetId = _deployRevnet();
|
|
152
162
|
|
|
153
163
|
JBBeforePayRecordedContext memory context = JBBeforePayRecordedContext({
|
|
@@ -167,11 +177,11 @@ contract TestSplitWeightAdjustment is TestBaseWorkflow {
|
|
|
167
177
|
metadata: ""
|
|
168
178
|
});
|
|
169
179
|
|
|
170
|
-
//
|
|
180
|
+
// 721 hook is deployed but has no tiers, buyback returns context.weight.
|
|
171
181
|
(uint256 weight, JBPayHookSpecification[] memory specs) = REV_DEPLOYER.beforePayRecordedWith(context);
|
|
172
182
|
|
|
173
183
|
assertEq(weight, context.weight, "weight should pass through unchanged");
|
|
174
|
-
assertEq(specs.length,
|
|
184
|
+
assertEq(specs.length, 1, "should have 721 hook spec even with no tiers");
|
|
175
185
|
}
|
|
176
186
|
|
|
177
187
|
/// @notice When 721 hook returns splits, weight is adjusted proportionally.
|
|
@@ -294,14 +304,21 @@ contract TestSplitWeightAdjustment is TestBaseWorkflow {
|
|
|
294
304
|
revnetId: FEE_PROJECT_ID,
|
|
295
305
|
configuration: feeCfg,
|
|
296
306
|
terminalConfigurations: feeTc,
|
|
297
|
-
suckerDeploymentConfiguration: feeSdc
|
|
307
|
+
suckerDeploymentConfiguration: feeSdc,
|
|
308
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
309
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
298
310
|
});
|
|
299
311
|
|
|
300
312
|
(REVConfig memory cfg, JBTerminalConfig[] memory tc, REVSuckerDeploymentConfig memory sdc) =
|
|
301
313
|
_buildMinimalConfig();
|
|
302
314
|
cfg.description = REVDescription("AMM", "AMM", "ipfs://amm", "AMM_SALT");
|
|
303
|
-
uint256 revnetId = ammDeployer.deployFor({
|
|
304
|
-
revnetId: 0,
|
|
315
|
+
(uint256 revnetId,) = ammDeployer.deployFor({
|
|
316
|
+
revnetId: 0,
|
|
317
|
+
configuration: cfg,
|
|
318
|
+
terminalConfigurations: tc,
|
|
319
|
+
suckerDeploymentConfiguration: sdc,
|
|
320
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
321
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
305
322
|
});
|
|
306
323
|
|
|
307
324
|
// Mock a 721 hook for this project.
|
|
@@ -38,6 +38,7 @@ import {REVDeploy721TiersHookConfig} from "../src/structs/REVDeploy721TiersHookC
|
|
|
38
38
|
import {REVBaseline721HookConfig} from "../src/structs/REVBaseline721HookConfig.sol";
|
|
39
39
|
import {REV721TiersHookFlags} from "../src/structs/REV721TiersHookFlags.sol";
|
|
40
40
|
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
41
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
41
42
|
|
|
42
43
|
/// @notice E2E tests verifying that the split weight adjustment in REVDeployer produces correct token counts
|
|
43
44
|
/// when payments flow through the full terminal → store → dataHook → mint pipeline.
|
|
@@ -75,8 +76,9 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
75
76
|
|
|
76
77
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
77
78
|
HOOK_STORE = new JB721TiersHookStore();
|
|
78
|
-
EXAMPLE_HOOK =
|
|
79
|
-
|
|
79
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
80
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
81
|
+
);
|
|
80
82
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
81
83
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
82
84
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -192,10 +194,7 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
192
194
|
tokenUriResolver: IJB721TokenUriResolver(address(0)),
|
|
193
195
|
contractUri: "ipfs://contract",
|
|
194
196
|
tiersConfig: JB721InitTiersConfig({
|
|
195
|
-
tiers: tiers,
|
|
196
|
-
currency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
197
|
-
decimals: 18,
|
|
198
|
-
prices: IJBPrices(address(0))
|
|
197
|
+
tiers: tiers, currency: uint32(uint160(JBConstants.NATIVE_TOKEN)), decimals: 18
|
|
199
198
|
}),
|
|
200
199
|
reserveBeneficiary: address(0),
|
|
201
200
|
flags: REV721TiersHookFlags({
|
|
@@ -206,10 +205,10 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
206
205
|
})
|
|
207
206
|
}),
|
|
208
207
|
salt: bytes32("E2E_721"),
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
208
|
+
preventSplitOperatorAdjustingTiers: false,
|
|
209
|
+
preventSplitOperatorUpdatingMetadata: false,
|
|
210
|
+
preventSplitOperatorMinting: false,
|
|
211
|
+
preventSplitOperatorIncreasingDiscountPercent: false
|
|
213
212
|
});
|
|
214
213
|
}
|
|
215
214
|
|
|
@@ -225,7 +224,9 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
225
224
|
revnetId: FEE_PROJECT_ID,
|
|
226
225
|
configuration: feeCfg,
|
|
227
226
|
terminalConfigurations: feeTc,
|
|
228
|
-
suckerDeploymentConfiguration: feeSdc
|
|
227
|
+
suckerDeploymentConfiguration: feeSdc,
|
|
228
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
229
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
229
230
|
});
|
|
230
231
|
|
|
231
232
|
// Deploy the revnet with 721 hook.
|
|
@@ -233,7 +234,7 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
233
234
|
_buildMinimalConfig();
|
|
234
235
|
REVDeploy721TiersHookConfig memory hookConfig = _build721Config();
|
|
235
236
|
|
|
236
|
-
(revnetId, hook) = REV_DEPLOYER.
|
|
237
|
+
(revnetId, hook) = REV_DEPLOYER.deployFor({
|
|
237
238
|
revnetId: 0,
|
|
238
239
|
configuration: cfg,
|
|
239
240
|
terminalConfigurations: tc,
|
|
@@ -405,7 +406,9 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
405
406
|
revnetId: FEE_PROJECT_ID,
|
|
406
407
|
configuration: feeCfg,
|
|
407
408
|
terminalConfigurations: feeTc,
|
|
408
|
-
suckerDeploymentConfiguration: feeSdc
|
|
409
|
+
suckerDeploymentConfiguration: feeSdc,
|
|
410
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
411
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
409
412
|
});
|
|
410
413
|
|
|
411
414
|
// Deploy revnet with 721 hook.
|
|
@@ -414,7 +417,7 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
414
417
|
cfg.description = REVDescription("AMM E2E", "AMME", "ipfs://amme2e", "AMME_SALT");
|
|
415
418
|
REVDeploy721TiersHookConfig memory hookConfig = _build721Config();
|
|
416
419
|
|
|
417
|
-
(uint256 revnetId, IJB721TiersHook hook) = ammDeployer.
|
|
420
|
+
(uint256 revnetId, IJB721TiersHook hook) = ammDeployer.deployFor({
|
|
418
421
|
revnetId: 0,
|
|
419
422
|
configuration: cfg,
|
|
420
423
|
terminalConfigurations: tc,
|
|
@@ -499,8 +502,13 @@ contract TestSplitWeightE2E is TestBaseWorkflow {
|
|
|
499
502
|
_buildMinimalConfig();
|
|
500
503
|
cfg2.description = REVDescription("NoSplit", "NS", "ipfs://nosplit", "NOSPLIT_SALT");
|
|
501
504
|
|
|
502
|
-
uint256 revnetId2 = REV_DEPLOYER.deployFor({
|
|
503
|
-
revnetId: 0,
|
|
505
|
+
(uint256 revnetId2,) = REV_DEPLOYER.deployFor({
|
|
506
|
+
revnetId: 0,
|
|
507
|
+
configuration: cfg2,
|
|
508
|
+
terminalConfigurations: tc2,
|
|
509
|
+
suckerDeploymentConfiguration: sdc2,
|
|
510
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
511
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
504
512
|
});
|
|
505
513
|
|
|
506
514
|
vm.prank(PAYER);
|
|
@@ -36,6 +36,7 @@ import {JB721InitTiersConfig} from "@bananapus/721-hook-v6/src/structs/JB721Init
|
|
|
36
36
|
import {IJB721TokenUriResolver} from "@bananapus/721-hook-v6/src/interfaces/IJB721TokenUriResolver.sol";
|
|
37
37
|
import {REVDeploy721TiersHookConfig} from "../src/structs/REVDeploy721TiersHookConfig.sol";
|
|
38
38
|
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
39
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
39
40
|
|
|
40
41
|
// Buyback hook
|
|
41
42
|
import {JBBuybackHook} from "@bananapus/buyback-hook-v6/src/JBBuybackHook.sol";
|
|
@@ -258,8 +259,9 @@ contract TestSplitWeightFork is TestBaseWorkflow {
|
|
|
258
259
|
|
|
259
260
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
260
261
|
HOOK_STORE = new JB721TiersHookStore();
|
|
261
|
-
EXAMPLE_HOOK =
|
|
262
|
-
|
|
262
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
263
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
264
|
+
);
|
|
263
265
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
264
266
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
265
267
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -394,10 +396,7 @@ contract TestSplitWeightFork is TestBaseWorkflow {
|
|
|
394
396
|
tokenUriResolver: IJB721TokenUriResolver(address(0)),
|
|
395
397
|
contractUri: "ipfs://contract",
|
|
396
398
|
tiersConfig: JB721InitTiersConfig({
|
|
397
|
-
tiers: tiers,
|
|
398
|
-
currency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
399
|
-
decimals: 18,
|
|
400
|
-
prices: IJBPrices(address(0))
|
|
399
|
+
tiers: tiers, currency: uint32(uint160(JBConstants.NATIVE_TOKEN)), decimals: 18
|
|
401
400
|
}),
|
|
402
401
|
reserveBeneficiary: address(0),
|
|
403
402
|
flags: REV721TiersHookFlags({
|
|
@@ -408,10 +407,10 @@ contract TestSplitWeightFork is TestBaseWorkflow {
|
|
|
408
407
|
})
|
|
409
408
|
}),
|
|
410
409
|
salt: bytes32("FORK_721"),
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
410
|
+
preventSplitOperatorAdjustingTiers: false,
|
|
411
|
+
preventSplitOperatorUpdatingMetadata: false,
|
|
412
|
+
preventSplitOperatorMinting: false,
|
|
413
|
+
preventSplitOperatorIncreasingDiscountPercent: false
|
|
415
414
|
});
|
|
416
415
|
}
|
|
417
416
|
|
|
@@ -427,7 +426,9 @@ contract TestSplitWeightFork is TestBaseWorkflow {
|
|
|
427
426
|
revnetId: FEE_PROJECT_ID,
|
|
428
427
|
configuration: feeCfg,
|
|
429
428
|
terminalConfigurations: feeTc,
|
|
430
|
-
suckerDeploymentConfiguration: feeSdc
|
|
429
|
+
suckerDeploymentConfiguration: feeSdc,
|
|
430
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
431
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
431
432
|
});
|
|
432
433
|
|
|
433
434
|
// Deploy the revnet with 721 hook.
|
|
@@ -435,7 +436,7 @@ contract TestSplitWeightFork is TestBaseWorkflow {
|
|
|
435
436
|
_buildMinimalConfig();
|
|
436
437
|
REVDeploy721TiersHookConfig memory hookConfig = _build721Config();
|
|
437
438
|
|
|
438
|
-
(revnetId, hook) = REV_DEPLOYER.
|
|
439
|
+
(revnetId, hook) = REV_DEPLOYER.deployFor({
|
|
439
440
|
revnetId: 0,
|
|
440
441
|
configuration: cfg,
|
|
441
442
|
terminalConfigurations: tc,
|
|
@@ -748,8 +749,13 @@ contract TestSplitWeightFork is TestBaseWorkflow {
|
|
|
748
749
|
_buildMinimalConfig();
|
|
749
750
|
cfg2.description = REVDescription("NoSplit Fork", "NSF", "ipfs://nosplit", "NSF_SALT");
|
|
750
751
|
|
|
751
|
-
uint256 revnetId2 = REV_DEPLOYER.deployFor({
|
|
752
|
-
revnetId: 0,
|
|
752
|
+
(uint256 revnetId2,) = REV_DEPLOYER.deployFor({
|
|
753
|
+
revnetId: 0,
|
|
754
|
+
configuration: cfg2,
|
|
755
|
+
terminalConfigurations: tc2,
|
|
756
|
+
suckerDeploymentConfiguration: sdc2,
|
|
757
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
758
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
753
759
|
});
|
|
754
760
|
|
|
755
761
|
// Set up pool for revnet2 too (so buyback hook has a pool, but will choose mint at 1:1).
|
|
@@ -25,6 +25,8 @@ import {JB721TiersHook} from "@bananapus/721-hook-v6/src/JB721TiersHook.sol";
|
|
|
25
25
|
import {JB721TiersHookStore} from "@bananapus/721-hook-v6/src/JB721TiersHookStore.sol";
|
|
26
26
|
import {JBAddressRegistry} from "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
|
|
27
27
|
import {IJBAddressRegistry} from "@bananapus/address-registry-v6/src/interfaces/IJBAddressRegistry.sol";
|
|
28
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
29
|
+
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
28
30
|
|
|
29
31
|
/// @notice Documents and verifies that stage transitions change the borrowable amount for the same collateral.
|
|
30
32
|
/// This is by design: loan value tracks the current bonding curve parameters (cashOutTaxRate),
|
|
@@ -110,8 +112,9 @@ contract TestStageTransitionBorrowable is TestBaseWorkflow {
|
|
|
110
112
|
FEE_PROJECT_ID = jbProjects().createFor(multisig());
|
|
111
113
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
112
114
|
HOOK_STORE = new JB721TiersHookStore();
|
|
113
|
-
EXAMPLE_HOOK =
|
|
114
|
-
|
|
115
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
116
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
117
|
+
);
|
|
115
118
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
116
119
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
117
120
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -145,14 +148,21 @@ contract TestStageTransitionBorrowable is TestBaseWorkflow {
|
|
|
145
148
|
revnetId: FEE_PROJECT_ID,
|
|
146
149
|
configuration: feeCfg,
|
|
147
150
|
terminalConfigurations: feeTc,
|
|
148
|
-
suckerDeploymentConfiguration: feeSdc
|
|
151
|
+
suckerDeploymentConfiguration: feeSdc,
|
|
152
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
153
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
149
154
|
});
|
|
150
155
|
|
|
151
156
|
// Deploy the test revnet.
|
|
152
157
|
(REVConfig memory cfg, JBTerminalConfig[] memory tc, REVSuckerDeploymentConfig memory sdc) = _buildConfig();
|
|
153
158
|
cfg.description = REVDescription("StageTest2", "ST2", "ipfs://test2", "STG_SALT_2");
|
|
154
|
-
REVNET_ID = REV_DEPLOYER.deployFor({
|
|
155
|
-
revnetId: 0,
|
|
159
|
+
(REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
160
|
+
revnetId: 0,
|
|
161
|
+
configuration: cfg,
|
|
162
|
+
terminalConfigurations: tc,
|
|
163
|
+
suckerDeploymentConfiguration: sdc,
|
|
164
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
165
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
156
166
|
});
|
|
157
167
|
|
|
158
168
|
vm.deal(USER, 100 ether);
|
|
@@ -27,6 +27,8 @@ import {JB721TiersHook} from "@bananapus/721-hook-v6/src/JB721TiersHook.sol";
|
|
|
27
27
|
import {JB721TiersHookStore} from "@bananapus/721-hook-v6/src/JB721TiersHookStore.sol";
|
|
28
28
|
import {JBAddressRegistry} from "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
|
|
29
29
|
import {IJBAddressRegistry} from "@bananapus/address-registry-v6/src/interfaces/IJBAddressRegistry.sol";
|
|
30
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
31
|
+
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
30
32
|
|
|
31
33
|
/// @notice Tests for default operator permissions including SET_ROUTER_TERMINAL.
|
|
32
34
|
/// Verifies that all default split operator permissions are granted correctly.
|
|
@@ -53,8 +55,9 @@ contract TestSwapTerminalPermission is TestBaseWorkflow {
|
|
|
53
55
|
FEE_PROJECT_ID = jbProjects().createFor(multisig());
|
|
54
56
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
55
57
|
HOOK_STORE = new JB721TiersHookStore();
|
|
56
|
-
EXAMPLE_HOOK =
|
|
57
|
-
|
|
58
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
59
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
60
|
+
);
|
|
58
61
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
59
62
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
60
63
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -89,15 +92,22 @@ contract TestSwapTerminalPermission is TestBaseWorkflow {
|
|
|
89
92
|
revnetId: FEE_PROJECT_ID,
|
|
90
93
|
configuration: feeCfg,
|
|
91
94
|
terminalConfigurations: feeTc,
|
|
92
|
-
suckerDeploymentConfiguration: feeSdc
|
|
95
|
+
suckerDeploymentConfiguration: feeSdc,
|
|
96
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
97
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
93
98
|
});
|
|
94
99
|
|
|
95
100
|
// Deploy the test revnet
|
|
96
101
|
(REVConfig memory cfg, JBTerminalConfig[] memory tc, REVSuckerDeploymentConfig memory sdc) =
|
|
97
102
|
_buildConfig("TestRevnet", "TST", "TST_SALT");
|
|
98
103
|
|
|
99
|
-
TEST_REVNET_ID = REV_DEPLOYER.deployFor({
|
|
100
|
-
revnetId: 0,
|
|
104
|
+
(TEST_REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
105
|
+
revnetId: 0,
|
|
106
|
+
configuration: cfg,
|
|
107
|
+
terminalConfigurations: tc,
|
|
108
|
+
suckerDeploymentConfiguration: sdc,
|
|
109
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
110
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
101
111
|
});
|
|
102
112
|
}
|
|
103
113
|
|
|
@@ -7,6 +7,8 @@ import /* {*} from "@bananapus/721-hook-v6/src/JB721TiersHookDeployer.sol";
|
|
|
7
7
|
import /* {*} from */ "./../src/REVDeployer.sol";
|
|
8
8
|
import "@croptop/core-v6/src/CTPublisher.sol";
|
|
9
9
|
import {MockBuybackDataHook} from "./mock/MockBuybackDataHook.sol";
|
|
10
|
+
import {REVEmpty721Config} from "./helpers/REVEmpty721Config.sol";
|
|
11
|
+
import {REVCroptopAllowedPost} from "../src/structs/REVCroptopAllowedPost.sol";
|
|
10
12
|
|
|
11
13
|
import "@bananapus/core-v6/script/helpers/CoreDeploymentLib.sol";
|
|
12
14
|
import "@bananapus/721-hook-v6/script/helpers/Hook721DeploymentLib.sol";
|
|
@@ -61,8 +63,9 @@ contract TestUint112Overflow is TestBaseWorkflow {
|
|
|
61
63
|
|
|
62
64
|
SUCKER_REGISTRY = new JBSuckerRegistry(jbDirectory(), jbPermissions(), multisig(), address(0));
|
|
63
65
|
HOOK_STORE = new JB721TiersHookStore();
|
|
64
|
-
EXAMPLE_HOOK =
|
|
65
|
-
|
|
66
|
+
EXAMPLE_HOOK = new JB721TiersHook(
|
|
67
|
+
jbDirectory(), jbPermissions(), jbPrices(), jbRulesets(), HOOK_STORE, jbSplits(), multisig()
|
|
68
|
+
);
|
|
66
69
|
ADDRESS_REGISTRY = new JBAddressRegistry();
|
|
67
70
|
HOOK_DEPLOYER = new JB721TiersHookDeployer(EXAMPLE_HOOK, HOOK_STORE, ADDRESS_REGISTRY, multisig());
|
|
68
71
|
PUBLISHER = new CTPublisher(jbDirectory(), jbPermissions(), FEE_PROJECT_ID, multisig());
|
|
@@ -144,7 +147,9 @@ contract TestUint112Overflow is TestBaseWorkflow {
|
|
|
144
147
|
terminalConfigurations: tc,
|
|
145
148
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
146
149
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("FEE")
|
|
147
|
-
})
|
|
150
|
+
}),
|
|
151
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
152
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
148
153
|
});
|
|
149
154
|
}
|
|
150
155
|
|
|
@@ -184,13 +189,15 @@ contract TestUint112Overflow is TestBaseWorkflow {
|
|
|
184
189
|
splitOperator: multisig(),
|
|
185
190
|
stageConfigurations: stages
|
|
186
191
|
});
|
|
187
|
-
REVNET_ID = REV_DEPLOYER.deployFor({
|
|
192
|
+
(REVNET_ID,) = REV_DEPLOYER.deployFor({
|
|
188
193
|
revnetId: 0,
|
|
189
194
|
configuration: cfg,
|
|
190
195
|
terminalConfigurations: tc,
|
|
191
196
|
suckerDeploymentConfiguration: REVSuckerDeploymentConfig({
|
|
192
197
|
deployerConfigurations: new JBSuckerDeployerConfig[](0), salt: keccak256("NANA")
|
|
193
|
-
})
|
|
198
|
+
}),
|
|
199
|
+
tiered721HookConfiguration: REVEmpty721Config.empty721Config(uint32(uint160(JBConstants.NATIVE_TOKEN))),
|
|
200
|
+
allowedPosts: REVEmpty721Config.emptyAllowedPosts()
|
|
194
201
|
});
|
|
195
202
|
}
|
|
196
203
|
|