[WIP] Use infura hosted provider if web3 is not available #61

Closed
bumi wants to merge 2 commits from feature/infura-fallback-provider into master
2 changed files with 11 additions and 14 deletions
+7 -13
View File
@@ -29,6 +29,7 @@ export default Service.extend({
return new RSVP.Promise((resolve) => {
let ethProvider;
let networkId;
let networkName;
if (typeof window.web3 !== 'undefined') {
console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask');
networkId = parseInt(window.web3.version.network);
@@ -38,28 +39,21 @@ export default Service.extend({
);
ethProvider.listAccounts().then((accounts) => {
this.set('currentUserAccounts', accounts);
resolve(ethProvider);
resolve(ethProvider, ethProvider.getSigner());
});
} else {
console.debug('[kredits] Creating new instance from npm module class');
networkId = parseInt(config.contractMetadata.networkId);
ethProvider = new ethers.providers.JsonRpcProvider(
config.web3ProviderUrl,
{ chainId: networkId }
);
resolve(ethProvider);
networkName = config.contractMetadata.networkName;
console.log(networkName);
ethProvider = new ethers.providers.InfuraProvider({ chainId: networkId, name: networkName });
resolve(ethProvider, null);
}
});
},
setup() {
return this.getEthProvider().then((ethProvider) => {
let ethSigner;
if (ethProvider.getSigner) {
ethSigner = ethProvider.getSigner();
}
return this.getEthProvider().then((ethProvider, ethSigner) => {
let kredits = new Kredits(ethProvider, ethSigner);
return kredits
.init()
+4 -1
View File
@@ -35,7 +35,7 @@ module.exports = function(environment) {
]
},
contractMetadata: { networkId: '42' },
contractMetadata: { networkId: '42', networkName: 'kovan' },
web3ProviderUrl: 'https://parity.kosmos.org:8545',
@@ -81,6 +81,9 @@ module.exports = function(environment) {
if (process.env.NETWORK_ID) {
ENV.contractMetadata['networkId'] = process.env.NETWORK_ID;
}
if (process.env.NETWORK_NAME) {
ENV.contractMetadata['networkName'] = process.env.NETWORK_NAME;
}
if (process.env.WEB3_PROVIDER_URL) {
ENV.web3ProviderUrl = process.env.WEB3_PROVIDER_URL;
}