交易的价值和数据

交易的主要“负载”包含在两个字段中:value 和 data。交易可以同时具有value和data,只有value,只有data,或没有value和data。所有四种组合都是有效的。

只有value的交易是 支付 payment。只有data的交易是 调用 invocation。既没有value也没有data的交易,这可能只是浪费gas!但它仍然有可能。

让我们尝试所有上述组合:

首先,我们从我们的钱包中设置源地址和目标地址,以使演示更易于阅读:

Set the source and destination addresses

  1. src = web3.eth.accounts[0];
  2. dst = web3.eth.accounts[1];
有value的交易(支付),没有data

Value, no data

  1. web3.eth.sendTransaction({from: src, to: dst, value: web3.toWei(0.01, "ether"), data: ""});

我们的钱包显示确认屏幕,指示要发送的value,并且没有data:

Parity wallet showing a transaction with value, but no data

Figure 1. Parity wallet showing a transaction with value, but no data

有value(支付)data的交易

Value and data

  1. web3.eth.sendTransaction({from: src, to: dst, value: web3.toWei(0.01, "ether"), data: "0x1234"});

我们的钱包显示一个确认屏幕,指示要发送的value和data:

Parity wallet showing a transaction with value and data

Figure 2. Parity wallet showing a transaction with value and data

0 value 的交易,只有数据

No value, only data

  1. web3.eth.sendTransaction({from: src, to: dst, value: 0, data: "0x1234"});

我们的钱包显示一个确认屏幕,指示value为0并显示data:

Parity wallet showing a transaction with no value, only data

Figure 3. Parity wallet showing a transaction with no value, only data

既没有value(支付)也没有data的交易

No value, no data

  1. web3.eth.sendTransaction({from: src, to: dst, value: 0, data: ""}));

我们的钱包显示确认屏幕,指示0 value并且没有data:

Parity wallet showing a transaction with no value, and no data

Figure 4. Parity wallet showing a transaction with no value, and no data