BlockchainTransaction (for ARK)
BlockchainTransaction[assoc]
連想 assoc の構成要素から構築されたARKブロックチェーンのトランザクションを表す.
詳細
- ARKブロックチェーントランザクションの記号表現を与える.トランザクションを送信することはせず,トランザクションに署名することもない.
- BlockchainTransaction[…][prop]は,トランザクションの特性 prop の値を与える.
- 次のARKトランザクションタイプがサポートされている.タイプは連想 assoc の"Type"要素を使って指定する.
-
"Transfer" 値のストアと値の転送 "SecondSignature" アドレスに第2署名を加える "DelegateRegistration" アドレスをデリゲートとして登録する "Vote" デリゲートに投票する "IPFS" IPFS CIDをブロックチェーンに保存する "DelegateResignation" デリゲートのステータスを取り下げる "MultiPayment" 組み合せた複数の支払いを有効にする "MultiSignature" 多重署名のトランザクション - "Transfer"タイプのトランザクションには,次の要素が必要である.
-
"BlockchainBase" 使用するブロックチェーン "Recipient" 目的アドレス "Amount" 送信するARKtoshiの量 - "Transfer"タイプには次の追加的要素も与えることができる.
-
"Type" トランザクションタイプ "Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 "SenderPublicKey" 送信者アドレスの公開鍵 "VendorField" 最大サイズが255バイトのデータフィールド - "SecondSignature"タイプのトランザクションには,次の要素が必要である.
-
"BlockchainBase" 使用するブロックチェーン "Type" トランザクションタイプ "SecondPublicKey" アドレスに割り当てる第2公開鍵 - "SecondSignature"タイプに次の追加要素を与えることができる.
-
"Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 "SenderPublicKey" 送信者アドレスの公開鍵 - "DelegateRegistration"タイプのトランザクションには,次の要素が必要である.
-
"BlockchainBase" 使用するブロックチェーン "Type" トランザクションタイプ "Username" 登録するユーザ名 - "DelegateRegistration"タイプには次の追加的要素も与えることができる.
-
"Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 "SenderPublicKey" 送信者アドレスの公開鍵 - "Vote"タイプのトランザクションには,次の要素が必要である.
-
"BlockchainBase" 使用するブロックチェーン "Type" トランザクションタイプ "Delegate" 投票するデリゲートのユーザ名または公開鍵 - "Vote"タイプには次の追加的要素も与えることができる.
-
"Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 "SenderPublicKey" 送信者アドレスの公開鍵 - タイプ"IPFS"のトランザクションについては,次の要素を与えなければならない.
-
"BlockchainBase" 使用するブロックチェーンベース "Type" トランザクションタイプ "CID" IPFSアセットのCID - "IPFS"タイプには次の追加的要素も与えることができる.
-
"Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 "SenderPublicKey" 送信者アドレスの公開鍵 - タイプ "DelegateResignation"のトランザクションについては,次の要素を与えなければならない.
-
"BlockchainBase" 使用するブロックチェーンベース "Type" トランザクションのタイプ - "DelegateResignation"タイプには次の追加的要素も与えることができる.
-
"Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 "SenderPublicKey" 送信者アドレスの公開鍵 - タイプ"MultiPayment"のトランザクションについては,次の要素を与えなければならない.
-
"BlockchainBase" 使用するブロックチェーンベース "Type" トランザクションのタイプ "Payments" 各支払いについての連想のリスト - "MultiPayment"タイプには次の追加的要素も与えることができる.
-
"Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 "SenderPublicKey" 送信者アドレスの公開鍵 - "Payments"リストの各連想は次の項目を持たなければならない.
-
"Amount" 送信するARKtoshisの量 "Recipient" 宛先アドレス - タイプ"MultiSignature"のトランザクションについては,次の要素を与えなければならない.
-
"BlockchainBase" 使用するブロックチェーンベース "Type" トランザクションのタイプ "PublicKeys" この多重署名アドレスの全参加者の公開鍵のリスト "MinimumKeys" この多重署名アドレスを送信者として送信するために必要な署名の最小数 "SenderPublicKey" 送信者アドレスの公開鍵 - "MultiSignature"タイプには次の追加的要素も与えることができる.
-
"Fee" 含まれる変動手数料 "TransactionCount" 現行の送信者のトランザクション数+1 - トランザクションの送信者が多重署名アドレスの場合は,トランザクション作成時に"SenderPublicKey"フィールドが必須となる.
- BlockchainTransactionは,ARKのメインネット(デフォルト)とdevnetのトランザクションを表すことができる.これらのネットワークの指定には,必要とされる連想あるいはBlockchainBaseオプションの中で"BlockchainBase"の値を使う.
例題
すべて開く すべて閉じる例 (1)
スコープ (16)
送金トランザクション (3)
簡単な"Transfer"トランザクションを作成する."Fee"が与えられていないので,ブロックチェーンの固定手数料を使う:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi",
"Amount" -> 5000000|>]"Transfer"トランザクションを作り,変動手数料を指定する:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "Transfer",
"Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi",
"Amount" -> 5000000,
"Fee" -> 1000000|>]"Transfer"トランザクションを作り,変動手数料とベンダーフィールドを指定する:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "Transfer",
"Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi",
"Amount" -> 5000000,
"Fee" -> 1000000,
"VendorField" -> "Sent from Wolfram Language"|>]第2署名トランザクション (1)
secondKeys = GenerateAsymmetricKeyPair[Method -> <|"Type" -> "EllipticCurve", "CurveName" -> "secp256k1", "Compressed" -> True|>]関連付けられたアドレスの第2署名として公開鍵を割り当るトランザクションを作る:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "SecondSignature",
"SecondPublicKey" -> secondKeys["PublicKey"]|>]デリゲート登録トランザクション (2)
固定手数料を使ってデリゲートとしてアドレスを登録するトランザクションを作る:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateRegistration",
"Username" -> "pieros"|>]変動手数料を使ってデリゲートとしてアドレスを登録するトランザクションを作る:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateRegistration",
"Fee" -> 200000000,
"Username" -> "pieros"|>]投票トランザクション (3)
賛成票 (1)
delegate = BlockchainAddressData["boldninja", "PublicKey", BlockchainBase -> {"ARK", "Devnet"}]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "Vote",
"Delegate" -> {delegate, "Vote"}|>]無投票 (1)
delegate = BlockchainAddressData["boldninja", "PublicKey", BlockchainBase -> {"ARK", "Devnet"}]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "Vote",
"Delegate" -> {delegate, "Unvote"}|>]IPFSトランザクション (2)
固定手数料でIPFSアセットのCIDを含むトランザクションを作成する:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "IPFS",
"CID" -> "QmT2yUde9NFsX6J7y97VGu8CeA5tLEshu5V7PVHeRqUcDA"|>]変動手数料でIPFSアセットのCIDを含むトランザクションを作成する:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "IPFS",
"Fee" -> 8000000,
"CID" -> "QmT2yUde9NFsX6J7y97VGu8CeA5tLEshu5V7PVHeRqUcDA"|>]デリゲート辞任トランザクション (2)
固定手数料でデリゲートとして辞任するトランザクションを作成する:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateResignation"|>]変動手数料でデリゲートとして辞任するトランザクションを作成する:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateResignation",
"Fee" -> 2000000000|>]複数の支払いトランザクション (2)
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "MultiPayment",
"Payments" -> {<|"Amount" -> Quantity[1000, "DArktoshis"], "Recipient" -> "DADxmK6VvgFRJ1USzc9RVFUbtjBb1u7fKk"|>, <|"Amount" -> Quantity[2000, "DArktoshis"], "Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi"|>, <|"Amount" -> Quantity[3000, "DArktoshis"], "Recipient" -> "DEZ6xJT8rQGBAuigPrchXAXiskBQZUrqe4"|>}|>]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "MultiPayment",
"Fee" -> 8000000,
"Payments" -> {<|"Amount" -> Quantity[1000, "DArktoshis"], "Recipient" -> "DADxmK6VvgFRJ1USzc9RVFUbtjBb1u7fKk"|>, <|"Amount" -> Quantity[2000, "DArktoshis"], "Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi"|>, <|"Amount" -> Quantity[3000, "DArktoshis"], "Recipient" -> "DEZ6xJT8rQGBAuigPrchXAXiskBQZUrqe4"|>}|>]多重署名トランザクション (1)
参加者の公開鍵を使って多重署名アドレスを登録するトランザクションを作成する:
keys1 = GenerateAsymmetricKeyPair["ARK"]keys2 = GenerateAsymmetricKeyPair["ARK"]keys3 = GenerateAsymmetricKeyPair["ARK"]senderPublicKey = BlockchainAddressData["DNeJSpEqKBy3oJ5MXrfuchwWj5a4JXxTQp", "PublicKey", BlockchainBase -> {"ARK", "Devnet"}]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "MultiSignature",
"MinimumKeys" -> 2,
"PublicKeys" -> {keys1["PublicKey"], keys2["PublicKey"], keys3["PublicKey"]},
"SenderPublicKey" -> senderPublicKey
|>]arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "MultiSignature",
"MinimumKeys" -> 2,
"PublicKeys" -> {keys1["PublicKey"], keys2["PublicKey"], keys3["PublicKey"]},
"SenderPublicKey" -> senderPublicKey
|>]arkTX["MultiSignatureAddress"]オプション (2)
BlockchainBase (2)
Devnet (1)
アプリケーション (2)
ARK BlockchainTransactionを作る:
arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"}, "Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi", "Fee" -> 500000,
"Amount" -> 5000000|>]秘密鍵オブジェクトを使ってトランザクションオブジェクトに署名する:
arkTXSigned = BlockchainTransactionSign[arkTX, PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{87696465113910176578204891522220454745022058862683894191659089442189614354344,
72502334495718524445709347674468614586757811071611466963 ... 8003037045219516869875358425443035690542436100010227,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["AsHicLXwy33F53No6hMGWy33lkXzIX4FHPfAe4pJsY+o"],
"PrivateByteArray" -> ByteArray["oihE/G/Fmu7Za7kEhAHmpdhhwhHLx+zbr4WQr3ie8PM="]]]]署名したトランザクションをARKブロックチェーンに送信する:
BlockchainTransactionSubmit[arkTXSigned]多重署名アドレスを使うARK BlockchainTransactionを作る:
senderPublicKey = BlockchainAddressData["DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE", "PublicKey", BlockchainBase -> {"ARK", "Devnet"}]arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Recipient" -> "DGJkJXa9gq38kjSCZnvqNndn7jSWrd2zrT",
"Amount" -> Quantity[520000000, "DARKtoshis"],
"SenderPublicKey" -> senderPublicKey|>]BlockchainAddressData["DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE", "MultiSignature", BlockchainBase -> {"ARK", "Devnet"}]["MinimumKeys"]BlockchainTransactionSign[arkTX, {
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{57143976469766999610290879972632270167816533995122692469610637510833791145289,
10851753758690387871590145496903056174523413855971774365 ... 8995775012947838394065678172356468788225412929600241,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["An5WWDH2xsLdlHqVZXPNykyC/227dNX4udiF0XX//ZVJ"],
"PrivateByteArray" -> ByteArray["WRn7J2df1Dqv0nY7Hm3BOCJglO/a12+WWZWPIrHquvE="]]]|>,
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{36993751054435703412341007594940267743946195102568099488380666233303262143610,
10423346436196938680821092747767378668456564818288286644 ... 5166889460292483674185938995515423680963638343340623,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["A1HJuJl7Ks5J4Sejgc0Q3et28NYIQKwxgjoUcSEu6aR6"],
"PrivateByteArray" -> ByteArray["s01n9oGqdDM+o/dgEN72f0azYlg0p2/U/jzPSb2Fkk8="]]]|>}]署名したトランザクションをARKブロックチェーンに送信する:
BlockchainTransactionSubmit[BlockchainTransaction[Association["BlockchainBase" -> {"ARK", "Devnet"}, "Signed" -> True,
"Type" -> "Transfer", "Fee" -> Quantity[10000000, "DARKtoshis"], "TransactionCount" -> 1,
"Sender" -> "DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE",
"Recipie ... b9f1ccfe108e6b4740f15ba487e69c64925c7aac16c83390380fb8\
6c88812d6e71773b0dfceb6133e89eef8003391a38753a15665", "02bf84c8b7021195b9efdd0276827b805ae2294a666f\
91932e4176a2cf5f2937a8601853468a35eceaca0f02fb65f811c0b17c2c4b4afb9ac1966bb332e3bdfdd6"}]]]考えられる問題 (1)
不正な受信者 (1)
無効なアドレスを与えると$Failed出力が返される:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Recipient" -> "AAAAAA",
"Amount" -> 5000000|>]関連するガイド
履歴
2019 で導入 (12.0)
テキスト
Wolfram Research (2019), BlockchainTransaction, Wolfram言語関数, https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-ARK.html.
CMS
Wolfram Language. 2019. "BlockchainTransaction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-ARK.html.
APA
Wolfram Language. (2019). BlockchainTransaction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-ARK.html
BibTeX
@misc{reference.wolfram_2026_blockchaintransaction, author="Wolfram Research", title="{BlockchainTransaction}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-ARK.html}", note=[Accessed: 14-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_blockchaintransaction, organization={Wolfram Research}, title={BlockchainTransaction}, year={2019}, url={https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-ARK.html}, note=[Accessed: 14-July-2026]}