Releases: JoinColony/colonyNetwork
Fuchsia LWSS
For Fuchsia LWSS, users will be requested to upgrade their colonies to v9, but for now the improvements are behind-the-scenes if you're using the dapp.
The xDai ColonyNetwork remains at:
xdai: 0x78163f593D1Fa151B4B7cacD146586aD2b686294
The mainnet address for the Network contract remains unchanged, but we recommend is no longer used.
Functionality
- Adds support for metatransactions (#962, #976)
- (Non-contract) Improve performance of the reputation miner in many respects (#985, #996, #997, #1014, #1015, #1021, #1025)
- Allow domains to be deprecated (#983)
- Add the concept of 'local skills' to a colony - the same as global skills, that e.g. an expenditure can be tagged with to award reputation in, but exist only for a single colony (#986)
- Emit some extra events to make front-end lives easier (#1022)
- Add a new function that will be used by the frontend to allow proposals to be made that affect colony metadata blobs without overwriting changes made while the proposal went through its lifecycle (#1033)
Fixes
- Adjust eligibility in reputation mining submissions so that every miner has at least ten minutes to defend a submission before it can be invalidated (#1030)
- Add some events to Coinmachine to make development of the interface easier (#1022)
Maintenance
Ebony LWSS 3
Hopefully the last of the elwss
releases, this release can once again be considered a 'patch' release. Users do not need to upgrade their colonies or extensions.
The xDai ColonyNetwork remains at:
xdai: 0x78163f593D1Fa151B4B7cacD146586aD2b686294
The mainnet address for the Network contract remains unchanged, but we recommend is no longer used.
Functionality
- Adds support for 'delegated mining' (#1011)
Fixes
- Correct and subsequently use internal bookkeeping on Colony Network regarding mining (#1016)
- Fix a bug in CoinMachine to do with partial refunds when the chain's native token is used in a sale (#1008). This goes to v4, though an instance labelled v4 is not yet deployed for public use. v3 (which is currently available) contains this fix (which was able to be patched in after deployment).
Maintenance
- Accommodate updates to the colonyToken repository in our tests etc. (#1007)
Ebony LWSS 2
This release can be considered a 'patch' release. There is only one (minor) change, to an extension (CoinMachine) that is not yet in use by the public, which goes from v2 to v3.
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
- Change how CoinMachine per-user sales limits are enforced (#1005)
Ebony LWSS
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
Dandelion LWSS
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 newgetCapabilityRoles()
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)
Cerulean LWSS
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
Lightweight Spaceship
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 fromColonyNetwork
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
, orapprove
methods. Commonburn
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
burgundy-glider
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 abytes32
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 theColonyRole
enum (so, for example, the least significant bit returned corresponds to theRecovery
role) (#686) -
Maximum payout for a task or payment is dropped from
2**254-1
wei to2**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 originalcreateColony
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
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
Addedtruffle network
configurations for forks ofgoerli
andmainnet
-goerliFork
andmainnetFork
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
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
Addedtruffle network
configurations for forks ofgoerli
andmainnet
-goerliFork
andmainnetFork
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