Breaking changes to the core smart contracts

Hello,

The Flow core smart contracts on Flow Testnet will be upgraded in the week of 3rd March. The update to the contracts introduces breaking changes for any tooling or integration that relies on these contracts. Please take a note of these breaking changes and adjust your tooling accordingly. Core contracts on mainnet will also be updated in March after the testnet update.

Background

Currently, there are two mechanisms to rollout downward incompatible changes to node software: network upgrade (spork) and Height Coordinated Upgrade (HCU). Network upgrade causes a network downtime while HCU does not cause any network downtime (see here for more details). However, HCUs can currently only be used for Verification and Execution nodes and not for the other node types - Collection and Consensus.

A new mechanism to upgrade all node types without causing any downtime has been implemented. Earlier core protocol working group discussion about it can be found here and the associated FLIPs is FLIP 298.

Part of the implementation is the upgrade to the core contracts.

Breaking Changes

The core contracts on testnet will be updated to this release. This will introduce breaking changes to the following contracts:

  1. FlowDKG
  • Event FlowDKG.EndDKG parameter type is changed from [String?]? to ResultSubmission?
  • Function FlowDKG.dkgCompleted return type is changed from [String?]? to ResultSubmission?
  1. FlowEpoch
  • Event FlowEpoch.EpochCommit parameters changed:
    • existing dkgPubKeys now omits the group public key
    • new dkgGroupKey is added
    • new dkgIdMapping is added

Please see the release notes for other non-breaking changes.

Thank you,

Flow Team

2 Likes