[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) => { return new RSVP.Promise((resolve) => {
let ethProvider; let ethProvider;
let networkId; let networkId;
let networkName;
if (typeof window.web3 !== 'undefined') { if (typeof window.web3 !== 'undefined') {
console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask'); console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask');
networkId = parseInt(window.web3.version.network); networkId = parseInt(window.web3.version.network);
@@ -38,28 +39,21 @@ export default Service.extend({
); );
ethProvider.listAccounts().then((accounts) => { ethProvider.listAccounts().then((accounts) => {
this.set('currentUserAccounts', accounts); this.set('currentUserAccounts', accounts);
resolve(ethProvider); resolve(ethProvider, ethProvider.getSigner());
}); });
} else { } else {
console.debug('[kredits] Creating new instance from npm module class'); console.debug('[kredits] Creating new instance from npm module class');
networkId = parseInt(config.contractMetadata.networkId); networkId = parseInt(config.contractMetadata.networkId);
ethProvider = new ethers.providers.JsonRpcProvider( networkName = config.contractMetadata.networkName;
config.web3ProviderUrl, console.log(networkName);
{ chainId: networkId } ethProvider = new ethers.providers.InfuraProvider({ chainId: networkId, name: networkName });
); resolve(ethProvider, null);
resolve(ethProvider);
} }
}); });
}, },
setup() { setup() {
return this.getEthProvider().then((ethProvider) => { return this.getEthProvider().then((ethProvider, ethSigner) => {
let ethSigner;
if (ethProvider.getSigner) {
ethSigner = ethProvider.getSigner();
}
let kredits = new Kredits(ethProvider, ethSigner); let kredits = new Kredits(ethProvider, ethSigner);
return kredits return kredits
.init() .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', web3ProviderUrl: 'https://parity.kosmos.org:8545',
@@ -81,6 +81,9 @@ module.exports = function(environment) {
if (process.env.NETWORK_ID) { if (process.env.NETWORK_ID) {
ENV.contractMetadata['networkId'] = 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) { if (process.env.WEB3_PROVIDER_URL) {
ENV.web3ProviderUrl = process.env.WEB3_PROVIDER_URL; ENV.web3ProviderUrl = process.env.WEB3_PROVIDER_URL;
} }