微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

制作一个Dapp,出现错误:未定义setProvider?

如何解决制作一个Dapp,出现错误:未定义setProvider?

我正在研究有关udemy的本课程,并且在搜索并尝试了所有可能的解决方案并且没有从本课程的讲师得到任何反馈后,我最终陷入了困境:)

我正在为Dapp做前端,在加载网站并设置帐户后检查了元掩码之后,我正在尝试为我的智能合约实例设置提供程序,以便以后使用它们进行部署和交互和他们在一起:

我的app.js文件

import { default as Web3} from 'web3';
import { default as contract } from 'truffle-contract'

// Import our contract artifacts and turn them into usable abstractions.
import exchange_artifacts from '../../build/contracts/Exchange.json'
import token_artifacts from '../../build/contracts/FixedSupplyToken.json'


var accounts;
var account;

var ExchangeContract = contract(exchange_artifacts);
var TokenContract = contract(token_artifacts);

window.App = {
  start: function() {
   //bootstrap everything
   
   

**ExchangeContract = setProvider(web3.currentProvider); // getting a setProvider not defined error 
TokenContract = setProvider(web3.currentProvider); // getting a setProvider not defined error**

    
},

在app.js中进行元掩码检查:

window.addEventListener('load',function() {
    return new Promise((resolve,reject) => {
        if(typeof window.ethereum !== 'undefined') {
          const web3 = new Web3(window.ethereum);
          
          console.log("my Metamask version");

          window.web3 = new Web3(web3.currentProvider);
          

          window.ethereum.enable()
            .then(() => {
              resolve(
                new Web3(window.ethereum)
                
              );
            })
            .catch(e => {
              reject(e);
            });
            
          return;
        }
        if(typeof window.web3 !== 'undefined') {
            
          return resolve(
            new Web3(window.web3.currentProvider)
          );
        }
        
        resolve(new Web3('http://localhost:9545'));
      }),

enter image description here

感谢您的任何反馈...:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。