0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Build a Complex Transaction

Last updated at Posted at 2024-12-23

Previous << Build a Transaction
Next >> Sign a Transaction

Simple Transactions

Flow CLI を使用してトランザクションを送信するには、ここに記載されているsendコマンドを使用するだけで実現できます。

Complex Transactions

より複雑なトランザクションを構築したい場合は、Flow CLIが提供するコマンドを使用して、トランザクションの構築、署名、送信を行うことができます。これにより、異なる承認者、署名者、提案者を指定することができます。

複雑なトランザクションの送信プロセスには、以下の3つのステップが含まれます。

  1. build a transaction
  2. sign the built transaction
  3. send signed transaction

各コマンドのフラグと引数については、上記のリンク先で詳細をご確認ください。

Examples

ここでは、複雑なトランザクションの一般的な例を説明します。すべての例は、example configurationを使用しています。

Single payer, proposer and authorizer

最もシンプルなFlow トランザクションでは、単一のアカウントを提案者、支払者、承認者として宣言します。

Build the transaction:

> flow transactions build tx.cdc 
  --proposer alice 
  --payer alice 
  --authorizer alice 
  --filter payload --save tx1

Sign the transaction:

> flow transactions sign tx1 --signer alice 
  --filter payload --save tx2

Submit the signed transaction:

> flow transactions send-signed tx2

Transaction content (tx.cdc):

transaction {
    prepare(signer: &Account) {}
    execute { ... }
}

Single payer and proposer, multiple authorizers

同じ支払者および提案者と宣言するトランザクションだが、トランザクションに署名するには複数の承認者が必要となります。署名の順序が重要であり、支払者は最後に署名しなければならないことに注意してください。

Build the transaction:

> flow transactions build tx.cdc 
  --proposer alice
  --payer alice
  --authorizer bob
  --authorizer charlie 
  --filter payload --save tx1

Sign the transaction with authorizers:

> flow transactions sign tx1 --signer bob
  --filter payload --save tx2
> flow transactions sign tx2 --signer charlie
  --filter payload --save tx3

Sign the transaction with payer:

> flow transactions sign tx3 --signer alice
  --filter payload --save tx4

Submit the signed transaction:

> flow transactions send-signed tx4

Transaction content (tx.cdc):

transaction {
    prepare(bob: &Account, charlie: &Account) {}
    execute { ... }
}

Different payer, proposer and authorizer

異なる支払者、提案者、承認者がそれぞれ個別に署名することを宣言するトランザクション。署名の順序が重要であり、支払者は最後に署名しなければならないことにご注意ください。

Build the transaction:

> flow transactions build tx.cdc 
  --proposer alice 
  --payer bob 
  --authorizer charlie 
  --filter payload --save tx1

Sign the transaction with proposer:

> flow transactions sign tx1 --signer alice 
  --filter payload --save tx2

Sign the transaction with authorizer:

> flow transactions sign tx2 --signer charlie 
  --filter payload --save tx3

Sign the transaction with payer:

> flow transactions sign tx3 --signer bob 
  --filter payload --save tx4

Submit the signed transaction:

> flow transactions send-signed tx4

Transaction content (tx.cdc):

transaction {
    prepare(charlie: &Account) {}
    execute { ... }
}

Single payer, proposer and authorizer but multiple keys

同じ支払者、提案者、承認者を宣言するトランザクションだが、署名者アカウントには2つの鍵があり、それぞれ半分の重みであるので、その2つの鍵が必要である。

Build the transaction:

> flow transactions build tx.cdc 
  --proposer dylan1 
  --payer dylan1
  --authorizer dylan1 
  --filter payload --save tx1

Sign the transaction with the first key:

> flow transactions sign tx1 --signer dylan1 
  --filter payload --save tx2

Sign the transaction with the second key:

> flow transactions sign tx2 --signer dylan2 
  --filter payload --save tx3

Submit the signed transaction:

> flow transactions send-signed tx3

Transaction content (tx.cdc):

transaction {
    prepare(signer: &Account) {}
    execute { ... }
}

Configuration

これは、擬似的な(モック)値を使用した設定例です。

{
    ... 
    "accounts": {
        "alice": {
            "address": "0x1",
            "key": "111...111"
        },
        "bob": {
            "address": "0x2",
            "key": "222...222"
        },
        "charlie": {
            "address": "0x3",
            "key": "333...333"
        },
        "dylan1": {
            "address": "0x4",
            "key": "444...444"
        },
        "dylan2": {
            "address": "0x4",
            "key": "555...555"
        }
    }
    ...
}

Last updated on Dec 11, 2024 by Chase Fleming

翻訳元


Previous << Build a Transaction

Flow BlockchainのCadence version1.0ドキュメント (Build a Complex Transaction)

Next >> Sign a Transaction

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?