colonyJS v1.12.0

colonyjs
#1

Link to Github release


This release implements significant changes and additions that enables support for the colonyNetwork glider-rc.1 release. Please do not hesitate to reach out to us on Discourse or Gitter if you are having any issues updating to this release.

Also, please note that colonyJS is currently using ethers version 3.0.27.

New Features

  • Added goerli as a getNetworkClient option (@colony/colony-js-client)
  • Added goerli to network loader (@colony/colony-js-contract-loader-network)

Types

  • Added [number] param type (@colony/colony-js-contract-client)
  • Renamed tokenAddress param type to anyAddress to better reflect its uses (@colony/colony-js-contract-client)

Maintenance

  • Updated constants (@colony/colony-js-client)

    • Added COLONY_ROLE_ADMINISTRATION
    • Added COLONY_ROLE_ARBITRATION
    • Added COLONY_ROLE_ARCHITECTURE
    • Added COLONY_ROLE_ARCHITECTURE_SUBDOMAIN
    • Added COLONY_ROLE_FUNDING
    • Added COLONY_ROLE_RECOVERY
    • Added COLONY_ROLE_ROOT
    • Added COLONY_ROLES
    • Added ETHER_ADDRESS
    • Added FUNDING_POT_TYPE_DOMAIN
    • Added FUNDING_POT_TYPE_PAYMENT
    • Added FUNDING_POT_TYPE_TASK
    • Added FUNDING_POT_TYPE_UNASSIGNED
    • Added FUNDING_POT_TYPES
    • Added TASK_RATING_NONE
    • Added TASK_RATING_UNSATISFACTORY
    • Added TASK_RATING_SATISFACTORY
    • Added TASK_RATING_EXCELLENT
    • Added TASK_RATINGS
    • Added TASK_ROLE_EVALUATOR
    • Added TASK_ROLE_MANAGER
    • Added TASK_ROLE_WORKER
    • Added TASK_ROLES
    • Removed FOUNDER_ROLE
      • FOUNDER_ROLE has been deprecated in favor of the new colony roles. When using the setFounderRole method provided by the OldRoles.sol extension contract, the following colony roles will be applied:
        • COLONY_ROLE_ROOT
        • COLONY_ROLE_ARCHITECTURE
        • COLONY_ROLE_FUNDING
        • COLONY_ROLE_ADMINISTRATION
    • Removed ADMIN_ROLE
      • ADMIN_ROLE has been deprecated in favor of the new colony roles. When using the setAdminRole method provided by the OldRoles.sol extension contract, the following colony roles will be applied:
        • COLONY_ROLE_ARCHITECTURE
        • COLONY_ROLE_FUNDING
        • COLONY_ROLE_ADMINISTRATION
    • Removed AUTHORITY_ROLES
      • AUTHORITY_ROLES has been replaced by COLONY_ROLES
    • Removed MANAGER_ROLE
      • MANAGER_ROLE has been replaced with TASK_ROLE_MANAGER
    • Removed EVALUATOR_ROLE
      • EVALUATOR_ROLE has been replaced with TASK_ROLE_EVALUATOR
    • Removed WORKER_ROLE
      • WORKER_ROLE has been replaced with TASK_ROLE_WORKER
    • Removed ACTIVE_TASK_STATUS
      • ACTIVE_TASK_STATUS has been replaced with TASK_STATUS_ACTIVE
    • Removed CANCELLED_TASK_STATUS
      • CANCELLED_TASK_STATUS has been replaced with TASK_STATUS_CANCELLED
    • Removed FINALIZED_TASK_STATUS
      • FINALIZED_TASK_STATUS has been replaced with TASK_STATUS_FINALIZED
    • Updated TASK_ROLES
      • TASK_ROLES has been updated to use the following reformatted constants:
        • TASK_ROLE_MANAGER
        • TASK_ROLE_EVALUATOR
        • TASK_ROLE_WORKER
  • Updated caller methods in ColonyClient (@colony/colony-js-client)

    • Added getAuthorityAddress
    • Added getColonyNetworkAddress
    • Added getExtensionAddress
    • Added getFundingPotPayout
    • Added getOwnerAddress
    • Added getPayment
    • Added getPaymentCount
    • Added getTaskWorkRatingSecretsInfo
    • Added getTokenAddress
    • Added hasColonyRole
    • Added verifyReputationProof
    • Removed getAuthority
      • getAuthorityAddress has replaced getAuthority.
    • Removed getTaskWorkRatings
      • getTaskWorkRatingSecretsInfo has replaced getTaskWorkRatings.
    • Removed getToken
      • getTokenAddress has replaced getToken.
    • Removed getTotalTaskPayout
      • getFundingPotPayout has replaced getTotalTaskPayout.
    • Removed hasUserRole
      • hasColonyRole has replaced hasUserRole. hasColonyRole uses address instead of user as an input parameter and adds domainId.
    • Updated getDomain
      • Changed localSkillId output parameter to skillId.
    • Updated getFundingPot
      • Changed associatedType output parameter to type.
      • Changed associatedTypeId output parameter to typeId.
      • Added payoutsWeCannotMake output parameter.
    • Updated getRewardPayoutInfo
      • Updated output parameters based on the new RewardPayoutCycle struct.
    • Updated getTask
      • Removed payoutsWeCannotMake output parameter.
  • Updated sender methods in ColonyClient (@colony/colony-js-client)

    • Added addExtension
    • Added addNetworkColonyVersion (MetaColony)
    • Added addPayment
    • Added addTask
    • Added claimPayment
    • Added claimTaskPayout
    • Added claimRewardPayout
    • Added deprecateGlobalSkill (MetaColony)
    • Added finalizePayment
    • Added removeExtension
    • Added setAdministrationRole
    • Added setArchitectureRole
    • Added setFundingRole
    • Added setPaymentDomain
    • Added setPaymentPayout
    • Added setPaymentRecipient
    • Added setPaymentSkill
    • Added setRootRole
    • Removed claimPayout
      • See claimPayment and claimTaskPayout for more information.
    • Removed createTask
      • addTask has replaced createTask for consistency.
    • Removed removeAdminRole (See setAdminRole)
    • Updated addGlobalSkill
      • Removed parentSkillId as an input parameter. Global skills no longer exist within a skills tree and always use 0 for the parentSkillId.
    • Updated bootstrapColony
      • Changed users input parameter to addresses.
    • Updated makePayment
      • Changed worker input parameter to recipient.
    • Updated removeRecoveryRole
      • Changed user input parameter to address.
    • Updated setRecoveryRole
      • Changed user input parameter to address.
    • Updated setAdminRole
      • setAdminRole is now connected to the OldRoles extension contract.
      • Changed user input parameter to address.
      • Added setTo input parameter.
    • Updated setFounderRole
      • setAdminRole is now connected to the OldRoles extension contract.
      • Changed user input parameter to address.
    • Updated setTaskEvaluatorRole
      • Changed user input parameter to address.
    • Updated setTaskManagerRole
      • Changed user input parameter to address.
    • Updated setTaskWorkerRole
      • Changed user input parameter to address.
    • Updated startNextRewardPayout
      • Added key input parameter.
      • Added value input parameter.
      • Added branchMask input parameter.
      • Added siblings input parameter.
  • Updated events in ColonyClient (@colony/colony-js-client)

    • Added ColonyAdministrationRoleSet
    • Added ColonyArchitectureRoleSet
    • Added ColonyFundingRoleSet
    • Added ColonyRootRoleSet
    • Added ColonyVersionAdded
    • Added PaymentAdded
    • Added PayoutClaimed
    • Removed ColonyAdminRoleRemoved
      • ColonyAdministrationRoleSet has replaced ColonyAdminRoleRemoved.
      • ColonyAdministrationRoleSet changes user parameter to address.
      • ColonyAdministrationRoleSet adds setTo parameter.
    • Removed ColonyAdminRoleSet
      • ColonyAdministrationRoleSet has replaced ColonyAdminRoleRemoved.
      • ColonyAdministrationRoleSet changes user parameter to address.
      • ColonyAdministrationRoleSet adds setTo parameter.
    • Removed ColonyFounderRoleSet
      • ColonyRootRoleSet has replaced ColonyFounderRoleSet.
      • ColonyRootRoleSet changes user parameter to address.
      • ColonyRootRoleSet adds setTo parameter.
    • Removed TaskPayoutClaimed
      • PayoutClaimed has replaced TaskPayoutClaimed.
    • Updated ColonyBootstrapped
      • Changed users parameter to addresses.
    • Updated ColonyInitialised
      • Added token parameter.
  • Updated caller methods in ColonyNetworkClient (@colony/colony-js-client)

    • Added calculateMinerWeight
    • Added getENSRegistrarAddress
    • Added getMiningResolverAddress
    • Added getReplacementReputationUpdateLogEntry
    • Added getReputationMiningCycle
    • Added getReputationMiningSkillId
    • Added getReputationRootHash
    • Added getReputationRootHashNodeCount
    • Added getTokenLockingAddress
    • Removed getRootGlobalSkillId
      • getReputationMiningSkillId has replaced getRootGlobalSkillId.
    • Removed getTokenLocking
      • getTokenLockingAddress has replaced getTokenLocking.
      • getTokenLockingAddress changes lockingAddress parameter to address.
    • Updated getSkill
      • Added parents output parameter.
      • Added children output parameter.
  • Updated sender methods in ColonyNetworkClient (@colony/colony-js-client)

    • Added appendReputationUpdateLog
    • Added deprecateSkill
    • Added initialiseReputationMining
    • Added registerColonyLabel
    • Added setMiningResolver
    • Added setReplacementReputationUpdateLogEntry
    • Added setReputationRootHash
    • Added startNextMiningCycle
    • Updated addSkill
      • Removed globalSkill input parameter.
    • Updated removeRecoveryRole
      • Changed user input parameter to address.
    • Updated setRecoveryRole
      • Changed user input parameter to address.
  • Updated events in ColonyNetworkClient (@colony/colony-js-client)

    • Added ColonyVersionAdded
  • Updated caller methods in TokenClient (@colony/colony-js-client)

    • Added isLocked
  • Updated sender methods in TokenClient (@colony/colony-js-client)

    • Added createTokenAuthority
    • Added unlock
    • Updated createToken
      • Require name and decimals input parameters.

  • Bumped all package versions to 1.12.0
#2

Hi, @ryanchristo. Thank you for these release notes, especially noting what specifically has changed, what ethers version is used, where glider is deployed, etc.This will help with upgrading.

Do you recommend upgrading now?

In addition, do you think reviewing a diff of latest changes to the colonyStarter would be helpful to identify all necessary changes to avoid breakage when upgrading? If so, what commits to diff would show the changes?

Do you have any other upgrade suggestions, tips or notes?

It seems that some bugs have not been closed that I thought we waiting on v1.12.0. For example, is this still open? https://github.com/JoinColony/colonyJS/issues/375 Can I assume that the bug fix status in Github is correct? Thanks.

Can you confirm the beta.6 colony-cli is using the glider-rc.1 colonyNetwork? It appears so in the package.json.

So in summary, that the correct alignment is:

  • colonyJS 1.12.0
  • colony-cli 1.0.0-beta.6
  • ethers 3.0.27

Is that correct?

Thanks.

1 Like
#3

Do you recommend upgrading now?

If you would like to interact with the contracts on goerli (or mainnet soon), you will need to upgrade to this version. It is not critical to upgrade if you are just working with the contracts locally and you are a long way out from testing on a testnet or running in production on mainnet. Either way, I would still recommend updating to this version sooner than late to avoid technical debt.

In addition, do you think reviewing a diff of latest changes to the colonyStarter would be helpful to identify all necessary changes to avoid breakage when upgrading? If so, what commits to diff would show the changes?

Yes, I think this could be helpful. You could do something like this and collapse any files not included in the colonyStarter package that you would like to compare.

Do you have any other upgrade suggestions, tips or notes?

If you encounter an issue that you think is taking longer than it should to resolve, post in #support or send a message in Gitter. We likely ran into the same issue while upgrading things on our end.

It seems that some bugs have not been closed that I thought we waiting on v1.12.0. For example, is this still open? https://github.com/JoinColony/colonyJS/issues/375 Can I assume that the bug fix status in Github is correct? Thanks.

The only remaining issue is that if you are bringing an existing ERC20 token that was created using the DSToken contract and you used the setName and setSymbol methods (setting the name and symbol are not included in the constructor for the DSToken contract), then you will need to convert the returned hex string to bytes, which is more of an inconvenience than a bug.

If you used the colonyJS createToken method, which uses our standard token contract in colonyToken, then getTokenInfo will return the name, symbol, and decimals as expected.

Can you confirm the beta.6 colony-cli is using the glider-rc.1 colonyNetwork?

Yes. The latest version of colony-cli (1.0.0-beta.6) is currently using glider-rc.1 as the default colonyNetwork version. Each time you run a service method, the version will be displayed in the output so you can make sure you are always using the intended version.

If for any reason you do not want to use this version, you can use the --specific option on any of the service commands (ie, colony service start-ganache --specific glider-rc.1).

So in summary, that the correct alignment is:

  • colonyJS 1.12.0
  • colony-cli 1.0.0-beta.6
  • ethers 3.0.27

Yes, these package versions are aligned and the current recommended versions to be using. You can use a later version of the ethers package as long as you are using the getNetworkClient method and not creating a wallet instance that you are then passing to the EthersAdapter. You will then have two versions ethers installed, which is more of an inconvenience than an issue.

1 Like
#4

Just wanted to let you know that the upgrade has been relatively straightforward and painless, thanks! Iā€™m up and running on glider now.

1 Like
#5

Great news! Thanks for sharing!