Previous << Add Project Contracts
Next >> Create Emulator Snapshot
flow project deploy
このコマンドは、flow.json
ファイルで定義された設定に基づいて、プロジェクトのスマートコントラクトを自動的にデプロイします。
このコマンドを使用する前に、プロジェクトのコントラクトとデプロイターゲットの設定方法についてをお読みください。
Example Usage
> flow project deploy --network=testnet
Deploying 2 contracts for accounts: my-testnet-account
NonFungibleToken -> 0x8910590293346ec4
KittyItems -> 0x8910590293346ec4
✨ All contracts deployed successfully
上記の例では、あなたのflow.json
ファイルは次のようになります。
{
...
"contracts": {
"NonFungibleToken": "./cadence/contracts/NonFungibleToken.cdc",
"KittyItems": "./cadence/contracts/KittyItems.cdc"
},
"deployments": {
"testnet": {
"my-testnet-account": ["KittyItems", "NonFungibleToken"]
}
},
...
}
以下は、コントラクトソースファイルの概略です。
access(all) contract NonFungibleToken {
/* ... */
}
import NonFungibleToken from "./NonFungibleToken.cdc"
access(all) contract KittyItems {
/* ... */
}
Initialization Arguments
初期化(init)引数を取るスマートコントラクトをデプロイするには、それらの引数を設定に追加することで実現できます。
各デプロイは、デプロイ時に使用される引数を指定したname
とargs
キーを含んだオブジェクトとして指定することが出来ます。例:
...
"deployments": {
"testnet": {
"my-testnet-account": [
"NonFungibleToken", {
"name": "Foo",
"args": [
{ "type": "String", "value": "Hello World" },
{ "type": "UInt32", "value": "10" }
]
}]
}
}
...
⚠️ Warning:作業を始める前に、秘密鍵の保存に関するベストプラクティスを学ぶために、Flow CLI セキュリティガイドラインをお読みいただくことをお勧めします。
Dependency Resolution
deploy
コマンドは、デプロイされるすべてのコントラクトのインポート文(依存関係)を解決しようと試みます。
依存関係が見つかると、CLIは、依存関係のすべてがデプロイされるまで、どのコントラクトもデプロイされないように、コントラクトを決定論的な順序でデプロイします。循環依存関係(cyclic dependencies)の発生により、このような順序付けが存在しなくなると、コマンドはエラーを返します。
上記の例では、Foo
が常に先にデプロイされます。
Address Replacement
すべての依存関係を解決した後、deploy
コマンドは各コントラクトを書き換えます、そうすることで依存関係はソースファイルの場所からではなくターゲットアドレスからインポートされるようになります。
書き換えられたバージョンは、それぞれのターゲットにデプロイされ、元のコントラクトファイルは変更されません。
上記の例では、KittyItems
コントラクトは次のように書き換えられます。
import NonFungibleToken from 0xf8d6e0586b0a20c7
access(all) contract KittyItems {
/* ... */
}
Merging Multiple Configuration Files
-f
フラグを複数回使用して、複数の設定ファイルをマージすることができます。
2つ以上の設定ファイル間で設定のフィールドに重複がある場合、結果として得られる設定の重複したフィールドの値は、-fフラグで指定された設定ファイルのリストでより右側に位置する設定ファイルから取得されます。
以下に、複数の設定ファイルを使用したdeploy
コマンドの例を示します。
{
"accounts": {
"admin-account": {
"address": "f8d6e0586b0a20c7",
"key": "21c5dfdeb0ff03a7a73ef39788563b62c89adea67bbb21ab95e5f710bd1d40b7"
},
"test-account": {
"address": "f8d6e0586b0a20c8",
"key": "52d5dfdeb0ff03a7a73ef39788563b62c89adea67bbb21ab95e5f710bd1d51c9"
}
}
}
{
"accounts":{
"admin-account":{
"address":"f1d6e0586b0a20c7",
"key":"3335dfdeb0ff03a7a73ef39788563b62c89adea67bbb21ab95e5f710bd1d40b7"
}
}
}
上記の例では、複数の設定ファイルを使用してdeploy
コマンドを実行しようとした時に、設定ファイルのaccounts
フィールドの中のadmin-account
アカウントが重複している時、結果として得られる設定は次のようになります。
flow project deploy -f flow.json -f private.json
{
"accounts":{
"admin-account":{
"address":"f1d6e0586b0a20c7",
"key":"3335dfdeb0ff03a7a73ef39788563b62c89adea67bbb21ab95e5f710bd1d40b7"
},
"test-account":{
"address":"f8d6e0586b0a20c8",
"key":"52d5dfdeb0ff03a7a73ef39788563b62c89adea67bbb21ab95e5f710bd1d51c9"
}
}
}
Flags
Allow Updates
- Flag:
--update
- Valid inputs:
true
,false
- Default:
false
既存のコントラクトを上書きしてアップグレードするかどうかを指定します。既存のコントラクトと相違のあるコントラクトのみが上書きされます。
Show Update Diff
- Flag:
--show-diff
- Valid inputs:
true
,false
- Default:
false
デプロイ済みのコントラクトと新しいコントラクトの差分を表示し、更新前に承認を求めます。
Host
- Flag:
--host
- Valid inputs: an IP address or hostname.
- Default:
127.0.0.1:3569
(Flow Emulator)
コマンドを実行する際に使用する Access API のホスト名を指定します。このフラグは、--network
フラグで定義されたホストをすべて上書きします。
Network Key
- Flag:
--network-key
- Valid inputs: ホストのネットワーク公開鍵の 16 進数文字列
コマンドを実行する際に、セキュアなGRPCクライアントを作成するために使用するAccess APIのネットワーク公開鍵を指定します。
Network
- Flag:
--network
- Short Flag:
-n
- Valid inputs: the name of a network defined in the configuration (
flow.json
) - Default:
emulator
どのネットワークに対してコマンドを実行するのかを指定します。
Filter
- Flag:
--filter
- Short Flag:
-x
- Valid inputs: a case-sensitive name of the result property.
結果から、唯一の値として取得したいプロパティの名前を指定します。
Output
- Flag:
--output
- Short Flag:
-o
- Valid inputs:
json
,inline
コマンド結果のフォーマットを指定します。
Save
- Flag:
--save
- Short Flag:
-s
- Valid inputs: a path in the current filesystem.
結果を保存したいファイル名を指定します。
Log
- Flag:
--log
- Short Flag:
-l
- Valid inputs:
none
,error
,debug
- Default:
info
ログレベルを指定します。コマンド実行中に表示する出力を制御します。
Configuration
- Flag:
--config-path
- Short Flag:
-f
- Valid inputs: a path in the current filesystem.
- Default:
flow.json
flow.json
コンフィギュレーションファイルへのパスを指定します。-f
フラグを複数回使用して複数のコンフィグレーションファイルをマージすることもできます。
Version Check
- Flag:
--skip-version-check
- Default:
false
低速なネットワーク接続における処理を高速化するために、起動時のバージョンチェックをスキップします。
Last updated on Dec 6, 2024 by Alex Ni
翻訳元
Previous << Add Project Contracts
Flow BlockchainのCadence version1.0ドキュメント (Deploy a Project)