首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提供程序未设置或无效。如何与没有钱包的智能合同进行交互?

提供程序未设置或无效。如何与没有钱包的智能合同进行交互?
EN

Ethereum用户
提问于 2022-06-03 16:40:23
回答 1查看 49关注 0票数 0

我正在开发一个Web3应用程序,使用的是可靠、智能的合同,在将它部署到web服务器后,该应用程序在我的个人电脑上运行得完美无缺,但我在没有Metamask钱包的浏览器上遇到了一个问题。

错误:

代码语言:javascript
复制
Error: Provider not set or invalid
at Object.InvalidProvider (errors.js:39:16)
at f.send (index.js:145:32)
at s (index.js:624:42)
at a.n [as getId] (index.js:656:13)
at Web3Client.js:197:39
at f (regeneratorRuntime.js:86:17)
at Generator._invoke (regeneratorRuntime.js:66:24)
at Generator.next (regeneratorRuntime.js:117:21)
at Ne (asyncToGenerator.js:3:20)
at a (asyncToGenerator.js:25:9)

反应守则:

代码语言:javascript
复制
export const init = async () => {
    let provider = window.ethereum;
    if (typeof provider !== 'undefined') {
    }
    const web3 = new Web3(provider);
    const networkId = await web3.eth.net.getId();
    erc20Contract = new web3.eth.Contract(
        erc20Abi,
        addr
    );
    isInitialized = true;
};

在没有钱包的情况下,与Smartcontracts交互的最佳和最小方式是什么?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-06-03 17:56:21

Metamask使用呋喃与ethereum区块链进行通信。如果您添加了一个新的网络,您必须给它一个RPC提供程序。因此,基本上,您可以直接使用RPC提供程序而不是元问题:

代码语言:javascript
复制
export const init = async () => {
    const web3 = new Web3("https://somerpcprovider.com/");
    const networkId = await web3.eth.net.getId();
    erc20Contract = new web3.eth.Contract(
        erc20Abi,
        addr
    );
    isInitialized = true;
};
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/129515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档