Colony Network smart contracts
The existing xDai deployment of the Network has been upgraded to this version. The latest Colony contract version will be 8. When upgrading your Colony, call colony.upgrade(8)
.
The xDai ColonyNetwork remains at:
xdai: 0x78163f593D1Fa151B4B7cacD146586aD2b686294
The mainnet address for the Network contract remain unchanged:
mainnet: 0x5346D0f80e2816FaD329F2c140c870ffc3c3E2Ef
This continues to remain at v4 for now.
The existing xDai deployment of the Network will be upgraded to this version later today. The latest Colony contract version will be 7. When upgrading your Colony, call colony.upgrade(7)
.
The xDai ColonyNetwork remains at:
0x78163f593D1Fa151B4B7cacD146586aD2b686294
The mainnet address for the Network contract remain unchanged:
mainnet: 0x5346D0f80e2816FaD329F2c140c870ffc3c3E2Ef
This continues to remain at v4 for now.
OneTxPayment
) redeployed to include a new getCapabilityRoles()
function, which is required for motions targeting extensions to work (#964)GetStakerReward
is now functional even if no-one staked on a side (#947).moveFundsBetweenPots
now has a permission consistent with all other functions, allowing permissions to be checked correctly when called by a motion in a domain (#956).The existing xDai deployment of the Network is upgraded to this version. Latest Colony contract version is 6. If you have used setUserRoles
to award someone recovery permissions, rather than setRecoveryRole
, then remove recovery role permissions from those users using the same function, upgrade, and return those permissions. When upgrading your Colony, call colony.upgrade(6)
.
The xDai ColonyNetwork remains at:
0x78163f593D1Fa151B4B7cacD146586aD2b686294
The mainnet address for the Network contract remain unchanged:
mainnet: 0x5346D0f80e2816FaD329F2c140c870ffc3c3E2Ef
This continues to remain at v4 for now until network costs become more reasonable.
This is primarily a maintenance release.
setUserRoles
function. (#927)setUserRoles
function correctly. (#927)The existing xDai deployment of the Network is upgraded to this version. Latest Colony contract version is 5. When upgrading your Colony, call colony.upgrade(5)
.
The xDai ColonyNetwork contract can be found at:
0x78163f593D1Fa151B4B7cacD146586aD2b686294
The mainnet address for the Network contract remain unchanged:
mainnet: 0x5346D0f80e2816FaD329F2c140c870ffc3c3E2Ef
This remains at the previous version for now until network costs become more reasonable.
Note that not all of the features below are surface in the frontend, they are only available in the contracts for now. They will be added to the frontend in due course.
0.7.3
(#870, #879) along with introducing tests to alert us if the storage layout of our upgradable contracts changed there or in the future during a solidity update (#866).OneTxPayment
extension more efficient when multiple addresses receive tokens, or a single address receives multiple tokens (#836, #847)tokenLockingAddress
in a colony's storage instead of looking it up every time from ColonyNetwork
to save gas (#874)value
must be zerotransfer
, transferFrom
, or approve
methods. Common burn
method signatures are also preventedsetUserRoles
to both add and remove roles simultaneously (#880)call
them (#895)TokenLocking
works to make it, hopefully, more convenient for real-world use. (#908)The existing mainnet deployment of the Network is upgraded to this version. Latest Colony contract version is 4. When upgrading your Colony, call colony.upgrade(4)
. For this and future releases, there is no equivalent of calling colony.finishUpgrade2To3()
required.
The addresses for the Network contract remain unchanged:
mainnet: 0x5346D0f80e2816FaD329F2c140c870ffc3c3E2Ef
goerli: 0x79073fc2117dD054FCEdaCad1E7018C9CbE3ec0B
The main new feature in Burgundy glider is the introduction of expenditures. In terms of complexity, these sit somewhere between Tasks (which are more complicated) and Payments (which are simpler). Expenditures have been introduced with the intention of being the primitive via which all workflows can be implemented by extension contracts. We would recommend anyone using the colony contracts to use Expenditures going forwards, as the intention will ultimately be for Payments and Tasks depricated and removed (and reimplemented via extensions using expenditures) (#693, #826)
Expose getUserRoles
on the Colony interface. This returns a bytes32
object that can be used to work out all roles that a user has in a particular domain at once. Each bit set to 1 represents a role the user has, with the role each bit represents based on the ColonyRole
enum (so, for example, the least significant bit returned corresponds to the Recovery
role) (#686)
Maximum payout for a task or payment is dropped from 2**254-1
wei to 2**128-1
wei. Any existing payments or tasks with a payout larger than this value should pay out successfully, but new any new payouts set will have to respect this new limit. Expenditures respect this new limit also (#708)
Introduce a new createColony
which allows colonies to be created at arbitrary past versions, and with additional options (#712, #784). The original createColony
which takes only one argument is deprecated, and will be removed in a future release -- calling this function will create colonies only at version 3 (#818, #825)
Remove the ability to change domains after a task or payment has been created. This was done in order to prevent users with administration permissions being able to effectively move funds around a colony (which should be solely the responsibility of those with funding permissions) (#713)
Deprecate the OldRoles extension. This existed for the short-term benefit of the dApp, which no longer requires it (#719)
Improve reputation mining disputes and what is deemed as a valid response to a challenge (#718, #731)
Update reputation oracle to include an endpoint for "all users with skill X in colony Y" (#723)
Make the RecoveryRoleSet event visible on contracts instantiated just via the Interfaces (#730)
Default rating for a task changed from 3 to 2, in the event of an unsubmitted rating (#755)
Add support for multiple simultaneous rewards payouts (#773)
ArchitectureSubdomain
role (#741)The existing mainnet deployment of the Network is upgraded to this version. Latest Colony contract version is 3. When upgrading your Colony, call colony.upgrade(3)
followed by colony.finishUpgrade2To3()
.
Address for the Network contract remain unchanged:
ColonyNetwork: 0x5346D0f80e2816FaD329F2c140c870ffc3c3E2Ef
Extension factories are newly available at:
OneTxPaymentFactory: 0x6fb63009e3e03cbf6917647d64ad81939f267067
OldRolesFactory: 0x47d9aa3c4168a3228294ef7327f76e5fbbad12bc
Functionality
ArbitrationRole
domain security role #648Fixes
slither
analyser on nightly builds #666Maintenance
Diff analysis on gas costs for changes run via codechecks
#676
Code coverage updates #643
Network configuration updates #649
Added truffle network
configurations for forks of goerli
and mainnet
- goerliFork
and mainnetFork
respectively. Additionally 2 commands for starting each fork
yarn run fork:goerli
yarn run fork:mainnet
Package updates: web3v1
, husky
, truffle-security
, eslint-config-prettier-6.0.0
, eslint-plugin-flowtype-3.11.1
, solidity-parser-antlr-0.4.5
, eth-gas-reporter-0.2.1
, eslint-config-prettier-5.0.0
The existing Görli testnet deployment is upgraded to this version. Latest Colony contract version is 3. When upgrading your Colony, call colony.upgrade(3)
followed by colony.finishUpgrade2To3()
.
Address for the Network contract remain unchanged:
ColonyNetwork: 0x79073fc2117dD054FCEdaCad1E7018C9CbE3ec0B
Extension factories are new at:
OneTxPaymentFactory: 0xe4aaf13b6a3d84d9d025ef1e8aa1873ecb027322
OldRolesFactory: 0x99f831724f91c5e459e1d07cf80737de1273fc59
Functionality
ArbitrationRole
domain security role #648Fixes
slither
analyser on nightly builds #666Maintenance
Code coverage updates #643
Network configuration updates #649
Added truffle network
configurations for forks of goerli
and mainnet
- goerliFork
and mainnetFork
respectively. Additionally 2 commands for starting each fork
yarn run fork:goerli
yarn run fork:mainnet
Package updates: web3v1
, husky
, truffle-security
, eslint-config-prettier-6.0.0
, eslint-plugin-flowtype-3.11.1
, solidity-parser-antlr-0.4.5
, eth-gas-reporter-0.2.1
, eslint-config-prettier-5.0.0
The first release of Colony is called glider
- after the smallest of the spaceships from Conway's Game of life.
glider
implements the following features of the Colony Protocol as described in the Colony Whitepaper, and it will be continuously upgraded to implement new functionality.
Reputation, including the submission of reputation root hashes and dispute resolution amongst submitted hashes.
Bring your own token supports any colony to use an ERC20 token as a means of accounting for reputation.
Domains allow for the management of multiple token funding pots, with specialized reputation score according to domain and skill.
Modular Permissions allow for granular control over ability to interact with a colony at the domain level.
Payments and Tasks perform the secure transfer of funds (and reputation) as compensation for work done for the colony.
Rewards distribute periodically a set amount of revenue to all colony contributors, proportional to their contributions to the colony.
Importantly, there are some aspects of glider
that, in their current implementation, require some amount of "trust" in the sense that they are not under fully decentralized/distributed control.
The Meta Colony is permissioned and controlled by the core contributors to the colonyNetwork repo, as are contract upgrades and maintenance
CLNY is currently locked for transfer beyond a whitelisted set of addresses
Domains are restricted to single-level within the root domain (nested domains are currently prohibited).
Tasks are partially in a "trusty" state, insofar as there is no dispute resolution system implemented at this time to handle work disputes. While Payments can be seen as trustful Tasks.
glider
is deployed to mainnet
at
ColonyNetwork: 0x5346D0f80e2816FaD329F2c140c870ffc3c3E2Ef
Preserve ownership of joincolony.eth
ENS root node to allow us to set other subdomains. The user.joincolony.eth
and colony.joincolony.eth
subdomains however remain under the control of the Network as their owner in ENS.
Introduce the ability for the Network to be initialised with a Colony
version different to 1.
Upgrades contracts to solidity 0.5.8
#616
Reputation mining client functionality which allows a client started with --auto
option to automatically:
Extract a set of convenience functions useful when working with the contracts via the truffle console
#617
Event name changes for Colony domain role updates where the role specific events: ColonyRootRoleSet
, ColonyArchitectureRoleSet
, ColonyFundingRoleSet
and ColonyAdministrationRoleSet
have been replaced by a generic ColonyRoleSet
.
Additionally we now emit RecoveryRoleSet
event when the Recovery
role is assigned or unassigned.
Documentation updates. API docs are now auto generated from the interface contracts natspec
comments. #622
The existing Görli testnet deployment is upgraded to this version. Latest Colony
contract version is 2
. Addresses for the Network and Extension contracts remain unchanged:
ColonyNetwork: 0x79073fc2117dD054FCEdaCad1E7018C9CbE3ec0B
OneTxPaymentFactory: 0x3e03f868450ffD588E2cB2034fA2e0F74F9FFbe3
OldRolesFactory:` 0xbe86Bef84fFD76E906e1ffa368a42B538e7aEf75