我的 Dapps 在信任钱包浏览器中运行良好,但在 Thundercore 浏览器中无法运行我该怎么办,有什么建议吗?
我与区块链连接的角度服务代码
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 钱包浏览器中运行良好,你能看看这个并给我一个解决方案。