问题
我正试图通过连接到特定网络(例如Ropsten(的函数Ethers.Wallet.createRandom
创建随机钱包。文档指定我可以传递一个可选的options
对象。
我尝试了什么
我试着像这样将连接传递到网络:
const networkProvider = await new Ethers.getDefaultProvider(process.env.NETWORK);
const wallet = Ethers.Wallet.createRandom({ provider: networkProvider });
不幸的是,这并没有奏效。
问题
创建钱包时是否有通过网络的选项,或者稍后再进行?
返回的钱包对象(docs(包含私钥和钱包地址。然而,地址生成算法在所有网络中都是通用的。因此,如果私钥0x123
生成地址0x456
,则您可以始终使用相同的0x123
私钥在所有网络(主网、Ropsten、Rinkeby等(上对来自0x456
地址的事务进行签名。
您广播交易的网络取决于您的提供商连接到的网络。因此,如果您想限制应用程序可以发送交易的网络,您需要验证提供商的getNetwork()
返回值(文档(。
Ad theoptions
param:在createRandom()
源代码中,它只使用param来影响私钥生成方式的伪随机性。但同样,它与你将要使用钱包的网络无关。
import { ethers } from 'ethers';
setWallet(ethers.Wallet.createRandom(['21321']));
createRandom
的选项可能具有以下属性:
extraEntropy
——加入随机源的附加熵