2 releases
Uses new Rust 2024
new 0.1.1 | Apr 5, 2025 |
---|---|
0.1.0 | Apr 5, 2025 |
#14 in #sonic
26KB
437 lines
Sonic-migrate
sonic-migrate
is a CLI tool that helps developers migrate their Solana Anchor projects to the Sonic Network. It modifies the Anchor.toml
configuration file and updates the cluster RPC URL to point to the Sonic Network, among other tasks. This tool is designed to simplify the process of upgrading and migrating existing Solana Anchor projects.
Features
- Automatic Migration: Updates the
Anchor.toml
file to migrate from standard Solana clusters to Sonic Network. - Display available sonic's network endpoint: List available networks and their RPC URLs.
- Migrate to sonic's target network endpoint: Target Sonic network (testnet, mainnet-alpha).
- Backup & Restore: Automatically backs up the existing
Anchor.toml
to ensure you can restore it if needed. - Dry Run Option: See what changes would be made without applying them.
- Verbose Logging: Provides detailed output to help you understand the migration process.
Installation
You can install sonic-migrate
using Cargo:
cargo install sonic-migrate
Usage
Basic Usage
Navigate to the root directory of your Anchor project and run:
sonic-migrate
This will migrate your project by modifying Anchor.toml
and updating the cluster RPC URL to the Sonic Testnet Network. The tool will also create a backup (Anchor.toml.bak
) before making any changes.
sonic-migrate --networks
This will List available networks and their RPC URLs for sonic SVM.
sonic-migrate --network <network>
This will migrate your project by modifying Anchor.toml
and updating the cluster RPC URL to provided network endpoint.
Running with a Specific Path
You can specify the path to your Anchor project explicitly:
sonic-migrate /path/to/your/anchor-project
Dry Run Mode (Recommended First Step)
If you want to preview the changes that will be made without modifying the actual files, use the --dry-run
flag:
sonic-migrate --dry-run
This will print out the changes that would be made to Anchor.toml
without making any modifications.
Verbose Mode
For more detailed logging about the migration process, use the --verbose
flag:
sonic-migrate --verbose
Restore from Backup
If you need to revert the changes made by sonic-migrate
, you can restore the backup using the --restore
flag:
sonic-migrate --restore
Full Command Reference
- Basic Migration to sonic Testnet:
sonic-migrate
- List available networks and their RPC URLs:
sonic-migrate --networks
- Migration to Target Sonic network (testnet, mainnet-alpha):
sonic-migrate --network <network>
- Specify Path:
sonic-migrate /path/to/project
- Dry Run:
sonic-migrate --dry-run
- Verbose Logging:
sonic-migrate --verbose
- Restore Backup:
sonic-migrate --restore
Example Workflow
-
Run a Dry Run to see what changes will be made:
sonic-migrate --dry-run
-
Run the Actual Migration after reviewing the dry run output:
sonic-migrate
-
Verify the updated
Anchor.toml
and run your project's tests. -
If something went wrong, restore from the backup:
sonic-migrate --restore
How it Works
sonic-migrate
performs the following tasks:
- Validation: Ensures that the specified directory is a valid Anchor project with
Anchor.toml
andCargo.toml
. - Backup: Creates a backup of
Anchor.toml
before making changes. - Modification: Updates the RPC URL in
Anchor.toml
to point to the Sonic Testnet Network:https://api.testnet.sonic.game
- Logging: Provides detailed progress, error messages, and final instructions.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue for suggestions, improvements, or bug reports.
Development Setup
-
Clone the Repository:
git clone https://github.com/shivamSspirit/Sonic-migrate.git cd sonic-migrate
-
Build the Project:
cargo build
-
Run Tests:
cargo test
Contact
- Author: shivam soni (shivamsoni6@gmail.com)
- GitHub: shivamSspirit
If you have any questions or suggestions, feel free to reach out!
Give sonic-migrate
a ⭐ on GitHub if you find it useful!
Dependencies
~6–16MB
~224K SLoC