交易

类型

未签名交易(UnsignedTransaction)

An unsigned transaction represents a transaction that has not been signed and its values are flexible as long as they are not ambiguous.

unsignedTransaction.to string< Address >

交易的目标地址。

unsignedTransaction.nonce number

交易的nonce值。

unsignedTransaction.gasLimit BigNumberish

交易的 gas limit。

unsignedTransaction.gasPrice BigNumberish

交易的 gas price。

unsignedTransaction.maxFeePerGas BigNumberish

本次交易每单位gas的最高费用。

unsignedTransaction.maxPriorityFeePerGas BigNumberish

本次交易每单位gas的最高优先费用。

unsignedTransaction.data BytesLike

交易的data。

unsignedTransaction.value BigNumberish

交易的value (单位为wei)。

unsignedTransaction.chainId number

此交易的链ID。如果链ID为0或null,则EIP-155失效并使用遗留签名(legacy signing),除非重写覆盖该签名。

交易

表示交易的通用对象。

transaction.hash string< DataHexString< 32 > >

交易哈希,可以用作交易的标识符。这是交易的序列化RLP编码的keccak256表示。

transaction.to string< Address >

交易的目标地址。

transaction.from string< Address >

交易的发起地址。

transaction.nonce number

交易的nonce值。每个从帐户发送到网络的交易都包含这个值,这确保了交易的顺序和不可重复支付的特性。 这个值等于from地址发送到网络的交易数。

transaction.gasLimit 大数(BigNumber)

交易的gas limit。一个帐户必须有足够的以太(ether)来支付gas(在指定的gasPrice)。 在交易结束时,任何未使用的gas都将被退还,如果没有足够的gas来完成执行, 则交易的效果将被revert,但gas会被完全消耗,并抛出了out-of-gas错误。

transaction.gasPrice null | 大数(BigNumber)

交易的每单位gas的价格(单位为wei)。

对于EIP-1559交易,该值为null。

transaction.maxFeePerGas 大数(BigNumber)

交易的每单位gas的最高价格(单位为wei)。

对于非EIP-1559交易,该值为null。

transaction.maxPriorityFeePerGas 大数(BigNumber)

交易的每单位gas的优先费用价格(单位wei)。

对于非EIP-1559交易,该值为null。

transaction.data BytesLike

用于交易的数据。在合约中,这是call data。

transaction.value 大数(BigNumber)

交易的value (单位为wei)。

transaction.chainId number

交易的链ID。这是EIP-155的一部分,用于防止不同网络上的重放攻击(replay attacks)。

例如,如果在ropsten链上进行的交易可能会被打包到homestead链上被使用, 那么在ropsten链上签署的交易可能会在homestead链上执行,即使不是用户故意这样操作的。

有些情况下,可能需要重放,但这是非常罕见的,因此建议总是指定链ID。

transaction.r string< DataHexString< 32 > >

交易的椭圆曲线签名的r部分,准确地说,是点r(从该点可以计算出y和v)的x坐标。

transaction.s string< DataHexString< 32 > >

交易的椭圆曲线签名的s部分。

transaction.v number

交易的椭圆曲线签名的v部分。 This is used to refine which of the two possible points a given x-coordinate can have, 并且在EIP-155中还用于将链ID编码到序列化的交易中。

函数

ethers.utils.accessListify( anAcceslistish ) AccessList

AccessListishanAccessListish标准化为一个AccessList

这对于希望在访问列表的输入参数方面保持灵活性的其他实用程序函数中非常有用, such as when creating a Signer which needs to manipulate a possibly typed transaction envelope.

ethers.utils.parseTransaction( aBytesLike ) 交易

解析经过序列化的交易的属性。

ethers.utils.serializeTransaction( tx [ , signature ] ) string< DataHexString >

计算序列化的交易,可选地使用签名进行序列化。如果没有签名,则返回未签名的序列化交易,可用于计算签名的hash。

如果提供了chainId,则此函数将使用EIP-155,否则将使用legacy serialization。 强烈建议总是指定chainId。

如果签名包含链ID(通过显式地或隐式地使用EIP-155的一个 v_vs),它将被用于计算链ID。

如果交易的链ID和签名之间不匹配,则抛出错误。