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"

セクション(Sections)

パッケージ(Package)

[package]セクションはパッケージを記述するために使用されます。このセクションのフィールドはチェーン上には公開されませんが、ツーリングやリリース管理で使用されます。また、コンパイラのMoveエディションも指定します。

依存関係(Dependencies)

[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は stdsui アドレスをプロジェクトに追加します。これらのアドレスは、コード内でアドレスのエイリアスとして使うことができます。

上書きによるバージョン競合の解決

時々、依存関係に同じパッケージのバージョンが競合する場合があります。たとえば、異なるバージョンの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" }

Dev-dependencies