Build a Transaction

[Previous << Get a Transaction](https://qiita.com/flowcadence/items/0bc44bcc8d5f7c71b7dc)
[Next >> Build a Complex Transaction](https://qiita.com/flowcadence/items/af26fea25dbea5eb6599)

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

Flow CLI には、承認者アカウント、支払者アカウント、提案者アカウントを指定するオプションと一緒にトランザクションを構築するコマンドが用意されています。

`build`コマンドは署名を作成せず、その代わりに`sign`および`send-signed`コマンドと併用するように設計されています。

この機能は次の順序で使用します。
1. 以下のコマンド（`build`）を使用してトランザクションを構築します。
1. `sign`コマンドを使用して、ビルドのプロセスで指定した各アカウントで署名します。
1. `send-signed`コマンドを使用して、署名済みのトランザクションをFlowネットワークに送信します。
```ruby
flow transactions build <code filename> [<argument> <argument>...] [flags]
```

<h1>Example Usage</h1>

```ruby
> flow transactions build ./transaction.cdc "Meow" \
  --authorizer alice \
  --proposer bob \
  --payer charlie \
  --filter payload --save built.rlp

ID		e8c0a69952fbe50a66703985e220307c8d44b8fa36c76cbca03f8c43d0167847
Payer		e03daebed8ca0615
Authorizers	[f3fcd2c1a78f5eee]

Proposal Key:	
    Address	179b6b1cb6755e31
    Index	0
    Sequence	1

No Payload Signatures

No Envelope Signatures


Arguments (1):
    - Argument 0: {"type":"String","value":"Meow"}


Code

transaction(greeting: String) {
  let guest: Address

  prepare(authorizer: &Account) {
    self.guest = authorizer.address
  }

  execute {
    log(greeting.concat(",").concat(self.guest.toString()))
  }
}


Payload:
f9013df90138b8d17472616e...73616374696f6e286eeec0c0
```
ファイルからのJSON形式の引数の例:
```ruby
> flow transactions build tx1.cdc --args-json "$(cat args.json)"
```

<h1>Arguments</h1>

<h3>Code Filename</h3>

* Name: `filename`
* Valid inputs: Any filename and path valid on the system.

最初の引数は、実行するトランザクションを含んだCadenceファイルへのパスです。


<h3>Arguments</h3>

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

ソースコードの型に一致する引数の値を、同じ順序で入力して渡します。複雑な引数の値の渡し方については、[send transaction](https://qiita.com/flowcadence/items/8a5bcb87dc291815532d#example-usage)のドキュメントを参照してください。

<h1>Flags</h1>

<h3>Payer</h3>

* Flag: `--payer`
* Valid Inputs: Flow address or account name from configuration.
* Default: service account

トランザクションに署名する際にトランザクションフィーの支払者として使用するアカウントの名前を指定します。支払者の詳細については、[こちら](https://qiita.com/flowcadence/items/6393a2af33f82475a7ca)をご覧ください。

<h3>Proposer</h3>

* Flag: `--proposer`
* Valid inputs: Flow address or account name from configuration.
* Default: service account

トランザクションに署名する際に提案者として使用するアカウントの名前を指定します。アカウントはFlowの設定内で定義する必要があります。

<h3>Proposer Key Index</h3>

* Flag: `--proposer-key-index`
* Valid inputs: number of existing key index
* Default: 0

提案者アカウントのキーインデックスを指定します。

<h3>Authorizer</h3>

* Flag: `--authorizer`
* Valid Inputs: Flow address or account name from configuration.
* Default: service account

トランザクションに追加する承認者のアドレス。承認者の詳細については、[こちら](https://qiita.com/flowcadence/items/6393a2af33f82475a7ca)をご覧ください。

<h3>Arguments JSON</h3>

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

Cadenceトランザクションに渡される引数はCadence JSONフォーマットで指定します。Cadence JSONフォーマットは、`type`および`value`のキーを含みます。それぞれ[こちらで説明されて](https://qiita.com/flowcadence/items/24135a1ea2f755e7fd19)います。

<h3>Gas Limit</h3>

* Flag: `--gas-limit`
* Valid inputs: an integer greater than zero.
* Default: `1000`

このトランザクションのガスリミットを指定します。

<h3>Host</h3>

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

コマンドの実行に使用する Access API のホスト名を指定します。

<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>Include Fields</h3>

* Flag: `--include`
* Valid inputs: `code`, `payload`, `signatures`

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

<h3>Filter</h3>

* Flag: `--filter`
* Short Flag: `-x`
* Valid inputs: 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: valid filename

結果を保存したいファイル名を指定してください。

<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: valid filename

設定ファイルへのパスを指定します。`-f` フラグを複数回使用して複数の設定ファイルをマージすることもできます。

<h3>Version Check</h3>

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

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

*Last updated on **Dec 9, 2024** by **Alex***

翻訳元

https://developers.flow.com/tools/flow-cli/transactions/build-transactions

***
<b>[Previous << Get a Transaction](https://qiita.com/flowcadence/items/0bc44bcc8d5f7c71b7dc)
</b>

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

<b>[Next >> Build a Complex Transaction](https://qiita.com/flowcadence/items/af26fea25dbea5eb6599)</b>