通过 ethers.js 创建与特定提供商连接的随机钱包
Create random Wallet with connection to a specific provider via ethers.js
问题
我正在尝试通过函数 Ethers.Wallet.createRandom
创建随机钱包并连接到特定网络(例如 Ropsten for example). The docs 指定我可以传递一个可选的 options
对象.
我试过的
我试过像这样将连接传递到网络:
const networkProvider = await new Ethers.getDefaultProvider(process.env.NETWORK);
const wallet = Ethers.Wallet.createRandom({ provider: networkProvider });
不幸的是,那没有用。
问题
是否可以选择在创建钱包时通过网络或稍后完成?
返回的钱包对象(docs)包含私钥和钱包地址。但是,地址生成算法在所有网络中 通用 。因此,如果私钥 0x123
生成地址 0x456
,您始终可以使用相同的 0x123
私钥来签署所有网络上来自 0x456
地址的交易 - 主网,Ropsten , Rinkeby 等
您广播交易的网络取决于您的 提供商 连接到哪个网络。因此,如果您想限制应用程序可以发送交易的网络,您需要验证提供商的 getNetwork()
返回值 (docs).
添加options
参数:在createRandom()
source code中,它只使用参数来影响私钥生成的伪随机性。但同样,它与您要使用钱包的网络无关。
问题
我正在尝试通过函数 Ethers.Wallet.createRandom
创建随机钱包并连接到特定网络(例如 Ropsten for example). The docs 指定我可以传递一个可选的 options
对象.
我试过的
我试过像这样将连接传递到网络:
const networkProvider = await new Ethers.getDefaultProvider(process.env.NETWORK);
const wallet = Ethers.Wallet.createRandom({ provider: networkProvider });
不幸的是,那没有用。
问题
是否可以选择在创建钱包时通过网络或稍后完成?
返回的钱包对象(docs)包含私钥和钱包地址。但是,地址生成算法在所有网络中 通用 。因此,如果私钥 0x123
生成地址 0x456
,您始终可以使用相同的 0x123
私钥来签署所有网络上来自 0x456
地址的交易 - 主网,Ropsten , Rinkeby 等
您广播交易的网络取决于您的 提供商 连接到哪个网络。因此,如果您想限制应用程序可以发送交易的网络,您需要验证提供商的 getNetwork()
返回值 (docs).
添加options
参数:在createRandom()
source code中,它只使用参数来影响私钥生成的伪随机性。但同样,它与您要使用钱包的网络无关。