BlockchainTransaction (for Bitcoin Cash)
BlockchainTransaction[assoc]
表示一个由关联结构 assoc 中的组件构建的比特币现金区块链交易.
更多信息
- 该函数返回比特币现金区块链交易的符号化表示;不会提交交易,且交易未被签名.
- BlockchainTransaction[…][prop] 给出该交易的属性 prop 的值.
- 必须提供以下元素:
-
"Inputs" 输入列表,以关联形式提供 "Outputs" 输出列表,以关联形式提供 - 还可提供以下附加元素:
-
"Version" 交易版本号(默认值:1) "LockTime" 交易可被添加到区块链的最早时间或区块高度(默认值:0) - 在 "Inputs" 列表中的每个 association 都必须包含以下条目:
-
"TransactionID" 上一笔交易的哈希值 "Index" 上一交易输出中的索引 - 还可提供以下附加条目:
-
"ScriptString" "" 解锁脚本,又称 scriptSig "SignatureHash" All 签名哈希标志 - "SignatureHash" 的可能值包括:
-
All 签名适用于所有输入和输出 None 签名适用于所有输入,不适用于任何输出 "Single" 签名适用于所有输入,以及与签名输入具有相同索引号的输出 "AllAnyoneCanPay" 签名适用于一个输入和所有输出 "NoneAnyoneCanPay" 签名适用于一个输入,不适用于任何输出 "SingleAnyoneCanPay" 签名适用于一个输入和与其具有相同索引号的输出 - 对于支付到公钥哈希(P2PKH)交易,"Outputs" 列表中的每个关联必须包含以下条目:
-
"Amount" 待转移的比特币现金数量 "Address" 目标P2PKH收款地址 - 对于通用比特币现金交易,可自定义锁定脚本,此时 "Outputs" 列表中的每个关联必须包含以下条目:
-
"Amount" 待转移的比特币现金数量 "ScriptString" 字符串格式的比特币脚本 - BlockchainTransaction 支持表示比特币现金主网(默认)及测试网交易. 如需指定网络,请在所需的关联中使用 "BlockchainBase" 值,或使用 BlockchainBase 选项.
范例
打开所有单元 关闭所有单元基本范例 (1)
创建一个比特币现金交易对象,代表一笔从支付到公钥哈希的交易:
BlockchainTransaction[<|"BlockchainBase" -> {"BitcoinCash", "Testnet"}, "Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>]范围 (4)
自定义非标准脚本 (2)
BlockchainTransaction[<|"BlockchainBase" -> {"BitcoinCash", "Testnet"}, "Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "ScriptString" -> "OP_3 OP_ADD OP_5 OP_EQUAL"|>}|>]BlockchainTransaction[<|"BlockchainBase" -> {"BitcoinCash", "Testnet"}, "Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1, "ScriptString" -> "OP_2"|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>]签名哈希值 (1)
在交易输入中使用不同的 "SignatureHash" 值:
BlockchainTransaction[<|"BlockchainBase" -> {"BitcoinCash", "Testnet"},
"Inputs" -> {
<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1, "SignatureHash" -> "All"|>,
<|"TransactionID" -> "fc06c882b363cad28580c70244ed256a554952ad2fca59d36482a7b3e1a501df", "Index" -> 0, "SignatureHash" -> "Single"|>
}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008665, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>]锁定时间的交易 (1)
BlockchainTransaction[<|"BlockchainBase" -> {"BitcoinCash", "Testnet"},
"LockTime" -> 2000000, "Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>]选项 (2)
BlockchainBase (2)
Mainnet (1)
BlockchainTransaction[<|"Inputs" -> {<|"TransactionID" -> "04857418393e77f8060291bc2faaac30facefbfcd50f1f64df4e2dc2b5f57ecf", "Index" -> 0|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0009, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[49.999, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>, BlockchainBase -> "BitcoinCash"]Testnet (1)
BlockchainTransaction[<|"Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>, BlockchainBase -> {"BitcoinCash", "Testnet"}]应用 (1)
创建比特币现金支付到公钥哈希值 BlockchainTransaction:
bchTX = BlockchainTransaction[<|"Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>, BlockchainBase -> {"BitcoinCash", "Testnet"}]bchTXSigned = BlockchainTransactionSign[bchTX, PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{111371065921687716131772167801914439447104389817514716115511942584632775793360,
5267778301581478541603447949046636935512968567582755066 ... 5414116593206554949956685290123019580109420649791178,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["AvY5yhtA3b1LZ7ggaGApsdJ8zZ3qoRT+C2rkoek909rQ"],
"PrivateByteArray" -> ByteArray["aaEBjTDfGHmkprK/VruG4RW28D1SQB2FMuy2e1n8Pso="]]]]BlockchainTransactionSubmit[bchTXSigned]可能存在的问题 (2)
金额不足 (1)
如果输入引用的未花费交易输出金额不足以覆盖总输出金额,将返回一个 $Failed 输出:
BlockchainTransaction[<|"Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1|>}, "Outputs" -> {<|"Amount" -> Quantity[0.01, "BitcoinCashUnits"], "Address" -> "bchtest:qp7ykfna6xndcyhr5j9h5xx59xj57tvawvjc0de029"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>, BlockchainBase -> {"BitcoinCash", "Testnet"}]输出地址不正确 (1)
提供无效地址将返回一个 $Failed 输出:
BlockchainTransaction[<|"Inputs" -> {<|"TransactionID" -> "4fe6465bbf9ffbd621445e520126aba538d59175a0ba3c6089225e9efbea0a67", "Index" -> 1|>}, "Outputs" -> {<|"Amount" -> Quantity[0.0001, "BitcoinCashUnits"], "Address" -> "AAAAAA"|>,
<|"Amount" -> Quantity[0.008645, "BitcoinCashUnits"], "Address" -> "bchtest:qrm5whh48dvqwlza8kjete78ttsudpz0vs9r7l7arp"|>}|>, BlockchainBase -> {"BitcoinCash", "Testnet"}]相关指南
历史
2024年引入 (14.0)
文本
Wolfram Research (2024),BlockchainTransaction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-BitcoinCash.html.
CMS
Wolfram 语言. 2024. "BlockchainTransaction." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-BitcoinCash.html.
APA
Wolfram 语言. (2024). BlockchainTransaction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-BitcoinCash.html 年
BibTeX
@misc{reference.wolfram_2026_blockchaintransaction, author="Wolfram Research", title="{BlockchainTransaction}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-BitcoinCash.html}", note=[Accessed: 25-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_blockchaintransaction, organization={Wolfram Research}, title={BlockchainTransaction}, year={2024}, url={https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-BitcoinCash.html}, note=[Accessed: 25-August-2026]}