我正在开发一个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:18:32
MetaMask附带了一个内置的HTTPProvider,用于Infura。
您可以注册到任何免费的JSON-RPC API提供程序服务,并使用API键获取个人JSON-RPC端点。。另一种是您可以运行您自己的Ethereum节点。.
您还可以反向工程MetaMask,并从其JavaScript文件中获取其API密钥。
https://stackoverflow.com/questions/72492229
复制相似问题