Flow CLI のDependency Managerはは、プロジェクト外のスマートコントラクトを使用する際に開発プロセスを合理化するため、コアなコントラクトやその他エコシステムのコントラクトを使用する際に、コントラクトのコピー、貼り付け、更新といった手作業を排除していきます。
例えば、FlowToken
スマートコントラクトを使用して新しいアプリケーションを構築したい場合、従来はネットワーク上でそのコントラクトを探し出し、それをローカルプロジェクトにコピーし、flow.json
に追加する必要がありました。このプロセスは、NonFungibleToken
スマートコントラクトのように、依存するインポート先(dependency)の数だけ繰り返す必要があります。Dependency Managerはは、いくつかの簡単なコマンドでこのプロセスを簡素化します。
install
install
コマンドで、全ての依存関係、サブ依存関係を簡単にインストールできます。あなたは特定の依存関係をインストールしたり、flow.json
にリストされている全依存関係をインストールしたりすることができます。
Installing Specific Dependencies
インストールしたいスマートコントラクトのアドレスと名称が分かっている場合(多くの場合、Contract Browserで検索できます)、次の構文を使用できます。
flow dependencies install testnet://7e60df042a9c0868.FlowToken
このコマンドにおいて、文字列 testnet://7e60df042a9c0868.FlowToken
は flow.json
内でsource
として使用されます。また、その内訳は以下です。
- Network:
testnet
- Address:
7e60df042a9c0868
- Contract Name:
FlowToken
これは、ネットワーク上のコントラクトのリモートソースを指しており、それが真の情報の源として使用されます。
Installing Core Contracts Using Simplified Syntax
コアなコントラクトにおいては、Flow Mainnetをデフォルトとする簡略化された構文を使用できます。
flow dependencies install FlowToken
このコマンドは、機能的には次のコマンドと同等です。
flow dependencies install mainnet://1654653399040a61.FlowToken
Installing Multiple Dependencies
複数の依存関係を一度にインストールすることもできます。例えば:
flow dependencies install testnet://7e60df042a9c0868.FlowToken NonFungibleToken
このコマンドは、FlowToken
コントラクト(テストネット)とNonFungibleToken
コントラクト(メインネット)の両方をインストールします。
Installing Dependencies from flow.json
依存関係を指定せずにinstall
コマンドを実行しますと、flow.json
ファイルにリストされたすべての依存関係がインストールされ、それらが最新の状態であることが保証されます。
flow dependencies install
このコマンドは、flow.json
内で指定されたすべての依存関係をチェックし、インストールし、ネットワーク上で変更があった場合は更新します。
Example flow.json Entry
インストール後、あなたのflow.json
ファイルは以下の表記を含むかもしれません。
{
"dependencies": {
"FlowToken": {
"source": "testnet://7e60df042a9c0868.FlowToken",
"aliases": {
"emulator": "0ae53cb6e3f42a79"
}
}
}
}
Other Things to Note
- インストール後、
imports
という名前のローカルフォルダが作成されます。このフォルダは依存関係をローカルに保存しますので、.gitignore
に追加することをお勧めします。 - ネットワーク上のコントラクトが変更された場合、Dependency Managerは
imports
フォルダ内のローカル依存関係を更新するようにプロンプトを出します。dependencyオブジェクトに保存されているハッシュ値は、このチェックのために使用されるので、削除を避けてください。 - 依存関係はあなたのローカルコントラクトと同じ様に機能します。
flow.json
ファイル内のdeployments
にそれらを追加し、flow project deploy
実行でデプロイすることが出来ます。また、スクリプト内、トランザクション内、コントラクト内にインポートすることもできます(例えばimport "FlowToken"
のように)。 - コアコントラクトのエイリアスは、あなたのために自動ですべてのネットワークに追加されます。
discover
discover
コマンドは、あなたがプロジェクトのコアコントラクトを対話的に検索し、インストールするのに役立ちます。コアコントラクトは、Flow Foundationが管理する標準スマートコントラクトであり、Flowエコシステム全体で広く使用されています(コアコントラクトの詳細についてはこちらをご覧ください)。
discover
コマンドを使用するには、以下を実行します。
flow dependencies discover
インストール可能なコアコントラクトのリストが表示されます。
Select any core contracts you would like to install or skip to continue.
Use arrow keys to navigate, space to select, enter to confirm or skip, q to quit:
> [ ] FlowEpoch
[ ] FlowIDTableStaking
[ ] FlowClusterQC
[ ] FlowDKG
[ ] FlowServiceAccount
[ ] NodeVersionBeacon
[ ] RandomBeaconHistory
[ ] FlowStorageFees
[ ] FlowFees
[ ] FungibleTokenSwitchboard
[ ] EVM
インストールしたいコントラクトを選択した後、Enter
キーを押して確定します。選択したコントラクトは、flow.json
ファイルに追加され、あなたのプロジェクト内でアクセスできるようになります。
Last updated on Nov 26, 2024 by Chase Fleming
翻訳元
Flow BlockchainのCadence version1.0ドキュメント (Dependency Manager)