Crescendo is coming to Flow this July! Flow supercharges the Ethereum ecosystem with full EVM-equivalency and the power of Cadence 1.0.
Developers
May 13, 2024
Cadence Migration: A Detailed Guide for Developers on Flow
Antoni Palazzolo
Cadence Migration: A Detailed Guide for Developers on Flow
As we prepare for the most significant network evolution on the Flow blockchain, understanding every phase of the migration process is crucial.
We're opening the gates to the vast ocean of opportunities, and the excitement is palpable about this incredible future ahead. With EVM on Flow, we're poised to harness the best of both worlds.
Remember, "With great power comes great responsibility." We need all the talented developers building on Flow to upgrade their smart contract. 
This guide will outline each critical stage of the migration, highlighting important dates and actions to ensure you are thoroughly prepared for this pivotal upgrade. Let's walk through this upgrade process together, step by step.

Steps to upgrade

Upgrading your applications for the Cadence update on the Flow blockchain involves several steps, each designed to ensure that your transition is as smooth and effective as possible. Here’s a straightforward guide on how to navigate the upgrade:

1. Understand the Changes: Begin the process by thoroughly understanding the updates, particularly focusing on Capabilities and Entitlements, which represent the most important changes. Utilize resources such as the Migration Guide, along with specific documentation on Capabilities and Entitlements to fully grasp how these changes might impact your existing code.

2. Modify Your Code: Once you have a solid understanding of the changes, proceed to update your contracts, transactions, and scripts to align with the new standards, particularly the new FT/NFT Standards. Tools like the VSCode Plugin, custom GPT migration helper, and Cadence linter, And a tremendous community built Smart Contract migration tool, cadenceUpgrader, written by Bluesign  can greatly facilitate this process, helping to ensure that your code is compliant with the updated requirements.

3. Test Your Code: Testing is critical. Use the latest Cadence 1.0 Emulator, which includes all new features, standards, and core contracts for Cadence 1.0, to test your code. Additional testing tools like JS Testing and Overflow can help simulate contracts and check the robustness of your code under the new system.

4. Stage: The final step before going live is staging your updated code. This involves setting up your contracts in a controlled environment that mirrors the production settings to ensure everything works seamlessly. Make sure to test both the contracts and their dependencies in this stage to verify that they function correctly together and maintain the intended state and behavior.

Understanding the Migration Process

The transition to Crescendo involves a series of structured stages on the Testnet. These stages are designed to help you incrementally adapt your applications to ensure compatibility with the new Cadence 1.0 and EVM support on Flow. 

Key Dates and Stages

The transition to Crescendo involves a series of structured stages on Flow Testnet. These stages are designed to help you incrementally adapt your applications to ensure compatibility with the new Cadence 1.0 and EVM support on Flow.

1. Cadence Migration Stages on Testnet

Stage 1: From May 22 to May 23

What to expect:This two-day period features advanced Transaction Inspection Logic, which actively blocks 100% of failing transactions. During this stage, transactions that rely on any smart contracts not yet staged for the upgrade will be automatically blocked. This measure is crucial to prevent disruptions caused by incompatible code, ensuring a seamless transition during the upgrade.

Goal: Use this stage to make initial adjustments and gauge the impact of new migration logic on your existing contracts and transactions.

   

Stage 2: From May 29 to May 31

What to expect: Extending to three days, this period allows you more time to interact with the updated environment and refine your code.

Goal: Focus on identifying persistent issues from Stage 1 and resolving them.

   

Stage 3: From June 5 to June 8

What to expect: With four days at your disposal, delve deeper into testing and start finalizing your migration strategies.

Goal: Ensure all functionalities perform as expected and begin preparations for the final stage.

   

Stage 4: From June 12 to  June 17

What to expect: The longest period, spanning nearly a week, is designed to simulate a full migration.

Goal:  Finalize all adjustments and prepare for the upcoming network upgrade. This is your last opportunity to ensure everything operates seamlessly.

2. Testnet Network Upgrade - June 19

What to expect: A full network upgrade on the Testnet will be implemented.

Goal:  Confirm that all systems and applications are fully compatible and operational post-upgrade.

3. Enabling EVM on Testnet - June 20

Right after the network upgrade, the EVM will be activated on the Testnet, allowing you to start deploying and testing your EVM-compatible contracts and tools in the newly updated environment. 

This is a pivotal moment in the Cadence migration on the Flow blockchain, designed to streamline the transition and enable you to utilize enhanced capabilities efficiently.

Resources to support Developers

To assist you in navigating this migration smoothly, you should visit Flow's migration hub

You can also discover some valuable resources right here:

Understand

Learn about the changes.

Guides

Access in-depth information and tutorials on how to update your contracts.

Tools

Access tools to upgrade swiftly.

Support

Looking for more support or guidance through your migration? Access our support option bellow.

Migration Environment Availability

During these stages, a dedicated Migration Environment will be maintained on the Testnet. This setup is crucial for testing your applications against live contracts and ensuring that they interact correctly with both the updated Cadence 1.0 and EVM functionalities.

Why This Phased Approach Matters

This structured approach allows for gradual adaptation, minimizing disruptions and providing multiple checkpoints for you to refine and optimize your applications. By engaging fully with each of these stages, you ensure that your transition to Crescendo is as smooth and successful as possible.

Get ready to go Crescendo

Mark these dates and prepare to utilize the resources and structured stages laid out to transition effectively. Cadence’s migration framework is designed not just to update but to enhance and empower your development capabilities on Flow. Happy coding, and see you on Testnet!