BlockchainTransaction(for Ethereum)

$BlockchainBase = "Ethereum"

BlockchainTransaction[assoc]

表示一个根据关联 assoc 中的元素构建的以太坊区块链交易.

更多信息

  • 给出以太坊区块链交易的符号表示;它不提交交易,并且交易是未签名的.
  • BlockchainTransaction[][prop] 给出交易的属性 prop 的值.
  • 必须给出以下元素:
  • "TransactionCount"与账户相关的交易的次数
    "GasPrice"每个 gas 的价钱,单位为 wei
  • 另外还可以给出"GasLimit" 元素. 默认情况下,在内部对其进行计算:
  • "GasLimit"执行的 gas 的最大量
  • 当进行转账时,必须给出以下元素:
  • "Address"转帐的地址
    "Amount"转移的 wei 的数量
  • 部署合约时,必须给出以下元素:
  • "Contract"要在交易中部署的合约
  • 在使用纯 Solidity 代码时,合约必须是包含代码的字符串,如 "Contract""code".
  • 当使用有多个合约的纯 Solidity 代码时,必须用关联 <|"SourceCode""code","Main""name"|> 指定 "Contract",其中 "Main" 是要部署的合约的名称.
  • 在提供含有 Solidity 代码的文件时,合约必须是一个 File,如 "Contract"->File[].
  • 在提供含有 Solidity 代码且该代码含有多个合约的文件时,必须用关联 <|"Source"File[],"Main""name"|> 指定 "Contract",其中 "Main" 是要部署的合约的名称.
  • 当提供多个含有 Solidity 代码的文件时,必须用关联 <|"Source"{file1,file2,},"Main""name"|> 指定 "Contract",其中 {file1,file2,}File 表达式列表,其中 file1 将被编译,"Main" 是要部署的合约的名称.
  • 在使用编译过的 Solidity 代码时,必须用关联 <|"ByteCode""hexstring","ABI""spec"|> 指定 "Contract",其中 "ABI" 为 Application Binary Interface.
  • 另外,在提供 "Contract" 的关联时,可给出额外的 "Parameters" 属性,以定义要部署的合约的初始化参数.
  • 在以太坊交易中部署自动执行的 Wolfram 语言表达式时,可以给出以下元素:
  • "WolframExpression"harvest 时要计算的表达式
    "WolframExpressionReference"对要获取和计算的表达式的指代
  • 包含 Wolfram 语言表达式的以太坊交易只能部署到以太坊 testnet.
  • 在调用合约时,必须给出以下元素:
  • "Address"合约的地址
    "FunctionCall"合约中要进行的函数调用
  • "FunctionCall" 元素可以是 AssociationTyped 表达式.
  • 如果 "FunctionCall" 是一个 Typed 表达式,它必须定义函数名称.
  • 如果 "FunctionCall" 是一个 Association 表达式,则必须给出以下属性:
  • "Function"定义要调用的函数的 Typed 表达式
  • 也可将以下其他属性赋给 "FunctionCall" 关联:
  • "Inputs"要调用的函数的输入参数
    "Sender"调用合约的发送者的地址
  • 也可从 BlockchainTransaction 对象获取以下其他属性:
  • "Signed"一个交易是否已有数字签名
    "MessageHash"未签名交易的哈希
    "RawTransaction"序列化交易
    "TransactionID"交易的 ID
  • BlockchainTransaction 可表示 Ethereum mainnet(默认)和 testnet (Sepolia) 交易. 如果想指定该网络,请在相应的关联中指定 "BlockchainBase" 的值或使用 BlockchainBase 选项.

范例

打开所有单元关闭所有单元

基本范例  (2)

创建以太坊交易对象以发送 ethers:

创建以太坊交易对象并指定对 gas 的限制:

范围  (7)

纯文本 Solidity 合约  (2)

在区块链交易中使用纯 Solidity 代码构建合约:

用含有多个合约定义的纯 Solidity 代码构建合约:

Solidity 合约文件   (1)

用 Solidity 文件构建合约:

用含有多个合约定义的 Solidity 文件构建合约:

用多个 Solidity 文件构建合约:

已编译 Solidity 合约  (1)

用已编译的代码及其应用程序二进制接口构建合约:

Wolfram 语言表达式  (2)

用 Wolfram 语言表达式构建合约. 此表达式将由 Wolfram 服务器计算:

用外部存储对象指代的 Wolfram 语言表达式构建合约. Wolfram 服务器将对指代进行计算:

普通的合约调用   (1)

创建一个交易,对已部署合约中的状态变量的值进行更新:

选项  (2)

BlockchainBase  (2)

Mainnet  (1)

创建一个 mainnet 交易:

Testnet  (1)

创建一个 testnet 交易:

应用  (1)

创建一个以太坊 BlockchainTransaction

对交易对象进行签名:

将签过名的交易发送到以太坊区块链:

通过 "TransactionID" 验证交易:

Wolfram Research (2019),BlockchainTransaction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Ethereum.html.

文本

Wolfram Research (2019),BlockchainTransaction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Ethereum.html.

CMS

Wolfram 语言. 2019. "BlockchainTransaction." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Ethereum.html.

APA

Wolfram 语言. (2019). BlockchainTransaction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Ethereum.html 年

BibTeX

@misc{reference.wolfram_2024_blockchaintransaction, author="Wolfram Research", title="{BlockchainTransaction}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Ethereum.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_blockchaintransaction, organization={Wolfram Research}, title={BlockchainTransaction}, year={2019}, url={https://reference.wolfram.com/language/ref/blockchain/BlockchainTransaction-Ethereum.html}, note=[Accessed: 22-November-2024 ]}