Skip to content

Commit

Permalink
Merge pull request #150 from Bananapus/feature/add-payout-distro-flag
Browse files Browse the repository at this point in the history
added payout distro flag, combined controller set/migrate through dir…
  • Loading branch information
mejango authored Jun 6, 2024
2 parents d38d73e + ed3d0cf commit 84fc516
Show file tree
Hide file tree
Showing 49 changed files with 186 additions and 140 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ For example, if `alice.eth` owns project ID #5, she can queue new rulesets for t
| 1 | `ROOT` | All permissions across every contract. Very dangerous. | |
| 2 | `QUEUE_RULESETS` | Permission to call `JBController.queueRulesetsOf` and `JBController.launchRulesetsFor`. | [`nana-core`](https://github.com/Bananapus/nana-core) |
| 3 | `REDEEM_TOKENS` | Permission to call `JBMultiTerminal.redeemTokensOf`. | [`nana-core`](https://github.com/Bananapus/nana-core) |
| 4 | `MIGRATE_CONTROLLER` | Permission to call `JBController.migrateController`. | [`nana-core`](https://github.com/Bananapus/nana-core) |
| 4 | `SEND_PAYOUTS` | Permission to call `JBMultiTerminal.sendPayoutsOf`. | [`nana-core`](https://github.com/Bananapus/nana-core) |
| 5 | `MIGRATE_TERMINAL` | Permission to call `JBMultiTerminal.migrateBalanceOf`. | [`nana-core`](https://github.com/Bananapus/nana-core) |
| 6 | `SET_PROJECT_METADATA` | Permission to call `JBController.setUriOf`. | [`nana-core`](https://github.com/Bananapus/nana-core) |
| 7 | `DEPLOY_ERC20` | Permission to call `JBController.deployERC20For`. | [`nana-core`](https://github.com/Bananapus/nana-core) |
Expand Down
2 changes: 1 addition & 1 deletion lib/sphinx
Submodule sphinx updated 73 files
+1 −4 .circleci/config.yml
+24 −9 .github/workflows/docker-image.yml
+1 −7 README.md
+0 −57 docs/breaking/registration.md
+30 −32 docs/cli-existing-project.md
+13 −10 docs/cli-quickstart.md
+107 −8 ops/ci-builder/Dockerfile
+8 −0 ops/ci-builder/check-changed.sh
+1 −1 package.json
+0 −45 packages/contracts/CHANGELOG.md
+9 −8 packages/contracts/contracts/foundry/Sphinx.sol
+7 −61 packages/contracts/contracts/foundry/SphinxConstants.sol
+3 −34 packages/contracts/contracts/foundry/SphinxPluginTypes.sol
+99 −93 packages/contracts/contracts/foundry/SphinxUtils.sol
+2 −2 packages/contracts/package.json
+0 −30 packages/contracts/sphinx.lock
+0 −147 packages/contracts/src/addresses.ts
+14 −334 packages/contracts/src/networks.ts
+22 −0 packages/contracts/src/utils.ts
+1 −1 packages/contracts/src/version.ts
+1 −1 packages/contracts/test/ManagedService.t.sol
+15 −9 packages/contracts/test/ScriptConfiguration.t.sol
+13 −7 packages/contracts/test/Sphinx.t.sol
+7 −8 packages/contracts/test/SphinxTestUtils.sol
+51 −5 packages/contracts/test/SphinxUtils.t.sol
+21 −0 packages/contracts/test/issues/CHU572.s.sol
+4 −1 packages/contracts/test/issues/CHU663.s.sol
+23 −0 packages/contracts/test/issues/CHU663/CHU663.s.sol
+0 −38 packages/contracts/test/mocha/address.spec.ts
+35 −0 packages/contracts/test/mocha/utils.spec.ts
+0 −62 packages/core/CHANGELOG.md
+3 −3 packages/core/package.json
+3 −8 packages/core/src/actions/execute.ts
+8 −3 packages/core/src/actions/types.ts
+7 −6 packages/core/src/artifacts.ts
+5 −8 packages/core/src/config/types.ts
+1 −2 packages/core/src/languages/solidity/types.ts
+0 −25 packages/core/src/networks.ts
+0 −18 packages/core/src/types.ts
+64 −52 packages/core/src/utils.ts
+7 −17 packages/core/test/convert.spec.ts
+0 −13 packages/demo/CHANGELOG.md
+5 −5 packages/demo/package.json
+0 −18 packages/demo/sphinx.lock
+2 −2 packages/demo/test/Solc.spec.ts
+16 −22 packages/demo/test/init.spec.ts
+0 −83 packages/plugins/CHANGELOG.md
+5 −1 packages/plugins/contracts/test/script/Cases.s.sol
+4 −0 packages/plugins/contracts/test/script/Empty.s.sol
+5 −1 packages/plugins/contracts/test/script/Large.s.sol
+5 −1 packages/plugins/contracts/test/script/PartiallyEmpty.s.sol
+5 −1 packages/plugins/contracts/test/script/RevertDuringSimulation.s.sol
+15 −3 packages/plugins/contracts/test/script/Simple.s.sol
+4 −1 packages/plugins/contracts/test/script/issues/CHU676.s.sol
+0 −4 packages/plugins/foundry.toml
+5 −6 packages/plugins/package.json
+7 −3 packages/plugins/script/Sample.s.sol
+0 −12 packages/plugins/script/write-version.ts
+0 −18 packages/plugins/sphinx.lock
+6 −10 packages/plugins/src/cli/propose/index.ts
+5 −30 packages/plugins/src/cli/setup.ts
+0 −1 packages/plugins/src/cli/version.ts
+4 −1 packages/plugins/src/foundry/decode.ts
+30 −35 packages/plugins/src/foundry/utils/index.ts
+8 −6 packages/plugins/src/sample-project/index.ts
+11 −4 packages/plugins/src/sample-project/sample-contracts.ts
+1 −2 packages/plugins/src/sample-project/sample-foundry-config.ts
+2 −5 packages/plugins/test/mocha/artifacts.spec.ts
+2 −2 packages/plugins/test/mocha/cli/deploy.spec.ts
+11 −7 packages/plugins/test/mocha/cli/propose.spec.ts
+133 −2 packages/plugins/test/mocha/common.ts
+1 −32 packages/plugins/test/mocha/foundry/utils.spec.ts
+2 −4 packages/plugins/test/mocha/simulate.spec.ts
27 changes: 8 additions & 19 deletions src/JBController.sol
Original file line number Diff line number Diff line change
Expand Up @@ -540,35 +540,24 @@ contract JBController is JBPermissioned, ERC2771Context, IJBController, IJBMigra
}

/// @notice Migrate a project from this controller to another one.
/// @dev Can only be called by the project's owner or an address with the owner's permission to
/// `SET_CONTROLLER`.
/// @dev Can only be called by the directory.
/// @param projectId The ID of the project to migrate.
/// @param to The controller to migrate the project to.
function migrateController(uint256 projectId, IJBMigratable to) external virtual override {
// Enforce permissions.
_requirePermissionFrom({
account: PROJECTS.ownerOf(projectId),
projectId: projectId,
permissionId: JBPermissionIds.SET_CONTROLLER
});

// Get a reference to the project's ruleset.
JBRuleset memory ruleset = RULESETS.currentOf(projectId);

// Migration must be allowed.
if (!ruleset.allowControllerMigration()) {
revert CONTROLLER_MIGRATION_NOT_ALLOWED();
}
function migrate(uint256 projectId, IERC165 to) external virtual override {
// Make sure this is being called by the directory.
if (msg.sender != address(DIRECTORY)) revert UNAUTHORIZED();

// Mint any pending reserved tokens before migrating.
if (pendingReservedTokenBalanceOf[projectId] != 0) {
_sendReservedTokensToSplitsOf(projectId);
}

// Prepare the new controller to receive the project.
to.receiveMigrationFrom(IERC165(this), projectId);
if (to.supportsInterface(type(IJBMigratable).interfaceId)) {
IJBMigratable(address(to)).receiveMigrationFrom(IERC165(this), projectId);
}

emit MigrateController(projectId, to, _msgSender());
emit Migrate(projectId, to, msg.sender);
}

/// @notice Set a project's metadata URI.
Expand Down
9 changes: 9 additions & 0 deletions src/JBDirectory.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import {JBPermissioned} from "./abstract/JBPermissioned.sol";
import {IJBDirectory} from "./interfaces/IJBDirectory.sol";
import {IJBDirectoryAccessControl} from "./interfaces/IJBDirectoryAccessControl.sol";
import {IJBMigratable} from "./interfaces/IJBMigratable.sol";
import {IJBPermissions} from "./interfaces/IJBPermissions.sol";
import {IJBTerminal} from "./interfaces/IJBTerminal.sol";
import {IJBProjects} from "./interfaces/IJBProjects.sol";
Expand Down Expand Up @@ -184,6 +185,14 @@ contract JBDirectory is JBPermissioned, Ownable, IJBDirectory {
revert SET_CONTROLLER_NOT_ALLOWED();
}

// Migrate if needed.
if (
address(currentController) != address(0)
&& currentController.supportsInterface(type(IJBMigratable).interfaceId)
) {
IJBMigratable(address(currentController)).migrate(projectId, controller);
}

// Set the new controller.
controllerOf[projectId] = controller;

Expand Down
10 changes: 10 additions & 0 deletions src/JBMultiTerminal.sol
Original file line number Diff line number Diff line change
Expand Up @@ -1153,6 +1153,16 @@ contract JBMultiTerminal is JBPermissioned, ERC2771Context, IJBMultiTerminal {
currency: currency
});

// If the ruleset requires privileged payout distribution, ensure the caller has the permission.
if (ruleset.ownerMustSendPayouts()) {
// Enforce permissions.
_requirePermissionFrom({
account: PROJECTS.ownerOf(projectId),
projectId: projectId,
permissionId: JBPermissionIds.SEND_PAYOUTS
});
}

// Get a reference to the project's owner.
// The owner will receive tokens minted by paying the platform fee and receive any leftover funds not sent to
// payout splits.
Expand Down
5 changes: 0 additions & 5 deletions src/interfaces/IJBController.sol
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import {JBTerminalConfig} from "./../structs/JBTerminalConfig.sol";
import {IJBDirectory} from "./IJBDirectory.sol";
import {IJBDirectoryAccessControl} from "./IJBDirectoryAccessControl.sol";
import {IJBFundAccessLimits} from "./IJBFundAccessLimits.sol";
import {IJBMigratable} from "./IJBMigratable.sol";
import {IJBProjects} from "./IJBProjects.sol";
import {IJBProjectUriRegistry} from "./IJBProjectUriRegistry.sol";
import {IJBRulesets} from "./IJBRulesets.sol";
Expand Down Expand Up @@ -67,8 +66,6 @@ interface IJBController is IERC165, IJBProjectUriRegistry, IJBDirectoryAccessCon
uint256 indexed projectId, JBSplit split, uint256 amount, bytes reason, address caller
);

event MigrateController(uint256 indexed projectId, IJBMigratable to, address caller);

event PrepMigration(uint256 indexed projectId, address from, address caller);

event SetMetadata(uint256 indexed projectId, string metadata, address caller);
Expand Down Expand Up @@ -172,8 +169,6 @@ interface IJBController is IERC165, IJBProjectUriRegistry, IJBDirectoryAccessCon

function sendReservedTokensToSplitsOf(uint256 projectId) external returns (uint256);

function migrateController(uint256 projectId, IJBMigratable to) external;

function setSplitGroupsOf(uint256 projectId, uint256 rulesetId, JBSplitGroup[] calldata splitGroups) external;

function deployERC20For(
Expand Down
3 changes: 3 additions & 0 deletions src/interfaces/IJBMigratable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,8 @@ pragma solidity ^0.8.0;
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";

interface IJBMigratable is IERC165 {
event Migrate(uint256 indexed projectId, IERC165 to, address caller);

function receiveMigrationFrom(IERC165 from, uint256 projectId) external;
function migrate(uint256 projectId, IERC165 to) external;
}
14 changes: 7 additions & 7 deletions src/libraries/JBRulesetMetadataResolver.sol
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ library JBRulesetMetadataResolver {
return ((ruleset.metadata >> 73) & 1) == 1;
}

function allowControllerMigration(JBRuleset memory ruleset) internal pure returns (bool) {
function allowSetController(JBRuleset memory ruleset) internal pure returns (bool) {
return ((ruleset.metadata >> 74) & 1) == 1;
}

function allowSetController(JBRuleset memory ruleset) internal pure returns (bool) {
function ownerMustSendPayouts(JBRuleset memory ruleset) internal pure returns (bool) {
return ((ruleset.metadata >> 75) & 1) == 1;
}

Expand Down Expand Up @@ -101,10 +101,10 @@ library JBRulesetMetadataResolver {
if (rulesetMetadata.allowTerminalMigration) packed |= 1 << 72;
// allow set terminals in bit 73.
if (rulesetMetadata.allowSetTerminals) packed |= 1 << 73;
// allow controller migration in bit 74.
if (rulesetMetadata.allowControllerMigration) packed |= 1 << 74;
// allow set controller in bit 75.
if (rulesetMetadata.allowSetController) packed |= 1 << 75;
// allow set controller in bit 74.
if (rulesetMetadata.allowSetController) packed |= 1 << 74;
// allow controller migration in bit 75.
if (rulesetMetadata.ownerMustSendPayouts) packed |= 1 << 75;
// hold fees in bit 76.
if (rulesetMetadata.holdFees) packed |= 1 << 76;
// useTotalSurplusForRedemptions in bit 77.
Expand Down Expand Up @@ -133,8 +133,8 @@ library JBRulesetMetadataResolver {
allowSetCustomToken(ruleset),
allowTerminalMigration(ruleset),
allowSetTerminals(ruleset),
allowControllerMigration(ruleset),
allowSetController(ruleset),
ownerMustSendPayouts(ruleset),
holdFees(ruleset),
useTotalSurplusForRedemptions(ruleset),
useDataHookForPay(ruleset),
Expand Down
6 changes: 3 additions & 3 deletions src/structs/JBRulesetMetadata.sol
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ pragma solidity ^0.8.0;
/// @custom:member allowTerminalMigration A flag indicating if migrating terminals should be allowed during this
/// ruleset.
/// @custom:member allowSetTerminals A flag indicating if a project's terminals can be added or removed.
/// @custom:member allowControllerMigration A flag indicating if migrating controllers should be allowed during this
/// ruleset.
/// @custom:member allowSetController A flag indicating if a project's controller can be changed.
/// @custom:member ownerMustSendPayouts A flag indicating if privileged payout distribution should be
/// enforced, otherwise payouts can be distributed by anyone.
/// @custom:member holdFees A flag indicating if fees should be held during this ruleset.
/// @custom:member useTotalSurplusForRedemptions A flag indicating if redemptions should use the project's balance held
/// in all terminals instead of the project's local terminal balance from which the redemption is being fulfilled.
Expand All @@ -36,8 +36,8 @@ struct JBRulesetMetadata {
bool allowSetCustomToken;
bool allowTerminalMigration;
bool allowSetTerminals;
bool allowControllerMigration;
bool allowSetController;
bool ownerMustSendPayouts;
bool holdFees;
bool useTotalSurplusForRedemptions;
bool useDataHookForPay;
Expand Down
2 changes: 1 addition & 1 deletion test/TestAccessToFunds.sol
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ contract TestAccessToFunds_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: true,
Expand Down
4 changes: 2 additions & 2 deletions test/TestFees.sol
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ contract TestFees_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: true,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: true,
useTotalSurplusForRedemptions: false,
Expand All @@ -61,7 +61,7 @@ contract TestFees_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: true,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: true,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestJBERC20Inheritance.sol
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ contract JBERC20Inheritance_Local is JBERC20, TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestLaunchProject.sol
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ contract TestLaunchProject_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestMetaTx.sol
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ contract TestMetaTx_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
4 changes: 2 additions & 2 deletions test/TestMintTokensOf.sol
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ contract TestMintTokensOf_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down Expand Up @@ -80,7 +80,7 @@ contract TestMintTokensOf_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestMultipleAccessLimits.sol
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ contract TestMultipleAccessLimits_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestPayBurnRedeemFlow.sol
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ contract TestPayBurnRedeemFlow_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestPayHooks.sol
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ contract TestPayHooks_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestPermissions.sol
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ contract TestPermissions_Local is TestBaseWorkflow, JBTest {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestPermit2Terminal.sol
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ contract TestPermit2Terminal_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestRedeem.sol
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ contract TestRedeem_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestRedeemHooks.sol
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ contract TestRedeemHooks_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestRulesetQueueing.sol
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ contract TestRulesetQueuing_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestRulesetWeightCaching.sol
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ contract TestRulesetWeightCaching_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: true,
Expand Down
4 changes: 2 additions & 2 deletions test/TestSplits.sol
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ contract TestSplits_Local is TestBaseWorkflow {
allowSetCustomToken: false,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down Expand Up @@ -221,7 +221,7 @@ contract TestSplits_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
2 changes: 1 addition & 1 deletion test/TestTokenFlow.sol
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ contract TestTokenFlow_Local is TestBaseWorkflow {
allowSetCustomToken: true,
allowTerminalMigration: false,
allowSetTerminals: false,
allowControllerMigration: false,
ownerMustSendPayouts: false,
allowSetController: false,
holdFees: false,
useTotalSurplusForRedemptions: false,
Expand Down
Loading

0 comments on commit 84fc516

Please sign in to comment.