我正在开发一个Web3应用程序,使用的是可靠、智能的合同,在将它部署到web服务器后,该应用程序在我的个人电脑上运行得完美无缺,但我在没有Metamask钱包的浏览器上遇到了一个问题。
错误:
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)反应守则:
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交互的最佳和最小方式是什么?
发布于 2022-06-03 17:56:21
Metamask使用呋喃与ethereum区块链进行通信。如果您添加了一个新的网络,您必须给它一个RPC提供程序。因此,基本上,您可以直接使用RPC提供程序而不是元问题:
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;
};https://ethereum.stackexchange.com/questions/129515
复制相似问题