Breaking Change: CreateAccount Event Functionality - 6/9/2021

We want to let you know that there will be a breaking change to the CreateAccount event functionality of the Flow protocol that could impact a small number of development teams. This change will likely have a minimal impact across our ecosystem partners, but will be implemented with the MainNet 10 Spork.

This change will go into effect:
CanaryNet: 6-9-2021
TestNet: 6-22-2021
MainNet: 6-23-2021

Who/What This Impacts

Until now account creation emitted a single AccountCreatedEvent event. This change will update the protocol so that Address creation also emits other events (namely withdrawals and deposits for transaction fees and storage deposit) besides AccountCreatedEvent.

While this on its own doesn’t break anything, code that is written in a way where, during an account creation transaction, a single emitted event is expected, or it is expected that the AccountCreatedEvent is the first emitted event, will now break.

Why This Change Happened

This change happened because during performance improvement, we changed how account creation happens, and as a consequence account creation transactions now include all events that happen during account creation. Those events also include withdrawing the storage deposit from the account creator and depositing the storage deposit to the new account.

Action Required

While this on its own doesn’t break anything, IF code is written in a way where…

  • During an account creation transaction: it expects only a single emitted event.
  • Or during an account creation transaction, it expects that the AccountCreatedEvent is the first emitted event.

…will now break.

Please refer to this Pull Request for any additional information regarding this breaking change.

If you have any questions regarding this breaking change, please ask our team in Discord for further assistance.

Thank you, The Flow Team :ocean: