Move.toml
はパッケージ(package)とその依存関係を記述するマニフェストファイルです。 これはTOML形式で記述されており、複数のセクションを含みますが、最も重要なものとしては[package]
、[dependencies]
、[address]
があります。
[package]
name = "my_project"
version = "0.0.0"
edition = "2024"
[dependencies]
Sui = { git = "<https://github.com/MystenLabs/sui.git>", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" }
[addresses]
std = "0x1"
alice = "0xA11CE"
[dev-addresses]
alice = "0xB0B"
[package]
セクションはパッケージを記述するために使用されます。このセクションのフィールドはチェーン上には公開されませんが、ツーリングやリリース管理で使用されます。また、コンパイラのMoveエディションも指定します。
name
- インポートするときのパッケージ名version
- パッケージのバージョン、リリース管理で使用できるedition
- Move言語のバージョン、現在有効な値は2024のみ[dependencies]
セクションは、プロジェクトの依存関係を指定するために使用されます。各依存関係はキーと値のペアで指定され、キーは依存関係の名前、値は依存関係の指定に相当します。依存関係の指定には、GitリポジトリのURLやローカルディレクトリへのパスが使用できます。
# git repository
Sui = { git = "<https://github.com/MystenLabs/sui.git>", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" }
# local directory
MyPackage = { local = "../my-package" }
パッケージは、他のパッケージからアドレスをインポートすることもできます。たとえば、Sui dependencyは std
と sui
アドレスをプロジェクトに追加します。これらのアドレスは、コード内でアドレスのエイリアスとして使うことができます。
時々、依存関係に同じパッケージのバージョンが競合する場合があります。たとえば、異なるバージョンのSuiパッケージを使用する2つの依存関係がある場合、[dependencies]
セクションで依存関係を上書きできます。そのためには、依存関係にoverride
フィールドを追加します。[dependencies]
セクションで指定された依存関係のバージョンは、依存関係そのもので指定されたバージョンの代わりに使用されます。
[dependencies]
Sui = { override = true, git = "<https://github.com/MystenLabs/sui.git>", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" }