Compare commits

...

2 Commits

Author SHA1 Message Date
bumi a75bcc6a59 Add configurable network name
This is required for the infura provider
2018-04-22 20:25:58 +02:00
bumi f5dc8f86cf Use infura hosted provider if web3 is not available
If the user does not have metamask or similar (no web3 provider is
availale) we will load data from the infura node.

No signer is available for the infura node but the ethers provider would
throw an error if we try to access it - so this moves the decision of
choosing the provider to the ethProvider function.
2018-04-22 18:41:51 +02:00
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;
}