试验性的库

试验性的库用于基本库中没有准备好包含的特性。API不是稳定的,而且不遵循semver版本控制, 因此需要它的应用程序应该指定所需的确切版本

这些特性在ethers核心库中是不可用的,所以要使用它们,你必须安装@ethersproject/experimental包并从其中导入它们。

BrainWallet inherits Wallet

Ethers在v4中删除了对BrainWallets的支持,因为它们是不安全的,并且很容易被猜到,从而让攻击者能够窃取资金。 提供这个类是为了确保使用了BrainWallets的旧系统仍然可以恢复其资金和资产。

BrainWallet.generate( username , password [ , progressCallback ] ) BrainWallet

生成BrainWallets,体验功能略有改进,其中生成的钱包有一个助记词。

BrainWallet.generateLegacy( username , password [ , progressCallback ] ) BrainWallet

生成一个与ether v3及更早版本兼容的BrainWallets。

Importing
// Node const { BrainWallet } = require("@ethersproject/experimental"); // ESM/TypeScript import { BrainWallet } from "@ethersproject/experimental";

EIP1193Bridge inherits EventEmitter

EIP1193Bridge允许将普通的EthersSignerProvider作为标准的EIP-1193 Provider公开, 这在与其他库交互时可能很有用。

Importing
// Node const { Eip1193Bridge } = require("@ethersproject/experimental"); // ESM/TypeScript import { Eip1193Bridge } from "@ethersproject/experimental";

NonceManager inherits Signer

NonceManager设计用于为Signer管理nonce,在发送交易时自动增加。

目前NonceManager不处理重复广播(re-broadcast)。 如果您试图向不控制该帐户的节点上的网络发送大量交易,交易池可能会删除您的交易。

将来,如果NonceManager能记住交易并在网络上监听它们,并舍弃重复广播的交易,那就更好不过了。

另一个未来的特性将是某种失败模式。例如,一个交易通常依赖于另一个首先被挖出的交易。

new NonceManager( signer )

创建一个新的NonceManager。

nonceManager.signer Signer

signer管理的nonce值。

nonceManager.provider Provider

与signer关联的provider。

nonceManager.setTransactionCount( count ) void

为signer设置当前交易计数(nonce)。

在使用该类之外的方法与signer交互时,这可能很有用。

nonceManager.incrementTransactionCount( [ count = 1 ] ) void

count增加当前交易数。

在使用该类之外的方法与signer交互时,这可能很有用。

Importing
// Node const { NonceManager } = require("@ethersproject/experimental"); // ESM/TypeScript import { NonceManager } from "@ethersproject/experimental";