ColonyNetwork Versions Save

Colony Network smart contracts

elwss

2 years ago

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.

Functionality

  • Make the mining client use the 'average' gas instead of the 'low' gas, and allow RPC endpoints to be specified (#973)
  • Add events to TokenLocking that we will likely expect to be there in the future (#965)
  • Allow multiple arbitrary transactions to done in a single transaction (#965)
  • Add new functionality to the Expenditure primitive (#951, #958)
  • No extensions now receive reputation if they receive tokens from a colony. If a colony sends tokens to an extension of its own, then the network fee is also not paid (#992)

Fixes

  • There was an issue with gas estimation for executing motions. This also represented a possible avenue for griefing. This has been mitigated for now by only allowing a motion to be executed successfully when the transaction triggered would fail after a week. (#988)
  • Add events that should have been present for awarding and smiting reputation (#987)

Maintenance

  • Tool upgrades (#981, #989)
  • Updates to a forthcoming service that will be used for a hosted KYC process (#984)

dlwss

2 years ago

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.

Functionality

  • When mining, no longer emit events if no tokens were burned (#939)
  • Additional internal bookkeeping to allow arbitrary transactions to be made to call ERC20 functions (#932).
  • Additional functionality added to CoinMachine, and the Whitelist extension also introduced (#931, #960)
  • Alongside the reputation miner, a new package is introduced that is a service that can allow integration with KYC service Synaps.
  • Motions in a domain can now call extensions (#949)
  • Reward pool for voters on a motion is now split between all voters, rather than notionally split between all those eligible to vote (but only paid to those who voted). This means that the payout is unknown at the time of voting, but more of the reward pool will be paid out each time. (#959)
  • All deployed extensions (most notably OneTxPayment) redeployed to include a new getCapabilityRoles() function, which is required for motions targeting extensions to work (#964)
  • Mining Cycle Duration is now controlled purely by the constants on the Mining Cycle contracts, and the reputation miner respects those constants as they potentially change between cycles (#966).
  • If all tokens have been lost during a motion by someone who staked on the motion, they can still 'claim' their stake to fix their account's bookkeeping. (#969)

Fixes

  • Fix bug to do with users being able to inappropriately influence the total reputation in a colony (#936)
  • The bootstrapping mode of a colony now correctly respects the existence of expenditures and payments, in addition to tasks (#939).
  • GetStakerReward is now functional even if no-one staked on a side (#947).
  • Maths involving WADs now rounds down, consistent with other Solidity maths (#946).
  • 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).

Maintenance

  • Deployed extensions no longer have to have consecutive version numbers (#935).
  • Improve development environment when using the reputation miner (#938, #942).
  • Various package upgrades (#941, #953, #955, #967)
  • Start running slither against our extensions (#929)
  • Restructure some tests for the benefit of CircleCI (#963)

clwss

3 years ago

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.

Functionality

  • Allow transaction annotations to be made in recovery mode. (#927)
  • The reputation miner now behaves more appropriately on Xdai (#930)

Fixes

  • Fix tracking of the number of recovery roles when using the setUserRoles function. (#927)
  • Allow root users of colonies upgraded from v4 to use the setUserRoles function correctly. (#927)

Maintenance

  • We are reintroducing Slither to our builds, and made some non-functional changes to the core contracts to bring ourselves in line with best practises. The same will be done down the line with extension contracts. (#926)

lwss

3 years ago

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.

Functionality

  • Extension Manager - making it easier to add, remove and selectively enable all these extensions in your colony.
  • Populate the extension manager with extensions that hopefully make it easier to run your colony the way that you want. These are:
    • Motions with reputation voting. While it's not appropriate to go in to the detailed functionality here, this extension means that actions within the colony can be proposed and then if there is not much disagreement the actions will take place. (#644, #757)
    • Funding queues - helping you distribute funds as you desire in your colony, focussing on predictable payments over time directed by those who hold reputation in your colony (#828)
    • CoinMachine - a simple way to sell tokens (#835, #897)
    • TokenSupplier - used to manage a colony's token supply (#875, #907)
  • Addresses with the arbitration permission can now make changes to expenditures directly. We see this being used in conjunction with motions and reputation voting.
  • Addresses with the arbitration permission can now emit reputation penalties for other users. (#845)
  • Reputation mining
    • If a reputation miner helps resolve a dispute during reputation submission, they are rewarded for doing so (#812)
    • When multiple miners are mining, make it much less likely that two well-behaved miners will respond at the same time (#842)
    • Previously, supplying a stake for mining was a special case compared to supplying a stake for something else. Mining now uses the same staking system as everything else. (#844)
    • The reputation mining client can now deliver notifications via Discord (#857)
  • Issuance mechanisms for CLNY added:
    • Allowing a stipend to be set by the metacolony that anyone can claim on behalf of the metacolony
    • Allowing the reputation cycle reward to be set, split between up to 12 submissions made for the reputation root hash that is accepted each cycle.
  • Upgrade to Solidity 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).

Fixes

  • Remove ambiguity in reputation proofs, where context was needed to tell what was being proved (#771)
  • Fix accounting of tokens being paid out as rewards where tokens have been manually added to the reward pot (#834)
  • Make the OneTxPayment extension more efficient when multiple addresses receive tokens, or a single address receives multiple tokens (#836, #847)
  • Prevent the reputation miner endlessly restarting if it runs out of gas (#863)
  • Store tokenLockingAddress in a colony's storage instead of looking it up every time from ColonyNetwork to save gas (#874)
  • Add the ability for those holding the root permission in a colony to trigger the colony to make a close to arbitrary transaction. (#876, #914) The restrictions are:
    • value must be zero
    • The target address must be a contract
    • The method called can't be the ERC20 transfer, transferFrom, or approve methods. Common burn method signatures are also prevented
    • The target address cannot be an extension installed in the colony making the call.
  • Allow setUserRoles to both add and remove roles simultaneously (#880)
  • Added additional events to be emitted to help the frontend and the graph efficiently track on-chain actions, only emit events where necessary, and update existing events (#891, #899, #901, #905, #913, #911)
  • Add a managed list of tokens to ColonyNetwork of tokens that will not be auctioned when a network fee is taken, and instead be sent directly to the metacolony (#904)
  • Add 'Annotations' - a way to comment on a transaction on-chain. (#882)
  • Add ability for any root permission holder to unlock the token deployed in the app (#924)
  • Add root ability for reputation rewards to be awarded to addresses arbitrarily (#923)
  • Take advantage of new Solidity functionality to make the contracts, which are deployed across multiple networks, behave appropriately based on the network they are on (#917, #925)

Maintenance

  • Remove deprecated functionality (#833)
  • Bump colony version ()
  • Various tooling upgrades (#829, #830, #831, #840, #841, #843, #848, #849, #851, #852, #854, #855, #856, #861, #864, #865, #869, #873, #883, #885, #886, #887, #912)
  • Testing improvements (#892, #896, #898, #901, #906, #909)
  • A much-needed reorganisation of the codebase in to directories (#824)
  • Documentation improvements (#721, #888)
  • Fix spelling errors (#871)
  • Changes in setup to make development using the contracts easier. (#867, #884, #902, #916, #919)
  • Accurately label an overlooked function as view so providers know to call them (#895)
  • Adjust how TokenLocking works to make it, hopefully, more convenient for real-world use. (#908)

Other

  • Amend the reputation oracle endpoint to usefully order addresses returned (#893)
  • Make the miner more permissive regarding passed parameters (#900)

burgundy-glider

4 years ago

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

Functionality

  • 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)

Fixes

  • Fix issue with automatic documentation generation (#702)
  • Restored the nightly builds (#690, #742, #750)
  • Make mining client more resilient to missed events (#629, #748, #779)
  • Typo in documentation (#736, #737, #790, #801)
  • Fix bug in the rewards payout logic (#770)
  • Fix bug in how mining disputes were scheduled (#810)
  • Removed an event signature change which was breaking an interface (#827, introduced in #693)

Maintenance

  • Improve tests (#703, #715)
  • Deprecated the ArchitectureSubdomain role (#741)
  • Bump colony version (#779)
  • Various tooling upgrades (#682, #689, #691, #692, #694, #696, #698, #697, #722, #710, #724, #726, #727, #738, #739, #746, #747, #749, #752, #758, #764, #765, #766, #769, #776, #781, #782, #786, #802, #809, #813, #820, #821, #822, #823)

auburn-glider

4 years ago

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

  • Allow users and colonies to update their OrbitDB store address #667
  • Enable single transaction payment in subdomain where funds are sourced from the root domain #659
  • Introduce the ArbitrationRole domain security role #648

Fixes

  • Enables slither analyser on nightly builds #666
  • Fixes to the reputation visualiser tree state not displaying #671

Maintenance

  • 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

auburn-glider-rc.1

4 years ago

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

  • Allow users and colonies to update their OrbitDB store address #667
  • Enable single transaction payment in subdomain where funds are sourced from the root domain #659
  • Introduce the ArbitrationRole domain security role #648

Fixes

  • Enables slither analyser on nightly builds #666
  • Fixes to the reputation visualiser tree state not displaying #671

Maintenance

  • 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

glider

4 years ago

glider_00284B

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

https://docs.colony.io/colonynetwork/docs-overview

glider-rc.3

4 years ago

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.

glider-rc.2

5 years ago

Upgrades contracts to solidity 0.5.8 #616

Reputation mining client functionality which allows a client started with --auto option to automatically:

  • submit at the earliest possible time up to as many submissions as it is entitled to (depending on their staked CLNY tokens and up to a max of 12) in a mining cycle
  • respond to disputes
  • confirm the last remaining hash after the mining window closes
  • visualisations of reputation update log and reputation state

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