繁体   English   中英

如何以编程方式将 ethers.js 库与 Rinkeby 连接?

[英]How to connect ethers.js library with Rinkeby programmatically?

根据ethers.js官方文档,这应该是如何使用自定义数据连接到特定网络(如Rinkeby -testnet)的方式:

 const provider = ethers.getDefaultProvider(network, {
    etherscan: ETHERSCAN_API_KEY,
    infura: INFURA_API_KEY,

此外,这将是获取签名者以签署交易的方式:

 const signer = provider.getSigner()

但是,现在默认提供程序上提供了方法“getSigner”。

类型错误:provider.getSigner 不是 function

如何使用 ethers.js 来实现?

InfuraProvider 的 getSigner() 不起作用,请使用以下命令:

const infuraProvider = new ethers.providers.InfuraProvider(network, API_KEY);
const wallet = new ethers.Wallet(privateKey, infuraProvider);
const signer = wallet.connect(infuraProvider);
contract = new ethers.Contract(smartContractAddress, abi, signer);

ethers.getDefaultProvider似乎以某种方式损坏或过时。 相反,您应该直接连接到特定的 Provider,例如 Alchemy:

const provider = new ethers.providers.AlchemyProvider("rinkeby", apiKey)

或对于 Infura:

const provider = new ethers.providers.InfuraProvider("rinkeby", apiKey)

在此之后,很容易得到一个签名者:

const signer = provider.getSigner()

或者

const walletSigner = wallet.connect(provider);

您可以在此处阅读有关此内容的更多信息。

2022 年 2 月

这对我来说非常有用:

    const provider = new ethers.providers.JsonRpcProvider(url)
    const signer = provider.getSigner()

Alchemy's 医生那里知道了这一点

ethers.js 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM