@bananapus/core-v6 0.0.15 → 0.0.16
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 +4 -0
- package/README.md +2 -2
- package/SKILLS.md +2 -0
- package/STYLE_GUIDE.md +16 -2
- package/package.json +2 -2
- package/script/Deploy.s.sol +22 -13
- package/script/DeployPeriphery.s.sol +70 -52
- package/script/helpers/CoreDeploymentLib.sol +83 -35
- package/src/JBChainlinkV3PriceFeed.sol +1 -0
- package/src/JBController.sol +18 -3
- package/src/JBERC20.sol +12 -3
- package/src/JBFundAccessLimits.sol +12 -2
- package/src/JBMultiTerminal.sol +3 -1
- package/src/JBPermissions.sol +1 -0
- package/src/JBProjects.sol +1 -1
- package/src/JBRulesets.sol +11 -0
- package/src/JBSplits.sol +5 -0
- package/src/JBTerminalStore.sol +3 -0
- package/src/JBTokens.sol +40 -4
- package/src/interfaces/IJBController.sol +6 -0
- package/src/interfaces/IJBPermitTerminal.sol +1 -0
- package/src/interfaces/IJBToken.sol +5 -0
- package/src/interfaces/IJBTokens.sol +13 -0
- package/src/libraries/JBMetadataResolver.sol +7 -3
- package/src/libraries/JBRulesetMetadataResolver.sol +21 -21
- package/src/structs/JBAccountingContext.sol +1 -0
- package/src/structs/JBAfterCashOutRecordedContext.sol +1 -0
- package/src/structs/JBAfterPayRecordedContext.sol +1 -0
- package/src/structs/JBBeforeCashOutRecordedContext.sol +1 -0
- package/src/structs/JBBeforePayRecordedContext.sol +1 -0
- package/src/structs/JBCashOutHookSpecification.sol +1 -0
- package/src/structs/JBCurrencyAmount.sol +1 -0
- package/src/structs/JBFee.sol +1 -0
- package/src/structs/JBFundAccessLimitGroup.sol +1 -0
- package/src/structs/JBPayHookSpecification.sol +1 -0
- package/src/structs/JBPermissionsData.sol +1 -0
- package/src/structs/JBRuleset.sol +1 -0
- package/src/structs/JBRulesetConfig.sol +1 -0
- package/src/structs/JBRulesetMetadata.sol +1 -0
- package/src/structs/JBRulesetWeightCache.sol +1 -0
- package/src/structs/JBRulesetWithMetadata.sol +1 -0
- package/src/structs/JBSingleAllowance.sol +1 -0
- package/src/structs/JBSplit.sol +1 -0
- package/src/structs/JBSplitGroup.sol +1 -0
- package/src/structs/JBSplitHookContext.sol +1 -0
- package/src/structs/JBTerminalConfig.sol +1 -0
- package/src/structs/JBTokenAmount.sol +1 -0
- package/test/ComprehensiveInvariant.t.sol +15 -2
- package/test/CoreExploitTests.t.sol +34 -1
- package/test/EconomicSimulation.t.sol +10 -2
- package/test/EntryPointPermutations.t.sol +17 -3
- package/test/FlashLoanAttacks.t.sol +12 -1
- package/test/PermissionEscalation.t.sol +53 -10
- package/test/RulesetTransitions.t.sol +15 -1
- package/test/SplitLoopTests.t.sol +25 -2
- package/test/TestAccessToFunds.sol +17 -2
- package/test/TestCashOut.sol +15 -1
- package/test/TestCashOutCountFor.sol +1 -1
- package/test/TestCashOutHooks.sol +47 -25
- package/test/TestCashOutTimingEdge.sol +13 -1
- package/test/TestDurationUnderflow.sol +13 -1
- package/test/TestFeeProcessingFailure.sol +16 -1
- package/test/TestFees.sol +14 -1
- package/test/TestInterfaceSupport.sol +20 -1
- package/test/TestJBERC20Inheritance.sol +11 -1
- package/test/TestLaunchProject.sol +13 -1
- package/test/TestMetaTx.sol +15 -1
- package/test/TestMetadataParserLib.sol +37 -4
- package/test/TestMigrationHeldFees.sol +16 -1
- package/test/TestMintTokensOf.sol +14 -1
- package/test/TestMultiTokenSurplus.sol +14 -1
- package/test/TestMultipleAccessLimits.sol +23 -1
- package/test/TestPayBurnRedeemFlow.sol +16 -1
- package/test/TestPayHooks.sol +33 -14
- package/test/TestPermissions.sol +20 -1
- package/test/TestPermissionsEdge.sol +5 -1
- package/test/TestPermit2Terminal.sol +36 -3
- package/test/TestRulesetQueueing.sol +24 -1
- package/test/TestRulesetQueuingStress.sol +20 -1
- package/test/TestRulesetWeightCaching.sol +5 -1
- package/test/TestSplits.sol +23 -1
- package/test/TestTerminalMigration.sol +11 -1
- package/test/TestTokenFlow.sol +18 -1
- package/test/TestWeightCacheStaleAfterRejection.sol +15 -1
- package/test/WeirdTokenTests.t.sol +17 -1
- package/test/fork/TestChainlinkPriceFeedFork.sol +6 -1
- package/test/formal/BondingCurveProperties.t.sol +8 -1
- package/test/formal/FeeProperties.t.sol +7 -1
- package/test/helpers/JBTest.sol +1 -1
- package/test/helpers/TestBaseWorkflow.sol +84 -1
- package/test/invariants/Phase3DeepInvariant.t.sol +13 -2
- package/test/invariants/RulesetsInvariant.t.sol +12 -2
- package/test/invariants/TerminalStoreInvariant.t.sol +11 -2
- package/test/invariants/TokensInvariant.t.sol +13 -2
- package/test/invariants/handlers/ComprehensiveHandler.sol +19 -1
- package/test/invariants/handlers/EconomicHandler.sol +31 -1
- package/test/invariants/handlers/Phase3Handler.sol +31 -1
- package/test/invariants/handlers/RulesetsHandler.sol +5 -1
- package/test/invariants/handlers/TerminalStoreHandler.sol +6 -1
- package/test/invariants/handlers/TokensHandler.sol +1 -1
- package/test/mock/MockERC20.sol +0 -2
- package/test/mock/MockMaliciousBeneficiary.sol +2 -1
- package/test/mock/MockMaliciousSplitHook.sol +2 -1
- package/test/mock/MockPriceFeed.sol +1 -1
- package/test/units/static/JBChainlinkV3PriceFeed/TestPriceFeed.sol +0 -1
- package/test/units/static/JBController/JBControllerSetup.sol +10 -1
- package/test/units/static/JBController/TestBurnTokensOf.sol +8 -1
- package/test/units/static/JBController/TestClaimTokensFor.sol +4 -1
- package/test/units/static/JBController/TestDeployErc20For.sol +7 -1
- package/test/units/static/JBController/TestLaunchProjectFor.sol +21 -1
- package/test/units/static/JBController/TestLaunchRulesetsFor.sol +21 -1
- package/test/units/static/JBController/TestMigrateController.sol +10 -1
- package/test/units/static/JBController/TestMintTokensOfUnits.sol +10 -1
- package/test/units/static/JBController/TestPayReservedTokenToTerminal.sol +4 -1
- package/test/units/static/JBController/TestReceiveMigrationFrom.sol +5 -1
- package/test/units/static/JBController/TestRulesetViews.sol +7 -1
- package/test/units/static/JBController/TestSendReservedTokensToSplitsOf.sol +21 -1
- package/test/units/static/JBController/TestSetSplitGroupsOf.sol +6 -1
- package/test/units/static/JBController/TestSetTokenFor.sol +13 -1
- package/test/units/static/JBController/TestSetUriOf.sol +5 -1
- package/test/units/static/JBController/TestTransferCreditsFrom.sol +11 -1
- package/test/units/static/JBDeadline/TestDeadlineFuzz.sol +12 -1
- package/test/units/static/JBDirectory/JBDirectorySetup.sol +4 -1
- package/test/units/static/JBDirectory/TestPrimaryTerminalOf.sol +5 -1
- package/test/units/static/JBDirectory/TestSetControllerOf.sol +11 -1
- package/test/units/static/JBDirectory/TestSetControllerOfMigrationOrder.sol +7 -1
- package/test/units/static/JBDirectory/TestSetPrimaryTerminalOf.sol +11 -1
- package/test/units/static/JBDirectory/TestSetTerminalsOf.sol +10 -1
- package/test/units/static/JBERC20/JBERC20Setup.sol +2 -1
- package/test/units/static/JBERC20/SigUtils.sol +2 -0
- package/test/units/static/JBERC20/TestInitialize.sol +1 -1
- package/test/units/static/JBERC20/TestName.sol +1 -1
- package/test/units/static/JBERC20/TestNonces.sol +3 -1
- package/test/units/static/JBERC20/TestSymbol.sol +1 -1
- package/test/units/static/JBFeelessAdresses/JBFeelessSetup.sol +2 -1
- package/test/units/static/JBFeelessAdresses/TestInterfaces.sol +2 -1
- package/test/units/static/JBFeelessAdresses/TestSetFeelessAddress.sol +1 -1
- package/test/units/static/JBFees/TestFeesFuzz.sol +1 -1
- package/test/units/static/JBFixedPointNumber/TestAdjustDecimals.sol +0 -1
- package/test/units/static/JBFixedPointNumber/TestAdjustDecimalsFuzz.sol +0 -1
- package/test/units/static/JBFundAccessLimits/JBFundAccessSetup.sol +3 -1
- package/test/units/static/JBFundAccessLimits/TestFundAccessLimitsEdge.sol +4 -1
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitOf.sol +4 -1
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitsOf.sol +8 -1
- package/test/units/static/JBFundAccessLimits/TestSetFundAccessLimitsFor.sol +8 -1
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowanceOf.sol +4 -1
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowancesOf.sol +7 -1
- package/test/units/static/JBMetadataResolver/TestGetDataFor.sol +1 -1
- package/test/units/static/JBMetadataResolver/TestMetadataResolverEdgeCases.sol +2 -1
- package/test/units/static/JBMetadataResolver/TestMetadataResolverFuzz.sol +2 -1
- package/test/units/static/JBMultiTerminal/JBMultiTerminalSetup.sol +12 -1
- package/test/units/static/JBMultiTerminal/TestAccountingContextsOf.sol +9 -1
- package/test/units/static/JBMultiTerminal/TestAddAccountingContextsFor.sol +18 -2
- package/test/units/static/JBMultiTerminal/TestAddToBalanceOf.sol +42 -7
- package/test/units/static/JBMultiTerminal/TestCashOutTokensOf.sol +30 -6
- package/test/units/static/JBMultiTerminal/TestExecutePayout.sol +18 -2
- package/test/units/static/JBMultiTerminal/TestExecuteProcessFee.sol +13 -3
- package/test/units/static/JBMultiTerminal/TestMigrateBalanceOf.sol +21 -4
- package/test/units/static/JBMultiTerminal/TestPay.sol +32 -6
- package/test/units/static/JBMultiTerminal/TestProcessHeldFeesOf.sol +0 -1
- package/test/units/static/JBMultiTerminal/TestSendPayoutsOf.sol +15 -1
- package/test/units/static/JBMultiTerminal/TestUseAllowanceOf.sol +17 -1
- package/test/units/static/JBPermissions/JBPermissionsSetup.sol +2 -1
- package/test/units/static/JBPermissions/TestHasPermission.sol +1 -1
- package/test/units/static/JBPermissions/TestHasPermissions.sol +1 -1
- package/test/units/static/JBPermissions/TestSetPermissionsFor.sol +3 -1
- package/test/units/static/JBPrices/JBPricesSetup.sol +6 -1
- package/test/units/static/JBPrices/TestAddPriceFeedFor.sol +6 -1
- package/test/units/static/JBPrices/TestPricePerUnitOf.sol +4 -1
- package/test/units/static/JBPrices/TestPrices.sol +4 -1
- package/test/units/static/JBProjects/JBProjectsSetup.sol +2 -1
- package/test/units/static/JBProjects/TestCreateFor.sol +3 -1
- package/test/units/static/JBProjects/TestInitialProject.sol +2 -1
- package/test/units/static/JBProjects/TestInterfaces.sol +0 -1
- package/test/units/static/JBProjects/TestSetResolver.sol +2 -1
- package/test/units/static/JBProjects/TestTokenUri.sol +3 -1
- package/test/units/static/JBRulesetMetadataResolver/TestSetCashOutTaxRateTo.sol +9 -1
- package/test/units/static/JBRulesets/JBRulesetsSetup.sol +3 -1
- package/test/units/static/JBRulesets/TestCurrentApprovalStatusForLatestRulesetOf.sol +9 -1
- package/test/units/static/JBRulesets/TestCurrentOf.sol +10 -1
- package/test/units/static/JBRulesets/TestGetRulesetOf.sol +7 -1
- package/test/units/static/JBRulesets/TestLatestQueuedRulesetOf.sol +9 -1
- package/test/units/static/JBRulesets/TestRulesets.sol +12 -1
- package/test/units/static/JBRulesets/TestRulesetsOf.sol +1 -1
- package/test/units/static/JBRulesets/TestUpcomingRulesetOf.sol +10 -1
- package/test/units/static/JBRulesets/TestUpdateRulesetWeightCache.sol +6 -1
- package/test/units/static/JBSplits/JBSplitsSetup.sol +3 -1
- package/test/units/static/JBSplits/TestSelfManagedSplitGroups.sol +8 -1
- package/test/units/static/JBSplits/TestSetSplitGroupsOf.sol +8 -1
- package/test/units/static/JBSplits/TestSplitsLockedEdge.sol +6 -1
- package/test/units/static/JBSplits/TestSplitsOf.sol +1 -1
- package/test/units/static/JBSplits/TestSplitsPacking.sol +5 -2
- package/test/units/static/JBSurplus/TestSurplusFuzz.sol +3 -1
- package/test/units/static/JBTerminalStore/JBTerminalStoreSetup.sol +5 -1
- package/test/units/static/JBTerminalStore/TestCurrentReclaimableSurplusOf.sol +14 -1
- package/test/units/static/JBTerminalStore/TestCurrentSurplusOf.sol +14 -1
- package/test/units/static/JBTerminalStore/TestCurrentTotalSurplusOf.sol +3 -1
- package/test/units/static/JBTerminalStore/TestRecordCashOutsFor.sol +20 -1
- package/test/units/static/JBTerminalStore/TestRecordPaymentFrom.sol +15 -1
- package/test/units/static/JBTerminalStore/TestRecordPayoutFor.sol +13 -1
- package/test/units/static/JBTerminalStore/TestRecordTerminalMigration.sol +8 -1
- package/test/units/static/JBTerminalStore/TestRecordUsedAllowanceOf.sol +16 -1
- package/test/units/static/JBTerminalStore/TestUint224Overflow.sol +15 -1
- package/test/units/static/JBTokens/JBTokensSetup.sol +5 -1
- package/test/units/static/JBTokens/TestBurnFrom.sol +4 -1
- package/test/units/static/JBTokens/TestClaimTokensFor.sol +4 -1
- package/test/units/static/JBTokens/TestDeployERC20ForUnits.sol +4 -1
- package/test/units/static/JBTokens/TestMintFor.sol +4 -1
- package/test/units/static/JBTokens/TestSetTokenFor.sol +4 -1
- package/test/units/static/JBTokens/TestTotalBalanceOf.sol +1 -1
- package/test/units/static/JBTokens/TestTotalSupplyOf.sol +1 -1
- package/test/units/static/JBTokens/TestTransferCreditsFrom.sol +3 -1
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {IJBFeelessAddresses} from "../../../../src/interfaces/IJBFeelessAddresses.sol";
|
|
7
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
8
|
+
import {IJBSplitHook} from "../../../../src/interfaces/IJBSplitHook.sol";
|
|
9
|
+
import {IJBTerminal} from "../../../../src/interfaces/IJBTerminal.sol";
|
|
10
|
+
import {IJBTerminalStore} from "../../../../src/interfaces/IJBTerminalStore.sol";
|
|
11
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
12
|
+
import {JBFees} from "../../../../src/libraries/JBFees.sol";
|
|
13
|
+
import {JBPayHookSpecification} from "../../../../src/structs/JBPayHookSpecification.sol";
|
|
14
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
15
|
+
import {JBSplit} from "../../../../src/structs/JBSplit.sol";
|
|
16
|
+
import {JBSplitHookContext} from "../../../../src/structs/JBSplitHookContext.sol";
|
|
17
|
+
import {JBTokenAmount} from "../../../../src/structs/JBTokenAmount.sol";
|
|
18
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
19
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
5
20
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
6
21
|
|
|
7
22
|
contract TestExecutePayout_Local is JBMultiTerminalSetup {
|
|
@@ -344,7 +359,8 @@ contract TestExecutePayout_Local is JBMultiTerminalSetup {
|
|
|
344
359
|
});
|
|
345
360
|
|
|
346
361
|
// needed for next mock call returns
|
|
347
|
-
JBTokenAmount memory tokenAmount =
|
|
362
|
+
JBTokenAmount memory tokenAmount =
|
|
363
|
+
JBTokenAmount({token: _usdc, decimals: 0, currency: 0, value: _defaultAmount});
|
|
348
364
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](0);
|
|
349
365
|
JBRuleset memory returnedRuleset = JBRuleset({
|
|
350
366
|
cycleNumber: 1,
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
6
|
+
import {IJBTerminal} from "../../../../src/interfaces/IJBTerminal.sol";
|
|
7
|
+
import {IJBTerminalStore} from "../../../../src/interfaces/IJBTerminalStore.sol";
|
|
8
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
9
|
+
import {JBPayHookSpecification} from "../../../../src/structs/JBPayHookSpecification.sol";
|
|
10
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
11
|
+
import {JBTokenAmount} from "../../../../src/structs/JBTokenAmount.sol";
|
|
12
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
5
13
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
6
14
|
|
|
7
15
|
contract TestExecuteProcessFee_Local is JBMultiTerminalSetup {
|
|
@@ -80,7 +88,8 @@ contract TestExecuteProcessFee_Local is JBMultiTerminalSetup {
|
|
|
80
88
|
// it will call internal _pay
|
|
81
89
|
|
|
82
90
|
// needed for next mock call returns
|
|
83
|
-
JBTokenAmount memory tokenAmount =
|
|
91
|
+
JBTokenAmount memory tokenAmount =
|
|
92
|
+
JBTokenAmount({token: _native, decimals: 0, currency: 0, value: _defaultAmount});
|
|
84
93
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](0);
|
|
85
94
|
JBRuleset memory returnedRuleset = JBRuleset({
|
|
86
95
|
cycleNumber: 1,
|
|
@@ -143,7 +152,8 @@ contract TestExecuteProcessFee_Local is JBMultiTerminalSetup {
|
|
|
143
152
|
// it will call external pay with zero msgvalue
|
|
144
153
|
|
|
145
154
|
// needed for next mock call returns
|
|
146
|
-
JBTokenAmount memory tokenAmount =
|
|
155
|
+
JBTokenAmount memory tokenAmount =
|
|
156
|
+
JBTokenAmount({token: _usdc, decimals: 0, currency: 0, value: _defaultAmount});
|
|
147
157
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](0);
|
|
148
158
|
JBRuleset memory returnedRuleset = JBRuleset({
|
|
149
159
|
cycleNumber: 1,
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
|
+
import {JBPermissioned} from "../../../../src/abstract/JBPermissioned.sol";
|
|
6
|
+
import {IJBPermissions} from "../../../../src/interfaces/IJBPermissions.sol";
|
|
7
|
+
import {IJBTerminal} from "../../../../src/interfaces/IJBTerminal.sol";
|
|
8
|
+
import {IJBTerminalStore} from "../../../../src/interfaces/IJBTerminalStore.sol";
|
|
9
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
10
|
+
import {JBAccountingContext} from "../../../../src/structs/JBAccountingContext.sol";
|
|
11
|
+
import {JBPermissionIds} from "@bananapus/permission-ids-v6/src/JBPermissionIds.sol";
|
|
12
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
13
|
+
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
|
5
14
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
6
15
|
|
|
7
16
|
contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
@@ -9,8 +18,10 @@ contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
|
9
18
|
uint256 _defaultAmount = 1e18;
|
|
10
19
|
address _bene = makeAddr("beneficiary");
|
|
11
20
|
address _native = JBConstants.NATIVE_TOKEN;
|
|
21
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
12
22
|
uint256 _nativeCurrency = uint32(uint160(_native));
|
|
13
23
|
address _usdc = makeAddr("USDC");
|
|
24
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
14
25
|
uint256 _usdcCurrency = uint32(uint160(_usdc));
|
|
15
26
|
|
|
16
27
|
IJBTerminal _newTerminal = IJBTerminal(makeAddr("newTerminal"));
|
|
@@ -94,8 +105,10 @@ contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
|
94
105
|
// it will safeIncreaseAllowance and addToBalanceOf
|
|
95
106
|
|
|
96
107
|
// for next mock
|
|
108
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
97
109
|
JBAccountingContext memory _context =
|
|
98
|
-
|
|
110
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
111
|
+
JBAccountingContext({token: _usdc, decimals: 6, currency: uint32(_usdcCurrency)});
|
|
99
112
|
|
|
100
113
|
// mock call to the destination terminals accountingContextFor
|
|
101
114
|
mockExpect(
|
|
@@ -131,8 +144,10 @@ contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
|
131
144
|
// it will addToBalanceOf with value in msgvalue
|
|
132
145
|
|
|
133
146
|
// for next mock
|
|
147
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
134
148
|
JBAccountingContext memory _context =
|
|
135
|
-
|
|
149
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
150
|
+
JBAccountingContext({token: _native, decimals: 18, currency: uint32(_nativeCurrency)});
|
|
136
151
|
|
|
137
152
|
// mock call to the destination terminals accountingContextFor
|
|
138
153
|
mockExpect(
|
|
@@ -165,8 +180,10 @@ contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
|
165
180
|
// it will not add to balance
|
|
166
181
|
|
|
167
182
|
// for next mock
|
|
183
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
168
184
|
JBAccountingContext memory _context =
|
|
169
|
-
|
|
185
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
186
|
+
JBAccountingContext({token: _native, decimals: 18, currency: uint32(_nativeCurrency)});
|
|
170
187
|
|
|
171
188
|
// mock call to the destination terminals accountingContextFor
|
|
172
189
|
mockExpect(
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {MockERC20} from "../../../mock/MockERC20.sol";
|
|
5
|
+
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
6
|
+
import {IJBController} from "../../../../src/interfaces/IJBController.sol";
|
|
7
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
8
|
+
import {IJBPayHook} from "../../../../src/interfaces/IJBPayHook.sol";
|
|
9
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
10
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
11
|
+
import {IJBTerminal} from "../../../../src/interfaces/IJBTerminal.sol";
|
|
12
|
+
import {IJBTerminalStore} from "../../../../src/interfaces/IJBTerminalStore.sol";
|
|
13
|
+
import {IJBTokens} from "../../../../src/interfaces/IJBTokens.sol";
|
|
14
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
15
|
+
import {JBAccountingContext} from "../../../../src/structs/JBAccountingContext.sol";
|
|
16
|
+
import {JBAfterPayRecordedContext} from "../../../../src/structs/JBAfterPayRecordedContext.sol";
|
|
17
|
+
import {JBPayHookSpecification} from "../../../../src/structs/JBPayHookSpecification.sol";
|
|
18
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
19
|
+
import {JBTokenAmount} from "../../../../src/structs/JBTokenAmount.sol";
|
|
20
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
21
|
+
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
|
5
22
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
6
23
|
|
|
7
24
|
contract TestPay_Local is JBMultiTerminalSetup {
|
|
@@ -9,8 +26,10 @@ contract TestPay_Local is JBMultiTerminalSetup {
|
|
|
9
26
|
uint256 _defaultAmount = 1e18;
|
|
10
27
|
address _bene = makeAddr("beneficiary");
|
|
11
28
|
address _native = JBConstants.NATIVE_TOKEN;
|
|
29
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
12
30
|
uint32 _nativeCurrency = uint32(uint160(_native));
|
|
13
31
|
address _usdc = makeAddr("USDC");
|
|
32
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
14
33
|
uint32 _usdcCurrency = uint32(uint160(_usdc));
|
|
15
34
|
|
|
16
35
|
address _mockController = makeAddr("mc");
|
|
@@ -102,7 +121,8 @@ contract TestPay_Local is JBMultiTerminalSetup {
|
|
|
102
121
|
// it will revert UNDER_MIN_RETURNED_TOKENS
|
|
103
122
|
|
|
104
123
|
// needed for next mock call returns
|
|
105
|
-
JBTokenAmount memory tokenAmount =
|
|
124
|
+
JBTokenAmount memory tokenAmount =
|
|
125
|
+
JBTokenAmount({token: _native, decimals: 18, currency: uint32(_nativeCurrency), value: _defaultAmount});
|
|
106
126
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](0);
|
|
107
127
|
JBRuleset memory returnedRuleset = JBRuleset({
|
|
108
128
|
cycleNumber: 1,
|
|
@@ -143,7 +163,8 @@ contract TestPay_Local is JBMultiTerminalSetup {
|
|
|
143
163
|
// it will mint tokens and emit Pay
|
|
144
164
|
|
|
145
165
|
// needed for next mock call returns
|
|
146
|
-
JBTokenAmount memory tokenAmount =
|
|
166
|
+
JBTokenAmount memory tokenAmount =
|
|
167
|
+
JBTokenAmount({token: _native, decimals: 18, currency: uint32(_nativeCurrency), value: _defaultAmount});
|
|
147
168
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](0);
|
|
148
169
|
JBRuleset memory returnedRuleset = JBRuleset({
|
|
149
170
|
cycleNumber: 1,
|
|
@@ -230,7 +251,10 @@ contract TestPay_Local is JBMultiTerminalSetup {
|
|
|
230
251
|
|
|
231
252
|
// needed for next mock call returns
|
|
232
253
|
JBTokenAmount memory tokenAmount =
|
|
233
|
-
|
|
254
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
255
|
+
JBTokenAmount({
|
|
256
|
+
token: address(_mockToken), decimals: 6, currency: uint32(_mockTokenCurrency), value: _defaultAmount
|
|
257
|
+
});
|
|
234
258
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](1);
|
|
235
259
|
hookSpecifications[0] = JBPayHookSpecification({hook: _mockHook, amount: _defaultAmount, metadata: ""});
|
|
236
260
|
|
|
@@ -320,7 +344,8 @@ contract TestPay_Local is JBMultiTerminalSetup {
|
|
|
320
344
|
// it will send ETH to the hook and emit HookAfterRecordPay and Pay
|
|
321
345
|
|
|
322
346
|
// needed for next mock call returns
|
|
323
|
-
JBTokenAmount memory tokenAmount =
|
|
347
|
+
JBTokenAmount memory tokenAmount =
|
|
348
|
+
JBTokenAmount({token: _native, decimals: 18, currency: uint32(_nativeCurrency), value: _defaultAmount});
|
|
324
349
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](1);
|
|
325
350
|
hookSpecifications[0] = JBPayHookSpecification({hook: _mockHook, amount: _defaultAmount, metadata: ""});
|
|
326
351
|
|
|
@@ -452,7 +477,8 @@ contract TestPay_Local is JBMultiTerminalSetup {
|
|
|
452
477
|
// it will not transfer
|
|
453
478
|
|
|
454
479
|
// needed for next mock call returns
|
|
455
|
-
JBTokenAmount memory tokenAmount =
|
|
480
|
+
JBTokenAmount memory tokenAmount =
|
|
481
|
+
JBTokenAmount({token: _native, decimals: 18, currency: uint32(_nativeCurrency), value: _defaultAmount});
|
|
456
482
|
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](0);
|
|
457
483
|
|
|
458
484
|
JBRuleset memory returnedRuleset = JBRuleset({
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
|
+
import {JBPermissioned} from "../../../../src/abstract/JBPermissioned.sol";
|
|
6
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
7
|
+
import {IJBFeelessAddresses} from "../../../../src/interfaces/IJBFeelessAddresses.sol";
|
|
8
|
+
import {IJBPayoutTerminal} from "../../../../src/interfaces/IJBPayoutTerminal.sol";
|
|
9
|
+
import {IJBPermissions} from "../../../../src/interfaces/IJBPermissions.sol";
|
|
10
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
11
|
+
import {IJBSplitHook} from "../../../../src/interfaces/IJBSplitHook.sol";
|
|
12
|
+
import {IJBSplits} from "../../../../src/interfaces/IJBSplits.sol";
|
|
13
|
+
import {IJBTerminalStore} from "../../../../src/interfaces/IJBTerminalStore.sol";
|
|
14
|
+
import {JBAccountingContext} from "../../../../src/structs/JBAccountingContext.sol";
|
|
15
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
16
|
+
import {JBSplit} from "../../../../src/structs/JBSplit.sol";
|
|
17
|
+
import {JBPermissionIds} from "@bananapus/permission-ids-v6/src/JBPermissionIds.sol";
|
|
18
|
+
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
|
5
19
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
6
20
|
|
|
7
21
|
contract TestSendPayoutsOf_Local is JBMultiTerminalSetup {
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
|
+
import {IJBController} from "../../../../src/interfaces/IJBController.sol";
|
|
6
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
7
|
+
import {IJBFeelessAddresses} from "../../../../src/interfaces/IJBFeelessAddresses.sol";
|
|
8
|
+
import {IJBPayoutTerminal} from "../../../../src/interfaces/IJBPayoutTerminal.sol";
|
|
9
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
10
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
11
|
+
import {IJBTerminalStore} from "../../../../src/interfaces/IJBTerminalStore.sol";
|
|
12
|
+
import {JBAccountingContext} from "../../../../src/structs/JBAccountingContext.sol";
|
|
13
|
+
import {JBPayHookSpecification} from "../../../../src/structs/JBPayHookSpecification.sol";
|
|
14
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
15
|
+
import {JBTokenAmount} from "../../../../src/structs/JBTokenAmount.sol";
|
|
16
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
17
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
18
|
+
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
|
5
19
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
6
20
|
|
|
7
21
|
contract TestUseAllowanceOf_Local is JBMultiTerminalSetup {
|
|
@@ -177,6 +191,7 @@ contract TestUseAllowanceOf_Local is JBMultiTerminalSetup {
|
|
|
177
191
|
// Weight for a fee calculation that would take place in terminal store
|
|
178
192
|
uint112 weight = 1000 * 10 ** 18;
|
|
179
193
|
|
|
194
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
180
195
|
uint32 currencyId = uint32(uint160(mockToken));
|
|
181
196
|
|
|
182
197
|
// Start the cascade of issuing project tokens to the fee beneficiary. (recieving platform tokens for paying a
|
|
@@ -288,6 +303,7 @@ contract TestUseAllowanceOf_Local is JBMultiTerminalSetup {
|
|
|
288
303
|
});
|
|
289
304
|
}
|
|
290
305
|
|
|
306
|
+
// forge-lint: disable-next-line(mixed-case-function)
|
|
291
307
|
modifier whenMsgSenderDNEQFeeless() {
|
|
292
308
|
_;
|
|
293
309
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPermissions} from "../../../../src/JBPermissions.sol";
|
|
5
|
+
import {IJBPermissions} from "../../../../src/interfaces/IJBPermissions.sol";
|
|
5
6
|
import {JBTest} from "../../../helpers/JBTest.sol";
|
|
6
7
|
|
|
7
8
|
/*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPermissions} from "../../../../src/JBPermissions.sol";
|
|
5
5
|
import {JBPermissionsSetup} from "./JBPermissionsSetup.sol";
|
|
6
6
|
|
|
7
7
|
contract TestHasPermissions_Local is JBPermissionsSetup {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPermissions} from "../../../../src/JBPermissions.sol";
|
|
5
5
|
import {JBPermissionsSetup} from "./JBPermissionsSetup.sol";
|
|
6
6
|
|
|
7
7
|
contract TestHasPermissions_Local is JBPermissionsSetup {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPermissions} from "../../../../src/JBPermissions.sol";
|
|
5
|
+
import {JBPermissionsData} from "../../../../src/structs/JBPermissionsData.sol";
|
|
6
|
+
import {JBPermissionIds} from "@bananapus/permission-ids-v6/src/JBPermissionIds.sol";
|
|
5
7
|
import {JBPermissionsSetup} from "./JBPermissionsSetup.sol";
|
|
6
8
|
|
|
7
9
|
contract TestSetPermissionsFor_Local is JBPermissionsSetup {
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPrices} from "../../../../src/JBPrices.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {IJBPermissions} from "../../../../src/interfaces/IJBPermissions.sol";
|
|
7
|
+
import {IJBPrices} from "../../../../src/interfaces/IJBPrices.sol";
|
|
8
|
+
import {IJBProjects} from "../../../../src/interfaces/IJBProjects.sol";
|
|
9
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
5
10
|
import {JBTest} from "../../../helpers/JBTest.sol";
|
|
6
11
|
|
|
7
12
|
/*
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPrices} from "../../../../src/JBPrices.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {IJBPriceFeed} from "../../../../src/interfaces/IJBPriceFeed.sol";
|
|
7
|
+
import {IJBPrices} from "../../../../src/interfaces/IJBPrices.sol";
|
|
8
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
5
9
|
import {JBPricesSetup} from "./JBPricesSetup.sol";
|
|
6
10
|
|
|
7
11
|
contract TestAddPriceFeedFor_Local is JBPricesSetup {
|
|
8
12
|
IJBPriceFeed _feed = IJBPriceFeed(makeAddr("feed"));
|
|
13
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
9
14
|
uint256 DEFAULT_PROJECT_ID = 0;
|
|
10
15
|
uint256 _projectId = 1;
|
|
11
16
|
address _projectOneOwner = makeAddr("oneOwner");
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPrices} from "../../../../src/JBPrices.sol";
|
|
5
|
+
import {IJBPriceFeed} from "../../../../src/interfaces/IJBPriceFeed.sol";
|
|
6
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
5
7
|
import {JBPricesSetup} from "./JBPricesSetup.sol";
|
|
6
8
|
|
|
7
9
|
contract TestPricePerUnitOf_Local is JBPricesSetup {
|
|
8
10
|
IJBPriceFeed _feed = IJBPriceFeed(makeAddr("priceFeed"));
|
|
11
|
+
// forge-lint: disable-next-line(mixed-case-variable)
|
|
9
12
|
uint256 DEFAULT_PROJECT_ID = 0;
|
|
10
13
|
uint256 _projectId = 1;
|
|
11
14
|
uint256 _defaultDirectPrice = 1_000_000_000;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBPrices} from "../../../../src/JBPrices.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
7
|
+
import {mulDiv} from "@prb/math/src/Common.sol";
|
|
5
8
|
import {JBPricesSetup} from "./JBPricesSetup.sol";
|
|
6
9
|
import {MockPriceFeed} from "../../../mock/MockPriceFeed.sol";
|
|
7
10
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBProjects} from "../../../../src/JBProjects.sol";
|
|
5
|
+
import {IJBProjects} from "../../../../src/interfaces/IJBProjects.sol";
|
|
5
6
|
import {JBTest} from "../../../helpers/JBTest.sol";
|
|
6
7
|
|
|
7
8
|
/*
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {StdStorage, stdStorage} from "forge-std/StdStorage.sol";
|
|
5
|
+
import {stdError} from "forge-std/StdError.sol";
|
|
6
|
+
import {IJBProjects} from "../../../../src/interfaces/IJBProjects.sol";
|
|
5
7
|
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
|
|
6
8
|
import {JBProjectsSetup} from "./JBProjectsSetup.sol";
|
|
7
9
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBProjects} from "../../../../src/JBProjects.sol";
|
|
5
|
+
import {IJBProjects} from "../../../../src/interfaces/IJBProjects.sol";
|
|
5
6
|
import {JBTest} from "../../../helpers/JBTest.sol";
|
|
6
7
|
|
|
7
8
|
contract TestInitialProject_Local is JBTest {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {IJBProjects} from "../../../../src/interfaces/IJBProjects.sol";
|
|
5
|
+
import {IJBTokenUriResolver} from "../../../../src/interfaces/IJBTokenUriResolver.sol";
|
|
5
6
|
import {JBProjectsSetup} from "./JBProjectsSetup.sol";
|
|
6
7
|
|
|
7
8
|
contract TestSetTokenURIResolver_Local is JBProjectsSetup {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {StdStorage, stdStorage} from "forge-std/StdStorage.sol";
|
|
5
|
+
import {IJBTokenUriResolver} from "../../../../src/interfaces/IJBTokenUriResolver.sol";
|
|
6
|
+
import {IERC721Metadata} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
|
|
5
7
|
import {JBProjectsSetup} from "./JBProjectsSetup.sol";
|
|
6
8
|
|
|
7
9
|
contract TestTokenURI_Local is JBProjectsSetup {
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
5
|
+
import {JBRulesetMetadataResolver} from "../../../../src/libraries/JBRulesetMetadataResolver.sol";
|
|
6
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
7
|
+
import {JBRulesetMetadata} from "../../../../src/structs/JBRulesetMetadata.sol";
|
|
5
8
|
import {JBTest} from "../../../helpers/JBTest.sol";
|
|
6
9
|
|
|
7
10
|
contract TestSetCashOutTaxRateTo_Local is JBTest {
|
|
@@ -50,24 +53,29 @@ contract TestSetCashOutTaxRateTo_Local is JBTest {
|
|
|
50
53
|
uint256 _packed = _rulesMetadata.packRulesetMetadata();
|
|
51
54
|
|
|
52
55
|
// Reserved Rate
|
|
56
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
53
57
|
uint256 _reservedPercent = uint256(uint16(_packed >> 4));
|
|
54
58
|
|
|
55
59
|
// Cash out tax rate
|
|
60
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
56
61
|
uint256 _cashOutTaxRate = uint256(uint16(_packed >> 20));
|
|
57
62
|
|
|
58
63
|
assertEq(_reservedPercent, _fuzzReservedPercent);
|
|
59
64
|
assertEq(_cashOutTaxRate, _fuzzCashOutTaxRate);
|
|
60
65
|
|
|
61
66
|
for (uint256 _i = 68; _i < 81; _i++) {
|
|
67
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
62
68
|
uint256 _flag = uint256(uint16(_packed >> _i) & 1);
|
|
63
69
|
assertEq(_flag, 1);
|
|
64
70
|
}
|
|
65
71
|
|
|
66
72
|
// Data source address
|
|
73
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
67
74
|
address _packedDataHook = address(uint160(_packed >> 82));
|
|
68
75
|
assertEq(_packedDataHook, _hookAddress);
|
|
69
76
|
|
|
70
77
|
// Metadata
|
|
78
|
+
// forge-lint: disable-next-line(unsafe-typecast)
|
|
71
79
|
uint256 _packedMetadata = uint256(uint16(_packed >> 242));
|
|
72
80
|
assertEq(_packedMetadata, uint256(_fuzzMetadata));
|
|
73
81
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBRulesets} from "../../../../src/JBRulesets.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
5
7
|
import {JBTest} from "../../../helpers/JBTest.sol";
|
|
6
8
|
|
|
7
9
|
/*
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBApprovalStatus} from "../../../../src/enums/JBApprovalStatus.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
7
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
8
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
9
|
+
import {JBRulesetMetadataResolver} from "../../../../src/libraries/JBRulesetMetadataResolver.sol";
|
|
10
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
11
|
+
import {JBRulesetMetadata} from "../../../../src/structs/JBRulesetMetadata.sol";
|
|
12
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
5
13
|
import {JBRulesetsSetup} from "./JBRulesetsSetup.sol";
|
|
6
14
|
|
|
7
15
|
contract TestCurrentApprovalStatusForLatestRulesetOf_Local is JBRulesetsSetup {
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBApprovalStatus} from "../../../../src/enums/JBApprovalStatus.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
7
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
8
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
9
|
+
import {JBRulesetMetadataResolver} from "../../../../src/libraries/JBRulesetMetadataResolver.sol";
|
|
10
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
11
|
+
import {JBRulesetMetadata} from "../../../../src/structs/JBRulesetMetadata.sol";
|
|
12
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
5
13
|
import {JBRulesetsSetup} from "./JBRulesetsSetup.sol";
|
|
6
14
|
|
|
7
15
|
contract TestCurrentOf_Local is JBRulesetsSetup {
|
|
@@ -79,6 +87,7 @@ contract TestCurrentOf_Local is JBRulesetsSetup {
|
|
|
79
87
|
assertEq(_ruleset.id, 0);
|
|
80
88
|
}
|
|
81
89
|
|
|
90
|
+
// forge-lint: disable-next-line(mixed-case-function)
|
|
82
91
|
modifier whenLatestRulesetIdDNEQZero() {
|
|
83
92
|
// put code at hook address
|
|
84
93
|
vm.etch(address(_mockApprovalHook), abi.encode(1));
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
5
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
6
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
7
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
8
|
+
import {JBRulesetMetadataResolver} from "../../../../src/libraries/JBRulesetMetadataResolver.sol";
|
|
9
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
10
|
+
import {JBRulesetMetadata} from "../../../../src/structs/JBRulesetMetadata.sol";
|
|
5
11
|
import {JBRulesetsSetup} from "./JBRulesetsSetup.sol";
|
|
6
12
|
|
|
7
13
|
contract TestGetRulesetOf_Local is JBRulesetsSetup {
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.26;
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import {JBApprovalStatus} from "../../../../src/enums/JBApprovalStatus.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
7
|
+
import {IJBRulesets} from "../../../../src/interfaces/IJBRulesets.sol";
|
|
8
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
9
|
+
import {JBRulesetMetadataResolver} from "../../../../src/libraries/JBRulesetMetadataResolver.sol";
|
|
10
|
+
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
11
|
+
import {JBRulesetMetadata} from "../../../../src/structs/JBRulesetMetadata.sol";
|
|
12
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
5
13
|
import {JBRulesetsSetup} from "./JBRulesetsSetup.sol";
|
|
6
14
|
|
|
7
15
|
contract TestLatestQueuedRulesetOf_Local is JBRulesetsSetup {
|