BlockchainTransaction (for ARK)
BlockchainTransaction[assoc]
表示一个根据关联 assoc 中的分量构建的 ARK 区块链交易.
更多信息
- 给出 ARK 区块链交易的符号表示;它不提交交易,并且交易是未签名的.
- BlockchainTransaction[…][prop] 给出交易的属性 prop 的值.
- 支持以下 ARK 交易类型. 用关联 assoc 的元素 "Type" 指定类型:
-
"Transfer" 存储的价值和转移的价值 "SecondSignature" 为地址添加第二个签名 "DelegateRegistration" 将地址注册为受托人 "Vote" 投票给受托人 "IPFS" 将 IPFS CID 保存到区块链上 "DelegateResignation" 撤消受托人表身份 "MultiPayment" 启用多种组合付款 "MultiSignature" 多重签名的交易 - 对于类型为 "Transfer" 的交易,必须给出以下元素:
-
"BlockchainBase" 要使用的区块链基链 "Recipient" 目标地址 "Amount" 要转移的 ARKtoshis 的数量 - 对于类型 "Transfer",还可以给出以下其他元素:
-
"Type" 交易的类型 "Fee" 要包括的动态费用 (dynamic fee) "TransactionCount" 当前发送方的交易计数加一 "SenderPublicKey" 发送方地址的公钥 "VendorField" 数据字段,最大大小为 255 个字节 - 对于类型为 "SecondSignature" 的交易,必须给出以下元素:
-
"BlockchainBase" 要使用的区块链基链 "Type" 交易的类型 "SecondPublicKey" 分配给地址的第二公钥 - 对于类型 "SecondSignature",还可以给出以下其他元素:
-
"Fee" 要包括的动态费用 "TransactionCount" 当前发送方的交易计数加一 "SenderPublicKey" 发送方地址的公钥 - 对于类型为 "DelegateRegistration" 的交易,必须给出以下元素:
-
"BlockchainBase" 要使用的区块链基链 "Type" 交易的类型 "Username" 要注册的用户名 - 对于类型 "DelegateRegistration",还可以给出以下其他元素:
-
"Fee" 要包括的动态费用 "TransactionCount" 当前发送方的交易计数加一 "SenderPublicKey" 发送方地址的公钥 - 对于类型为 "Vote" 的交易,必须给出以下元素:
-
"BlockchainBase" 要使用的区块链基链 "Type" 交易的类型 "Delegate" 要投票给的受托人的用户名或公钥 - 对于类型 "Vote",还可以给出以下其他元素:
-
"Fee" 要包括的动态费用 "TransactionCount" 当前发送方的交易计数加一 "SenderPublicKey" 发送方地址的公钥 - 对于类型为 "IPFS" 的交易,必须给出以下元素:
-
"BlockchainBase" 要使用的区块链基链 "Type" 交易的类型 "CID" IPFS 资产的 CID - 对于类型 "IPFS",还可以给出以下其他元素:
-
"Fee" 要包括的动态费用 "TransactionCount" 当前发送方的交易计数加一 "SenderPublicKey" 发送方地址的公钥 - 对于类型为 "DelegateResignation" 的交易,必须给出以下元素:
-
"BlockchainBase" 使用的区块链基础 "Type" 交易类型 - 对于类型 "DelegateResignation",还可以给出以下其他元素:
-
"Fee" 要包括的动态费用 "TransactionCount" 当前发送方的交易计数加一 "SenderPublicKey" 发送方地址的公钥 - 对于类型为 "MultiPayment" 的交易,必须给出以下元素:
-
"BlockchainBase" 使用的区块链基础 "Type" 交易类型 "Payments" 每次付款的关联列表 - 对于类型 "MultiPayment",还可以给出以下其他元素:
-
"Fee" 要包括的动态费用 "TransactionCount" 当前发送方的交易计数加一 "SenderPublicKey" 发送方地址的公钥 - "Payments" 列表中的每个关联都必须具有以下条目:
-
"Amount" 转移的 ARKtoshis 数量 "Recipient" 目的地址 - 对于类型为 "MultiSignature" 的交易,必须给出以下元素:
-
"BlockchainBase" 使用的区块链基础 "Type" 交易类型 "PublicKeys" 该多重签名地址的所有参与者的公共密钥列表 "MinimumKeys" 使用此多重签名地址作为发送方发送事务所需的最小签名数 "SenderPublicKey" 发件人地址的公钥 - 对于类型 "MultiSignature",还可以给出以下其他元素:
-
"Fee" 要包括的动态费用 "TransactionCount" 当前发送方的交易计数加一 - 如果交易的发送者是多重签名地址,则在创建交易时 "SenderPublicKey" 字段成为必填字段.
- BlockchainTransaction 可表示 ARK mainnet(默认)和 devnet 交易. 要想指定这些网络,请在相应的关联中指定 "BlockchainBase" 的值或使用 BlockchainBase 选项.
范例
打开所有单元 关闭所有单元基本范例 (1)
范围 (16)
Transfer 交易 (3)
创建一个简单的 "Transfer" 交易. 因为没有提供 "Fee",所以使用区块链的固定费用:
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi",
"Amount" -> 5000000|>]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"|>]Second Signature 交易 (1)
secondKeys = GenerateAsymmetricKeyPair[Method -> <|"Type" -> "EllipticCurve", "CurveName" -> "secp256k1", "Compressed" -> True|>]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "SecondSignature",
"SecondPublicKey" -> secondKeys["PublicKey"]|>]Delegate Registration 交易 (2)
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateRegistration",
"Username" -> "pieros"|>]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateRegistration",
"Fee" -> 200000000,
"Username" -> "pieros"|>]Vote 交易 (3)
Upvote (1)
Unvote (1)
IPFS 交易 (2)
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "IPFS",
"CID" -> "QmT2yUde9NFsX6J7y97VGu8CeA5tLEshu5V7PVHeRqUcDA"|>]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "IPFS",
"Fee" -> 8000000,
"CID" -> "QmT2yUde9NFsX6J7y97VGu8CeA5tLEshu5V7PVHeRqUcDA"|>]Delegate Resignation 交易 (2)
BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateResignation"|>]BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "DelegateResignation",
"Fee" -> 2000000000|>]Multipayment 交易 (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"|>}|>]Multisignature 交易 (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="]]]]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="]]]|>}]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 语言. 2019. "BlockchainTransaction." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-ARK.html.
APA
Wolfram 语言. (2019). BlockchainTransaction. Wolfram 语言与系统参考资料中心. 追溯自 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: 07-August-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: 07-August-2026]}