@bananapus/core-v6 0.0.26 → 0.0.28
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 +1 -1
- package/AUDIT_INSTRUCTIONS.md +3 -3
- package/CHANGE_LOG.md +17 -2
- package/README.md +1 -1
- package/RISKS.md +3 -3
- package/SKILLS.md +1 -1
- package/STYLE_GUIDE.md +2 -2
- package/USER_JOURNEYS.md +6 -3
- package/foundry.toml +1 -1
- package/package.json +5 -5
- package/script/Deploy.s.sol +1 -1
- package/script/DeployPeriphery.s.sol +1 -1
- package/script/helpers/CoreDeploymentLib.sol +1 -1
- package/src/JBChainlinkV3PriceFeed.sol +1 -1
- package/src/JBChainlinkV3SequencerPriceFeed.sol +1 -1
- package/src/JBController.sol +1 -1
- package/src/JBDeadline.sol +1 -1
- package/src/JBDirectory.sol +1 -1
- package/src/JBERC20.sol +1 -1
- package/src/JBFeelessAddresses.sol +1 -1
- package/src/JBFundAccessLimits.sol +1 -1
- package/src/JBMultiTerminal.sol +41 -13
- package/src/JBPermissions.sol +1 -1
- package/src/JBPrices.sol +1 -1
- package/src/JBProjects.sol +1 -1
- package/src/JBRulesets.sol +1 -1
- package/src/JBSplits.sol +1 -1
- package/src/JBTerminalStore.sol +1 -1
- package/src/JBTokens.sol +1 -1
- package/src/libraries/JBPayoutSplitGroupLib.sol +1 -1
- package/src/periphery/JBDeadline1Day.sol +1 -1
- package/src/periphery/JBDeadline3Days.sol +1 -1
- package/src/periphery/JBDeadline3Hours.sol +1 -1
- package/src/periphery/JBDeadline7Days.sol +1 -1
- package/src/periphery/JBMatchingPriceFeed.sol +1 -1
- package/test/TestFees.sol +6 -4
- package/test/TestJBERC20Inheritance.sol +1 -1
- package/test/TestMetadataOffsetOverflow.sol +1 -1
- package/test/TestMetadataParserLib.sol +1 -1
- package/test/TestTerminalMigration.sol +104 -2
- package/test/TestTerminalPreviewParity.sol +1 -1
- package/test/audit/FeeFreeSurplusLifecycle.t.sol +11 -4
- package/test/audit/FeeFreeSurplusStale.t.sol +11 -5
- package/test/audit/USDTVoidReturnCompat.t.sol +6 -0
- package/test/fork/TestChainlinkPriceFeedFork.sol +1 -1
- package/test/fork/TestSequencerPriceFeedFork.sol +1 -1
- package/test/fork/TestTerminalPreviewParityFork.sol +1 -1
- package/test/helpers/JBTest.sol +1 -1
- package/test/helpers/MetadataResolverHelper.sol +1 -1
- package/test/mock/MockERC20.sol +1 -1
- package/test/mock/MockMaliciousBeneficiary.sol +1 -1
- package/test/mock/MockMaliciousSplitHook.sol +1 -1
- package/test/mock/MockPriceFeed.sol +1 -1
- package/test/mock/MockUSDT.sol +1 -1
- package/test/units/static/JBChainlinkV3PriceFeed/TestPriceFeed.sol +1 -1
- package/test/units/static/JBController/JBControllerSetup.sol +1 -1
- package/test/units/static/JBController/TestBurnTokensOf.sol +1 -1
- package/test/units/static/JBController/TestClaimTokensFor.sol +1 -1
- package/test/units/static/JBController/TestDeployErc20For.sol +1 -1
- package/test/units/static/JBController/TestLaunchProjectFor.sol +1 -1
- package/test/units/static/JBController/TestLaunchRulesetsFor.sol +1 -1
- package/test/units/static/JBController/TestMigrateController.sol +1 -1
- package/test/units/static/JBController/TestMintTokensOfUnits.sol +1 -1
- package/test/units/static/JBController/TestOmnichainRulesetOperator.sol +1 -1
- package/test/units/static/JBController/TestPayReservedTokenToTerminal.sol +1 -1
- package/test/units/static/JBController/TestPreviewMintOf.sol +1 -1
- package/test/units/static/JBController/TestReceiveMigrationFrom.sol +1 -1
- package/test/units/static/JBController/TestRulesetViews.sol +1 -1
- package/test/units/static/JBController/TestSendReservedTokensToSplitsOf.sol +1 -1
- package/test/units/static/JBController/TestSetSplitGroupsOf.sol +1 -1
- package/test/units/static/JBController/TestSetTokenFor.sol +1 -1
- package/test/units/static/JBController/TestSetUriOf.sol +1 -1
- package/test/units/static/JBController/TestTransferCreditsFrom.sol +1 -1
- package/test/units/static/JBDeadline/TestDeadlineFuzz.sol +1 -1
- package/test/units/static/JBDirectory/JBDirectorySetup.sol +1 -1
- package/test/units/static/JBDirectory/TestPrimaryTerminalOf.sol +1 -1
- package/test/units/static/JBDirectory/TestSetControllerOf.sol +1 -1
- package/test/units/static/JBDirectory/TestSetControllerOfMigrationOrder.sol +1 -1
- package/test/units/static/JBDirectory/TestSetPrimaryTerminalOf.sol +1 -1
- package/test/units/static/JBDirectory/TestSetTerminalsOf.sol +1 -1
- package/test/units/static/JBERC20/JBERC20Setup.sol +1 -1
- package/test/units/static/JBERC20/SigUtils.sol +1 -1
- 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 +1 -1
- package/test/units/static/JBERC20/TestSymbol.sol +1 -1
- package/test/units/static/JBFeelessAdresses/JBFeelessSetup.sol +1 -1
- package/test/units/static/JBFeelessAdresses/TestInterfaces.sol +1 -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 +1 -1
- package/test/units/static/JBFixedPointNumber/TestAdjustDecimalsFuzz.sol +1 -1
- package/test/units/static/JBFundAccessLimits/JBFundAccessSetup.sol +1 -1
- package/test/units/static/JBFundAccessLimits/TestFundAccessLimitsEdge.sol +1 -1
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitOf.sol +1 -1
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitsOf.sol +1 -1
- package/test/units/static/JBFundAccessLimits/TestSetFundAccessLimitsFor.sol +1 -1
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowanceOf.sol +1 -1
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowancesOf.sol +1 -1
- package/test/units/static/JBMetadataResolver/TestGetDataFor.sol +1 -1
- package/test/units/static/JBMetadataResolver/TestMetadataResolverEdgeCases.sol +1 -1
- package/test/units/static/JBMetadataResolver/TestMetadataResolverFuzz.sol +1 -1
- package/test/units/static/JBMultiTerminal/JBMultiTerminalSetup.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestAccountingContextsOf.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestAddAccountingContextsFor.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestAddToBalanceOf.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestCashOutTokensOf.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestExecutePayout.sol +3 -42
- package/test/units/static/JBMultiTerminal/TestExecuteProcessFee.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestMigrateBalanceOf.sol +16 -1
- package/test/units/static/JBMultiTerminal/TestPay.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestPreviewCashOutFrom.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestPreviewPayFor.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestProcessHeldFeesOf.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestSelfPayRevert.sol +55 -0
- package/test/units/static/JBMultiTerminal/TestSendPayoutsOf.sol +1 -1
- package/test/units/static/JBMultiTerminal/TestUseAllowanceOf.sol +1 -1
- package/test/units/static/JBPermissions/JBPermissionsSetup.sol +1 -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 +1 -1
- package/test/units/static/JBPrices/JBPricesSetup.sol +1 -1
- package/test/units/static/JBPrices/TestAddPriceFeedFor.sol +1 -1
- package/test/units/static/JBPrices/TestPricePerUnitOf.sol +1 -1
- package/test/units/static/JBPrices/TestPrices.sol +1 -1
- package/test/units/static/JBProjects/JBProjectsSetup.sol +1 -1
- package/test/units/static/JBProjects/TestCreateFor.sol +1 -1
- package/test/units/static/JBProjects/TestInitialProject.sol +1 -1
- package/test/units/static/JBProjects/TestInterfaces.sol +1 -1
- package/test/units/static/JBProjects/TestSetResolver.sol +1 -1
- package/test/units/static/JBProjects/TestTokenUri.sol +1 -1
- package/test/units/static/JBRulesetMetadataResolver/TestSetCashOutTaxRateTo.sol +1 -1
- package/test/units/static/JBRulesets/JBRulesetsSetup.sol +1 -1
- package/test/units/static/JBRulesets/TestCurrentApprovalStatusForLatestRulesetOf.sol +1 -1
- package/test/units/static/JBRulesets/TestCurrentOf.sol +1 -1
- package/test/units/static/JBRulesets/TestGetRulesetOf.sol +1 -1
- package/test/units/static/JBRulesets/TestLatestQueuedRulesetOf.sol +1 -1
- package/test/units/static/JBRulesets/TestRulesets.sol +1 -1
- package/test/units/static/JBRulesets/TestRulesetsOf.sol +1 -1
- package/test/units/static/JBRulesets/TestUpcomingRulesetOf.sol +1 -1
- package/test/units/static/JBRulesets/TestUpdateRulesetWeightCache.sol +1 -1
- package/test/units/static/JBSplits/JBSplitsSetup.sol +1 -1
- package/test/units/static/JBSplits/TestSelfManagedSplitGroups.sol +1 -1
- package/test/units/static/JBSplits/TestSetSplitGroupsOf.sol +1 -1
- package/test/units/static/JBSplits/TestSplitsLockedEdge.sol +1 -1
- package/test/units/static/JBSplits/TestSplitsOf.sol +1 -1
- package/test/units/static/JBSplits/TestSplitsPacking.sol +1 -1
- package/test/units/static/JBSurplus/TestSurplusFuzz.sol +1 -1
- package/test/units/static/JBTerminalStore/JBTerminalStoreSetup.sol +1 -1
- package/test/units/static/JBTerminalStore/TestCurrentReclaimableSurplusOf.sol +1 -1
- package/test/units/static/JBTerminalStore/TestCurrentSurplusOf.sol +1 -1
- package/test/units/static/JBTerminalStore/TestCurrentTotalSurplusOf.sol +1 -1
- package/test/units/static/JBTerminalStore/TestPreviewCashOutFrom.sol +1 -1
- package/test/units/static/JBTerminalStore/TestPreviewPayFrom.sol +1 -1
- package/test/units/static/JBTerminalStore/TestRecordCashOutsFor.sol +1 -1
- package/test/units/static/JBTerminalStore/TestRecordPaymentFrom.sol +1 -1
- package/test/units/static/JBTerminalStore/TestRecordPayoutFor.sol +1 -1
- package/test/units/static/JBTerminalStore/TestRecordTerminalMigration.sol +1 -1
- package/test/units/static/JBTerminalStore/TestRecordUsedAllowanceOf.sol +1 -1
- package/test/units/static/JBTerminalStore/TestUint224Overflow.sol +1 -1
- package/test/units/static/JBTokens/JBTokensSetup.sol +1 -1
- package/test/units/static/JBTokens/TestBurnFrom.sol +1 -1
- package/test/units/static/JBTokens/TestClaimTokensFor.sol +1 -1
- package/test/units/static/JBTokens/TestDeployERC20ForUnits.sol +1 -1
- package/test/units/static/JBTokens/TestMintFor.sol +1 -1
- package/test/units/static/JBTokens/TestSetTokenFor.sol +1 -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 +1 -1
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
pragma solidity
|
|
2
|
+
pragma solidity 0.8.28;
|
|
3
3
|
|
|
4
4
|
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
5
|
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
6
|
import {IJBFeelessAddresses} from "../../../../src/interfaces/IJBFeelessAddresses.sol";
|
|
7
|
-
import {IJBRulesetApprovalHook} from "../../../../src/interfaces/IJBRulesetApprovalHook.sol";
|
|
8
7
|
import {IJBSplitHook} from "../../../../src/interfaces/IJBSplitHook.sol";
|
|
9
8
|
import {IJBTerminal} from "../../../../src/interfaces/IJBTerminal.sol";
|
|
10
9
|
import {IJBTerminalStore} from "../../../../src/interfaces/IJBTerminalStore.sol";
|
|
11
10
|
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
12
11
|
import {JBFees} from "../../../../src/libraries/JBFees.sol";
|
|
13
12
|
import {JBAccountingContext} from "../../../../src/structs/JBAccountingContext.sol";
|
|
14
|
-
import {JBPayHookSpecification} from "../../../../src/structs/JBPayHookSpecification.sol";
|
|
15
|
-
import {JBRuleset} from "../../../../src/structs/JBRuleset.sol";
|
|
16
13
|
import {JBSplit} from "../../../../src/structs/JBSplit.sol";
|
|
17
14
|
import {JBSplitHookContext} from "../../../../src/structs/JBSplitHookContext.sol";
|
|
18
|
-
import {JBTokenAmount} from "../../../../src/structs/JBTokenAmount.sol";
|
|
19
15
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
20
16
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
21
17
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
@@ -366,9 +362,7 @@ contract TestExecutePayout_Local is JBMultiTerminalSetup {
|
|
|
366
362
|
}
|
|
367
363
|
|
|
368
364
|
function test_GivenPreferAddToBalanceDNEQTrueAndTerminalEQThisAddress() external {
|
|
369
|
-
// it will
|
|
370
|
-
|
|
371
|
-
_setAccountingContext(_projectId, _usdc, 0, _usdcCurrency);
|
|
365
|
+
// it will revert with MintNotAllowed because same-project same-terminal pay splits are blocked
|
|
372
366
|
|
|
373
367
|
// mock call to directory primaryTerminalOf
|
|
374
368
|
mockExpect(
|
|
@@ -386,41 +380,8 @@ contract TestExecutePayout_Local is JBMultiTerminalSetup {
|
|
|
386
380
|
hook: IJBSplitHook(address(0))
|
|
387
381
|
});
|
|
388
382
|
|
|
389
|
-
// needed for next mock call returns
|
|
390
|
-
JBTokenAmount memory tokenAmount =
|
|
391
|
-
JBTokenAmount({token: _usdc, decimals: 0, currency: _usdcCurrency, value: _defaultAmount});
|
|
392
|
-
JBPayHookSpecification[] memory hookSpecifications = new JBPayHookSpecification[](0);
|
|
393
|
-
JBRuleset memory returnedRuleset = JBRuleset({
|
|
394
|
-
cycleNumber: 1,
|
|
395
|
-
id: 1,
|
|
396
|
-
basedOnId: 0,
|
|
397
|
-
start: 0,
|
|
398
|
-
duration: 0,
|
|
399
|
-
weight: 0,
|
|
400
|
-
weightCutPercent: 0,
|
|
401
|
-
approvalHook: IJBRulesetApprovalHook(address(0)),
|
|
402
|
-
metadata: 0
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
// mock call to JBTerminalStore recordPaymentFrom
|
|
406
|
-
mockExpect(
|
|
407
|
-
address(store),
|
|
408
|
-
abi.encodeCall(
|
|
409
|
-
IJBTerminalStore.recordPaymentFrom,
|
|
410
|
-
(
|
|
411
|
-
address(_terminal),
|
|
412
|
-
tokenAmount,
|
|
413
|
-
_projectId,
|
|
414
|
-
address(this),
|
|
415
|
-
bytes(abi.encodePacked(uint256(_projectId)))
|
|
416
|
-
)
|
|
417
|
-
),
|
|
418
|
-
abi.encode(returnedRuleset, 0, hookSpecifications)
|
|
419
|
-
);
|
|
420
|
-
|
|
421
|
-
// for safe ERC20 check of code length at token address
|
|
422
383
|
vm.prank(address(_terminal));
|
|
423
|
-
|
|
384
|
+
vm.expectRevert(JBMultiTerminal.JBMultiTerminal_MintNotAllowed.selector);
|
|
424
385
|
JBMultiTerminal(address(_terminal))
|
|
425
386
|
.executePayout({
|
|
426
387
|
split: _splitMemory,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
pragma solidity
|
|
2
|
+
pragma solidity 0.8.28;
|
|
3
3
|
|
|
4
4
|
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
5
|
import {JBPermissioned} from "../../../../src/abstract/JBPermissioned.sol";
|
|
@@ -11,6 +11,7 @@ import {JBAccountingContext} from "../../../../src/structs/JBAccountingContext.s
|
|
|
11
11
|
import {JBPermissionIds} from "@bananapus/permission-ids-v6/src/JBPermissionIds.sol";
|
|
12
12
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
13
13
|
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
|
14
|
+
import {IJBFeelessAddresses} from "../../../../src/interfaces/IJBFeelessAddresses.sol";
|
|
14
15
|
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
15
16
|
|
|
16
17
|
contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
@@ -104,6 +105,13 @@ contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
|
104
105
|
function test_GivenTokenIsERC20() external whenPermissioned {
|
|
105
106
|
// it will safeIncreaseAllowance and addToBalanceOf
|
|
106
107
|
|
|
108
|
+
// mock _isFeeless to return true (skip migration fee for this unit test)
|
|
109
|
+
mockExpect(
|
|
110
|
+
address(feelessAddresses),
|
|
111
|
+
abi.encodeCall(IJBFeelessAddresses.isFeeless, (address(_newTerminal))),
|
|
112
|
+
abi.encode(true)
|
|
113
|
+
);
|
|
114
|
+
|
|
107
115
|
// for next mock
|
|
108
116
|
// forge-lint: disable-next-line(unsafe-typecast)
|
|
109
117
|
JBAccountingContext memory _context =
|
|
@@ -143,6 +151,13 @@ contract TestMigrateBalanceOf_Local is JBMultiTerminalSetup {
|
|
|
143
151
|
function test_GivenTokenIsNative() external whenPermissioned {
|
|
144
152
|
// it will addToBalanceOf with value in msgvalue
|
|
145
153
|
|
|
154
|
+
// mock _isFeeless to return true (skip migration fee for this unit test)
|
|
155
|
+
mockExpect(
|
|
156
|
+
address(feelessAddresses),
|
|
157
|
+
abi.encodeCall(IJBFeelessAddresses.isFeeless, (address(_newTerminal))),
|
|
158
|
+
abi.encode(true)
|
|
159
|
+
);
|
|
160
|
+
|
|
146
161
|
// for next mock
|
|
147
162
|
// forge-lint: disable-next-line(unsafe-typecast)
|
|
148
163
|
JBAccountingContext memory _context =
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity 0.8.28;
|
|
3
|
+
|
|
4
|
+
import {JBMultiTerminal} from "../../../../src/JBMultiTerminal.sol";
|
|
5
|
+
import {IJBDirectory} from "../../../../src/interfaces/IJBDirectory.sol";
|
|
6
|
+
import {JBConstants} from "../../../../src/libraries/JBConstants.sol";
|
|
7
|
+
import {JBSplit} from "../../../../src/structs/JBSplit.sol";
|
|
8
|
+
import {IJBSplitHook} from "../../../../src/interfaces/IJBSplitHook.sol";
|
|
9
|
+
import {JBMultiTerminalSetup} from "./JBMultiTerminalSetup.sol";
|
|
10
|
+
|
|
11
|
+
/// @notice Tests that a pay-type split back into the same terminal reverts with MintNotAllowed.
|
|
12
|
+
contract TestSelfPayRevert_Local is JBMultiTerminalSetup {
|
|
13
|
+
uint64 _projectId = 1;
|
|
14
|
+
uint256 _defaultAmount = 1e18;
|
|
15
|
+
address _sender = makeAddr("sender");
|
|
16
|
+
address _native = JBConstants.NATIVE_TOKEN;
|
|
17
|
+
|
|
18
|
+
function setUp() public {
|
|
19
|
+
super.multiTerminalSetup();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/// @notice When a split routes a pay back to the same project on the same terminal,
|
|
23
|
+
/// executePayout should revert with MintNotAllowed.
|
|
24
|
+
function test_RevertWhen_SplitPaysBackToSameTerminal() external {
|
|
25
|
+
// Build a split targeting the SAME project with preferAddToBalance = false (pay path).
|
|
26
|
+
JBSplit memory split = JBSplit({
|
|
27
|
+
preferAddToBalance: false,
|
|
28
|
+
percent: 1_000_000_000,
|
|
29
|
+
projectId: _projectId,
|
|
30
|
+
beneficiary: payable(_sender),
|
|
31
|
+
lockedUntil: 0,
|
|
32
|
+
hook: IJBSplitHook(address(0))
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// Mock primaryTerminalOf to return this terminal (self-referencing).
|
|
36
|
+
mockExpect(
|
|
37
|
+
address(directory),
|
|
38
|
+
abi.encodeCall(IJBDirectory.primaryTerminalOf, (_projectId, _native)),
|
|
39
|
+
abi.encode(address(_terminal))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
// executePayout requires msg.sender == address(this), so we call it via the terminal.
|
|
43
|
+
// The terminal's try-catch in the split group lib would normally catch this.
|
|
44
|
+
vm.prank(address(_terminal));
|
|
45
|
+
vm.expectRevert(JBMultiTerminal.JBMultiTerminal_MintNotAllowed.selector);
|
|
46
|
+
JBMultiTerminal(payable(address(_terminal)))
|
|
47
|
+
.executePayout({
|
|
48
|
+
split: split,
|
|
49
|
+
projectId: uint256(_projectId),
|
|
50
|
+
token: _native,
|
|
51
|
+
amount: _defaultAmount,
|
|
52
|
+
originalMessageSender: _sender
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|