Deploy a Contract

[Previous << Create an Account](https://qiita.com/flowcadence/items/4348fc03cefc88920920)
[Next >> Update a Contract](https://qiita.com/flowcadence/items/f0975b75fccd4dd8f0ad)

https://qiita.com/flowcadence/items/3073d69c6e9895e68b5a#flow-cli-と-fcl

Flow CLI を使用して、Flowのアカウントに新しいコントラクトをデプロイします。
```ruby
flow accounts add-contract <filename> [<argument> <argument>...] [flags]
```
⚠️ Deprecation notice：name引数を使用してのコントラクトを追加するコマンドは、まもなくdeprecatedになります。
```ruby
flow accounts add-contract <name> <filename> [<argument> <argument>...] [flags]
```
<h1>Example Usage</h1>

```ruby
> flow accounts add-contract ./FungibleToken.cdc

Contract 'FungibleToken' deployed to the account 0xf8d6e0586b0a20c7

Address	 0xf8d6e0586b0a20c7
Balance	 99999999999.70000000
Keys	 1

Key 0	Public Key		 640a5a359bf3536d15192f18d872d57c98a96cb871b92b70cecb0739c2d5c37b4be12548d3526933c2cda9b0b9c69412f45ffb6b85b6840d8569d969fe84e5b7
	Weight			 1000
	Signature Algorithm	 ECDSA_P256
	Hash Algorithm		 SHA3_256
	Revoked 		 false
	Sequence Number 	 6
	Index 			 0

Contracts Deployed: 1
Contract: 'FungibleToken'
```
<b>Testnet Example</b>

```ruby
> flow accounts add-contract ./FungibleToken.cdc --signer alice --network testnet

Contract 'FungibleToken' deployed to the account 0xf8d6e0586b0a20c7

Address	 0xf8d6e0586b0a20c7
Balance	 99999999999.70000000
Keys	 1

Key 0	Public Key		 640a5a359bf3536d15192f18d872d57c98a96cb871b92b70cecb0739c2d5c37b4be12548d3526933c2cda9b0b9c69412f45ffb6b85b6840d8569d969fe84e5b7
	Weight			 1000
	Signature Algorithm	 ECDSA_P256
	Hash Algorithm		 SHA3_256
	Revoked 		 false
	Sequence Number 	 6
	Index 			 0

Contracts Deployed: 1
Contract: 'FungibleToken'
```
*Make sure alice account is defined in flow.json*

<h1>Arguments</h1>

<h3>Name</h3>

* Name: `name`
* Valid inputs: any string value.

スマートコントラクトのソースコードで定義されているスマートコントラクトの名前。

⚠️ 廃止予定のお知らせ：name引数を使用する必要はなく、filename引数のみを使用してください。

<h3>Filename</h3>

* Name: `filename`
* Valid inputs: a path in the current filesystem.

コントラクトのソースコードを含むファイルへのパス。

<h3>Arguments</h3>

* Name: `argument`
* Valid inputs: valid [cadence values](https://qiita.com/flowcadence/items/24135a1ea2f755e7fd19) matching argument type in transaction code.

ソースコードの対応する型に一致する引数の値を入力し、同じ順序で渡します。

Example:
```ruby
> flow accounts add-contract ./contract.cdc Hello 2
```
Transaction code:
```ruby
access(all) contract HelloWorld {
    init(a:String, b:Int) {
    }
}
```

<h1>Flags</h1>

<h3>Signer</h3>

* Flag: `--signer`
* Valid inputs: the name of an account defined in the configuration (`flow.json`)

トランザクションの署名に使用するアカウント名を指定します。

<h3>Arguments JSON</h3>

* Flag: `--args-json`
* Valid inputs: arguments in JSON-Cadence form.
* Example: `flow accounts add-contract ./tx.cdc '[{"type": "String", "value": "Hello"}]'`

Cadence トランザクションに渡す引数は、Cadence JSON フォーマットで指定します。Cadence JSON フォーマットは、`type`および`value`のキーが含みます。[こちらにドキュメントがあります](https://qiita.com/flowcadence/items/24135a1ea2f755e7fd19)。

<h3>Include Fields</h3>

* Flag: `--include`
* Valid inputs: `contracts`

結果の出力に含めるフィールドを指定します。テキスト出力のみに適用されます。

<h3>Host</h3>

* Flag: `--host`
* Valid inputs: an IP address or hostname.
* Default: `127.0.0.1:3569` (Flow Emulator)

コマンドを実行する際に使用する Access API のホスト名を指定します。このフラグは、`--network` フラグで定義されたホストをすべて上書きします。

<h3>Network Key</h3>

* Flag: `--network-key`
* Valid inputs: ホストのネットワーク公開鍵の 16 進数文字列

コマンドを実行する際に、セキュアなGRPCクライアントを作成するために使用するAccess APIのネットワーク公開鍵を指定します。

<h3>Network</h3>

* Flag: `--network`
* Short Flag: `-n`
* Valid inputs: the name of a network defined in the configuration (`flow.json`)
* Default: `emulator`

どのネットワークに対してコマンドを実行するのかを指定します。

<h3>Filter</h3>

* Flag: `--filter`
* Short Flag: `-x`
* Valid inputs: a case-sensitive name of the result property.

結果から、唯一の値として取得したいプロパティの名前を指定します。

<h3>Output</h3>

* Flag: `--output`
* Short Flag: `-o`
* Valid inputs: `json`, `inline`

コマンド結果のフォーマットを指定します。

<h3>Save</h3>

* Flag: `--save`
* Short Flag: `-s`
* Valid inputs: a path in the current filesystem.

結果を保存したいファイル名を指定します。

<h3>Log</h3>

* Flag: `--log`
* Short Flag: `-l`
* Valid inputs: `none`, `error`, `debug`
* Default: `info`

ログレベルを指定します。コマンド実行中に表示する出力を制御します。

<h3>Configuration</h3>

* Flag: `--config-path`
* Short Flag: `-f`
* Valid inputs: a path in the current filesystem.
* Default: `flow.json`

`flow.json`コンフィギュレーションファイルへのパスを指定します。`-f`フラグを複数回使用して複数のコンフィグレーションファイルをマージすることもできます。

<h3>Version Check</h3>

* Flag: `--skip-version-check`
* Default: `false`

低速なネットワーク接続における処理を高速化するために、起動時のバージョンチェックをスキップします。

*Last updated on **Nov 7, 2024** by Giovanni Sanchez*

翻訳元

https://developers.flow.com/tools/flow-cli/accounts/account-add-contract

***



<b>Flow BlockchainのCadence version1.0ドキュメント (Deploy a Contract)</b>



***
<b>[Previous << Create an Account](https://qiita.com/flowcadence/items/4348fc03cefc88920920)
</b>

[Flow blockchain / Cadence version1.0ドキュメント](https://qiita.com/flowcadence/items/3073d69c6e9895e68b5a) (Deploy a Contract)

<b>[Next >> Update a Contract](https://qiita.com/flowcadence/items/f0975b75fccd4dd8f0ad)</b>