javascript 通过ethers.js创建连接到特定提供程序的随机钱包

kokeuurv  于 2022-12-17  发布在  Java
关注(0)|答案(2)|浏览(154)

问题

我尝试通过函数Ethers.Wallet.createRandom创建一个连接到特定网络的随机钱包(例如Ropsten),文档指定我可以传递一个可选的optionsobject
∮我所尝试的∮
我尝试将连接传递到网络,如下所示:

const networkProvider = await new Ethers.getDefaultProvider(process.env.NETWORK);
const wallet = Ethers.Wallet.createRandom({ provider: networkProvider });

不幸的是,这没有奏效。

问题

创建电子钱包时是否有通过网络的选项,或者是否需要稍后才能通过网络?

lyfkaqu1

lyfkaqu11#

返回的Wallet对象(docs)包含Wallet的专用密钥和地址。但是,地址生成算法在所有网络中是通用的。因此,如果专用密钥0x123生成地址0x456,则可以始终使用相同的0x123专用密钥对所有网络(mainnet、Ropsten、Rinkeby等)上来自0x456地址的事务进行签名。
您广播交易的网络取决于您的提供商连接的网络。因此,如果您希望限制应用可以发送交易的网络,您需要验证提供商的getNetwork()返回值(docs)。
添加options参数:在createRandom()源代码中,它只使用param来影响私钥生成的伪随机性,但同样,它与您要使用钱包的网络无关。

cfh9epnr

cfh9epnr2#

import { ethers } from 'ethers';

setWallet(ethers.Wallet.createRandom(['21321']));

createRandom的选项可能具有以下属性:
extraEntropy-搅动到随机源中的附加熵

相关问题