问题
我尝试通过函数Ethers.Wallet.createRandom
创建一个连接到特定网络的随机钱包(例如Ropsten),文档指定我可以传递一个可选的options
object。
∮我所尝试的∮
我尝试将连接传递到网络,如下所示:
const networkProvider = await new Ethers.getDefaultProvider(process.env.NETWORK);
const wallet = Ethers.Wallet.createRandom({ provider: networkProvider });
不幸的是,这没有奏效。
问题
创建电子钱包时是否有通过网络的选项,或者是否需要稍后才能通过网络?
2条答案
按热度按时间lyfkaqu11#
返回的Wallet对象(docs)包含Wallet的专用密钥和地址。但是,地址生成算法在所有网络中是通用的。因此,如果专用密钥
0x123
生成地址0x456
,则可以始终使用相同的0x123
专用密钥对所有网络(mainnet、Ropsten、Rinkeby等)上来自0x456
地址的事务进行签名。您广播交易的网络取决于您的提供商连接的网络。因此,如果您希望限制应用可以发送交易的网络,您需要验证提供商的
getNetwork()
返回值(docs)。添加
options
参数:在createRandom()
源代码中,它只使用param来影响私钥生成的伪随机性,但同样,它与您要使用钱包的网络无关。cfh9epnr2#
createRandom
的选项可能具有以下属性:extraEntropy
-搅动到随机源中的附加熵