diff --git a/contracts/bridging/WormholeBridgeForColony.sol b/contracts/bridging/WormholeBridgeForColony.sol
index 89b9b04f1d..3a2979bd59 100644
--- a/contracts/bridging/WormholeBridgeForColony.sol
+++ b/contracts/bridging/WormholeBridgeForColony.sol
@@ -19,8 +19,7 @@
pragma solidity 0.8.27;
import { IWormhole } from "../../lib/wormhole/ethereum/contracts/interfaces/IWormhole.sol";
-import { IColonyNetwork } from "../colonyNetwork/IColonyNetwork.sol";
-import { IColonyBridge } from "./IColonyBridge.sol";
+import { IColonyBridge } from "../interfaces/IColonyBridge.sol";
import { CallWithGuards } from "../common/CallWithGuards.sol";
import { DSAuth } from "../../lib/dappsys/auth.sol";
diff --git a/contracts/colony/Colony.sol b/contracts/colony/Colony.sol
index 26112ab33d..ef80f05f37 100755
--- a/contracts/colony/Colony.sol
+++ b/contracts/colony/Colony.sol
@@ -21,14 +21,13 @@ pragma experimental ABIEncoderV2;
import { ERC20Extended } from "./../common/ERC20Extended.sol";
import { Multicall } from "./../common/Multicall.sol";
-import { IEtherRouter } from "./../common/IEtherRouter.sol";
+import { IEtherRouter } from "./../interfaces/IEtherRouter.sol";
import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol";
import { ColonyStorage } from "./ColonyStorage.sol";
import { ColonyAuthority } from "./ColonyAuthority.sol";
-import { ColonyExtension } from "./../extensions/ColonyExtension.sol";
contract Colony is BasicMetaTransaction, Multicall, ColonyStorage, PatriciaTreeProofs {
// This function, exactly as defined, is used in build scripts. Take care when updating.
diff --git a/contracts/colony/ColonyArbitraryTransaction.sol b/contracts/colony/ColonyArbitraryTransaction.sol
index 91d7943d47..0a2e239430 100644
--- a/contracts/colony/ColonyArbitraryTransaction.sol
+++ b/contracts/colony/ColonyArbitraryTransaction.sol
@@ -20,12 +20,12 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { ERC20Extended } from "./../common/ERC20Extended.sol";
-import { IEtherRouter } from "./../common/IEtherRouter.sol";
+import { IEtherRouter } from "./../interfaces/IEtherRouter.sol";
import { MultiChain } from "./../common/MultiChain.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
import { ColonyStorage } from "./ColonyStorage.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
-import { ColonyExtension } from "./../extensions/ColonyExtension.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { IColonyExtension } from "./../interfaces/IColonyExtension.sol";
contract ColonyArbitraryTransaction is ColonyStorage {
bytes4 constant APPROVE_SIG = bytes4(keccak256("approve(address,uint256)"));
@@ -100,7 +100,7 @@ contract ColonyArbitraryTransaction is ColonyStorage {
// Prevent transactions to network-managed extensions installed in this colony
require(isContract(_to), "colony-to-must-be-contract");
// slither-disable-next-line unused-return
- try ColonyExtension(_to).identifier() returns (bytes32 extensionId) {
+ try IColonyExtension(_to).identifier() returns (bytes32 extensionId) {
require(
IColonyNetwork(colonyNetworkAddress).getExtensionInstallation(extensionId, address(this)) !=
_to,
diff --git a/contracts/colony/ColonyAuthority.sol b/contracts/colony/ColonyAuthority.sol
index 0af8c8b6a8..8a74e32cc1 100644
--- a/contracts/colony/ColonyAuthority.sol
+++ b/contracts/colony/ColonyAuthority.sol
@@ -19,15 +19,15 @@
pragma solidity 0.8.27;
import { CommonAuthority } from "./../common/CommonAuthority.sol";
-import { ColonyDataTypes } from "./ColonyDataTypes.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
// prettier-ignore
contract ColonyAuthority is CommonAuthority {
- uint8 constant FUNDING_ROLE = uint8(ColonyDataTypes.ColonyRole.Funding);
- uint8 constant ADMINISTRATION_ROLE = uint8(ColonyDataTypes.ColonyRole.Administration);
- uint8 constant ARBITRATION_ROLE = uint8(ColonyDataTypes.ColonyRole.Arbitration);
- uint8 constant ARCHITECTURE_ROLE = uint8(ColonyDataTypes.ColonyRole.Architecture);
- uint8 constant ROOT_ROLE = uint8(ColonyDataTypes.ColonyRole.Root);
+ uint8 constant FUNDING_ROLE = uint8(CommonDataTypes.ColonyRole.Funding);
+ uint8 constant ADMINISTRATION_ROLE = uint8(CommonDataTypes.ColonyRole.Administration);
+ uint8 constant ARBITRATION_ROLE = uint8(CommonDataTypes.ColonyRole.Arbitration);
+ uint8 constant ARCHITECTURE_ROLE = uint8(CommonDataTypes.ColonyRole.Architecture);
+ uint8 constant ROOT_ROLE = uint8(CommonDataTypes.ColonyRole.Root);
// colony is used in the constructor by calls to addRoleCapability, despite what slither thinks
// slither-disable-next-line immutable-states
diff --git a/contracts/colony/ColonyDomains.sol b/contracts/colony/ColonyDomains.sol
index fa6518fef5..ef246fb532 100644
--- a/contracts/colony/ColonyDomains.sol
+++ b/contracts/colony/ColonyDomains.sol
@@ -20,7 +20,7 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { ColonyStorage } from "./ColonyStorage.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
contract ColonyDomains is ColonyStorage {
// prettier-ignore
diff --git a/contracts/colony/ColonyFunding.sol b/contracts/colony/ColonyFunding.sol
index d4f533980f..b5828b7a94 100755
--- a/contracts/colony/ColonyFunding.sol
+++ b/contracts/colony/ColonyFunding.sol
@@ -19,10 +19,10 @@
pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
import { ColonyStorage } from "./ColonyStorage.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
contract ColonyFunding is
ColonyStorage // ignore-swc-123
diff --git a/contracts/colony/ColonyRewards.sol b/contracts/colony/ColonyRewards.sol
index 7068e47f48..eddb2b3eb8 100644
--- a/contracts/colony/ColonyRewards.sol
+++ b/contracts/colony/ColonyRewards.sol
@@ -19,11 +19,11 @@
pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
import { ColonyStorage } from "./ColonyStorage.sol";
import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
contract ColonyRewards is
ColonyStorage,
diff --git a/contracts/colony/ColonyRoles.sol b/contracts/colony/ColonyRoles.sol
index 9682370620..6c60db7c74 100644
--- a/contracts/colony/ColonyRoles.sol
+++ b/contracts/colony/ColonyRoles.sol
@@ -20,7 +20,7 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { ColonyStorage } from "./ColonyStorage.sol";
-import { ContractRecoveryDataTypes } from "./../common/ContractRecoveryDataTypes.sol";
+import { ContractRecoveryDataTypes } from "./../dataTypes/ContractRecoveryDataTypes.sol";
import { ColonyAuthority } from "./../colony/ColonyAuthority.sol";
contract ColonyRoles is ColonyStorage, ContractRecoveryDataTypes {
diff --git a/contracts/colony/ColonyStorage.sol b/contracts/colony/ColonyStorage.sol
index 850d8c653e..d63b6e6424 100755
--- a/contracts/colony/ColonyStorage.sol
+++ b/contracts/colony/ColonyStorage.sol
@@ -23,12 +23,12 @@ import { DSMath } from "./../../lib/dappsys/math.sol";
import { CommonStorage } from "./../common/CommonStorage.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
import { DomainRoles } from "./../common/DomainRoles.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
-import { ColonyNetworkDataTypes } from "./../colonyNetwork/ColonyNetworkDataTypes.sol";
-import { ColonyExtension } from "./../extensions/ColonyExtension.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol";
+import { IColonyExtension } from "./../interfaces/IColonyExtension.sol";
import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol";
import { ColonyAuthority } from "./ColonyAuthority.sol";
-import { ColonyDataTypes } from "./ColonyDataTypes.sol";
+import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol";
// ignore-file-swc-131
// ignore-file-swc-108
@@ -265,7 +265,7 @@ contract ColonyStorage is ColonyDataTypes, ColonyNetworkDataTypes, DSMath, Commo
}
// slither-disable-next-line unused-return
- try ColonyExtension(addr).identifier() returns (bytes32 extensionId) {
+ try IColonyExtension(addr).identifier() returns (bytes32 extensionId) {
return
IColonyNetwork(colonyNetworkAddress).getExtensionInstallation(extensionId, address(this)) ==
addr;
@@ -280,9 +280,9 @@ contract ColonyStorage is ColonyDataTypes, ColonyNetworkDataTypes, DSMath, Commo
}
// slither-disable-next-line unused-return
- try ColonyExtension(addr).identifier() returns (bytes32 extensionId) {
+ try IColonyExtension(addr).identifier() returns (bytes32 extensionId) {
// slither-disable-next-line unused-return
- try ColonyExtension(addr).getColony() returns (address claimedAssociatedColony) {
+ try IColonyExtension(addr).getColony() returns (address claimedAssociatedColony) {
return
IColonyNetwork(colonyNetworkAddress).getExtensionInstallation(
extensionId,
diff --git a/contracts/colony/IColony.sol.flattened b/contracts/colony/IColony.sol.flattened
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/contracts/colony/IColony.sol.flattened
@@ -0,0 +1 @@
+
diff --git a/contracts/colonyNetwork/ColonyNetwork.sol b/contracts/colonyNetwork/ColonyNetwork.sol
index da1baa2e1f..4fb19dc6b2 100644
--- a/contracts/colonyNetwork/ColonyNetwork.sol
+++ b/contracts/colonyNetwork/ColonyNetwork.sol
@@ -20,7 +20,7 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
-import { IReputationMiningCycle } from "./../reputationMiningCycle/IReputationMiningCycle.sol";
+import { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol";
import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol";
import { Multicall } from "./../common/Multicall.sol";
diff --git a/contracts/colonyNetwork/ColonyNetworkAuction.sol b/contracts/colonyNetwork/ColonyNetworkAuction.sol
index 6bee21a2b2..463aa1da0e 100644
--- a/contracts/colonyNetwork/ColonyNetworkAuction.sol
+++ b/contracts/colonyNetwork/ColonyNetworkAuction.sol
@@ -22,7 +22,7 @@ import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol";
import { MultiChain } from "./../common/MultiChain.sol";
import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
-import { IMetaColony } from "./../colony/IMetaColony.sol";
+import { IMetaColony } from "./../interfaces/IMetaColony.sol";
import { DSMath } from "./../../lib/dappsys/math.sol";
contract ColonyNetworkAuction is ColonyNetworkStorage {
diff --git a/contracts/colonyNetwork/ColonyNetworkDeployer.sol b/contracts/colonyNetwork/ColonyNetworkDeployer.sol
index 09e31096c8..f7bf9846aa 100644
--- a/contracts/colonyNetwork/ColonyNetworkDeployer.sol
+++ b/contracts/colonyNetwork/ColonyNetworkDeployer.sol
@@ -20,9 +20,9 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { EtherRouter } from "./../common/EtherRouter.sol";
import { ColonyAuthority } from "./../colony/ColonyAuthority.sol";
-import { IColony } from "./../colony/IColony.sol";
+import { IColony } from "./../interfaces/IColony.sol";
import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol";
-import { IColonyNetwork } from "./IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
import { MetaTxToken } from "./../metaTxToken/MetaTxToken.sol";
import { DSAuth, DSAuthority } from "./../../lib/dappsys/auth.sol";
import { ICreateX } from "./../../lib/createx/src/ICreateX.sol";
diff --git a/contracts/colonyNetwork/ColonyNetworkExtensions.sol b/contracts/colonyNetwork/ColonyNetworkExtensions.sol
index 6a732a332c..0e16fdf97c 100644
--- a/contracts/colonyNetwork/ColonyNetworkExtensions.sol
+++ b/contracts/colonyNetwork/ColonyNetworkExtensions.sol
@@ -19,9 +19,9 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyDataTypes } from "../colony/ColonyDataTypes.sol";
-import { IColonyNetwork } from "../colonyNetwork/IColonyNetwork.sol";
-import { ColonyExtension } from "../extensions/ColonyExtension.sol";
+import { ColonyDataTypes } from "../dataTypes/ColonyDataTypes.sol";
+import { IColonyNetwork } from "../interfaces/IColonyNetwork.sol";
+import { IColonyExtension } from "../interfaces/IColonyExtension.sol";
import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol";
import { MetaTxToken } from "./../metaTxToken/MetaTxToken.sol";
import { TokenAuthority } from "./../common/TokenAuthority.sol";
@@ -68,7 +68,7 @@ contract ColonyNetworkExtensions is ColonyNetworkStorage {
installations[_extensionId][msgSender()] = payable(address(extension));
extension.setResolver(resolvers[_extensionId][_version]);
- ColonyExtension(address(extension)).install(msgSender());
+ IColonyExtension(address(extension)).install(msgSender());
emit ExtensionInstalled(_extensionId, msgSender(), _version);
}
@@ -84,7 +84,7 @@ contract ColonyNetworkExtensions is ColonyNetworkStorage {
address payable extension = installations[_extensionId][msgSender()];
require(
- _newVersion == ColonyExtension(extension).version() + 1,
+ _newVersion == IColonyExtension(extension).version() + 1,
"colony-network-extension-bad-increment"
);
require(
@@ -93,8 +93,8 @@ contract ColonyNetworkExtensions is ColonyNetworkStorage {
);
EtherRouter(extension).setResolver(resolvers[_extensionId][_newVersion]);
- ColonyExtension(extension).finishUpgrade();
- assert(ColonyExtension(extension).version() == _newVersion);
+ IColonyExtension(extension).finishUpgrade();
+ assert(IColonyExtension(extension).version() == _newVersion);
emit ExtensionUpgraded(_extensionId, msgSender(), _newVersion);
}
@@ -103,7 +103,7 @@ contract ColonyNetworkExtensions is ColonyNetworkStorage {
bytes32 _extensionId,
bool _deprecated
) public stoppable calledByColony {
- ColonyExtension(installations[_extensionId][msgSender()]).deprecate(_deprecated);
+ IColonyExtension(installations[_extensionId][msgSender()]).deprecate(_deprecated);
emit ExtensionDeprecated(_extensionId, msgSender(), _deprecated);
}
@@ -114,7 +114,7 @@ contract ColonyNetworkExtensions is ColonyNetworkStorage {
"colony-network-extension-not-installed"
);
- ColonyExtension extension = ColonyExtension(installations[_extensionId][msgSender()]);
+ IColonyExtension extension = IColonyExtension(installations[_extensionId][msgSender()]);
installations[_extensionId][msgSender()] = payable(address(0x0));
extension.uninstall();
@@ -143,14 +143,14 @@ contract ColonyNetworkExtensions is ColonyNetworkStorage {
function getExtensionId(address _resolver) internal returns (bytes32) {
address extension = Resolver(_resolver).lookup(IDENTIFIER_SIG);
- return ColonyExtension(extension).identifier();
+ return IColonyExtension(extension).identifier();
}
bytes4 constant VERSION_SIG = bytes4(keccak256("version()"));
function getResolverVersion(address _resolver) internal returns (uint256) {
address extension = Resolver(_resolver).lookup(VERSION_SIG);
- return ColonyExtension(extension).version();
+ return IColonyExtension(extension).version();
}
function deployTokenViaNetwork(
diff --git a/contracts/colonyNetwork/ColonyNetworkMining.sol b/contracts/colonyNetwork/ColonyNetworkMining.sol
index 47e18ced1c..8fbd35e4cd 100644
--- a/contracts/colonyNetwork/ColonyNetworkMining.sol
+++ b/contracts/colonyNetwork/ColonyNetworkMining.sol
@@ -22,13 +22,13 @@ pragma experimental "ABIEncoderV2";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
import { EtherRouter } from "./../common/EtherRouter.sol";
import { MultiChain } from "./../common/MultiChain.sol";
-import { IReputationMiningCycle } from "./../reputationMiningCycle/IReputationMiningCycle.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
+import { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol";
-import { IMetaColony } from "./../colony/IMetaColony.sol";
-import { IColonyBridge } from "./../bridging/IColonyBridge.sol";
-import { IColonyNetwork } from "./IColonyNetwork.sol";
-import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol";
+import { IMetaColony } from "./../interfaces/IMetaColony.sol";
+import { IColonyBridge } from "./../interfaces/IColonyBridge.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol";
contract ColonyNetworkMining is ColonyNetworkStorage {
// TODO: Can we handle a dispute regarding the very first hash that should be set?
diff --git a/contracts/colonyNetwork/ColonyNetworkSkills.sol b/contracts/colonyNetwork/ColonyNetworkSkills.sol
index 17c83c4b5f..ec202dc2e2 100644
--- a/contracts/colonyNetwork/ColonyNetworkSkills.sol
+++ b/contracts/colonyNetwork/ColonyNetworkSkills.sol
@@ -18,10 +18,10 @@
pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
-import "./../reputationMiningCycle/IReputationMiningCycle.sol";
-import "./../common/Multicall.sol";
-import "./ColonyNetworkStorage.sol";
-import { IColonyBridge } from "./../bridging/IColonyBridge.sol";
+import { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol";
+import { Multicall } from "./../common/Multicall.sol";
+import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol";
+import { IColonyBridge } from "./../interfaces/IColonyBridge.sol";
import { CallWithGuards } from "../common/CallWithGuards.sol";
contract ColonyNetworkSkills is ColonyNetworkStorage, Multicall, CallWithGuards {
diff --git a/contracts/colonyNetwork/ColonyNetworkStorage.sol b/contracts/colonyNetwork/ColonyNetworkStorage.sol
index c22a18d695..e05a9cec69 100644
--- a/contracts/colonyNetwork/ColonyNetworkStorage.sol
+++ b/contracts/colonyNetwork/ColonyNetworkStorage.sol
@@ -19,11 +19,11 @@
pragma solidity 0.8.27;
import { DSMath } from "./../../lib/dappsys/math.sol";
-import { IMetaColony } from "./../colony/IMetaColony.sol";
+import { IMetaColony } from "./../interfaces/IMetaColony.sol";
import { CommonStorage } from "./../common/CommonStorage.sol";
import { MultiChain } from "./../common/MultiChain.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
-import { ColonyNetworkDataTypes } from "./ColonyNetworkDataTypes.sol";
+import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol";
// ignore-file-swc-131
// ignore-file-swc-108
diff --git a/contracts/common/BasicMetaTransaction.sol b/contracts/common/BasicMetaTransaction.sol
index eabfcdf9c9..30850f6337 100644
--- a/contracts/common/BasicMetaTransaction.sol
+++ b/contracts/common/BasicMetaTransaction.sol
@@ -4,7 +4,7 @@ pragma solidity 0.8.27;
import { DSMath } from "../../lib/dappsys/math.sol";
import { MetaTransactionMsgSender } from "./MetaTransactionMsgSender.sol";
import { MultiChain } from "./MultiChain.sol";
-import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
abstract contract BasicMetaTransaction is
IBasicMetaTransaction,
diff --git a/contracts/extensions/ColonyExtension.sol b/contracts/common/ColonyExtension.sol
similarity index 88%
rename from contracts/extensions/ColonyExtension.sol
rename to contracts/common/ColonyExtension.sol
index 35ada837f3..975258229b 100644
--- a/contracts/extensions/ColonyExtension.sol
+++ b/contracts/common/ColonyExtension.sol
@@ -21,17 +21,17 @@ pragma experimental ABIEncoderV2;
import { DSMath } from "./../../lib/dappsys/math.sol";
import { DSAuth } from "./../../lib/dappsys/auth.sol";
-import { EtherRouter } from "./../common/EtherRouter.sol";
-import { Multicall } from "./../common/Multicall.sol";
-import { IColony } from "./../colony/IColony.sol";
-import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { EtherRouter } from "./EtherRouter.sol";
+import { Multicall } from "./Multicall.sol";
+import { IColony } from "./../interfaces/IColony.sol";
+import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol";
-import { MultiChain } from "./../common/MultiChain.sol";
-import { IColonyExtension } from "./IColonyExtension.sol";
+import { MultiChain } from "./MultiChain.sol";
+import { IColonyExtension } from "./../interfaces/IColonyExtension.sol";
// This is a 'dummy' import to ensure that functions implemented from DSAuth get commented
-import { IDSAuth } from "./../common/IDSAuth.sol";
+import { IDSAuth } from "./../interfaces/IDSAuth.sol";
abstract contract ColonyExtension is
IColonyExtension,
diff --git a/contracts/extensions/ColonyExtensionMeta.sol b/contracts/common/ColonyExtensionMeta.sol
similarity index 90%
rename from contracts/extensions/ColonyExtensionMeta.sol
rename to contracts/common/ColonyExtensionMeta.sol
index 903d0461c1..ea0357125a 100644
--- a/contracts/extensions/ColonyExtensionMeta.sol
+++ b/contracts/common/ColonyExtensionMeta.sol
@@ -19,8 +19,9 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
-import { ColonyExtension } from "./ColonyExtension.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./BasicMetaTransaction.sol";
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
abstract contract ColonyExtensionMeta is BasicMetaTransaction, ColonyExtension {
mapping(address => uint256) metatransactionNonces;
diff --git a/contracts/common/CommonAuthority.sol b/contracts/common/CommonAuthority.sol
index 335386d911..c28820af17 100644
--- a/contracts/common/CommonAuthority.sol
+++ b/contracts/common/CommonAuthority.sol
@@ -18,11 +18,11 @@
pragma solidity 0.8.27;
-import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
import { DomainRoles } from "./DomainRoles.sol";
contract CommonAuthority is DomainRoles {
- uint8 constant RECOVERY_ROLE = uint8(ColonyDataTypes.ColonyRole.Recovery);
+ uint8 constant RECOVERY_ROLE = uint8(CommonDataTypes.ColonyRole.Recovery);
constructor(address contractAddress) {
setRecoveryRoleCapability(contractAddress, "enterRecoveryMode()");
diff --git a/contracts/common/ContractRecovery.sol b/contracts/common/ContractRecovery.sol
index d07e6b251e..d1c627077c 100644
--- a/contracts/common/ContractRecovery.sol
+++ b/contracts/common/ContractRecovery.sol
@@ -18,17 +18,17 @@
pragma solidity 0.8.27;
-import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol";
-import { ContractRecoveryDataTypes } from "./ContractRecoveryDataTypes.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
+import { ContractRecoveryDataTypes } from "./../dataTypes/ContractRecoveryDataTypes.sol";
import { CommonAuthority } from "./CommonAuthority.sol";
import { CommonStorage } from "./CommonStorage.sol";
-import { IRecovery } from "./IRecovery.sol";
+import { IRecovery } from "./../interfaces/IRecovery.sol";
contract ContractRecovery is
ContractRecoveryDataTypes,
CommonStorage // ignore-swc-123
{
- uint8 constant RECOVERY_ROLE = uint8(ColonyDataTypes.ColonyRole.Recovery);
+ uint8 constant RECOVERY_ROLE = uint8(CommonDataTypes.ColonyRole.Recovery);
function setStorageSlotRecovery(uint256 _slot, bytes32 _value) public recovery auth {
require(_slot != AUTHORITY_SLOT, "colony-common-protected-variable");
diff --git a/contracts/common/GetActionDomainSkillId.sol b/contracts/common/GetActionDomainSkillId.sol
index 6503b3465c..ba51efe897 100644
--- a/contracts/common/GetActionDomainSkillId.sol
+++ b/contracts/common/GetActionDomainSkillId.sol
@@ -15,8 +15,8 @@
along with The Colony Network. If not, see .
*/
-import { IColony } from "./../colony/IColony.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColony } from "./../interfaces/IColony.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
diff --git a/contracts/common/GetActionSummary.sol b/contracts/common/GetActionSummary.sol
index 5db9e8eb9d..59bdcf0ecb 100644
--- a/contracts/common/GetActionSummary.sol
+++ b/contracts/common/GetActionSummary.sol
@@ -15,10 +15,10 @@
along with The Colony Network. If not, see .
*/
-import { IColony } from "./../colony/IColony.sol";
+import { IColony } from "./../interfaces/IColony.sol";
import { ExtractCallData } from "./ExtractCallData.sol";
import { GetActionDomainSkillId } from "./GetActionDomainSkillId.sol";
-import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
import { ColonyRoles } from "./../colony/ColonyRoles.sol";
import { Bytes4Includes } from "./Bytes4Includes.sol";
@@ -44,17 +44,17 @@ contract GetActionSummary is ExtractCallData, GetActionDomainSkillId {
bytes4(keccak256("setExpenditurePayout(uint256,uint256,uint256,uint256,address,uint256)"));
bytes32 constant ROOT_ROLES = ((bytes32(uint256(1)) <<
- uint8(ColonyDataTypes.ColonyRole.Recovery)) |
- (bytes32(uint256(1)) << uint8(ColonyDataTypes.ColonyRole.Root)));
+ uint8(CommonDataTypes.ColonyRole.Recovery)) |
+ (bytes32(uint256(1)) << uint8(CommonDataTypes.ColonyRole.Root)));
bytes32 constant ONLY_ROOT_ROLE_MASK =
- bytes32(uint256(1)) << uint8(ColonyDataTypes.ColonyRole.Root);
+ bytes32(uint256(1)) << uint8(CommonDataTypes.ColonyRole.Root);
bytes4 constant SET_USER_ROLES =
bytes4(keccak256("setUserRoles(uint256,uint256,address,uint256,bytes32)"));
bytes32 constant ONLY_ARCHITECTURE_ROLE_MASK =
- bytes32(uint256(1)) << uint8(ColonyDataTypes.ColonyRole.Architecture);
+ bytes32(uint256(1)) << uint8(CommonDataTypes.ColonyRole.Architecture);
function getExpenditureId(bytes memory action) internal pure returns (uint256 expenditureId) {
bytes4 sig = getSig(action);
diff --git a/contracts/colony/ColonyDataTypes.sol b/contracts/dataTypes/ColonyDataTypes.sol
similarity index 98%
rename from contracts/colony/ColonyDataTypes.sol
rename to contracts/dataTypes/ColonyDataTypes.sol
index 1b2215d25c..6efe3e6b2b 100755
--- a/contracts/colony/ColonyDataTypes.sol
+++ b/contracts/dataTypes/ColonyDataTypes.sol
@@ -18,8 +18,10 @@
pragma solidity 0.8.27;
+import { CommonDataTypes } from "./CommonDataTypes.sol";
+
// prettier-ignore
-interface ColonyDataTypes {
+interface ColonyDataTypes is CommonDataTypes {
// Events
/// @notice Event logged when Colony is initialised
@@ -302,9 +304,6 @@ interface ColonyDataTypes {
enum ExpenditureStatus { Draft, Cancelled, Finalized, Locked }
- // Any new roles added should be added before NUMBER_OF_ROLES, which should always be the last entry in this enum
- enum ColonyRole { Recovery, Root, Arbitration, Architecture, ArchitectureSubdomain_DEPRECATED, Funding, Administration, NUMBER_OF_ROLES }
-
// We do have 1 "special" funding pot with id 0 for rewards which will carry the "Unassigned" type.
// as they are unrelated to other entities in the Colony the same way the remaining funding pots are releated to domains, tasks and payouts.
enum FundingPotAssociatedType { Unassigned, Domain, DEPRECATED_Task, DEPRECATED_Payment, Expenditure }
diff --git a/contracts/colonyNetwork/ColonyNetworkDataTypes.sol b/contracts/dataTypes/ColonyNetworkDataTypes.sol
similarity index 100%
rename from contracts/colonyNetwork/ColonyNetworkDataTypes.sol
rename to contracts/dataTypes/ColonyNetworkDataTypes.sol
diff --git a/contracts/dataTypes/CommonDataTypes.sol b/contracts/dataTypes/CommonDataTypes.sol
new file mode 100644
index 0000000000..49cce80836
--- /dev/null
+++ b/contracts/dataTypes/CommonDataTypes.sol
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+/*
+ This file is part of The Colony Network.
+
+ The Colony Network is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ The Colony Network is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with The Colony Network. If not, see .
+*/
+
+pragma solidity 0.8.27;
+
+// prettier-ignore
+interface CommonDataTypes {
+ // Any new roles added should be added before NUMBER_OF_ROLES, which should always be the last entry in this enum
+ enum ColonyRole { Recovery, Root, Arbitration, Architecture, ArchitectureSubdomain_DEPRECATED, Funding, Administration, NUMBER_OF_ROLES }
+}
diff --git a/contracts/common/ContractRecoveryDataTypes.sol b/contracts/dataTypes/ContractRecoveryDataTypes.sol
similarity index 100%
rename from contracts/common/ContractRecoveryDataTypes.sol
rename to contracts/dataTypes/ContractRecoveryDataTypes.sol
diff --git a/contracts/patriciaTree/Bits.sol b/contracts/dataTypes/PatriciaTreeBits.sol
similarity index 100%
rename from contracts/patriciaTree/Bits.sol
rename to contracts/dataTypes/PatriciaTreeBits.sol
diff --git a/contracts/patriciaTree/Data.sol b/contracts/dataTypes/PatriciaTreeData.sol
similarity index 99%
rename from contracts/patriciaTree/Data.sol
rename to contracts/dataTypes/PatriciaTreeData.sol
index 038aa02603..084f070b9a 100644
--- a/contracts/patriciaTree/Data.sol
+++ b/contracts/dataTypes/PatriciaTreeData.sol
@@ -2,7 +2,7 @@
pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
-import { Bits } from "./Bits.sol";
+import { Bits } from "./PatriciaTreeBits.sol";
/// More info at: https://github.com/chriseth/patricia-trie
library Data {
diff --git a/contracts/reputationMiningCycle/ReputationMiningCycleDataTypes.sol b/contracts/dataTypes/ReputationMiningCycleDataTypes.sol
similarity index 100%
rename from contracts/reputationMiningCycle/ReputationMiningCycleDataTypes.sol
rename to contracts/dataTypes/ReputationMiningCycleDataTypes.sol
diff --git a/contracts/tokenLocking/TokenLockingDataTypes.sol b/contracts/dataTypes/TokenLockingDataTypes.sol
similarity index 100%
rename from contracts/tokenLocking/TokenLockingDataTypes.sol
rename to contracts/dataTypes/TokenLockingDataTypes.sol
diff --git a/contracts/extensions/CoinMachine.sol b/contracts/extensions/CoinMachine.sol
index c5081d5ffb..430439f495 100644
--- a/contracts/extensions/CoinMachine.sol
+++ b/contracts/extensions/CoinMachine.sol
@@ -20,10 +20,11 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { ERC20 } from "./../../lib/dappsys/erc20.sol";
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
-import { ColonyExtension } from "./ColonyExtension.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
import { Whitelist } from "./Whitelist.sol";
-import { ColonyDataTypes } from "./../colony/IColony.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
// ignore-file-swc-108
@@ -85,7 +86,7 @@ contract CoinMachine is ColonyExtension, BasicMetaTransaction {
modifier onlyRoot() {
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root),
"coin-machine-caller-not-root"
);
_;
diff --git a/contracts/extensions/EvaluatedExpenditure.sol b/contracts/extensions/EvaluatedExpenditure.sol
index 033b249be6..7892d2728b 100644
--- a/contracts/extensions/EvaluatedExpenditure.sol
+++ b/contracts/extensions/EvaluatedExpenditure.sol
@@ -19,8 +19,9 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyExtension } from "./ColonyExtension.sol";
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
// ignore-file-swc-108
diff --git a/contracts/extensions/FundingQueue.sol b/contracts/extensions/FundingQueue.sol
index c010aeddf1..aa629a6958 100644
--- a/contracts/extensions/FundingQueue.sol
+++ b/contracts/extensions/FundingQueue.sol
@@ -19,11 +19,12 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
-import { ColonyExtension } from "./ColonyExtension.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
contract FundingQueue is ColonyExtension, BasicMetaTransaction {
// Events
@@ -335,7 +336,7 @@ contract FundingQueue is ColonyExtension, BasicMetaTransaction {
// Check if the extension has the permissions to do this
// If not, cancel the proposal so others aren't blocked
- if (!colony.hasUserRole(address(this), proposal.domainId, ColonyDataTypes.ColonyRole.Funding)) {
+ if (!colony.hasUserRole(address(this), proposal.domainId, CommonDataTypes.ColonyRole.Funding)) {
emit ProposalPinged(_id, 0);
cancelProposal(_id, HEAD);
return;
diff --git a/contracts/extensions/MultisigPermissions.sol b/contracts/extensions/MultisigPermissions.sol
index a0540b2479..4cee097dfe 100644
--- a/contracts/extensions/MultisigPermissions.sol
+++ b/contracts/extensions/MultisigPermissions.sol
@@ -18,12 +18,14 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyDataTypes, IColony } from "./../colony/IColony.sol";
+import { IColony } from "./../interfaces/IColony.sol";
+import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol";
import { ColonyRoles } from "./../colony/ColonyRoles.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
-import { ColonyNetworkDataTypes } from "./../colonyNetwork/ColonyNetworkDataTypes.sol";
-import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol";
+import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol";
import { GetActionSummary, ActionSummary } from "./../common/GetActionSummary.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
import { Bytes4Includes } from "./../common/Bytes4Includes.sol";
// ignore-file-swc-108
@@ -139,7 +141,7 @@ contract MultisigPermissions is ColonyExtensionMeta, ColonyDataTypes, GetActionS
modifier onlyCoreRoot() {
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root),
"multisig-permissions-not-core-root"
);
_;
@@ -369,12 +371,12 @@ contract MultisigPermissions is ColonyExtensionMeta, ColonyDataTypes, GetActionS
// Allow this function to be called if the caller:
require(
// Has core root permissions OR
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root) ||
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root) ||
// Has core architecture, if we're using that permission in a child domain
(colony.hasUserRole(
msgSender(),
_permissionDomainId,
- ColonyDataTypes.ColonyRole.Architecture
+ CommonDataTypes.ColonyRole.Architecture
) && (_permissionDomainId != _domainId)),
"multisig-caller-not-correct-permissions"
);
diff --git a/contracts/extensions/OneTxPayment.sol b/contracts/extensions/OneTxPayment.sol
index 0f23f75d65..c0fd00d1b3 100644
--- a/contracts/extensions/OneTxPayment.sol
+++ b/contracts/extensions/OneTxPayment.sol
@@ -19,18 +19,19 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyDataTypes } from "../colony/IColony.sol";
-import { ColonyExtension } from "./ColonyExtension.sol";
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
// ignore-file-swc-108
contract OneTxPayment is ColonyExtension, BasicMetaTransaction {
event OneTxPaymentMade(address agent, uint256 fundamentalId, uint256 nPayouts);
- ColonyDataTypes.ColonyRole constant ADMINISTRATION = ColonyDataTypes.ColonyRole.Administration;
- ColonyDataTypes.ColonyRole constant FUNDING = ColonyDataTypes.ColonyRole.Funding;
- ColonyDataTypes.ColonyRole constant ARBITRATION = ColonyDataTypes.ColonyRole.Arbitration;
+ CommonDataTypes.ColonyRole constant ADMINISTRATION = CommonDataTypes.ColonyRole.Administration;
+ CommonDataTypes.ColonyRole constant FUNDING = CommonDataTypes.ColonyRole.Funding;
+ CommonDataTypes.ColonyRole constant ARBITRATION = CommonDataTypes.ColonyRole.Arbitration;
mapping(address => uint256) metatransactionNonces;
diff --git a/contracts/extensions/ReputationBootstrapper.sol b/contracts/extensions/ReputationBootstrapper.sol
index dd9e2f3daa..2b7baf9160 100644
--- a/contracts/extensions/ReputationBootstrapper.sol
+++ b/contracts/extensions/ReputationBootstrapper.sol
@@ -20,10 +20,10 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { ERC20 } from "./../../lib/dappsys/erc20.sol";
-import { IReputationMiningCycle } from "./../reputationMiningCycle/IReputationMiningCycle.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
-import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol";
-import { ColonyDataTypes } from "./../colony/IColony.sol";
+import { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
// ignore-file-swc-108
@@ -61,7 +61,7 @@ contract ReputationBootstrapper is ColonyExtensionMeta {
modifier onlyRoot() {
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root),
"reputation-bootstrapper-caller-not-root"
);
_;
diff --git a/contracts/extensions/StagedExpenditure.sol b/contracts/extensions/StagedExpenditure.sol
index 72b5baf6dd..62ffe0223f 100644
--- a/contracts/extensions/StagedExpenditure.sol
+++ b/contracts/extensions/StagedExpenditure.sol
@@ -19,8 +19,10 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IColony, ColonyDataTypes } from "./../colony/IColony.sol";
-import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol";
+import { IColony } from "./../interfaces/IColony.sol";
+import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
+import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol";
// ignore-file-swc-108
@@ -118,7 +120,7 @@ contract StagedExpenditure is ColonyExtensionMeta, ColonyDataTypes {
colony.hasInheritedUserRole(
msgSender(),
_permissionDomainId,
- ColonyDataTypes.ColonyRole.Arbitration,
+ CommonDataTypes.ColonyRole.Arbitration,
_childSkillIndex,
e.domainId
),
diff --git a/contracts/extensions/StakedExpenditure.sol b/contracts/extensions/StakedExpenditure.sol
index 4bb842b35d..eecaaedf61 100644
--- a/contracts/extensions/StakedExpenditure.sol
+++ b/contracts/extensions/StakedExpenditure.sol
@@ -19,9 +19,10 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyDataTypes } from "./../colony/IColony.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
-import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
+import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol";
// ignore-file-swc-108
@@ -51,7 +52,7 @@ contract StakedExpenditure is ColonyExtensionMeta {
modifier onlyRoot() {
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root),
"staked-expenditure-caller-not-root"
);
_;
@@ -208,7 +209,7 @@ contract StakedExpenditure is ColonyExtensionMeta {
colony.hasInheritedUserRole(
msgSender(),
_callerPermissionDomainId,
- ColonyDataTypes.ColonyRole.Arbitration,
+ CommonDataTypes.ColonyRole.Arbitration,
_callerChildSkillIndex,
expenditure.domainId
),
diff --git a/contracts/extensions/StreamingPayments.sol b/contracts/extensions/StreamingPayments.sol
index bf9241c847..e916d56c86 100644
--- a/contracts/extensions/StreamingPayments.sol
+++ b/contracts/extensions/StreamingPayments.sol
@@ -19,8 +19,8 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol";
-import { ColonyDataTypes } from "./../colony/IColony.sol";
+import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
// ignore-file-swc-108
@@ -47,8 +47,8 @@ contract StreamingPayments is ColonyExtensionMeta {
// Constants
uint256 constant SLOT = 0;
- ColonyDataTypes.ColonyRole constant ADMINISTRATION = ColonyDataTypes.ColonyRole.Administration;
- ColonyDataTypes.ColonyRole constant FUNDING = ColonyDataTypes.ColonyRole.Funding;
+ CommonDataTypes.ColonyRole constant ADMINISTRATION = CommonDataTypes.ColonyRole.Administration;
+ CommonDataTypes.ColonyRole constant FUNDING = CommonDataTypes.ColonyRole.Funding;
// Storage
diff --git a/contracts/extensions/TokenSupplier.sol b/contracts/extensions/TokenSupplier.sol
index 3479fffcae..f71669a92b 100644
--- a/contracts/extensions/TokenSupplier.sol
+++ b/contracts/extensions/TokenSupplier.sol
@@ -19,11 +19,12 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
-import { ColonyExtension } from "./ColonyExtension.sol";
-import { IColony, ColonyDataTypes } from "./../colony/IColony.sol";
-
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
+import { IColony } from "./../interfaces/IColony.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
contract TokenSupplier is ColonyExtension, BasicMetaTransaction {
uint256 constant ISSUANCE_PERIOD = 1 days;
@@ -188,10 +189,10 @@ contract TokenSupplier is ColonyExtension, BasicMetaTransaction {
// Internal functions
function isRoot() internal view returns (bool) {
- return colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root);
+ return colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root);
}
function isRootFunding() internal view returns (bool) {
- return colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Funding);
+ return colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Funding);
}
}
diff --git a/contracts/extensions/Whitelist.sol b/contracts/extensions/Whitelist.sol
index 73d2d3ccc2..ce9a5aea27 100644
--- a/contracts/extensions/Whitelist.sol
+++ b/contracts/extensions/Whitelist.sol
@@ -19,10 +19,12 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
-import { ColonyExtension } from "./ColonyExtension.sol";
-import { IColony, ColonyDataTypes } from "./../colony/IColony.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
+import { IColony } from "./../interfaces/IColony.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
// ignore-file-swc-108
@@ -82,7 +84,7 @@ contract Whitelist is ColonyExtension, BasicMetaTransaction {
/// @param _agreementHash An agreement hash (such as an IPFS URI)
function initialise(bool _useApprovals, string memory _agreementHash) public {
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root),
"whitelist-unauthorised"
);
require(!useApprovals && bytes(agreementHash).length == 0, "whitelist-already-initialised");
@@ -100,7 +102,7 @@ contract Whitelist is ColonyExtension, BasicMetaTransaction {
function approveUsers(address[] memory _users, bool _status) public initialised notDeprecated {
require(useApprovals, "whitelist-no-approvals");
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Administration),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Administration),
"whitelist-unauthorised"
);
diff --git a/contracts/extensions/votingReputation/IVotingReputation.sol b/contracts/extensions/votingReputation/IVotingReputation.sol
index 6bc0e18755..596e1b9aca 100644
--- a/contracts/extensions/votingReputation/IVotingReputation.sol
+++ b/contracts/extensions/votingReputation/IVotingReputation.sol
@@ -19,7 +19,7 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IColonyExtension } from "./../IColonyExtension.sol";
+import { IColonyExtension } from "../../interfaces/IColonyExtension.sol";
import { VotingReputationDataTypes } from "./VotingReputationDataTypes.sol";
import { ActionSummary } from "./../../common/GetActionSummary.sol";
diff --git a/contracts/extensions/votingReputation/VotingReputation.sol b/contracts/extensions/votingReputation/VotingReputation.sol
index c1487ac230..827d5b6587 100644
--- a/contracts/extensions/votingReputation/VotingReputation.sol
+++ b/contracts/extensions/votingReputation/VotingReputation.sol
@@ -20,7 +20,8 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { VotingReputationStorage } from "./VotingReputationStorage.sol";
-import { IColony, ColonyDataTypes } from "./../../colony/IColony.sol";
+import { IColony } from "./../../interfaces/IColony.sol";
+import { ColonyDataTypes } from "./../../dataTypes/ColonyDataTypes.sol";
import { ActionSummary } from "./../../common/GetActionSummary.sol";
contract VotingReputation is VotingReputationStorage {
diff --git a/contracts/extensions/votingReputation/VotingReputationDataTypes.sol b/contracts/extensions/votingReputation/VotingReputationDataTypes.sol
index 77a39d6735..e5dac8e56e 100644
--- a/contracts/extensions/votingReputation/VotingReputationDataTypes.sol
+++ b/contracts/extensions/votingReputation/VotingReputationDataTypes.sol
@@ -18,7 +18,7 @@
pragma solidity 0.8.27;
-import { ColonyDataTypes } from "./../../colony/ColonyDataTypes.sol";
+import { ColonyDataTypes } from "./../../dataTypes/ColonyDataTypes.sol";
// prettier-ignore
interface VotingReputationDataTypes {
diff --git a/contracts/extensions/votingReputation/VotingReputationMisalignedRecovery.sol b/contracts/extensions/votingReputation/VotingReputationMisalignedRecovery.sol
index fbc670cbc9..9a1ab99a2d 100644
--- a/contracts/extensions/votingReputation/VotingReputationMisalignedRecovery.sol
+++ b/contracts/extensions/votingReputation/VotingReputationMisalignedRecovery.sol
@@ -19,9 +19,9 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IColonyNetwork } from "./../../colonyNetwork/IColonyNetwork.sol";
-import { IColony } from "./../../colony/IColony.sol";
-import { ITokenLocking } from "./../../tokenLocking/ITokenLocking.sol";
+import { IColonyNetwork } from "./../../interfaces/IColonyNetwork.sol";
+import { IColony } from "./../../interfaces/IColony.sol";
+import { ITokenLocking } from "./../../interfaces/ITokenLocking.sol";
import { DSMath } from "./../../../lib/dappsys/math.sol";
import { DSAuth } from "./../../../lib/dappsys/auth.sol";
import { VotingReputationDataTypes } from "./VotingReputationDataTypes.sol";
diff --git a/contracts/extensions/votingReputation/VotingReputationStorage.sol b/contracts/extensions/votingReputation/VotingReputationStorage.sol
index 99a66d88fd..a9822f4cf5 100644
--- a/contracts/extensions/votingReputation/VotingReputationStorage.sol
+++ b/contracts/extensions/votingReputation/VotingReputationStorage.sol
@@ -19,12 +19,14 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IColonyNetwork } from "./../../colonyNetwork/IColonyNetwork.sol";
-import { IColony, ColonyDataTypes } from "./../../colony/IColony.sol";
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../../common/BasicMetaTransaction.sol";
+import { IColonyNetwork } from "./../../interfaces/IColonyNetwork.sol";
+import { IColony } from "./../../interfaces/IColony.sol";
+import { CommonDataTypes } from "./../../dataTypes/CommonDataTypes.sol";
+import { IBasicMetaTransaction } from "./../../interfaces/IBasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../../common/BasicMetaTransaction.sol";
import { ActionSummary, GetActionSummary } from "./../../common/GetActionSummary.sol";
-import { ITokenLocking } from "./../../tokenLocking/ITokenLocking.sol";
-import { ColonyExtension } from "./../ColonyExtension.sol";
+import { ITokenLocking } from "./../../interfaces/ITokenLocking.sol";
+import { ColonyExtension } from "./../../common/ColonyExtension.sol";
import { VotingReputationDataTypes } from "./VotingReputationDataTypes.sol";
contract VotingReputationStorage is
@@ -111,7 +113,7 @@ contract VotingReputationStorage is
modifier onlyRoot() {
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root),
"voting-rep-caller-not-root"
);
_;
diff --git a/contracts/common/IBasicMetaTransaction.sol b/contracts/interfaces/IBasicMetaTransaction.sol
similarity index 100%
rename from contracts/common/IBasicMetaTransaction.sol
rename to contracts/interfaces/IBasicMetaTransaction.sol
diff --git a/contracts/colony/IColony.sol b/contracts/interfaces/IColony.sol
similarity index 99%
rename from contracts/colony/IColony.sol
rename to contracts/interfaces/IColony.sol
index d2cffee40e..c911121576 100644
--- a/contracts/colony/IColony.sol
+++ b/contracts/interfaces/IColony.sol
@@ -19,11 +19,11 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental ABIEncoderV2;
-import { IRecovery } from "./../common/IRecovery.sol";
-import { IBasicMetaTransaction } from "./../common/IBasicMetaTransaction.sol";
-import { IMulticall } from "./../common/IMulticall.sol";
-import { ColonyDataTypes } from "./ColonyDataTypes.sol";
-import { IDSAuth } from "./../common/IDSAuth.sol";
+import { IRecovery } from "./IRecovery.sol";
+import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol";
+import { IMulticall } from "./IMulticall.sol";
+import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol";
+import { IDSAuth } from "./IDSAuth.sol";
interface IColony is IDSAuth, ColonyDataTypes, IRecovery, IBasicMetaTransaction, IMulticall {
// Implemented in Colony.sol
diff --git a/contracts/bridging/IColonyBridge.sol b/contracts/interfaces/IColonyBridge.sol
similarity index 100%
rename from contracts/bridging/IColonyBridge.sol
rename to contracts/interfaces/IColonyBridge.sol
diff --git a/contracts/extensions/IColonyExtension.sol b/contracts/interfaces/IColonyExtension.sol
similarity index 97%
rename from contracts/extensions/IColonyExtension.sol
rename to contracts/interfaces/IColonyExtension.sol
index 4b51678d7d..68974f54e7 100644
--- a/contracts/extensions/IColonyExtension.sol
+++ b/contracts/interfaces/IColonyExtension.sol
@@ -18,7 +18,7 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IBasicMetaTransaction } from "./../common/IBasicMetaTransaction.sol";
+import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol";
interface IColonyExtension is IBasicMetaTransaction {
/// @notice Returns the identifier of the extension
diff --git a/contracts/colonyNetwork/IColonyNetwork.sol b/contracts/interfaces/IColonyNetwork.sol
similarity index 99%
rename from contracts/colonyNetwork/IColonyNetwork.sol
rename to contracts/interfaces/IColonyNetwork.sol
index dd4c754399..4f78ce6127 100644
--- a/contracts/colonyNetwork/IColonyNetwork.sol
+++ b/contracts/interfaces/IColonyNetwork.sol
@@ -19,11 +19,10 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental "ABIEncoderV2";
-import { IRecovery } from "./../common/IRecovery.sol";
-import { IBasicMetaTransaction } from "./../common/IBasicMetaTransaction.sol";
-import { IMulticall } from "./../common/IMulticall.sol";
-
-import { ColonyNetworkDataTypes } from "./ColonyNetworkDataTypes.sol";
+import { IRecovery } from "./IRecovery.sol";
+import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol";
+import { IMulticall } from "./IMulticall.sol";
+import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol";
interface IColonyNetwork is ColonyNetworkDataTypes, IRecovery, IBasicMetaTransaction, IMulticall {
/// @notice Query if a contract implements an interface
diff --git a/contracts/common/IDSAuth.sol b/contracts/interfaces/IDSAuth.sol
similarity index 100%
rename from contracts/common/IDSAuth.sol
rename to contracts/interfaces/IDSAuth.sol
diff --git a/contracts/common/IEtherRouter.sol b/contracts/interfaces/IEtherRouter.sol
similarity index 100%
rename from contracts/common/IEtherRouter.sol
rename to contracts/interfaces/IEtherRouter.sol
diff --git a/contracts/colony/IMetaColony.sol b/contracts/interfaces/IMetaColony.sol
similarity index 100%
rename from contracts/colony/IMetaColony.sol
rename to contracts/interfaces/IMetaColony.sol
diff --git a/contracts/common/IMulticall.sol b/contracts/interfaces/IMulticall.sol
similarity index 100%
rename from contracts/common/IMulticall.sol
rename to contracts/interfaces/IMulticall.sol
diff --git a/contracts/patriciaTree/IPatriciaTree.sol b/contracts/interfaces/IPatriciaTree.sol
similarity index 96%
rename from contracts/patriciaTree/IPatriciaTree.sol
rename to contracts/interfaces/IPatriciaTree.sol
index 4685c04877..f35fa9b1d0 100644
--- a/contracts/patriciaTree/IPatriciaTree.sol
+++ b/contracts/interfaces/IPatriciaTree.sol
@@ -2,7 +2,6 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental "ABIEncoderV2";
-import { Data } from "./Data.sol";
import { IPatriciaTreeBase } from "./IPatriciaTreeBase.sol";
interface IPatriciaTree is IPatriciaTreeBase {
diff --git a/contracts/patriciaTree/IPatriciaTreeBase.sol b/contracts/interfaces/IPatriciaTreeBase.sol
similarity index 92%
rename from contracts/patriciaTree/IPatriciaTreeBase.sol
rename to contracts/interfaces/IPatriciaTreeBase.sol
index c457855b77..fcd67d3696 100644
--- a/contracts/patriciaTree/IPatriciaTreeBase.sol
+++ b/contracts/interfaces/IPatriciaTreeBase.sol
@@ -2,7 +2,7 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental "ABIEncoderV2";
-import { Data } from "./Data.sol";
+import { Data } from "./../dataTypes/PatriciaTreeData.sol";
interface IPatriciaTreeBase {
/// @notice Get the root hash
diff --git a/contracts/patriciaTree/IPatriciaTreeNoHash.sol b/contracts/interfaces/IPatriciaTreeNoHash.sol
similarity index 96%
rename from contracts/patriciaTree/IPatriciaTreeNoHash.sol
rename to contracts/interfaces/IPatriciaTreeNoHash.sol
index b3df9bc8a5..3f5f56ec2f 100644
--- a/contracts/patriciaTree/IPatriciaTreeNoHash.sol
+++ b/contracts/interfaces/IPatriciaTreeNoHash.sol
@@ -2,7 +2,6 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental "ABIEncoderV2";
-import { Data } from "./Data.sol";
import { IPatriciaTreeBase } from "./IPatriciaTreeBase.sol";
/// More info at: https://github.com/chriseth/patricia-trie
diff --git a/contracts/common/IRecovery.sol b/contracts/interfaces/IRecovery.sol
similarity index 96%
rename from contracts/common/IRecovery.sol
rename to contracts/interfaces/IRecovery.sol
index 876ae5ed81..cf6d88d52e 100644
--- a/contracts/common/IRecovery.sol
+++ b/contracts/interfaces/IRecovery.sol
@@ -19,7 +19,7 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental "ABIEncoderV2";
-import { ContractRecoveryDataTypes } from "./ContractRecoveryDataTypes.sol";
+import { ContractRecoveryDataTypes } from "./../dataTypes/ContractRecoveryDataTypes.sol";
interface IRecovery is ContractRecoveryDataTypes {
/// @notice Put colony network mining into recovery mode.
diff --git a/contracts/reputationMiningCycle/IReputationMiningCycle.sol b/contracts/interfaces/IReputationMiningCycle.sol
similarity index 99%
rename from contracts/reputationMiningCycle/IReputationMiningCycle.sol
rename to contracts/interfaces/IReputationMiningCycle.sol
index 8f855b85a7..47f98901e3 100644
--- a/contracts/reputationMiningCycle/IReputationMiningCycle.sol
+++ b/contracts/interfaces/IReputationMiningCycle.sol
@@ -19,7 +19,7 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental "ABIEncoderV2";
-import { ReputationMiningCycleDataTypes } from "./ReputationMiningCycleDataTypes.sol";
+import { ReputationMiningCycleDataTypes } from "./../dataTypes/ReputationMiningCycleDataTypes.sol";
interface IReputationMiningCycle is ReputationMiningCycleDataTypes {
/// @notice The getter for the disputeRounds mapping.
diff --git a/contracts/tokenLocking/ITokenLocking.sol b/contracts/interfaces/ITokenLocking.sol
similarity index 98%
rename from contracts/tokenLocking/ITokenLocking.sol
rename to contracts/interfaces/ITokenLocking.sol
index b20fe672f4..3d35d7083d 100644
--- a/contracts/tokenLocking/ITokenLocking.sol
+++ b/contracts/interfaces/ITokenLocking.sol
@@ -19,8 +19,8 @@
pragma solidity >=0.8.27; // ignore-swc-103
pragma experimental "ABIEncoderV2";
-import { TokenLockingDataTypes } from "./TokenLockingDataTypes.sol";
-import { IBasicMetaTransaction } from "./../common/IBasicMetaTransaction.sol";
+import { TokenLockingDataTypes } from "./../dataTypes/TokenLockingDataTypes.sol";
+import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol";
interface ITokenLocking is TokenLockingDataTypes, IBasicMetaTransaction {
/// @notice Set the ColonyNetwork contract address.
diff --git a/contracts/interfaces/IVotingReputation.sol.flattened b/contracts/interfaces/IVotingReputation.sol.flattened
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/contracts/interfaces/IVotingReputation.sol.flattened
@@ -0,0 +1 @@
+
diff --git a/contracts/metaTxToken/DSAuthMeta.sol b/contracts/metaTxToken/DSAuthMeta.sol
index 9405eaab4e..b08d9d4642 100644
--- a/contracts/metaTxToken/DSAuthMeta.sol
+++ b/contracts/metaTxToken/DSAuthMeta.sol
@@ -15,7 +15,7 @@ import { ERC20Extended } from "./../common/ERC20Extended.sol";
import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
import { DSAuth, DSAuthEvents, DSAuthority } from "./../../lib/dappsys/auth.sol";
-import { IDSAuth } from "./../common/IDSAuth.sol";
+import { IDSAuth } from "./../interfaces/IDSAuth.sol";
pragma solidity 0.8.27;
diff --git a/contracts/patriciaTree/PatriciaTree.sol b/contracts/patriciaTree/PatriciaTree.sol
index 4843dec792..5589f16bbe 100644
--- a/contracts/patriciaTree/PatriciaTree.sol
+++ b/contracts/patriciaTree/PatriciaTree.sol
@@ -3,10 +3,10 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { PatriciaTreeBase } from "./PatriciaTreeBase.sol";
-import { IPatriciaTreeBase } from "./IPatriciaTreeBase.sol";
-import { IPatriciaTree } from "./IPatriciaTree.sol";
-import { Data } from "./Data.sol";
-import { Bits } from "./Bits.sol";
+import { IPatriciaTreeBase } from "./../interfaces/IPatriciaTreeBase.sol";
+import { IPatriciaTree } from "./../interfaces/IPatriciaTree.sol";
+import { Data } from "./../dataTypes/PatriciaTreeData.sol";
+import { Bits } from "./../dataTypes/PatriciaTreeBits.sol";
/// More info at: https://github.com/chriseth/patricia-trie
contract PatriciaTree is IPatriciaTree, PatriciaTreeBase {
diff --git a/contracts/patriciaTree/PatriciaTreeBase.sol b/contracts/patriciaTree/PatriciaTreeBase.sol
index 213bb640d7..1cf7a17f26 100644
--- a/contracts/patriciaTree/PatriciaTreeBase.sol
+++ b/contracts/patriciaTree/PatriciaTreeBase.sol
@@ -2,8 +2,8 @@
pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
-import { Data } from "./Data.sol";
-import { Bits } from "./Bits.sol";
+import { Data } from "./../dataTypes/PatriciaTreeData.sol";
+import { Bits } from "./../dataTypes/PatriciaTreeBits.sol";
import { PatriciaTreeProofs } from "./PatriciaTreeProofs.sol";
/// More info at: https://github.com/chriseth/patricia-trie
diff --git a/contracts/patriciaTree/PatriciaTreeNoHash.sol b/contracts/patriciaTree/PatriciaTreeNoHash.sol
index b0cea9b47b..8d822dfd37 100644
--- a/contracts/patriciaTree/PatriciaTreeNoHash.sol
+++ b/contracts/patriciaTree/PatriciaTreeNoHash.sol
@@ -3,10 +3,10 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { PatriciaTreeBase } from "./PatriciaTreeBase.sol";
-import { IPatriciaTreeBase } from "./IPatriciaTreeBase.sol";
-import { IPatriciaTreeNoHash } from "./IPatriciaTreeNoHash.sol";
-import { Data } from "./Data.sol";
-import { Bits } from "./Bits.sol";
+import { IPatriciaTreeBase } from "./../interfaces/IPatriciaTreeBase.sol";
+import { IPatriciaTreeNoHash } from "./../interfaces/IPatriciaTreeNoHash.sol";
+import { Data } from "./../dataTypes/PatriciaTreeData.sol";
+import { Bits } from "./../dataTypes/PatriciaTreeBits.sol";
/// More info at: https://github.com/chriseth/patricia-trie
contract PatriciaTreeNoHash is IPatriciaTreeNoHash, PatriciaTreeBase {
diff --git a/contracts/patriciaTree/PatriciaTreeProofs.sol b/contracts/patriciaTree/PatriciaTreeProofs.sol
index 18bef4e197..58a9909eaa 100644
--- a/contracts/patriciaTree/PatriciaTreeProofs.sol
+++ b/contracts/patriciaTree/PatriciaTreeProofs.sol
@@ -2,8 +2,8 @@
pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
-import { Data } from "./Data.sol";
-import { Bits } from "./Bits.sol";
+import { Data } from "./../dataTypes/PatriciaTreeData.sol";
+import { Bits } from "./../dataTypes/PatriciaTreeBits.sol";
/// More info at: https://github.com/chriseth/patricia-trie
contract PatriciaTreeProofs {
diff --git a/contracts/reputationMiningCycle/ReputationMiningCycle.sol b/contracts/reputationMiningCycle/ReputationMiningCycle.sol
index dc5ba823d3..23ce4e7a83 100644
--- a/contracts/reputationMiningCycle/ReputationMiningCycle.sol
+++ b/contracts/reputationMiningCycle/ReputationMiningCycle.sol
@@ -20,9 +20,9 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { DSMath } from "./../../lib/dappsys/math.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
import { ReputationMiningCycleCommon } from "./ReputationMiningCycleCommon.sol";
contract ReputationMiningCycle is ReputationMiningCycleCommon {
diff --git a/contracts/reputationMiningCycle/ReputationMiningCycleBinarySearch.sol b/contracts/reputationMiningCycle/ReputationMiningCycleBinarySearch.sol
index 73db799cf4..0972f8e46e 100644
--- a/contracts/reputationMiningCycle/ReputationMiningCycleBinarySearch.sol
+++ b/contracts/reputationMiningCycle/ReputationMiningCycleBinarySearch.sol
@@ -20,9 +20,9 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { DSMath } from "../../lib/dappsys/math.sol";
-import { IColonyNetwork } from "../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "../interfaces/IColonyNetwork.sol";
import { PatriciaTreeProofs } from "../patriciaTree/PatriciaTreeProofs.sol";
-import { ITokenLocking } from "../tokenLocking/ITokenLocking.sol";
+import { ITokenLocking } from "../interfaces/ITokenLocking.sol";
import { ReputationMiningCycleStorage } from "./ReputationMiningCycleStorage.sol";
import { ReputationMiningCycleCommon } from "./ReputationMiningCycleCommon.sol";
diff --git a/contracts/reputationMiningCycle/ReputationMiningCycleCommon.sol b/contracts/reputationMiningCycle/ReputationMiningCycleCommon.sol
index b9e22dc93f..df8fbce7e0 100644
--- a/contracts/reputationMiningCycle/ReputationMiningCycleCommon.sol
+++ b/contracts/reputationMiningCycle/ReputationMiningCycleCommon.sol
@@ -21,8 +21,8 @@ pragma experimental "ABIEncoderV2";
import { DSMath } from "./../../lib/dappsys/math.sol";
import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
import { ReputationMiningCycleStorage } from "./ReputationMiningCycleStorage.sol";
contract ReputationMiningCycleCommon is ReputationMiningCycleStorage, PatriciaTreeProofs, DSMath {
diff --git a/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol b/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol
index 5d170d62bb..55160ccb0e 100644
--- a/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol
+++ b/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol
@@ -19,10 +19,10 @@
pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
-import { Bits } from "./../patriciaTree/Bits.sol";
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
+import { Bits } from "./../dataTypes/PatriciaTreeBits.sol";
import { ReputationMiningCycleCommon } from "./ReputationMiningCycleCommon.sol";
// TODO (post CCv1, possibly never): Can we handle all possible disputes regarding the very first hash that should be set?
diff --git a/contracts/reputationMiningCycle/ReputationMiningCycleStorage.sol b/contracts/reputationMiningCycle/ReputationMiningCycleStorage.sol
index bb4dfae8ca..94712b0dbb 100644
--- a/contracts/reputationMiningCycle/ReputationMiningCycleStorage.sol
+++ b/contracts/reputationMiningCycle/ReputationMiningCycleStorage.sol
@@ -19,7 +19,7 @@
pragma solidity 0.8.27;
import { DSAuth } from "./../../lib/dappsys/auth.sol";
-import { ReputationMiningCycleDataTypes } from "./../reputationMiningCycle/ReputationMiningCycleDataTypes.sol";
+import { ReputationMiningCycleDataTypes } from "./../dataTypes/ReputationMiningCycleDataTypes.sol";
// ignore-file-swc-131
// ignore-file-swc-108
diff --git a/contracts/testHelpers/FunctionsNotAvailableOnColony.sol b/contracts/testHelpers/FunctionsNotAvailableOnColony.sol
index 814c873fe4..06ade54e29 100644
--- a/contracts/testHelpers/FunctionsNotAvailableOnColony.sol
+++ b/contracts/testHelpers/FunctionsNotAvailableOnColony.sol
@@ -20,7 +20,7 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { Colony } from "./../colony/Colony.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
contract FunctionsNotAvailableOnColony is Colony {
function registerUserLabel(string memory username, string memory orbitdb) public {
diff --git a/contracts/testHelpers/GasGuzzler.sol b/contracts/testHelpers/GasGuzzler.sol
index 2b24e21cc2..23bfd82bec 100644
--- a/contracts/testHelpers/GasGuzzler.sol
+++ b/contracts/testHelpers/GasGuzzler.sol
@@ -18,8 +18,8 @@
pragma solidity 0.8.27;
-import { ColonyExtensionMeta } from "./../extensions/ColonyExtensionMeta.sol";
-import { IColony } from "../colony/IColony.sol";
+import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol";
+import { IColony } from "../interfaces/IColony.sol";
contract GasGuzzler is ColonyExtensionMeta {
uint256 storageVar;
diff --git a/contracts/testHelpers/NoLimitSubdomains.sol b/contracts/testHelpers/NoLimitSubdomains.sol
index 0b165a9863..1f4bdcf5d7 100644
--- a/contracts/testHelpers/NoLimitSubdomains.sol
+++ b/contracts/testHelpers/NoLimitSubdomains.sol
@@ -20,7 +20,7 @@ pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
import { ColonyStorage } from "./../colony/ColonyStorage.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
contract NoLimitSubdomains is ColonyStorage {
function addDomain(
diff --git a/contracts/testHelpers/VotingReputationMisaligned.sol b/contracts/testHelpers/VotingReputationMisaligned.sol
index 0fecbe44ae..ac43694ac5 100644
--- a/contracts/testHelpers/VotingReputationMisaligned.sol
+++ b/contracts/testHelpers/VotingReputationMisaligned.sol
@@ -19,14 +19,15 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
import { ColonyRoles } from "./../colony/ColonyRoles.sol";
-import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
+import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
-import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol";
-import { ColonyExtension } from "./../extensions/ColonyExtension.sol";
-import { IColony, ColonyDataTypes } from "./../colony/IColony.sol";
-
+import { ITokenLocking } from "./../interfaces/ITokenLocking.sol";
+import { ColonyExtension } from "./../common/ColonyExtension.sol";
+import { IColony } from "./../interfaces/IColony.sol";
+import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol";
contract VotingReputationMisaligned is ColonyExtension, BasicMetaTransaction {
// Events
event MotionCreated(uint256 indexed motionId, address creator, uint256 indexed domainId);
@@ -64,8 +65,8 @@ contract VotingReputationMisaligned is ColonyExtension, BasicMetaTransaction {
uint256 constant REVEAL_END = 2;
bytes32 constant ROOT_ROLES = ((bytes32(uint256(1)) <<
- uint8(ColonyDataTypes.ColonyRole.Recovery)) |
- (bytes32(uint256(1)) << uint8(ColonyDataTypes.ColonyRole.Root)));
+ uint8(CommonDataTypes.ColonyRole.Recovery)) |
+ (bytes32(uint256(1)) << uint8(CommonDataTypes.ColonyRole.Root)));
bytes4 constant CHANGE_FUNCTION_SIG =
bytes4(
@@ -126,7 +127,7 @@ contract VotingReputationMisaligned is ColonyExtension, BasicMetaTransaction {
modifier onlyRoot() {
require(
- colony.hasUserRole(msgSender(), 1, ColonyDataTypes.ColonyRole.Root),
+ colony.hasUserRole(msgSender(), 1, CommonDataTypes.ColonyRole.Root),
"voting-rep-caller-not-root"
);
_;
diff --git a/contracts/testHelpers/testExtensions/TestExtension0.sol b/contracts/testHelpers/testExtensions/TestExtension0.sol
index 248ab9d260..fa8e3cf872 100644
--- a/contracts/testHelpers/testExtensions/TestExtension0.sol
+++ b/contracts/testHelpers/testExtensions/TestExtension0.sol
@@ -19,7 +19,7 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyExtensionMeta } from "./../../extensions/ColonyExtensionMeta.sol";
+import { ColonyExtensionMeta } from "./../../common/ColonyExtensionMeta.sol";
contract TestExtension0 is ColonyExtensionMeta {
function identifier() public pure override returns (bytes32) {
diff --git a/contracts/testHelpers/testExtensions/TestExtension1.sol b/contracts/testHelpers/testExtensions/TestExtension1.sol
index 2a40e098df..ad4a6f8cb6 100644
--- a/contracts/testHelpers/testExtensions/TestExtension1.sol
+++ b/contracts/testHelpers/testExtensions/TestExtension1.sol
@@ -19,7 +19,7 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyExtensionMeta } from "./../../extensions/ColonyExtensionMeta.sol";
+import { ColonyExtensionMeta } from "./../../common/ColonyExtensionMeta.sol";
contract TestExtension1 is ColonyExtensionMeta {
function identifier() public pure override returns (bytes32) {
diff --git a/contracts/testHelpers/testExtensions/TestExtension2.sol b/contracts/testHelpers/testExtensions/TestExtension2.sol
index b471c6c917..d2189549fc 100644
--- a/contracts/testHelpers/testExtensions/TestExtension2.sol
+++ b/contracts/testHelpers/testExtensions/TestExtension2.sol
@@ -19,7 +19,7 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyExtensionMeta } from "./../../extensions/ColonyExtensionMeta.sol";
+import { ColonyExtensionMeta } from "./../../common/ColonyExtensionMeta.sol";
contract TestExtension2 is ColonyExtensionMeta {
function identifier() public pure override returns (bytes32) {
diff --git a/contracts/testHelpers/testExtensions/TestExtension3.sol b/contracts/testHelpers/testExtensions/TestExtension3.sol
index 35709cff60..a76f90b787 100644
--- a/contracts/testHelpers/testExtensions/TestExtension3.sol
+++ b/contracts/testHelpers/testExtensions/TestExtension3.sol
@@ -19,7 +19,7 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyExtensionMeta } from "./../../extensions/ColonyExtensionMeta.sol";
+import { ColonyExtensionMeta } from "./../../common/ColonyExtensionMeta.sol";
contract TestExtension3 is ColonyExtensionMeta {
function identifier() public pure override returns (bytes32) {
diff --git a/contracts/testHelpers/testExtensions/TestVotingToken.sol b/contracts/testHelpers/testExtensions/TestVotingToken.sol
index d1fff63e5b..af4f37ea61 100644
--- a/contracts/testHelpers/testExtensions/TestVotingToken.sol
+++ b/contracts/testHelpers/testExtensions/TestVotingToken.sol
@@ -19,7 +19,7 @@
pragma solidity 0.8.27;
pragma experimental ABIEncoderV2;
-import { ColonyExtensionMeta } from "./../../extensions/ColonyExtensionMeta.sol";
+import { ColonyExtensionMeta } from "./../../common/ColonyExtensionMeta.sol";
contract TestVotingToken is ColonyExtensionMeta {
function identifier() public pure override returns (bytes32) {
diff --git a/contracts/tokenLocking/TokenLocking.sol b/contracts/tokenLocking/TokenLocking.sol
index 3868da8feb..7ca505d175 100644
--- a/contracts/tokenLocking/TokenLocking.sol
+++ b/contracts/tokenLocking/TokenLocking.sol
@@ -20,11 +20,11 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { DSMath } from "./../../lib/dappsys/math.sol";
-import { IMetaColony } from "./../colony/IMetaColony.sol";
-import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol";
+import { IMetaColony } from "./../interfaces/IMetaColony.sol";
+import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol";
import { ERC20Extended } from "./../common/ERC20Extended.sol";
import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol";
-import { IReputationMiningCycle } from "./../reputationMiningCycle/IReputationMiningCycle.sol";
+import { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol";
import { TokenLockingStorage } from "./../tokenLocking/TokenLockingStorage.sol";
contract TokenLocking is
diff --git a/contracts/tokenLocking/TokenLockingStorage.sol b/contracts/tokenLocking/TokenLockingStorage.sol
index 4d53840010..4d33ee9bd8 100644
--- a/contracts/tokenLocking/TokenLockingStorage.sol
+++ b/contracts/tokenLocking/TokenLockingStorage.sol
@@ -20,7 +20,7 @@ pragma solidity 0.8.27;
pragma experimental "ABIEncoderV2";
import { DSAuth } from "./../../lib/dappsys/auth.sol";
-import { TokenLockingDataTypes } from "./../tokenLocking/TokenLockingDataTypes.sol";
+import { TokenLockingDataTypes } from "./../dataTypes/TokenLockingDataTypes.sol";
// ignore-file-swc-131
// ignore-file-swc-108
diff --git a/hardhat.config.js b/hardhat.config.js
index 084e0052e2..004b693278 100644
--- a/hardhat.config.js
+++ b/hardhat.config.js
@@ -13,6 +13,7 @@ const { FORKED_XDAI_CHAINID } = require("./helpers/constants");
require("@nomiclabs/hardhat-ethers");
require("@nomiclabs/hardhat-truffle5");
+require("@nomicfoundation/hardhat-verify");
require("@solidstate/hardhat-4byte-uploader");
require("hardhat-contract-sizer");
require("hardhat-storage-layout-changes");
@@ -135,6 +136,24 @@ module.exports = {
storageLayoutChanges: {
contracts: [],
},
+ sourcify: {
+ enabled: false,
+ },
+ etherscan: {
+ apiKey: {
+ development: "any-string-can-go-here",
+ },
+ customChains: [
+ {
+ network: "development",
+ chainId: Number(process.env.CHAIN_ID) || FORKED_XDAI_CHAINID,
+ urls: {
+ apiURL: "http://localhost:80/api",
+ browserURL: "http://localhost:80",
+ },
+ },
+ ],
+ },
networks: {
arbitrum: {
chainId: 42161,
diff --git a/helpers/upgradable-contracts.js b/helpers/upgradable-contracts.js
index d65c032ddb..ed083172b3 100644
--- a/helpers/upgradable-contracts.js
+++ b/helpers/upgradable-contracts.js
@@ -57,7 +57,8 @@ exports.setupEtherRouter = async function setupEtherRouter(contractDir, interfac
const functionsToResolve = {};
// Load ABI of the interface of the contract we're trying to stich together
- const iAbi = readArtifact(contractDir, interfaceName).abi;
+ const interfaceDir = interfaceName[0] === "I" ? "interfaces" : contractDir;
+ const iAbi = readArtifact(interfaceDir, interfaceName).abi;
iAbi.map((value) => {
const fName = value.name;
const fType = value.type;
diff --git a/package.json b/package.json
index 30cae759aa..dd2975ad6c 100644
--- a/package.json
+++ b/package.json
@@ -22,11 +22,11 @@
"check:versioning": "bash ./scripts/versioningCheck.sh",
"check:coverage": "istanbul-combine -d coverage-merged -p detail -r html -r json coverage-*/coverage-final.json && istanbul check-coverage ./coverage-merged/coverage-final.json --statements 99 --branches 94 --functions 99 --lines 99",
"version:contracts": "bash ./scripts/version-contracts.sh",
- "flatten:contracts": "mkdir -p ./build/flattened/ && steamroller contracts/colonyNetwork/IColonyNetwork.sol > build/flattened/flatIColonyNetwork.sol && steamroller contracts/colony/IColony.sol > build/flattened/flatIColony.sol && steamroller contracts/reputationMiningCycle/IReputationMiningCycle.sol > build/flattened/flatIReputationMiningCycle.sol && steamroller contracts/colony/IMetaColony.sol > build/flattened/flatIMetaColony.sol && steamroller contracts/common/IRecovery.sol > build/flattened/flatIRecovery.sol && steamroller contracts/common/IEtherRouter.sol > build/flattened/flatIEtherRouter.sol",
+ "flatten:contracts": "mkdir -p ./build/flattened/ && steamroller contracts/interfaces/IColonyNetwork.sol > build/flattened/flatIColonyNetwork.sol && steamroller contracts/interfaces/IColony.sol > build/flattened/flatIColony.sol && steamroller contracts/interfaces/IReputationMiningCycle.sol > build/flattened/flatIReputationMiningCycle.sol && steamroller contracts/interfaces/IMetaColony.sol > build/flattened/flatIMetaColony.sol && steamroller contracts/interfaces/IRecovery.sol > build/flattened/flatIRecovery.sol && steamroller contracts/interfaces/IEtherRouter.sol > build/flattened/flatIEtherRouter.sol",
"normalize:storageSlots": "./scripts/normalize-storage-slots.js",
"generate:test:contracts": "bash ./scripts/generate-test-contracts.sh",
"clean:test:contracts": "rimraf ./contracts/*Updated*.*",
- "clean:contracts": "rimraf ./build/contracts/*",
+ "clean:contracts": "rimraf ./artifacts/*",
"clean:ganache": "rimraf ./ganache-chain-db/",
"start:bridging": "cd ./lib/safe-contracts && pnpm i || true && cd ../../ && bash ./scripts/setup-foreign-chain.sh && node ./scripts/setup-bridging-contracts.js &",
"start:blockchain:client": "bash ./scripts/start-blockchain-client.sh",
@@ -85,6 +85,7 @@
"@grpc/proto-loader": "^0.7.13",
"@nomicfoundation/hardhat-ethers": "^3.0.8",
"@nomicfoundation/hardhat-network-helpers": "^1.0.12",
+ "@nomicfoundation/hardhat-verify": "^2.0.12",
"@nomiclabs/hardhat-ethers": "^2.2.3",
"@nomiclabs/hardhat-truffle5": "^2.0.7",
"@openzeppelin/contracts": "^4.9.6",
diff --git a/packages/metatransaction-broadcaster/MetatransactionBroadcaster.js b/packages/metatransaction-broadcaster/MetatransactionBroadcaster.js
index 0e2450c053..c9f5a83259 100644
--- a/packages/metatransaction-broadcaster/MetatransactionBroadcaster.js
+++ b/packages/metatransaction-broadcaster/MetatransactionBroadcaster.js
@@ -81,13 +81,13 @@ class MetatransactionBroadcaster {
console.warn("This should be fine, but ideally set to a checksummed address");
}
- const colonyNetworkDef = await this.loader.load({ contractDir: "colonyNetwork", contractName: "IColonyNetwork" });
+ const colonyNetworkDef = await this.loader.load({ contractDir: "interfaces", contractName: "IColonyNetwork" });
this.colonyNetwork = new ethers.Contract(ethers.utils.getAddress(colonyNetworkAddress), colonyNetworkDef.abi, this.wallet);
this.feeData = await getFeeData("safeLow", this.chainId, this.adapter, this.provider);
this.tokenLockingAddress = await this.colonyNetwork.getTokenLocking();
- this.metaTxDef = await this.loader.load({ contractDir: "common", contractName: "IBasicMetaTransaction" });
+ this.metaTxDef = await this.loader.load({ contractDir: "interfaces", contractName: "IBasicMetaTransaction" });
this.metaTxTokenDef = await this.loader.load({ contractDir: "metaTxToken", contractName: "MetaTxToken" });
}
@@ -204,7 +204,7 @@ class MetatransactionBroadcaster {
}
async isColonyFamilyTransactionAllowed(target, txData, userAddress) {
- const colonyDef = await this.loader.load({ contractDir: "colony", contractName: "IColony" });
+ const colonyDef = await this.loader.load({ contractDir: "interfaces", contractName: "IColony" });
const possibleColony = new ethers.Contract(target, colonyDef.abi, this.wallet);
try {
const tx = possibleColony.interface.parseTransaction({ data: txData });
diff --git a/packages/reputation-miner/ReputationMiner.js b/packages/reputation-miner/ReputationMiner.js
index 208d97690f..eee8c84807 100644
--- a/packages/reputation-miner/ReputationMiner.js
+++ b/packages/reputation-miner/ReputationMiner.js
@@ -74,10 +74,10 @@ class ReputationMiner {
* @return {Promise}
*/
async initialise(colonyNetworkAddress) {
- this.colonyNetworkContractDef = await this.loader.load({ contractDir: "colonyNetwork", contractName: "IColonyNetwork" });
- this.repCycleContractDef = await this.loader.load({ contractDir: "reputationMiningCycle", contractName: "IReputationMiningCycle" });
- this.tokenLockingContractDef = await this.loader.load({ contractDir: "tokenLocking", contractName: "ITokenLocking" });
- this.colonyContractDef = await this.loader.load({ contractDir: "colony", contractName: "IColony" });
+ this.colonyNetworkContractDef = await this.loader.load({ contractDir: "interfaces", contractName: "IColonyNetwork" });
+ this.repCycleContractDef = await this.loader.load({ contractDir: "interfaces", contractName: "IReputationMiningCycle" });
+ this.tokenLockingContractDef = await this.loader.load({ contractDir: "interfaces", contractName: "ITokenLocking" });
+ this.colonyContractDef = await this.loader.load({ contractDir: "interfaces", contractName: "IColony" });
this.colonyNetwork = new ethers.Contract(colonyNetworkAddress, this.colonyNetworkContractDef.abi, this.realWallet);
const tokenLockingAddress = await this.colonyNetwork.getTokenLocking();
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c097f5279d..71c6f9e57f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -41,6 +41,9 @@ importers:
'@nomicfoundation/hardhat-network-helpers':
specifier: ^1.0.12
version: 1.0.12(hardhat@2.22.12)
+ '@nomicfoundation/hardhat-verify':
+ specifier: ^2.0.12
+ version: 2.0.12(hardhat@2.22.12)
'@nomiclabs/hardhat-ethers':
specifier: ^2.2.3
version: 2.2.3(ethers@5.7.2)(hardhat@2.22.12)
@@ -2836,6 +2839,25 @@ packages:
hardhat: 2.22.12(typescript@5.6.2)
dev: true
+ /@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.12):
+ resolution: {integrity: sha512-Lg3Nu7DCXASQRVI/YysjuAX2z8jwOCbS0w5tz2HalWGSTZThqA0v9N0v0psHbKNqzPJa8bNOeapIVSziyJTnAg==}
+ peerDependencies:
+ hardhat: ^2.0.4
+ dependencies:
+ '@ethersproject/abi': 5.7.0
+ '@ethersproject/address': 5.7.0
+ cbor: 8.1.0
+ debug: 4.3.7(supports-color@8.1.1)
+ hardhat: 2.22.12(typescript@5.6.2)
+ lodash.clonedeep: 4.5.0
+ picocolors: 1.1.1
+ semver: 6.3.1
+ table: 6.8.2
+ undici: 5.28.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2:
resolution: {integrity: sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==}
engines: {node: '>= 12'}
@@ -4850,7 +4872,7 @@ packages:
engines: {node: '>= 6.0.0'}
requiresBuild: true
dependencies:
- debug: 4.3.5
+ debug: 4.3.7(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -6594,6 +6616,13 @@ packages:
nofilter: 1.0.4
dev: true
+ /cbor@8.1.0:
+ resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==}
+ engines: {node: '>=12.19'}
+ dependencies:
+ nofilter: 3.1.0
+ dev: true
+
/chai@4.4.1:
resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
engines: {node: '>=4'}
@@ -8028,7 +8057,7 @@ packages:
'@one-ini/wasm': 0.1.1
commander: 10.0.1
minimatch: 9.0.1
- semver: 7.6.2
+ semver: 7.6.3
/ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -12272,7 +12301,7 @@ packages:
resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==}
engines: {node: '>= 8'}
dependencies:
- debug: 4.3.5
+ debug: 4.3.7(supports-color@8.1.1)
http-errors: 1.8.1
resolve-path: 1.4.0
transitivePeerDependencies:
@@ -12641,6 +12670,10 @@ packages:
/lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ /lodash.clonedeep@4.5.0:
+ resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
+ dev: true
+
/lodash.defaults@4.2.0:
resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
@@ -13730,6 +13763,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /nofilter@3.1.0:
+ resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==}
+ engines: {node: '>=12.19'}
+ dev: true
+
/noms@0.0.0:
resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==}
requiresBuild: true
@@ -14420,6 +14458,10 @@ packages:
resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
dev: true
+ /picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+ dev: true
+
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
diff --git a/scripts/check-auth.js b/scripts/check-auth.js
index c7941e63f1..ff43938dec 100755
--- a/scripts/check-auth.js
+++ b/scripts/check-auth.js
@@ -70,22 +70,26 @@ walkSync("./contracts/").forEach((contractName) => {
// Basically only Colony.sol, ColonyFunding.sol, ColonyExpenditure.sol (?)
if (
[
+ "contracts/interfaces/IColony.sol",
+ "contracts/interfaces/IMetaColony.sol",
+ "contracts/interfaces/IColonyNetwork.sol",
+ "contracts/interfaces/IRecovery.sol",
+ "contracts/interfaces/IPatriciaTree.sol",
+ "contracts/interfaces/IPatriciaTreeNoHash.sol",
+ "contracts/interfaces/IReputationMiningCycle.sol",
+ "contracts/interfaces/ITokenLocking.sol",
"contracts/colony/ColonyAuthority.sol",
"contracts/colony/ColonyStorage.sol",
- "contracts/colony/IColony.sol",
- "contracts/colony/IMetaColony.sol",
"contracts/colonyNetwork/ColonyNetwork.sol",
"contracts/colonyNetwork/ColonyNetworkAuction.sol",
"contracts/colonyNetwork/ColonyNetworkAuthority.sol",
"contracts/colonyNetwork/ColonyNetworkENS.sol",
"contracts/colonyNetwork/ColonyNetworkMining.sol",
"contracts/colonyNetwork/ColonyNetworkStorage.sol",
- "contracts/colonyNetwork/IColonyNetwork.sol",
"contracts/common/CommonAuthority.sol",
"contracts/common/ERC20Extended.sol",
"contracts/common/EtherRouter.sol",
"contracts/common/EtherRouterCreate3.sol",
- "contracts/common/IRecovery.sol",
"contracts/common/Resolver.sol",
"contracts/common/TokenAuthority.sol", // Imported from colonyToken repo
"contracts/ens/ENS.sol",
@@ -93,20 +97,16 @@ walkSync("./contracts/").forEach((contractName) => {
"contracts/gnosis/MultiSigWallet.sol",
"contracts/patriciaTree/Bits.sol",
"contracts/patriciaTree/Data.sol",
- "contracts/patriciaTree/IPatriciaTree.sol",
- "contracts/patriciaTree/IPatriciaTreeNoHash.sol",
"contracts/patriciaTree/PatriciaTree.sol",
"contracts/patriciaTree/PatriciaTreeNoHash.sol",
"contracts/patriciaTree/PatriciaTreeBase.sol",
"contracts/patriciaTree/PatriciaTreeProofs.sol",
- "contracts/reputationMiningCycle/IReputationMiningCycle.sol",
"contracts/reputationMiningCycle/ReputationMiningCycle.sol",
"contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol",
"contracts/testHelpers/ContractEditing.sol",
"contracts/testHelpers/TasksPayments.sol",
"contracts/testHelpers/ToggleableToken.sol",
"contracts/testHelpers/ERC20Like.sol",
- "contracts/tokenLocking/ITokenLocking.sol",
"contracts/tokenLocking/TokenLocking.sol",
"contracts/tokenLocking/TokenLockingStorage.sol",
"contracts/Migrations.sol",
diff --git a/scripts/check-recovery.js b/scripts/check-recovery.js
index 6ef94c8ff8..8add535c6e 100755
--- a/scripts/check-recovery.js
+++ b/scripts/check-recovery.js
@@ -25,32 +25,37 @@ walkSync("./contracts/").forEach((contractName) => {
// ColonyNetwork, ColonyNetworkAuction, ColonyNetworkENS, ColonyNetworkMining
if (
[
- "contracts/bridging/IColonyBridge.sol",
+ "contracts/interfaces/IColonyBridge.sol",
+ "contracts/interfaces/IColony.sol",
+ "contracts/interfaces/IMetaColony.sol",
+ "contracts/interfaces/IColonyNetwork.sol",
+ "contracts/interfaces/IBasicMetaTransaction.sol",
+ "contracts/interfaces/IDSAuth.sol",
+ "contracts/interfaces/IEtherRouter.sol",
+ "contracts/interfaces/IMulticall.sol",
+ "contracts/interfaces/IRecovery.sol",
+ "contracts/interfaces/IColonyExtension.sol",
+ "contracts/interfaces/votingReputation/IVotingReputation.sol",
+ "contracts/interfaces/IPatriciaTree.sol",
+ "contracts/interfaces/IPatriciaTreeNoHash.sol",
+ "contracts/interfaces/IReputationMiningCycle.sol",
+ "contracts/interfaces/ITokenLocking.sol",
"contracts/bridging/WormholeBridgeForColony.sol",
"contracts/colony/ColonyAuthority.sol",
"contracts/colony/ColonyStorage.sol",
- "contracts/colony/IColony.sol",
- "contracts/colony/IMetaColony.sol",
"contracts/colonyNetwork/ColonyNetworkAuthority.sol",
"contracts/colonyNetwork/ColonyNetworkStorage.sol",
- "contracts/colonyNetwork/IColonyNetwork.sol",
"contracts/common/BasicMetaTransaction.sol",
- "contracts/common/IBasicMetaTransaction.sol",
"contracts/common/CommonAuthority.sol",
"contracts/common/DomainRoles.sol",
"contracts/common/ERC20Extended.sol",
"contracts/common/EtherRouter.sol",
"contracts/common/EtherRouterCreate3.sol",
- "contracts/common/IDSAuth.sol",
- "contracts/common/IEtherRouter.sol",
- "contracts/common/IMulticall.sol",
- "contracts/common/IRecovery.sol",
"contracts/common/Multicall.sol",
"contracts/common/Resolver.sol",
"contracts/common/TokenAuthority.sol", // Imported from colonyToken repo
"contracts/ens/ENS.sol",
"contracts/ens/ENSRegistry.sol",
- "contracts/extensions/IColonyExtension.sol",
"contracts/extensions/CoinMachine.sol",
"contracts/extensions/ColonyExtension.sol",
"contracts/extensions/ColonyExtensionMeta.sol",
@@ -67,18 +72,14 @@ walkSync("./contracts/").forEach((contractName) => {
"contracts/extensions/votingReputation/VotingReputationStaking.sol",
"contracts/extensions/votingReputation/VotingReputationStorage.sol",
"contracts/extensions/votingReputation/VotingReputationMisalignedRecovery.sol",
- "contracts/extensions/votingReputation/IVotingReputation.sol",
"contracts/extensions/Whitelist.sol",
"contracts/gnosis/MultiSigWallet.sol",
"contracts/patriciaTree/Bits.sol",
"contracts/patriciaTree/Data.sol",
- "contracts/patriciaTree/IPatriciaTree.sol",
- "contracts/patriciaTree/IPatriciaTreeNoHash.sol",
"contracts/patriciaTree/PatriciaTree.sol",
"contracts/patriciaTree/PatriciaTreeNoHash.sol",
"contracts/patriciaTree/PatriciaTreeBase.sol",
"contracts/patriciaTree/PatriciaTreeProofs.sol",
- "contracts/reputationMiningCycle/IReputationMiningCycle.sol",
"contracts/reputationMiningCycle/ReputationMiningCycle.sol",
"contracts/reputationMiningCycle/ReputationMiningCycleBinarySearch.sol",
"contracts/reputationMiningCycle/ReputationMiningCycleCommon.sol",
@@ -104,7 +105,6 @@ walkSync("./contracts/").forEach((contractName) => {
"contracts/testHelpers/VotingReputationMisaligned.sol",
"contracts/testHelpers/WormholeMock.sol",
"contracts/testHelpers/ZodiacBridgeModuleMock.sol",
- "contracts/tokenLocking/ITokenLocking.sol",
"contracts/tokenLocking/TokenLocking.sol",
"contracts/tokenLocking/TokenLockingStorage.sol",
"contracts/Migrations.sol",
diff --git a/scripts/docgen.js b/scripts/docgen.js
index 65dd2814fa..d80b40862f 100755
--- a/scripts/docgen.js
+++ b/scripts/docgen.js
@@ -8,60 +8,52 @@ const ethers = require("ethers");
const INTERFACES = [
{
- contractFile: path.resolve(__dirname, "..", "contracts", "colony", "IColony.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IColony.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "icolony.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "icolony.md"),
- artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "colony", "IColony.sol", "IColony.json"),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IColony.sol", "IColony.json"),
},
{
- contractFile: path.resolve(__dirname, "..", "contracts", "colonyNetwork", "IColonyNetwork.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IColonyNetwork.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "icolonynetwork.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "icolonynetwork.md"),
- artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "colonyNetwork", "IColonyNetwork.sol", "IColonyNetwork.json"),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IColonyNetwork.sol", "IColonyNetwork.json"),
},
{
- contractFile: path.resolve(__dirname, "..", "contracts", "common", "IEtherRouter.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IEtherRouter.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "ietherrouter.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "ietherrouter.md"),
- artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "common", "IEtherRouter.sol", "IEtherRouter.json"),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IEtherRouter.sol", "IEtherRouter.json"),
},
{
- contractFile: path.resolve(__dirname, "..", "contracts", "colony", "IMetaColony.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IMetaColony.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "imetacolony.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "imetacolony.md"),
- artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "colony", "IMetaColony.sol", "IMetaColony.json"),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IMetaColony.sol", "IMetaColony.json"),
},
{
- contractFile: path.resolve(__dirname, "..", "contracts", "common", "IRecovery.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IRecovery.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "irecovery.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "irecovery.md"),
- artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "common", "IRecovery.sol", "IRecovery.json"),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IRecovery.sol", "IRecovery.json"),
},
{
- contractFile: path.resolve(__dirname, "..", "contracts", "reputationMiningCycle", "IReputationMiningCycle.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IReputationMiningCycle.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "ireputationminingcycle.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "ireputationminingcycle.md"),
- artifactFile: path.resolve(
- __dirname,
- "..",
- "artifacts",
- "contracts",
- "reputationMiningCycle",
- "IReputationMiningCycle.sol",
- "IReputationMiningCycle.json",
- ),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IReputationMiningCycle.sol", "IReputationMiningCycle.json"),
},
{
- contractFile: path.resolve(__dirname, "..", "contracts", "tokenLocking", "ITokenLocking.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "ITokenLocking.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "itokenlocking.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "itokenlocking.md"),
- artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "tokenLocking", "ITokenLocking.sol", "ITokenLocking.json"),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "ITokenLocking.sol", "ITokenLocking.json"),
},
{
- contractFile: path.resolve(__dirname, "..", "contracts", "extensions", "IColonyExtension.sol"),
+ contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IColonyExtension.sol"),
templateFile: path.resolve(__dirname, "..", "docs", ".templates", "icolonyextension.md"),
outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "extensions", "icolonyextension.md"),
- artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "extensions", "IColonyExtension.sol", "IColonyExtension.json"),
+ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IColonyExtension.sol", "IColonyExtension.json"),
},
{
contractFile: path.resolve(__dirname, "..", "contracts", "extensions", "CoinMachine.sol"),
@@ -357,7 +349,7 @@ function astToSig(method) {
return `${p.typeName.namePath} ${p.name}`;
}
if (p.typeName.type === "ArrayTypeName") {
- return `${p.typeName.baseTypeName.name}[${p.typeName.length ? p.typeName.length.number : ""}]${
+ return `${p.typeName.baseTypeName.name || p.typeName.baseTypeName.namePath}[${p.typeName.length ? p.typeName.length.number : ""}]${
p.storageLocation ? ` ${p.storageLocation}` : ""
} ${p.name}`;
}
diff --git a/scripts/generate-test-contracts.sh b/scripts/generate-test-contracts.sh
index 3d9b23661c..f884dd69f4 100644
--- a/scripts/generate-test-contracts.sh
+++ b/scripts/generate-test-contracts.sh
@@ -11,10 +11,10 @@ sed -i.bak "s/function stringToSig/function isUpdated() public pure returns(bool
cp ./contracts/colony/Colony.sol ./contracts/colony/UpdatedColony.sol
cp ./contracts/colony/ColonyDataTypes.sol ./contracts/colony/UpdatedColonyDataTypes.sol
cp ./contracts/colony/ColonyStorage.sol ./contracts/colony/UpdatedColonyStorage.sol
-cp ./contracts/colony/IColony.sol ./contracts/colony/IUpdatedColony.sol
+cp ./contracts/interfaces/IColony.sol ./contracts/interfaces/IUpdatedColony.sol
cp ./contracts/colonyNetwork/ColonyNetwork.sol ./contracts/colonyNetwork/UpdatedColonyNetwork.sol
cp ./contracts/reputationMiningCycle/ReputationMiningCycle.sol ./contracts/reputationMiningCycle/UpdatedReputationMiningCycle.sol
-cp ./contracts/reputationMiningCycle/IReputationMiningCycle.sol ./contracts/reputationMiningCycle/IUpdatedReputationMiningCycle.sol
+cp ./contracts/interfaces/IReputationMiningCycle.sol ./contracts/interfaces/IUpdatedReputationMiningCycle.sol
# Modify UpdatedColonyNetwork contract
sed -i.bak "s/contract ColonyNetwork/contract UpdatedColonyNetwork/g" ./contracts/colonyNetwork/UpdatedColonyNetwork.sol
sed -i.bak "s/address resolver;/address resolver;function isUpdated() public pure returns(bool) {return true;}/g" ./contracts/colonyNetwork/UpdatedColonyNetwork.sol
@@ -30,12 +30,12 @@ sed -i.bak "s/mapping (uint8 => mapping (address => uint256)) payouts;/mapping (
sed -i.bak "s/ColonyStorage/UpdatedColonyStorage/g" ./contracts/colony/UpdatedColonyStorage.sol
sed -i.bak "s/ColonyDataTypes/UpdatedColonyDataTypes/g" ./contracts/colony/UpdatedColonyStorage.sol
# Modify IUpdatedColony contract
-sed -i.bak "s/interface IColony/interface IUpdatedColony/g" ./contracts/colony/IUpdatedColony.sol
-sed -i.bak "s/ColonyDataTypes/UpdatedColonyDataTypes/g" ./contracts/colony/IUpdatedColony.sol
-sed -i.bak "s/interface IUpdatedColony is\(.*\){/interface IUpdatedColony is\1{function isUpdated() external pure returns(bool);/g" ./contracts/colony/IUpdatedColony.sol
+sed -i.bak "s/interface IColony/interface IUpdatedColony/g" ./contracts/interfaces/IUpdatedColony.sol
+sed -i.bak "s/ColonyDataTypes/UpdatedColonyDataTypes/g" ./contracts/interfaces/IUpdatedColony.sol
+sed -i.bak "s/interface IUpdatedColony is\(.*\){/interface IUpdatedColony is\1{function isUpdated() external pure returns(bool);/g" ./contracts/interfaces/IUpdatedColony.sol
# Modify UpdatedReputationMiningCycle contract
sed -i.bak "s/contract ReputationMiningCycle/contract UpdatedReputationMiningCycle/g" ./contracts/reputationMiningCycle/UpdatedReputationMiningCycle.sol
sed -i.bak "s| is ReputationMiningCycleCommon {| is ReputationMiningCycleCommon {\nfunction isUpdated() public pure returns(bool) {return true;}|g" ./contracts/reputationMiningCycle/UpdatedReputationMiningCycle.sol
# Modify IReputationMiningCycle contract
-sed -i.bak "s/interface IReputationMiningCycle/interface IUpdatedReputationMiningCycle/g" ./contracts/reputationMiningCycle/IUpdatedReputationMiningCycle.sol
-sed -i.bak "s/function resetWindow() public;/function resetWindow() public; function isUpdated() public pure returns(bool);/g" ./contracts/reputationMiningCycle/IUpdatedReputationMiningCycle.sol
\ No newline at end of file
+sed -i.bak "s/interface IReputationMiningCycle/interface IUpdatedReputationMiningCycle/g" ./contracts/interfaces/IUpdatedReputationMiningCycle.sol
+sed -i.bak "s/function resetWindow() public;/function resetWindow() public; function isUpdated() public pure returns(bool);/g" ./contracts/interfaces/IUpdatedReputationMiningCycle.sol