Previous << Development Tools
Next >> Running Cadence Tests
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)