BlockchainTransaction (卡尔达诺)
BlockchainTransaction[assoc]
表示从关联 assoc 中的组件构建的卡尔达诺区块链交易.
更多信息
- 给出卡尔达诺区块链交易的符号表示;其不提交交易,且交易未签名.
- BlockchainTransaction[…][prop] 给出交易的属性 prop 的值.
- 必须给出以下元素:
-
"Inputs" 输入列表,以关联形式给出 "Outputs" 输出列表,以关联形式给出 - 还可以给出以下附加元素:
-
"Fee" 交易费用 "TimeToLive" 交易有效的上限插槽数 "Mint" 要铸造的令牌列表 "Scripts" 策略脚本 "Metadata" 要铸造的令牌的元数据 "CollateralInputs" 支出脚本的抵押输入列表 "RequiredSigners" 支出脚本所需签名者列表 "CollateralOutputs" 在使用抵押输入的情况下,用于返还资产的抵押输出 - "Inputs" 列表中的每个关联都必须具有以下条目:
-
"TransactionID" 上一笔交易的哈希 "Index" 上一笔交易输出中的索引 - 支出脚本时,可为 "Inputs" 添加以下条目:
-
"Datum" 与上一个交易输出的(未被哈希)数据相对应的脚本数据t "Redeemer" 指定输入赎回器的关联关系(标签、赎回器脚本数据、内存和步骤) "Script" 上一个交易输出的脚本 "ReferenceScript" 保存脚本的参考输入 "ReferenceDatum" 保存内联数据的参考输入 - "Inputs" 列表中关联内的 "Redeemer" 值必须具有以下条目:
-
"Tag" 赎回者的签名(“花费”) "Data" 赎回者脚本数据 - 还可以提供以下有关 "Redeemer" 的补充条目:
-
"Memory" 脚本执行的 CPU 内存预算,以整数表示,或 Automatic "Steps" 脚本执行的步骤预算,以整数表示,或 Automatic - 当未指定 "Memory" 或 "Steps" 条目时,其默认值为 Automatic.
- "Datum" 的值和 "Redeemer" 中 "Data" 的值必须使用卡尔达诺的详细 JSON 架构. 脚本数据可以是卡尔达诺详细 JSON 架构的基于规则的表示或脚本数据文件.
- "Inputs" 列表中关联中的 "Script" 值可以是脚本 JSON 文件,也可以是带有 "Type" 和 "ByteCode" 条目的关联关系. "Type" 的支持值为 "PlutusScriptV1" 和 "PlutusScriptV2". "ByteCode" 的值必须是与脚本的 CBOR 表示法相对应的十六进制字符串.
- "Inputs" 列表里的关联关系中 "ReferenceScript" 和 "ReferenceDatum" 的值必须是带有 "TransactionID" 和 "Index" 字段的关联.
- "Outputs" 列表中的每个关联都必须具有以下条目:
-
"Address" 输出地址 "Amount" 用 lovelace 计量的数量,或 Automatic - "Address" 的值可以是字符串、Plutus 脚本 JSON 文件或表示为与条目 "Type" 和 "ByteCode" 关联的 Plutus 脚本.
- 当 "Address" 的值为Plutus 脚本时,将自动计算脚本地址.
- "Amount" 的值可以是 Quantity 或 Automatic.
- 当 "Amount" 的值为 Automatic 时,"Fee" 的值必须为 Automatic. "Outputs" 列表中只能有一个 "Amount"->Automatic 的关联.
- 还可以给出以下附加条目:
-
"Tokens" 输入令牌列表 "Datum" 指定输出数据的关联 - "Tokens" 的值可以是输入标记的列表,也可以是 Automatic.
- "Outputs" 列表中关联内的 "Datum" 关联必须具有以下条目:
-
"Data" 数据的脚本数据 "Mode" 数据的插入模式(“哈希”或“内联”) - "Outputs" 列表中关联内的 "Data" 值必须是包含脚本数据的文件或对应于将脚本数据导入为 "RawJSON" 的关联.
- "Tokens" 列表中的每个关联都必须具有以下条目:
-
"AssetName" 以十六进制字符串表示的资产名称 "PolicyID" 策略 ID "Quantity" 令牌数量 - "Fee" 的值可以是 Automatic 或 Quantity.
- 当 "Fee" 的值为 Automatic 时,"Outputs" 列表中只有一个关联可以具有 "Amount"->Automatic. 在这种情况下,将计算所需的最低费用,并且如果需要,任何剩余的加密货币将被发送到上述输出.
- "Mint" 列表中的每个关联都必须具有以下条目:
-
"AssetName" 以十六进制字符串表示的资产名称 "PolicyID" 策略 ID "Quantity" 要铸造的令牌数量(如果数量为负数,则销毁) - "CollateralInputs" 列表中的每个关联必须具有以下条目:
-
"TransactionID" 前一笔交易的哈希值 "Index" 前一笔交易输出中的索引 - "CollateralInputs" 列表中的关联不得指向具有脚本地址的输出. 同样,列表的长度最多为 3.
- "RequiredSigners" 列表中的值可以是公钥、私钥、地址或公钥哈希.
- 指定 "CollateralOutputs" 时,还必须指定 "CollateralInputs". 如果交易提交后脚本验证失败,"CollateralOutputs" 条目将决定从 "CollateralInputs" 向指定的 "Address" 发送多少资产(lovelace 和/或令牌).
- "CollateralOutputs" 的值可以是一个关联,也可以是包含以下条目的单个关联列表:
-
"Address" 抵押输出的地址 "Amount" 以 lovelace 为单位的数量,或 Automatic "Tokens" 输入令牌列表,或 Automatic - 当 "CollateralOutputs" 中的字段设置为 Automatic 时,将假定最低抵押品,并将 "CollateralInputs" 中的任何剩余资产发送到指定的 "Address". 如果未指定 "Amount" 或 "Tokens",则假定为 Automatic.
- BlockchainTransaction 可以代表 Cardano 主网和测试网 "preprod" 的交易,用于测试目的的网络. 要指定这些网络,请使用所需关联中的 "BlockchainBase" 值或 BlockchainBase 选项.
范例
打开所有单元关闭所有单元范围 (13)
铸造和销毁令牌 (2)
花费 Plutus 脚本 (1)
使用 "Inputs" 列表中的 "Redeemer"、"Datum" 和 "Script" 元素以及在 "CollateralInputs" 中指定抵押输入来花费 Plutus 脚本:
通过在 "RequiredSigners" 列表中使用 PrivateKey 对象、PublicKey 对象、地址或公钥哈希来指定必需签名者,以花费具有必需签名者的 Plutus 脚本:
使用内联数据部署 Plutus 脚本 (1)
应用 (11)
转移加密货币 (1)
铸造令牌 (1)
或者,允许单个输出将 "Amount" 设置为 Automatic,以便将任何剩余令牌发送到该地址:
使用 PrivateKey 对象签署交易:
铸造非同质代币(NFT) (1)
使用 PrivateKey 对象签署交易:
转移令牌 (1)
销毁令牌 (1)
部署已编译的 Plutus 脚本 (1)
当且仅当赎回者的脚本数据是数据的质因数列表时,该特定脚本才会成功. 对于数据,选择 221 作为任意半素数. 脚本数据必须符合卡尔达诺详细的 JSON 模式:
通过在 "Outputs" 列表中指定指向脚本文件的 "Address" 和 "Datum",其中 "Data" 指向脚本数据文件并使用 "Hash" 模式,使用数据哈希部署 Plutus 脚本:
使用 PrivateKey 对象签署交易:
花费编译的 Plutus 脚本 (1)
使用 "Inputs" 列表中的 "Redeemer"、"Datum" 和 "Script" 元素并在 "CollateralInputs" 中指定抵押输入,以花费 Plutus 脚本:
使用 PrivateKey 对象签署交易:
花费具有必需签名者的已编译的 (1)
当且仅当用于签署花费交易的私钥与部署的数据( datum)中包含的公钥哈希相关联时,此特定脚本才能成功执行:
通过在 "Outputs" 列表中指定指向脚本文件的 "Address" 和 "Datum",其中 "Data" 指向脚本数据文件并使用 "Hash" 模式,使用数据哈希部署 Plutus 脚本:
使用 PrivateKey 对象签署交易:
通过在 "RequiredSigners" 列表中使用 PrivateKey 对象、PublicKey 对象、地址或公钥哈希来指定必需签名者,以花费具有必需签名者的 Plutus 脚本:
当请求自动执行单元并且脚本需要签名者时,所需签名者的计算将被延迟,直到交易被签名. 使用 PrivateKey 对象对交易进行签名:
使用 ReferenceScript 和 CollateralOutputs 部署和支出 Plutus 脚本 V2 (3)
部署参考脚本 (1)
使用 PrivateKey 对象签署交易:
使用内联数据部署 Plutus 脚本 UTXO (1)
支出 Plutus 脚本 (1)
创建卡达诺区块链交易,使用参考脚本和抵押输出支出脚本 UTXO:
用 PrivateKey 对象签署交易,并将交易提交至卡尔达诺区块链:
属性和关系 (1)
BlockchainAddressData 的 "UTXOList" 属性的一个元素可以用作卡尔达诺区块链交易的输入:
文本
Wolfram Research (2021),BlockchainTransaction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Cardano.html.
CMS
Wolfram 语言. 2021. "BlockchainTransaction." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Cardano.html.
APA
Wolfram 语言. (2021). BlockchainTransaction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Cardano.html 年