首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在使用angular为thundercore区块链开发一个dapp,但web3没有连接到thundercore浏览器中。

我正在使用angular为thundercore区块链开发一个dapp,但web3没有连接到thundercore浏览器中。
EN

Stack Overflow用户
提问于 2021-03-28 11:51:18
回答 1查看 392关注 0票数 0

我的Dapps在trust钱包浏览器中运行良好,但在thundercore浏览器中不起作用。我能做什么,有什么建议吗?

我的angular服务代码与区块链连接

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import * as Web3 from 'web3';
import * as TruffleContract from 'truffle-contract';

declare let require: any;
declare let window: any;

let tokenAbi = require('../../../build/contracts/Transfer.json');

@Injectable({
  providedIn: 'root'
})

export class EthcontractService {
  private web3Provider: null;
  private contracts: {};
  web3:any;


  constructor() {
    if (typeof window.ethereum === 'undefined') {
      alert('Non-Ethereum browser detected. Install MetaMask');
    } else {
      if (typeof window.web3 !== 'undefined') {
        this.web3Provider = window.web3.currentProvider;
      } else {
        this.web3Provider = new Web3.providers.HttpProvider('http://localhost:8545');
      }
      console.log('transfer.service :: constructor :: window.ethereum');
      window.web3 = new Web3(window.ethereum);
      console.log('transfer.service :: constructor :: this.web3');
      console.log(this.web3Provider);
      this.enableMetaMaskAccount();
    }
  }
   private async enableMetaMaskAccount(): Promise<any> {
    let enable = false;
    await new Promise((resolve, reject) => {
      enable = window.ethereum.enable();
    });
    return Promise.resolve(enable);
  }


  getAccountInfo() {
    return new Promise((resolve, reject) => {
      window.web3.eth.getCoinbase(function(err, account) {

        if(err === null) {
          window.web3.eth.getBalance(account, function(err, balance) {0
            if(err === null) {
              return resolve({fromAccount: account, balance:(window.web3.fromWei(balance, "ether")).toNumber()});
            } else {
            console.log(err)
              return reject({fromAccount: "error", balance:0});
            }
          });
        }
      });
    });
  }

  transferTT(
    _from,
    _to,
    _amt,
  ) {
    let that = this;

    return new Promise((resolve, reject) => {
      let paymentContract = TruffleContract(tokenAbi);
      paymentContract.setProvider(that.web3Provider);

      paymentContract.deployed().then(function(instance) {
          return instance.pay(
            _to,
            {
              from:_from,
              value:window.web3.toWei(_amt, "ether")
            });
        }).then(function(status) {
          if(status) {
            return resolve({status:true});
          }
        }).catch(function(error){
          console.log(error);

          return reject("Error in transferEther service call");
        });
    });
  }
}

代码在信任钱包和元掩码扩展中运行良好,但在thundercore钱包浏览器中不起作用,你能研究一下这个问题并给我一个解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-28 23:12:53

我通过用getAccounts()替换函数getCoinbase()修复了这个问题

就这样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66838236

复制
相关文章

相似问题

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