From f753f7466b2a60cc8f1023f7adc3009c448d39bb Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Tue, 3 Dec 2024 19:26:49 -0500 Subject: [PATCH 1/7] Add @nomicfoundation/hardhat-verify --- hardhat.config.js | 19 +++++++++++++++++++ package.json | 1 + pnpm-lock.yaml | 48 ++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 65 insertions(+), 3 deletions(-) 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/package.json b/package.json index 30cae759aa..be472d0ebc 100644 --- a/package.json +++ b/package.json @@ -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/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'} From 35b5734674e67fd661540e6edb492e8b2c216220 Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Fri, 24 Jan 2025 16:11:15 -0500 Subject: [PATCH 2/7] Introduce common/CommonDataTypes.sol --- contracts/colony/ColonyAuthority.sol | 12 ++++----- contracts/colony/ColonyDataTypes.sol | 7 +++--- contracts/common/CommonAuthority.sol | 4 +-- contracts/common/CommonDataTypes.sol | 25 +++++++++++++++++++ contracts/common/ContractRecovery.sol | 4 +-- contracts/common/GetActionSummary.sol | 10 ++++---- contracts/extensions/CoinMachine.sol | 4 +-- contracts/extensions/FundingQueue.sol | 4 +-- contracts/extensions/MultisigPermissions.sol | 9 ++++--- contracts/extensions/OneTxPayment.sol | 8 +++--- .../extensions/ReputationBootstrapper.sol | 4 +-- contracts/extensions/StagedExpenditure.sol | 3 ++- contracts/extensions/StakedExpenditure.sol | 7 +++--- contracts/extensions/StreamingPayments.sol | 6 ++--- contracts/extensions/TokenSupplier.sol | 8 +++--- contracts/extensions/Whitelist.sol | 7 +++--- .../VotingReputationStorage.sol | 5 ++-- .../VotingReputationMisaligned.sol | 10 ++++---- 18 files changed, 83 insertions(+), 54 deletions(-) create mode 100644 contracts/common/CommonDataTypes.sol diff --git a/contracts/colony/ColonyAuthority.sol b/contracts/colony/ColonyAuthority.sol index 0af8c8b6a8..c8f392a4c3 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 "./../common/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/ColonyDataTypes.sol b/contracts/colony/ColonyDataTypes.sol index 1b2215d25c..76c3413e48 100755 --- a/contracts/colony/ColonyDataTypes.sol +++ b/contracts/colony/ColonyDataTypes.sol @@ -18,8 +18,10 @@ pragma solidity 0.8.27; +import { CommonDataTypes } from "../common/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/common/CommonAuthority.sol b/contracts/common/CommonAuthority.sol index 335386d911..ea9cac5af9 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 "./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/CommonDataTypes.sol b/contracts/common/CommonDataTypes.sol new file mode 100644 index 0000000000..49cce80836 --- /dev/null +++ b/contracts/common/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/ContractRecovery.sol b/contracts/common/ContractRecovery.sol index d07e6b251e..fba3793f57 100644 --- a/contracts/common/ContractRecovery.sol +++ b/contracts/common/ContractRecovery.sol @@ -18,7 +18,7 @@ pragma solidity 0.8.27; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; +import { CommonDataTypes } from "./CommonDataTypes.sol"; import { ContractRecoveryDataTypes } from "./ContractRecoveryDataTypes.sol"; import { CommonAuthority } from "./CommonAuthority.sol"; import { CommonStorage } from "./CommonStorage.sol"; @@ -28,7 +28,7 @@ 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/GetActionSummary.sol b/contracts/common/GetActionSummary.sol index 5db9e8eb9d..8f6230c7aa 100644 --- a/contracts/common/GetActionSummary.sol +++ b/contracts/common/GetActionSummary.sol @@ -18,7 +18,7 @@ import { IColony } from "./../colony/IColony.sol"; import { ExtractCallData } from "./ExtractCallData.sol"; import { GetActionDomainSkillId } from "./GetActionDomainSkillId.sol"; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; +import { CommonDataTypes } from "./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/extensions/CoinMachine.sol b/contracts/extensions/CoinMachine.sol index c5081d5ffb..47484e0b4e 100644 --- a/contracts/extensions/CoinMachine.sol +++ b/contracts/extensions/CoinMachine.sol @@ -23,7 +23,7 @@ import { ERC20 } from "./../../lib/dappsys/erc20.sol"; import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; import { Whitelist } from "./Whitelist.sol"; -import { ColonyDataTypes } from "./../colony/IColony.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; // ignore-file-swc-108 @@ -85,7 +85,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/FundingQueue.sol b/contracts/extensions/FundingQueue.sol index c010aeddf1..bf144c2836 100644 --- a/contracts/extensions/FundingQueue.sol +++ b/contracts/extensions/FundingQueue.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol"; import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ITokenLocking } from "./../tokenLocking/ITokenLocking.sol"; @@ -335,7 +335,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..0cbe3d43de 100644 --- a/contracts/extensions/MultisigPermissions.sol +++ b/contracts/extensions/MultisigPermissions.sol @@ -18,12 +18,13 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { ColonyDataTypes, IColony } from "./../colony/IColony.sol"; +import { IColony, ColonyDataTypes } from "./../colony/IColony.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 { GetActionSummary, ActionSummary } from "./../common/GetActionSummary.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; import { Bytes4Includes } from "./../common/Bytes4Includes.sol"; // ignore-file-swc-108 @@ -139,7 +140,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 +370,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..504f96e65c 100644 --- a/contracts/extensions/OneTxPayment.sol +++ b/contracts/extensions/OneTxPayment.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { ColonyDataTypes } from "../colony/IColony.sol"; +import { CommonDataTypes } from "../common/CommonDataTypes.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; @@ -28,9 +28,9 @@ import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMe 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..7acd7a0e38 100644 --- a/contracts/extensions/ReputationBootstrapper.sol +++ b/contracts/extensions/ReputationBootstrapper.sol @@ -23,7 +23,7 @@ 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 { CommonDataTypes } from "./../common/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..8fda530626 100644 --- a/contracts/extensions/StagedExpenditure.sol +++ b/contracts/extensions/StagedExpenditure.sol @@ -20,6 +20,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { IColony, ColonyDataTypes } from "./../colony/IColony.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; // ignore-file-swc-108 @@ -118,7 +119,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..f97a4dd1bf 100644 --- a/contracts/extensions/StakedExpenditure.sol +++ b/contracts/extensions/StakedExpenditure.sol @@ -19,7 +19,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { ColonyDataTypes } from "./../colony/IColony.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; @@ -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..feea115f80 100644 --- a/contracts/extensions/StreamingPayments.sol +++ b/contracts/extensions/StreamingPayments.sol @@ -20,7 +20,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; -import { ColonyDataTypes } from "./../colony/IColony.sol"; +import { CommonDataTypes } from "./../common/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..d299c7f014 100644 --- a/contracts/extensions/TokenSupplier.sol +++ b/contracts/extensions/TokenSupplier.sol @@ -22,8 +22,8 @@ pragma experimental ABIEncoderV2; import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ERC20Extended } from "./../common/ERC20Extended.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; -import { IColony, ColonyDataTypes } from "./../colony/IColony.sol"; - +import { IColony } from "./../colony/IColony.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; contract TokenSupplier is ColonyExtension, BasicMetaTransaction { uint256 constant ISSUANCE_PERIOD = 1 days; @@ -188,10 +188,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..377cbf4ad7 100644 --- a/contracts/extensions/Whitelist.sol +++ b/contracts/extensions/Whitelist.sol @@ -21,7 +21,8 @@ pragma experimental ABIEncoderV2; import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; -import { IColony, ColonyDataTypes } from "./../colony/IColony.sol"; +import { IColony } from "./../colony/IColony.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol"; // ignore-file-swc-108 @@ -82,7 +83,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 +101,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/VotingReputationStorage.sol b/contracts/extensions/votingReputation/VotingReputationStorage.sol index 99a66d88fd..b96227aa56 100644 --- a/contracts/extensions/votingReputation/VotingReputationStorage.sol +++ b/contracts/extensions/votingReputation/VotingReputationStorage.sol @@ -20,7 +20,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { IColonyNetwork } from "./../../colonyNetwork/IColonyNetwork.sol"; -import { IColony, ColonyDataTypes } from "./../../colony/IColony.sol"; +import { IColony } from "./../../colony/IColony.sol"; +import { CommonDataTypes } from "./../../common/CommonDataTypes.sol"; import { IBasicMetaTransaction, BasicMetaTransaction } from "./../../common/BasicMetaTransaction.sol"; import { ActionSummary, GetActionSummary } from "./../../common/GetActionSummary.sol"; import { ITokenLocking } from "./../../tokenLocking/ITokenLocking.sol"; @@ -111,7 +112,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/testHelpers/VotingReputationMisaligned.sol b/contracts/testHelpers/VotingReputationMisaligned.sol index 0fecbe44ae..9e20afe10a 100644 --- a/contracts/testHelpers/VotingReputationMisaligned.sol +++ b/contracts/testHelpers/VotingReputationMisaligned.sol @@ -25,8 +25,8 @@ import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMe 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 { IColony } from "./../colony/IColony.sol"; +import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; contract VotingReputationMisaligned is ColonyExtension, BasicMetaTransaction { // Events event MotionCreated(uint256 indexed motionId, address creator, uint256 indexed domainId); @@ -64,8 +64,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 +126,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" ); _; From 307a0ef25d7c4cb462cc20d2c8853e0925e01654 Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Tue, 28 Jan 2025 15:43:21 -0500 Subject: [PATCH 3/7] Introduce /interfaces directory --- .../bridging/WormholeBridgeForColony.sol | 3 +- contracts/colony/Colony.sol | 6 +-- .../colony/ColonyArbitraryTransaction.sol | 6 +-- contracts/colony/ColonyDomains.sol | 2 +- contracts/colony/ColonyFunding.sol | 4 +- contracts/colony/ColonyRewards.sol | 4 +- contracts/colony/ColonyStorage.sol | 2 +- contracts/colony/IColony.sol.flattened | 1 + contracts/colonyNetwork/ColonyNetwork.sol | 2 +- .../colonyNetwork/ColonyNetworkAuction.sol | 2 +- .../colonyNetwork/ColonyNetworkDeployer.sol | 4 +- .../colonyNetwork/ColonyNetworkExtensions.sol | 2 +- .../colonyNetwork/ColonyNetworkMining.sol | 10 ++-- .../colonyNetwork/ColonyNetworkSkills.sol | 8 +-- .../colonyNetwork/ColonyNetworkStorage.sol | 2 +- contracts/common/BasicMetaTransaction.sol | 2 +- contracts/common/ContractRecovery.sol | 2 +- contracts/common/GetActionDomainSkillId.sol | 4 +- contracts/common/GetActionSummary.sol | 2 +- contracts/extensions/CoinMachine.sol | 3 +- contracts/extensions/ColonyExtension.sol | 8 +-- contracts/extensions/ColonyExtensionMeta.sol | 3 +- contracts/extensions/EvaluatedExpenditure.sol | 3 +- contracts/extensions/FundingQueue.sol | 7 +-- contracts/extensions/MultisigPermissions.sol | 5 +- contracts/extensions/OneTxPayment.sol | 3 +- .../extensions/ReputationBootstrapper.sol | 4 +- contracts/extensions/StagedExpenditure.sol | 3 +- contracts/extensions/StakedExpenditure.sol | 2 +- contracts/extensions/TokenSupplier.sol | 5 +- contracts/extensions/Whitelist.sol | 7 +-- .../IVotingReputation.sol.flattened | 1 + .../votingReputation/VotingReputation.sol | 3 +- .../VotingReputationMisalignedRecovery.sol | 6 +-- .../VotingReputationStorage.sol | 9 ++-- .../IBasicMetaTransaction.sol | 0 contracts/{colony => interfaces}/IColony.sol | 10 ++-- .../IColonyBridge.sol | 0 .../IColonyExtension.sol | 2 +- .../IColonyNetwork.sol | 9 ++-- contracts/{common => interfaces}/IDSAuth.sol | 0 .../{common => interfaces}/IEtherRouter.sol | 0 .../{colony => interfaces}/IMetaColony.sol | 0 .../{common => interfaces}/IMulticall.sol | 0 .../IPatriciaTree.sol | 1 - .../IPatriciaTreeBase.sol | 2 +- .../IPatriciaTreeNoHash.sol | 1 - .../{common => interfaces}/IRecovery.sol | 2 +- .../IReputationMiningCycle.sol | 2 +- .../ITokenLocking.sol | 4 +- .../IVotingReputation.sol | 6 +-- contracts/metaTxToken/DSAuthMeta.sol | 2 +- contracts/patriciaTree/PatriciaTree.sol | 4 +- contracts/patriciaTree/PatriciaTreeNoHash.sol | 4 +- .../ReputationMiningCycle.sol | 4 +- .../ReputationMiningCycleBinarySearch.sol | 4 +- .../ReputationMiningCycleCommon.sol | 4 +- .../ReputationMiningCycleRespond.sol | 4 +- .../FunctionsNotAvailableOnColony.sol | 2 +- contracts/testHelpers/GasGuzzler.sol | 2 +- contracts/testHelpers/NoLimitSubdomains.sol | 2 +- .../VotingReputationMisaligned.sol | 9 ++-- contracts/tokenLocking/TokenLocking.sol | 6 +-- helpers/upgradable-contracts.js | 3 +- package.json | 2 +- .../MetatransactionBroadcaster.js | 6 +-- packages/reputation-miner/ReputationMiner.js | 8 +-- scripts/check-auth.js | 16 +++--- scripts/check-recovery.js | 30 +++++------ scripts/docgen.js | 53 +++++++------------ scripts/generate-test-contracts.sh | 14 ++--- 71 files changed, 176 insertions(+), 182 deletions(-) create mode 100644 contracts/colony/IColony.sol.flattened create mode 100644 contracts/extensions/votingReputation/IVotingReputation.sol.flattened rename contracts/{common => interfaces}/IBasicMetaTransaction.sol (100%) rename contracts/{colony => interfaces}/IColony.sol (99%) rename contracts/{bridging => interfaces}/IColonyBridge.sol (100%) rename contracts/{extensions => interfaces}/IColonyExtension.sol (97%) rename contracts/{colonyNetwork => interfaces}/IColonyNetwork.sol (99%) rename contracts/{common => interfaces}/IDSAuth.sol (100%) rename contracts/{common => interfaces}/IEtherRouter.sol (100%) rename contracts/{colony => interfaces}/IMetaColony.sol (100%) rename contracts/{common => interfaces}/IMulticall.sol (100%) rename contracts/{patriciaTree => interfaces}/IPatriciaTree.sol (96%) rename contracts/{patriciaTree => interfaces}/IPatriciaTreeBase.sol (93%) rename contracts/{patriciaTree => interfaces}/IPatriciaTreeNoHash.sol (96%) rename contracts/{common => interfaces}/IRecovery.sol (97%) rename contracts/{reputationMiningCycle => interfaces}/IReputationMiningCycle.sol (99%) rename contracts/{tokenLocking => interfaces}/ITokenLocking.sol (98%) rename contracts/{extensions/votingReputation => interfaces}/IVotingReputation.sol (98%) 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..7ed329180a 100755 --- a/contracts/colony/Colony.sol +++ b/contracts/colony/Colony.sol @@ -21,10 +21,10 @@ 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"; diff --git a/contracts/colony/ColonyArbitraryTransaction.sol b/contracts/colony/ColonyArbitraryTransaction.sol index 91d7943d47..b2b5b91ed1 100644 --- a/contracts/colony/ColonyArbitraryTransaction.sol +++ b/contracts/colony/ColonyArbitraryTransaction.sol @@ -20,11 +20,11 @@ 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 { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyExtension } from "./../extensions/ColonyExtension.sol"; contract ColonyArbitraryTransaction is ColonyStorage { 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/ColonyStorage.sol b/contracts/colony/ColonyStorage.sol index 850d8c653e..6452c53704 100755 --- a/contracts/colony/ColonyStorage.sol +++ b/contracts/colony/ColonyStorage.sol @@ -23,7 +23,7 @@ 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 { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyNetworkDataTypes } from "./../colonyNetwork/ColonyNetworkDataTypes.sol"; import { ColonyExtension } from "./../extensions/ColonyExtension.sol"; import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol"; 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..58ccb3f136 100644 --- a/contracts/colonyNetwork/ColonyNetworkExtensions.sol +++ b/contracts/colonyNetwork/ColonyNetworkExtensions.sol @@ -20,7 +20,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { ColonyDataTypes } from "../colony/ColonyDataTypes.sol"; -import { IColonyNetwork } from "../colonyNetwork/IColonyNetwork.sol"; +import { IColonyNetwork } from "../interfaces/IColonyNetwork.sol"; import { ColonyExtension } from "../extensions/ColonyExtension.sol"; import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol"; import { MetaTxToken } from "./../metaTxToken/MetaTxToken.sol"; diff --git a/contracts/colonyNetwork/ColonyNetworkMining.sol b/contracts/colonyNetwork/ColonyNetworkMining.sol index 47e18ced1c..b591db30bf 100644 --- a/contracts/colonyNetwork/ColonyNetworkMining.sol +++ b/contracts/colonyNetwork/ColonyNetworkMining.sol @@ -22,12 +22,12 @@ 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 { IMetaColony } from "./../interfaces/IMetaColony.sol"; +import { IColonyBridge } from "./../interfaces/IColonyBridge.sol"; +import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; contract ColonyNetworkMining is ColonyNetworkStorage { 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..32d2a53310 100644 --- a/contracts/colonyNetwork/ColonyNetworkStorage.sol +++ b/contracts/colonyNetwork/ColonyNetworkStorage.sol @@ -19,7 +19,7 @@ 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"; 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/common/ContractRecovery.sol b/contracts/common/ContractRecovery.sol index fba3793f57..bc49f97ab3 100644 --- a/contracts/common/ContractRecovery.sol +++ b/contracts/common/ContractRecovery.sol @@ -22,7 +22,7 @@ import { CommonDataTypes } from "./CommonDataTypes.sol"; import { ContractRecoveryDataTypes } from "./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, 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 8f6230c7aa..2c479e0ca6 100644 --- a/contracts/common/GetActionSummary.sol +++ b/contracts/common/GetActionSummary.sol @@ -15,7 +15,7 @@ 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 { CommonDataTypes } from "./CommonDataTypes.sol"; diff --git a/contracts/extensions/CoinMachine.sol b/contracts/extensions/CoinMachine.sol index 47484e0b4e..26e48d43c6 100644 --- a/contracts/extensions/CoinMachine.sol +++ b/contracts/extensions/CoinMachine.sol @@ -20,7 +20,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { ERC20 } from "./../../lib/dappsys/erc20.sol"; -import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; +import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; +import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; import { Whitelist } from "./Whitelist.sol"; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; diff --git a/contracts/extensions/ColonyExtension.sol b/contracts/extensions/ColonyExtension.sol index 35ada837f3..0aa5e848fb 100644 --- a/contracts/extensions/ColonyExtension.sol +++ b/contracts/extensions/ColonyExtension.sol @@ -23,15 +23,15 @@ 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 { IColony } from "./../interfaces/IColony.sol"; import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; -import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.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 { 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/extensions/ColonyExtensionMeta.sol index 903d0461c1..2014471832 100644 --- a/contracts/extensions/ColonyExtensionMeta.sol +++ b/contracts/extensions/ColonyExtensionMeta.sol @@ -19,7 +19,8 @@ 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 { ColonyExtension } from "./ColonyExtension.sol"; abstract contract ColonyExtensionMeta is BasicMetaTransaction, ColonyExtension { diff --git a/contracts/extensions/EvaluatedExpenditure.sol b/contracts/extensions/EvaluatedExpenditure.sol index 033b249be6..eb52207bfe 100644 --- a/contracts/extensions/EvaluatedExpenditure.sol +++ b/contracts/extensions/EvaluatedExpenditure.sol @@ -20,7 +20,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { ColonyExtension } from "./ColonyExtension.sol"; -import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.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 bf144c2836..9d5524740c 100644 --- a/contracts/extensions/FundingQueue.sol +++ b/contracts/extensions/FundingQueue.sol @@ -20,9 +20,10 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; -import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol"; -import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; -import { ITokenLocking } from "./../tokenLocking/ITokenLocking.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 "./ColonyExtension.sol"; contract FundingQueue is ColonyExtension, BasicMetaTransaction { diff --git a/contracts/extensions/MultisigPermissions.sol b/contracts/extensions/MultisigPermissions.sol index 0cbe3d43de..0f82f73132 100644 --- a/contracts/extensions/MultisigPermissions.sol +++ b/contracts/extensions/MultisigPermissions.sol @@ -18,9 +18,10 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { IColony, ColonyDataTypes } from "./../colony/IColony.sol"; +import { IColony } from "./../interfaces/IColony.sol"; +import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; import { ColonyRoles } from "./../colony/ColonyRoles.sol"; -import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol"; +import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyNetworkDataTypes } from "./../colonyNetwork/ColonyNetworkDataTypes.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; import { GetActionSummary, ActionSummary } from "./../common/GetActionSummary.sol"; diff --git a/contracts/extensions/OneTxPayment.sol b/contracts/extensions/OneTxPayment.sol index 504f96e65c..8db395304d 100644 --- a/contracts/extensions/OneTxPayment.sol +++ b/contracts/extensions/OneTxPayment.sol @@ -21,7 +21,8 @@ pragma experimental ABIEncoderV2; import { CommonDataTypes } from "../common/CommonDataTypes.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; -import { IBasicMetaTransaction, BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; +import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; +import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/ReputationBootstrapper.sol b/contracts/extensions/ReputationBootstrapper.sol index 7acd7a0e38..3cf29e6e1a 100644 --- a/contracts/extensions/ReputationBootstrapper.sol +++ b/contracts/extensions/ReputationBootstrapper.sol @@ -20,8 +20,8 @@ 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 { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol"; +import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; diff --git a/contracts/extensions/StagedExpenditure.sol b/contracts/extensions/StagedExpenditure.sol index 8fda530626..116de48d28 100644 --- a/contracts/extensions/StagedExpenditure.sol +++ b/contracts/extensions/StagedExpenditure.sol @@ -19,7 +19,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { IColony, ColonyDataTypes } from "./../colony/IColony.sol"; +import { IColony } from "./../interfaces/IColony.sol"; +import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; diff --git a/contracts/extensions/StakedExpenditure.sol b/contracts/extensions/StakedExpenditure.sol index f97a4dd1bf..657c2eeafc 100644 --- a/contracts/extensions/StakedExpenditure.sol +++ b/contracts/extensions/StakedExpenditure.sol @@ -21,7 +21,7 @@ pragma experimental ABIEncoderV2; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; -import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol"; +import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/TokenSupplier.sol b/contracts/extensions/TokenSupplier.sol index d299c7f014..e2f86c8347 100644 --- a/contracts/extensions/TokenSupplier.sol +++ b/contracts/extensions/TokenSupplier.sol @@ -19,10 +19,11 @@ 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 } from "./../colony/IColony.sol"; +import { IColony } from "./../interfaces/IColony.sol"; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; contract TokenSupplier is ColonyExtension, BasicMetaTransaction { uint256 constant ISSUANCE_PERIOD = 1 days; diff --git a/contracts/extensions/Whitelist.sol b/contracts/extensions/Whitelist.sol index 377cbf4ad7..05ce6ae60a 100644 --- a/contracts/extensions/Whitelist.sol +++ b/contracts/extensions/Whitelist.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 { ColonyExtension } from "./ColonyExtension.sol"; -import { IColony } from "./../colony/IColony.sol"; +import { IColony } from "./../interfaces/IColony.sol"; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; -import { IColonyNetwork } from "./../colonyNetwork/IColonyNetwork.sol"; +import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/votingReputation/IVotingReputation.sol.flattened b/contracts/extensions/votingReputation/IVotingReputation.sol.flattened new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/contracts/extensions/votingReputation/IVotingReputation.sol.flattened @@ -0,0 +1 @@ + diff --git a/contracts/extensions/votingReputation/VotingReputation.sol b/contracts/extensions/votingReputation/VotingReputation.sol index c1487ac230..4188835789 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 "./../../colony/ColonyDataTypes.sol"; import { ActionSummary } from "./../../common/GetActionSummary.sol"; contract VotingReputation is VotingReputationStorage { 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 b96227aa56..21e611a73c 100644 --- a/contracts/extensions/votingReputation/VotingReputationStorage.sol +++ b/contracts/extensions/votingReputation/VotingReputationStorage.sol @@ -19,12 +19,13 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { IColonyNetwork } from "./../../colonyNetwork/IColonyNetwork.sol"; -import { IColony } from "./../../colony/IColony.sol"; +import { IColonyNetwork } from "./../../interfaces/IColonyNetwork.sol"; +import { IColony } from "./../../interfaces/IColony.sol"; import { CommonDataTypes } from "./../../common/CommonDataTypes.sol"; -import { IBasicMetaTransaction, BasicMetaTransaction } from "./../../common/BasicMetaTransaction.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 { ITokenLocking } from "./../../interfaces/ITokenLocking.sol"; import { ColonyExtension } from "./../ColonyExtension.sol"; import { VotingReputationDataTypes } from "./VotingReputationDataTypes.sol"; 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..7b4ccb181b 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 "./../colony/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..3e4b14fc38 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 "./../colonyNetwork/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 93% rename from contracts/patriciaTree/IPatriciaTreeBase.sol rename to contracts/interfaces/IPatriciaTreeBase.sol index c457855b77..9401dd40a2 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 "./../patriciaTree/Data.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 97% rename from contracts/common/IRecovery.sol rename to contracts/interfaces/IRecovery.sol index 876ae5ed81..553e00c95c 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 "./../common/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..48330beb2f 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 "./../reputationMiningCycle/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..1138d473aa 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 "./../tokenLocking/TokenLockingDataTypes.sol"; +import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol"; interface ITokenLocking is TokenLockingDataTypes, IBasicMetaTransaction { /// @notice Set the ColonyNetwork contract address. diff --git a/contracts/extensions/votingReputation/IVotingReputation.sol b/contracts/interfaces/IVotingReputation.sol similarity index 98% rename from contracts/extensions/votingReputation/IVotingReputation.sol rename to contracts/interfaces/IVotingReputation.sol index 6bc0e18755..febb7fd557 100644 --- a/contracts/extensions/votingReputation/IVotingReputation.sol +++ b/contracts/interfaces/IVotingReputation.sol @@ -19,9 +19,9 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { IColonyExtension } from "./../IColonyExtension.sol"; -import { VotingReputationDataTypes } from "./VotingReputationDataTypes.sol"; -import { ActionSummary } from "./../../common/GetActionSummary.sol"; +import { IColonyExtension } from "./IColonyExtension.sol"; +import { VotingReputationDataTypes } from "./../extensions/votingReputation/VotingReputationDataTypes.sol"; +import { ActionSummary } from "./../common/GetActionSummary.sol"; interface IVotingReputation is IColonyExtension, VotingReputationDataTypes { /// @notice Initialise the extension 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..ccc568aad2 100644 --- a/contracts/patriciaTree/PatriciaTree.sol +++ b/contracts/patriciaTree/PatriciaTree.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; pragma experimental "ABIEncoderV2"; import { PatriciaTreeBase } from "./PatriciaTreeBase.sol"; -import { IPatriciaTreeBase } from "./IPatriciaTreeBase.sol"; -import { IPatriciaTree } from "./IPatriciaTree.sol"; +import { IPatriciaTreeBase } from "./../interfaces/IPatriciaTreeBase.sol"; +import { IPatriciaTree } from "./../interfaces/IPatriciaTree.sol"; import { Data } from "./Data.sol"; import { Bits } from "./Bits.sol"; diff --git a/contracts/patriciaTree/PatriciaTreeNoHash.sol b/contracts/patriciaTree/PatriciaTreeNoHash.sol index b0cea9b47b..9ea53841e6 100644 --- a/contracts/patriciaTree/PatriciaTreeNoHash.sol +++ b/contracts/patriciaTree/PatriciaTreeNoHash.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; pragma experimental "ABIEncoderV2"; import { PatriciaTreeBase } from "./PatriciaTreeBase.sol"; -import { IPatriciaTreeBase } from "./IPatriciaTreeBase.sol"; -import { IPatriciaTreeNoHash } from "./IPatriciaTreeNoHash.sol"; +import { IPatriciaTreeBase } from "./../interfaces/IPatriciaTreeBase.sol"; +import { IPatriciaTreeNoHash } from "./../interfaces/IPatriciaTreeNoHash.sol"; import { Data } from "./Data.sol"; import { Bits } from "./Bits.sol"; 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..4f866e68f7 100644 --- a/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol +++ b/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol @@ -19,9 +19,9 @@ 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 { ITokenLocking } from "./../interfaces/ITokenLocking.sol"; import { Bits } from "./../patriciaTree/Bits.sol"; import { ReputationMiningCycleCommon } from "./ReputationMiningCycleCommon.sol"; 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..ce4acc24e7 100644 --- a/contracts/testHelpers/GasGuzzler.sol +++ b/contracts/testHelpers/GasGuzzler.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; import { ColonyExtensionMeta } from "./../extensions/ColonyExtensionMeta.sol"; -import { IColony } from "../colony/IColony.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 9e20afe10a..50231e3195 100644 --- a/contracts/testHelpers/VotingReputationMisaligned.sol +++ b/contracts/testHelpers/VotingReputationMisaligned.sol @@ -19,13 +19,14 @@ 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 { ITokenLocking } from "./../interfaces/ITokenLocking.sol"; import { ColonyExtension } from "./../extensions/ColonyExtension.sol"; -import { IColony } from "./../colony/IColony.sol"; +import { IColony } from "./../interfaces/IColony.sol"; import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; contract VotingReputationMisaligned is ColonyExtension, BasicMetaTransaction { // Events 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/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 be472d0ebc..c20872a34b 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "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*.*", 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/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..e94262f650 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"), @@ -106,19 +98,10 @@ const INTERFACES = [ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "extensions", "TokenSupplier.sol", "TokenSupplier.json"), }, { - contractFile: path.resolve(__dirname, "..", "contracts", "extensions", "votingReputation", "IVotingReputation.sol"), + contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IVotingReputation.sol"), templateFile: path.resolve(__dirname, "..", "docs", ".templates", "votingreputation.md"), outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "extensions", "votingreputation.md"), - artifactFile: path.resolve( - __dirname, - "..", - "artifacts", - "contracts", - "extensions", - "votingReputation", - "IVotingReputation.sol", - "IVotingReputation.json", - ), + artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IVotingReputation.sol", "IVotingReputation.json"), }, { contractFile: path.resolve(__dirname, "..", "contracts", "extensions", "Whitelist.sol"), 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 From 8aa6cd6f5e5eb7e61569a2ed6b8516ac98bff4b5 Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Thu, 30 Jan 2025 15:41:16 -0500 Subject: [PATCH 4/7] Update clean:contracts --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c20872a34b..dd2975ad6c 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "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", From 3ec85b06910be8daa77844b92168a094cb66a246 Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Fri, 31 Jan 2025 11:25:07 -0500 Subject: [PATCH 5/7] Add contracts/dataTypes --- contracts/colony/Colony.sol | 1 - contracts/colony/ColonyArbitraryTransaction.sol | 4 ++-- contracts/colony/ColonyAuthority.sol | 2 +- contracts/colony/ColonyRoles.sol | 2 +- contracts/colony/ColonyStorage.sol | 4 ++-- contracts/colonyNetwork/ColonyNetworkExtensions.sol | 2 +- contracts/colonyNetwork/ColonyNetworkMining.sol | 2 +- contracts/colonyNetwork/ColonyNetworkStorage.sol | 2 +- contracts/common/CommonAuthority.sol | 2 +- contracts/common/ContractRecovery.sol | 4 ++-- contracts/common/GetActionSummary.sol | 2 +- contracts/{colony => dataTypes}/ColonyDataTypes.sol | 2 +- .../{colonyNetwork => dataTypes}/ColonyNetworkDataTypes.sol | 0 contracts/{common => dataTypes}/CommonDataTypes.sol | 0 .../{common => dataTypes}/ContractRecoveryDataTypes.sol | 0 .../Bits.sol => dataTypes/PatriciaTreeBits.sol} | 0 .../Data.sol => dataTypes/PatriciaTreeData.sol} | 2 +- .../ReputationMiningCycleDataTypes.sol | 0 .../{tokenLocking => dataTypes}/TokenLockingDataTypes.sol | 0 contracts/extensions/CoinMachine.sol | 2 +- contracts/extensions/ColonyExtension.sol | 2 +- contracts/extensions/FundingQueue.sol | 2 +- contracts/extensions/MultisigPermissions.sol | 6 +++--- contracts/extensions/OneTxPayment.sol | 2 +- contracts/extensions/ReputationBootstrapper.sol | 2 +- contracts/extensions/StagedExpenditure.sol | 4 ++-- contracts/extensions/StakedExpenditure.sol | 4 ++-- contracts/extensions/StreamingPayments.sol | 2 +- contracts/extensions/TokenSupplier.sol | 2 +- contracts/extensions/Whitelist.sol | 2 +- contracts/extensions/votingReputation/VotingReputation.sol | 2 +- .../votingReputation/VotingReputationDataTypes.sol | 2 +- .../extensions/votingReputation/VotingReputationStorage.sol | 2 +- contracts/interfaces/IColony.sol | 2 +- contracts/interfaces/IColonyNetwork.sol | 2 +- contracts/interfaces/IPatriciaTreeBase.sol | 2 +- contracts/interfaces/IRecovery.sol | 2 +- contracts/interfaces/IReputationMiningCycle.sol | 2 +- contracts/interfaces/ITokenLocking.sol | 2 +- contracts/patriciaTree/PatriciaTree.sol | 4 ++-- contracts/patriciaTree/PatriciaTreeBase.sol | 4 ++-- contracts/patriciaTree/PatriciaTreeNoHash.sol | 4 ++-- contracts/patriciaTree/PatriciaTreeProofs.sol | 4 ++-- .../reputationMiningCycle/ReputationMiningCycleRespond.sol | 2 +- .../reputationMiningCycle/ReputationMiningCycleStorage.sol | 2 +- contracts/testHelpers/VotingReputationMisaligned.sol | 2 +- contracts/tokenLocking/TokenLockingStorage.sol | 2 +- 47 files changed, 51 insertions(+), 52 deletions(-) rename contracts/{colony => dataTypes}/ColonyDataTypes.sol (99%) rename contracts/{colonyNetwork => dataTypes}/ColonyNetworkDataTypes.sol (100%) rename contracts/{common => dataTypes}/CommonDataTypes.sol (100%) rename contracts/{common => dataTypes}/ContractRecoveryDataTypes.sol (100%) rename contracts/{patriciaTree/Bits.sol => dataTypes/PatriciaTreeBits.sol} (100%) rename contracts/{patriciaTree/Data.sol => dataTypes/PatriciaTreeData.sol} (99%) rename contracts/{reputationMiningCycle => dataTypes}/ReputationMiningCycleDataTypes.sol (100%) rename contracts/{tokenLocking => dataTypes}/TokenLockingDataTypes.sol (100%) diff --git a/contracts/colony/Colony.sol b/contracts/colony/Colony.sol index 7ed329180a..ef80f05f37 100755 --- a/contracts/colony/Colony.sol +++ b/contracts/colony/Colony.sol @@ -28,7 +28,6 @@ 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 b2b5b91ed1..0a2e239430 100644 --- a/contracts/colony/ColonyArbitraryTransaction.sol +++ b/contracts/colony/ColonyArbitraryTransaction.sol @@ -25,7 +25,7 @@ import { MultiChain } from "./../common/MultiChain.sol"; import { ITokenLocking } from "./../interfaces/ITokenLocking.sol"; import { ColonyStorage } from "./ColonyStorage.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; -import { ColonyExtension } from "./../extensions/ColonyExtension.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 c8f392a4c3..8a74e32cc1 100644 --- a/contracts/colony/ColonyAuthority.sol +++ b/contracts/colony/ColonyAuthority.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; import { CommonAuthority } from "./../common/CommonAuthority.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; // prettier-ignore contract ColonyAuthority is CommonAuthority { 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 6452c53704..0021edca05 100755 --- a/contracts/colony/ColonyStorage.sol +++ b/contracts/colony/ColonyStorage.sol @@ -24,11 +24,11 @@ import { CommonStorage } from "./../common/CommonStorage.sol"; import { ERC20Extended } from "./../common/ERC20Extended.sol"; import { DomainRoles } from "./../common/DomainRoles.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; -import { ColonyNetworkDataTypes } from "./../colonyNetwork/ColonyNetworkDataTypes.sol"; +import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol"; import { ColonyExtension } from "./../extensions/ColonyExtension.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 diff --git a/contracts/colonyNetwork/ColonyNetworkExtensions.sol b/contracts/colonyNetwork/ColonyNetworkExtensions.sol index 58ccb3f136..0a8ceabff6 100644 --- a/contracts/colonyNetwork/ColonyNetworkExtensions.sol +++ b/contracts/colonyNetwork/ColonyNetworkExtensions.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { ColonyDataTypes } from "../colony/ColonyDataTypes.sol"; +import { ColonyDataTypes } from "../dataTypes/ColonyDataTypes.sol"; import { IColonyNetwork } from "../interfaces/IColonyNetwork.sol"; import { ColonyExtension } from "../extensions/ColonyExtension.sol"; import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol"; diff --git a/contracts/colonyNetwork/ColonyNetworkMining.sol b/contracts/colonyNetwork/ColonyNetworkMining.sol index b591db30bf..8fbd35e4cd 100644 --- a/contracts/colonyNetwork/ColonyNetworkMining.sol +++ b/contracts/colonyNetwork/ColonyNetworkMining.sol @@ -28,7 +28,7 @@ import { ColonyNetworkStorage } from "./ColonyNetworkStorage.sol"; import { IMetaColony } from "./../interfaces/IMetaColony.sol"; import { IColonyBridge } from "./../interfaces/IColonyBridge.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.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/ColonyNetworkStorage.sol b/contracts/colonyNetwork/ColonyNetworkStorage.sol index 32d2a53310..e05a9cec69 100644 --- a/contracts/colonyNetwork/ColonyNetworkStorage.sol +++ b/contracts/colonyNetwork/ColonyNetworkStorage.sol @@ -23,7 +23,7 @@ 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/CommonAuthority.sol b/contracts/common/CommonAuthority.sol index ea9cac5af9..c28820af17 100644 --- a/contracts/common/CommonAuthority.sol +++ b/contracts/common/CommonAuthority.sol @@ -18,7 +18,7 @@ pragma solidity 0.8.27; -import { CommonDataTypes } from "./CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; import { DomainRoles } from "./DomainRoles.sol"; contract CommonAuthority is DomainRoles { diff --git a/contracts/common/ContractRecovery.sol b/contracts/common/ContractRecovery.sol index bc49f97ab3..d1c627077c 100644 --- a/contracts/common/ContractRecovery.sol +++ b/contracts/common/ContractRecovery.sol @@ -18,8 +18,8 @@ pragma solidity 0.8.27; -import { CommonDataTypes } from "./CommonDataTypes.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 "./../interfaces/IRecovery.sol"; diff --git a/contracts/common/GetActionSummary.sol b/contracts/common/GetActionSummary.sol index 2c479e0ca6..59bdcf0ecb 100644 --- a/contracts/common/GetActionSummary.sol +++ b/contracts/common/GetActionSummary.sol @@ -18,7 +18,7 @@ import { IColony } from "./../interfaces/IColony.sol"; import { ExtractCallData } from "./ExtractCallData.sol"; import { GetActionDomainSkillId } from "./GetActionDomainSkillId.sol"; -import { CommonDataTypes } from "./CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; import { ColonyRoles } from "./../colony/ColonyRoles.sol"; import { Bytes4Includes } from "./Bytes4Includes.sol"; diff --git a/contracts/colony/ColonyDataTypes.sol b/contracts/dataTypes/ColonyDataTypes.sol similarity index 99% rename from contracts/colony/ColonyDataTypes.sol rename to contracts/dataTypes/ColonyDataTypes.sol index 76c3413e48..6efe3e6b2b 100755 --- a/contracts/colony/ColonyDataTypes.sol +++ b/contracts/dataTypes/ColonyDataTypes.sol @@ -18,7 +18,7 @@ pragma solidity 0.8.27; -import { CommonDataTypes } from "../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./CommonDataTypes.sol"; // prettier-ignore interface ColonyDataTypes is CommonDataTypes { 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/common/CommonDataTypes.sol b/contracts/dataTypes/CommonDataTypes.sol similarity index 100% rename from contracts/common/CommonDataTypes.sol rename to contracts/dataTypes/CommonDataTypes.sol 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 26e48d43c6..769930f9c1 100644 --- a/contracts/extensions/CoinMachine.sol +++ b/contracts/extensions/CoinMachine.sol @@ -24,7 +24,7 @@ import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; import { Whitelist } from "./Whitelist.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/ColonyExtension.sol b/contracts/extensions/ColonyExtension.sol index 0aa5e848fb..daccb15a28 100644 --- a/contracts/extensions/ColonyExtension.sol +++ b/contracts/extensions/ColonyExtension.sol @@ -24,7 +24,7 @@ import { DSAuth } from "./../../lib/dappsys/auth.sol"; import { EtherRouter } from "./../common/EtherRouter.sol"; import { Multicall } from "./../common/Multicall.sol"; import { IColony } from "./../interfaces/IColony.sol"; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.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"; diff --git a/contracts/extensions/FundingQueue.sol b/contracts/extensions/FundingQueue.sol index 9d5524740c..7ba053fece 100644 --- a/contracts/extensions/FundingQueue.sol +++ b/contracts/extensions/FundingQueue.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { CommonDataTypes } from "./../common/CommonDataTypes.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"; diff --git a/contracts/extensions/MultisigPermissions.sol b/contracts/extensions/MultisigPermissions.sol index 0f82f73132..e483ce64da 100644 --- a/contracts/extensions/MultisigPermissions.sol +++ b/contracts/extensions/MultisigPermissions.sol @@ -19,13 +19,13 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { IColony } from "./../interfaces/IColony.sol"; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; +import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; import { ColonyRoles } from "./../colony/ColonyRoles.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; -import { ColonyNetworkDataTypes } from "./../colonyNetwork/ColonyNetworkDataTypes.sol"; +import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; import { GetActionSummary, ActionSummary } from "./../common/GetActionSummary.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; import { Bytes4Includes } from "./../common/Bytes4Includes.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/OneTxPayment.sol b/contracts/extensions/OneTxPayment.sol index 8db395304d..f782b6bc03 100644 --- a/contracts/extensions/OneTxPayment.sol +++ b/contracts/extensions/OneTxPayment.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { CommonDataTypes } from "../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; diff --git a/contracts/extensions/ReputationBootstrapper.sol b/contracts/extensions/ReputationBootstrapper.sol index 3cf29e6e1a..4757b72e0c 100644 --- a/contracts/extensions/ReputationBootstrapper.sol +++ b/contracts/extensions/ReputationBootstrapper.sol @@ -23,7 +23,7 @@ import { ERC20 } from "./../../lib/dappsys/erc20.sol"; import { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/StagedExpenditure.sol b/contracts/extensions/StagedExpenditure.sol index 116de48d28..50f30ecd05 100644 --- a/contracts/extensions/StagedExpenditure.sol +++ b/contracts/extensions/StagedExpenditure.sol @@ -20,8 +20,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { IColony } from "./../interfaces/IColony.sol"; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/StakedExpenditure.sol b/contracts/extensions/StakedExpenditure.sol index 657c2eeafc..73c4b48baa 100644 --- a/contracts/extensions/StakedExpenditure.sol +++ b/contracts/extensions/StakedExpenditure.sol @@ -19,8 +19,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; +import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; diff --git a/contracts/extensions/StreamingPayments.sol b/contracts/extensions/StreamingPayments.sol index feea115f80..f7bd87c319 100644 --- a/contracts/extensions/StreamingPayments.sol +++ b/contracts/extensions/StreamingPayments.sol @@ -20,7 +20,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/TokenSupplier.sol b/contracts/extensions/TokenSupplier.sol index e2f86c8347..b049ea5a53 100644 --- a/contracts/extensions/TokenSupplier.sol +++ b/contracts/extensions/TokenSupplier.sol @@ -24,7 +24,7 @@ import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ERC20Extended } from "./../common/ERC20Extended.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; import { IColony } from "./../interfaces/IColony.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; contract TokenSupplier is ColonyExtension, BasicMetaTransaction { uint256 constant ISSUANCE_PERIOD = 1 days; diff --git a/contracts/extensions/Whitelist.sol b/contracts/extensions/Whitelist.sol index 05ce6ae60a..98041ebce3 100644 --- a/contracts/extensions/Whitelist.sol +++ b/contracts/extensions/Whitelist.sol @@ -23,7 +23,7 @@ import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ColonyExtension } from "./ColonyExtension.sol"; import { IColony } from "./../interfaces/IColony.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/votingReputation/VotingReputation.sol b/contracts/extensions/votingReputation/VotingReputation.sol index 4188835789..827d5b6587 100644 --- a/contracts/extensions/votingReputation/VotingReputation.sol +++ b/contracts/extensions/votingReputation/VotingReputation.sol @@ -21,7 +21,7 @@ pragma experimental ABIEncoderV2; import { VotingReputationStorage } from "./VotingReputationStorage.sol"; import { IColony } from "./../../interfaces/IColony.sol"; -import { ColonyDataTypes } from "./../../colony/ColonyDataTypes.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/VotingReputationStorage.sol b/contracts/extensions/votingReputation/VotingReputationStorage.sol index 21e611a73c..a563251b6c 100644 --- a/contracts/extensions/votingReputation/VotingReputationStorage.sol +++ b/contracts/extensions/votingReputation/VotingReputationStorage.sol @@ -21,7 +21,7 @@ pragma experimental ABIEncoderV2; import { IColonyNetwork } from "./../../interfaces/IColonyNetwork.sol"; import { IColony } from "./../../interfaces/IColony.sol"; -import { CommonDataTypes } from "./../../common/CommonDataTypes.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"; diff --git a/contracts/interfaces/IColony.sol b/contracts/interfaces/IColony.sol index 7b4ccb181b..c911121576 100644 --- a/contracts/interfaces/IColony.sol +++ b/contracts/interfaces/IColony.sol @@ -22,7 +22,7 @@ pragma experimental ABIEncoderV2; import { IRecovery } from "./IRecovery.sol"; import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol"; import { IMulticall } from "./IMulticall.sol"; -import { ColonyDataTypes } from "./../colony/ColonyDataTypes.sol"; +import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; import { IDSAuth } from "./IDSAuth.sol"; interface IColony is IDSAuth, ColonyDataTypes, IRecovery, IBasicMetaTransaction, IMulticall { diff --git a/contracts/interfaces/IColonyNetwork.sol b/contracts/interfaces/IColonyNetwork.sol index 3e4b14fc38..4f78ce6127 100644 --- a/contracts/interfaces/IColonyNetwork.sol +++ b/contracts/interfaces/IColonyNetwork.sol @@ -22,7 +22,7 @@ pragma experimental "ABIEncoderV2"; import { IRecovery } from "./IRecovery.sol"; import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol"; import { IMulticall } from "./IMulticall.sol"; -import { ColonyNetworkDataTypes } from "./../colonyNetwork/ColonyNetworkDataTypes.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/interfaces/IPatriciaTreeBase.sol b/contracts/interfaces/IPatriciaTreeBase.sol index 9401dd40a2..fcd67d3696 100644 --- a/contracts/interfaces/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 "./../patriciaTree/Data.sol"; +import { Data } from "./../dataTypes/PatriciaTreeData.sol"; interface IPatriciaTreeBase { /// @notice Get the root hash diff --git a/contracts/interfaces/IRecovery.sol b/contracts/interfaces/IRecovery.sol index 553e00c95c..cf6d88d52e 100644 --- a/contracts/interfaces/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 "./../common/ContractRecoveryDataTypes.sol"; +import { ContractRecoveryDataTypes } from "./../dataTypes/ContractRecoveryDataTypes.sol"; interface IRecovery is ContractRecoveryDataTypes { /// @notice Put colony network mining into recovery mode. diff --git a/contracts/interfaces/IReputationMiningCycle.sol b/contracts/interfaces/IReputationMiningCycle.sol index 48330beb2f..47f98901e3 100644 --- a/contracts/interfaces/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 "./../reputationMiningCycle/ReputationMiningCycleDataTypes.sol"; +import { ReputationMiningCycleDataTypes } from "./../dataTypes/ReputationMiningCycleDataTypes.sol"; interface IReputationMiningCycle is ReputationMiningCycleDataTypes { /// @notice The getter for the disputeRounds mapping. diff --git a/contracts/interfaces/ITokenLocking.sol b/contracts/interfaces/ITokenLocking.sol index 1138d473aa..3d35d7083d 100644 --- a/contracts/interfaces/ITokenLocking.sol +++ b/contracts/interfaces/ITokenLocking.sol @@ -19,7 +19,7 @@ pragma solidity >=0.8.27; // ignore-swc-103 pragma experimental "ABIEncoderV2"; -import { TokenLockingDataTypes } from "./../tokenLocking/TokenLockingDataTypes.sol"; +import { TokenLockingDataTypes } from "./../dataTypes/TokenLockingDataTypes.sol"; import { IBasicMetaTransaction } from "./IBasicMetaTransaction.sol"; interface ITokenLocking is TokenLockingDataTypes, IBasicMetaTransaction { diff --git a/contracts/patriciaTree/PatriciaTree.sol b/contracts/patriciaTree/PatriciaTree.sol index ccc568aad2..5589f16bbe 100644 --- a/contracts/patriciaTree/PatriciaTree.sol +++ b/contracts/patriciaTree/PatriciaTree.sol @@ -5,8 +5,8 @@ pragma experimental "ABIEncoderV2"; import { PatriciaTreeBase } from "./PatriciaTreeBase.sol"; import { IPatriciaTreeBase } from "./../interfaces/IPatriciaTreeBase.sol"; import { IPatriciaTree } from "./../interfaces/IPatriciaTree.sol"; -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 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 9ea53841e6..8d822dfd37 100644 --- a/contracts/patriciaTree/PatriciaTreeNoHash.sol +++ b/contracts/patriciaTree/PatriciaTreeNoHash.sol @@ -5,8 +5,8 @@ pragma experimental "ABIEncoderV2"; import { PatriciaTreeBase } from "./PatriciaTreeBase.sol"; import { IPatriciaTreeBase } from "./../interfaces/IPatriciaTreeBase.sol"; import { IPatriciaTreeNoHash } from "./../interfaces/IPatriciaTreeNoHash.sol"; -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 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/ReputationMiningCycleRespond.sol b/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol index 4f866e68f7..55160ccb0e 100644 --- a/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol +++ b/contracts/reputationMiningCycle/ReputationMiningCycleRespond.sol @@ -22,7 +22,7 @@ pragma experimental "ABIEncoderV2"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol"; import { ITokenLocking } from "./../interfaces/ITokenLocking.sol"; -import { Bits } from "./../patriciaTree/Bits.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/VotingReputationMisaligned.sol b/contracts/testHelpers/VotingReputationMisaligned.sol index 50231e3195..2faf36d369 100644 --- a/contracts/testHelpers/VotingReputationMisaligned.sol +++ b/contracts/testHelpers/VotingReputationMisaligned.sol @@ -27,7 +27,7 @@ import { ERC20Extended } from "./../common/ERC20Extended.sol"; import { ITokenLocking } from "./../interfaces/ITokenLocking.sol"; import { ColonyExtension } from "./../extensions/ColonyExtension.sol"; import { IColony } from "./../interfaces/IColony.sol"; -import { CommonDataTypes } from "./../common/CommonDataTypes.sol"; +import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; contract VotingReputationMisaligned is ColonyExtension, BasicMetaTransaction { // Events event MotionCreated(uint256 indexed motionId, address creator, uint256 indexed domainId); 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 From ea66ec8721b3ead4ed030eb8122de074943e9384 Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Mon, 3 Feb 2025 12:14:40 -0500 Subject: [PATCH 6/7] Additional reorganization --- contracts/colony/ColonyStorage.sol | 8 ++++---- .../colonyNetwork/ColonyNetworkExtensions.sol | 18 +++++++++--------- .../votingReputation}/IVotingReputation.sol | 6 +++--- .../IVotingReputation.sol.flattened | 0 scripts/docgen.js | 15 ++++++++++++--- 5 files changed, 28 insertions(+), 19 deletions(-) rename contracts/{interfaces => extensions/votingReputation}/IVotingReputation.sol (98%) rename contracts/{extensions/votingReputation => interfaces}/IVotingReputation.sol.flattened (100%) diff --git a/contracts/colony/ColonyStorage.sol b/contracts/colony/ColonyStorage.sol index 0021edca05..d63b6e6424 100755 --- a/contracts/colony/ColonyStorage.sol +++ b/contracts/colony/ColonyStorage.sol @@ -25,7 +25,7 @@ import { ERC20Extended } from "./../common/ERC20Extended.sol"; import { DomainRoles } from "./../common/DomainRoles.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol"; -import { ColonyExtension } from "./../extensions/ColonyExtension.sol"; +import { IColonyExtension } from "./../interfaces/IColonyExtension.sol"; import { PatriciaTreeProofs } from "./../patriciaTree/PatriciaTreeProofs.sol"; import { ColonyAuthority } from "./ColonyAuthority.sol"; import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; @@ -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/colonyNetwork/ColonyNetworkExtensions.sol b/contracts/colonyNetwork/ColonyNetworkExtensions.sol index 0a8ceabff6..0e16fdf97c 100644 --- a/contracts/colonyNetwork/ColonyNetworkExtensions.sol +++ b/contracts/colonyNetwork/ColonyNetworkExtensions.sol @@ -21,7 +21,7 @@ pragma experimental ABIEncoderV2; import { ColonyDataTypes } from "../dataTypes/ColonyDataTypes.sol"; import { IColonyNetwork } from "../interfaces/IColonyNetwork.sol"; -import { ColonyExtension } from "../extensions/ColonyExtension.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/interfaces/IVotingReputation.sol b/contracts/extensions/votingReputation/IVotingReputation.sol similarity index 98% rename from contracts/interfaces/IVotingReputation.sol rename to contracts/extensions/votingReputation/IVotingReputation.sol index febb7fd557..596e1b9aca 100644 --- a/contracts/interfaces/IVotingReputation.sol +++ b/contracts/extensions/votingReputation/IVotingReputation.sol @@ -19,9 +19,9 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { IColonyExtension } from "./IColonyExtension.sol"; -import { VotingReputationDataTypes } from "./../extensions/votingReputation/VotingReputationDataTypes.sol"; -import { ActionSummary } from "./../common/GetActionSummary.sol"; +import { IColonyExtension } from "../../interfaces/IColonyExtension.sol"; +import { VotingReputationDataTypes } from "./VotingReputationDataTypes.sol"; +import { ActionSummary } from "./../../common/GetActionSummary.sol"; interface IVotingReputation is IColonyExtension, VotingReputationDataTypes { /// @notice Initialise the extension diff --git a/contracts/extensions/votingReputation/IVotingReputation.sol.flattened b/contracts/interfaces/IVotingReputation.sol.flattened similarity index 100% rename from contracts/extensions/votingReputation/IVotingReputation.sol.flattened rename to contracts/interfaces/IVotingReputation.sol.flattened diff --git a/scripts/docgen.js b/scripts/docgen.js index e94262f650..d80b40862f 100755 --- a/scripts/docgen.js +++ b/scripts/docgen.js @@ -98,10 +98,19 @@ const INTERFACES = [ artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "extensions", "TokenSupplier.sol", "TokenSupplier.json"), }, { - contractFile: path.resolve(__dirname, "..", "contracts", "interfaces", "IVotingReputation.sol"), + contractFile: path.resolve(__dirname, "..", "contracts", "extensions", "votingReputation", "IVotingReputation.sol"), templateFile: path.resolve(__dirname, "..", "docs", ".templates", "votingreputation.md"), outputFile: path.resolve(__dirname, "..", "docs", "interfaces", "extensions", "votingreputation.md"), - artifactFile: path.resolve(__dirname, "..", "artifacts", "contracts", "interfaces", "IVotingReputation.sol", "IVotingReputation.json"), + artifactFile: path.resolve( + __dirname, + "..", + "artifacts", + "contracts", + "extensions", + "votingReputation", + "IVotingReputation.sol", + "IVotingReputation.json", + ), }, { contractFile: path.resolve(__dirname, "..", "contracts", "extensions", "Whitelist.sol"), @@ -340,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}`; } From 593ba8dcc0899389fc0bb1d50b560c502b134ccc Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Mon, 3 Feb 2025 12:22:59 -0500 Subject: [PATCH 7/7] Move ColonyExtension*.sol to common/ --- contracts/{extensions => common}/ColonyExtension.sol | 6 +++--- contracts/{extensions => common}/ColonyExtensionMeta.sol | 4 ++-- contracts/extensions/CoinMachine.sol | 2 +- contracts/extensions/EvaluatedExpenditure.sol | 2 +- contracts/extensions/FundingQueue.sol | 2 +- contracts/extensions/MultisigPermissions.sol | 2 +- contracts/extensions/OneTxPayment.sol | 2 +- contracts/extensions/ReputationBootstrapper.sol | 2 +- contracts/extensions/StagedExpenditure.sol | 2 +- contracts/extensions/StakedExpenditure.sol | 2 +- contracts/extensions/StreamingPayments.sol | 2 +- contracts/extensions/TokenSupplier.sol | 2 +- contracts/extensions/Whitelist.sol | 2 +- .../extensions/votingReputation/VotingReputationStorage.sol | 2 +- contracts/testHelpers/GasGuzzler.sol | 2 +- contracts/testHelpers/VotingReputationMisaligned.sol | 2 +- contracts/testHelpers/testExtensions/TestExtension0.sol | 2 +- contracts/testHelpers/testExtensions/TestExtension1.sol | 2 +- contracts/testHelpers/testExtensions/TestExtension2.sol | 2 +- contracts/testHelpers/testExtensions/TestExtension3.sol | 2 +- contracts/testHelpers/testExtensions/TestVotingToken.sol | 2 +- 21 files changed, 24 insertions(+), 24 deletions(-) rename contracts/{extensions => common}/ColonyExtension.sol (95%) rename contracts/{extensions => common}/ColonyExtensionMeta.sol (94%) diff --git a/contracts/extensions/ColonyExtension.sol b/contracts/common/ColonyExtension.sol similarity index 95% rename from contracts/extensions/ColonyExtension.sol rename to contracts/common/ColonyExtension.sol index daccb15a28..975258229b 100644 --- a/contracts/extensions/ColonyExtension.sol +++ b/contracts/common/ColonyExtension.sol @@ -21,13 +21,13 @@ 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 { 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 { MultiChain } from "./MultiChain.sol"; import { IColonyExtension } from "./../interfaces/IColonyExtension.sol"; // This is a 'dummy' import to ensure that functions implemented from DSAuth get commented diff --git a/contracts/extensions/ColonyExtensionMeta.sol b/contracts/common/ColonyExtensionMeta.sol similarity index 94% rename from contracts/extensions/ColonyExtensionMeta.sol rename to contracts/common/ColonyExtensionMeta.sol index 2014471832..ea0357125a 100644 --- a/contracts/extensions/ColonyExtensionMeta.sol +++ b/contracts/common/ColonyExtensionMeta.sol @@ -20,8 +20,8 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; -import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; -import { ColonyExtension } from "./ColonyExtension.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/extensions/CoinMachine.sol b/contracts/extensions/CoinMachine.sol index 769930f9c1..430439f495 100644 --- a/contracts/extensions/CoinMachine.sol +++ b/contracts/extensions/CoinMachine.sol @@ -22,7 +22,7 @@ pragma experimental ABIEncoderV2; import { ERC20 } from "./../../lib/dappsys/erc20.sol"; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; -import { ColonyExtension } from "./ColonyExtension.sol"; +import { ColonyExtension } from "./../common/ColonyExtension.sol"; import { Whitelist } from "./Whitelist.sol"; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; diff --git a/contracts/extensions/EvaluatedExpenditure.sol b/contracts/extensions/EvaluatedExpenditure.sol index eb52207bfe..7892d2728b 100644 --- a/contracts/extensions/EvaluatedExpenditure.sol +++ b/contracts/extensions/EvaluatedExpenditure.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { ColonyExtension } from "./ColonyExtension.sol"; +import { ColonyExtension } from "./../common/ColonyExtension.sol"; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; diff --git a/contracts/extensions/FundingQueue.sol b/contracts/extensions/FundingQueue.sol index 7ba053fece..aa629a6958 100644 --- a/contracts/extensions/FundingQueue.sol +++ b/contracts/extensions/FundingQueue.sol @@ -24,7 +24,7 @@ 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 "./ColonyExtension.sol"; +import { ColonyExtension } from "./../common/ColonyExtension.sol"; contract FundingQueue is ColonyExtension, BasicMetaTransaction { // Events diff --git a/contracts/extensions/MultisigPermissions.sol b/contracts/extensions/MultisigPermissions.sol index e483ce64da..4cee097dfe 100644 --- a/contracts/extensions/MultisigPermissions.sol +++ b/contracts/extensions/MultisigPermissions.sol @@ -23,7 +23,7 @@ import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; import { ColonyRoles } from "./../colony/ColonyRoles.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; import { ColonyNetworkDataTypes } from "./../dataTypes/ColonyNetworkDataTypes.sol"; -import { ColonyExtensionMeta } from "./ColonyExtensionMeta.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"; diff --git a/contracts/extensions/OneTxPayment.sol b/contracts/extensions/OneTxPayment.sol index f782b6bc03..c0fd00d1b3 100644 --- a/contracts/extensions/OneTxPayment.sol +++ b/contracts/extensions/OneTxPayment.sol @@ -20,7 +20,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; -import { ColonyExtension } from "./ColonyExtension.sol"; +import { ColonyExtension } from "./../common/ColonyExtension.sol"; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; diff --git a/contracts/extensions/ReputationBootstrapper.sol b/contracts/extensions/ReputationBootstrapper.sol index 4757b72e0c..2b7baf9160 100644 --- a/contracts/extensions/ReputationBootstrapper.sol +++ b/contracts/extensions/ReputationBootstrapper.sol @@ -22,7 +22,7 @@ pragma experimental ABIEncoderV2; import { ERC20 } from "./../../lib/dappsys/erc20.sol"; import { IReputationMiningCycle } from "./../interfaces/IReputationMiningCycle.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; -import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; +import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol"; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/StagedExpenditure.sol b/contracts/extensions/StagedExpenditure.sol index 50f30ecd05..62ffe0223f 100644 --- a/contracts/extensions/StagedExpenditure.sol +++ b/contracts/extensions/StagedExpenditure.sol @@ -22,7 +22,7 @@ pragma experimental ABIEncoderV2; import { IColony } from "./../interfaces/IColony.sol"; import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; -import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; +import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/StakedExpenditure.sol b/contracts/extensions/StakedExpenditure.sol index 73c4b48baa..eecaaedf61 100644 --- a/contracts/extensions/StakedExpenditure.sol +++ b/contracts/extensions/StakedExpenditure.sol @@ -22,7 +22,7 @@ pragma experimental ABIEncoderV2; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; import { ColonyDataTypes } from "./../dataTypes/ColonyDataTypes.sol"; import { IColonyNetwork } from "./../interfaces/IColonyNetwork.sol"; -import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; +import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/StreamingPayments.sol b/contracts/extensions/StreamingPayments.sol index f7bd87c319..e916d56c86 100644 --- a/contracts/extensions/StreamingPayments.sol +++ b/contracts/extensions/StreamingPayments.sol @@ -19,7 +19,7 @@ pragma solidity 0.8.27; pragma experimental ABIEncoderV2; -import { ColonyExtensionMeta } from "./ColonyExtensionMeta.sol"; +import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol"; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; // ignore-file-swc-108 diff --git a/contracts/extensions/TokenSupplier.sol b/contracts/extensions/TokenSupplier.sol index b049ea5a53..f71669a92b 100644 --- a/contracts/extensions/TokenSupplier.sol +++ b/contracts/extensions/TokenSupplier.sol @@ -22,7 +22,7 @@ pragma experimental ABIEncoderV2; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { ERC20Extended } from "./../common/ERC20Extended.sol"; -import { ColonyExtension } from "./ColonyExtension.sol"; +import { ColonyExtension } from "./../common/ColonyExtension.sol"; import { IColony } from "./../interfaces/IColony.sol"; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; contract TokenSupplier is ColonyExtension, BasicMetaTransaction { diff --git a/contracts/extensions/Whitelist.sol b/contracts/extensions/Whitelist.sol index 98041ebce3..ce9a5aea27 100644 --- a/contracts/extensions/Whitelist.sol +++ b/contracts/extensions/Whitelist.sol @@ -21,7 +21,7 @@ pragma experimental ABIEncoderV2; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; -import { ColonyExtension } from "./ColonyExtension.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"; diff --git a/contracts/extensions/votingReputation/VotingReputationStorage.sol b/contracts/extensions/votingReputation/VotingReputationStorage.sol index a563251b6c..a9822f4cf5 100644 --- a/contracts/extensions/votingReputation/VotingReputationStorage.sol +++ b/contracts/extensions/votingReputation/VotingReputationStorage.sol @@ -26,7 +26,7 @@ import { IBasicMetaTransaction } from "./../../interfaces/IBasicMetaTransaction. import { BasicMetaTransaction } from "./../../common/BasicMetaTransaction.sol"; import { ActionSummary, GetActionSummary } from "./../../common/GetActionSummary.sol"; import { ITokenLocking } from "./../../interfaces/ITokenLocking.sol"; -import { ColonyExtension } from "./../ColonyExtension.sol"; +import { ColonyExtension } from "./../../common/ColonyExtension.sol"; import { VotingReputationDataTypes } from "./VotingReputationDataTypes.sol"; contract VotingReputationStorage is diff --git a/contracts/testHelpers/GasGuzzler.sol b/contracts/testHelpers/GasGuzzler.sol index ce4acc24e7..23bfd82bec 100644 --- a/contracts/testHelpers/GasGuzzler.sol +++ b/contracts/testHelpers/GasGuzzler.sol @@ -18,7 +18,7 @@ pragma solidity 0.8.27; -import { ColonyExtensionMeta } from "./../extensions/ColonyExtensionMeta.sol"; +import { ColonyExtensionMeta } from "./../common/ColonyExtensionMeta.sol"; import { IColony } from "../interfaces/IColony.sol"; contract GasGuzzler is ColonyExtensionMeta { diff --git a/contracts/testHelpers/VotingReputationMisaligned.sol b/contracts/testHelpers/VotingReputationMisaligned.sol index 2faf36d369..ac43694ac5 100644 --- a/contracts/testHelpers/VotingReputationMisaligned.sol +++ b/contracts/testHelpers/VotingReputationMisaligned.sol @@ -25,7 +25,7 @@ import { BasicMetaTransaction } from "./../common/BasicMetaTransaction.sol"; import { IBasicMetaTransaction } from "./../interfaces/IBasicMetaTransaction.sol"; import { ERC20Extended } from "./../common/ERC20Extended.sol"; import { ITokenLocking } from "./../interfaces/ITokenLocking.sol"; -import { ColonyExtension } from "./../extensions/ColonyExtension.sol"; +import { ColonyExtension } from "./../common/ColonyExtension.sol"; import { IColony } from "./../interfaces/IColony.sol"; import { CommonDataTypes } from "./../dataTypes/CommonDataTypes.sol"; contract VotingReputationMisaligned is ColonyExtension, BasicMetaTransaction { 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) {