交易

类型

未签名交易(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和签名之间不匹配,则抛出错误。