mirror of https://github.com/embarklabs/embark.git
fix(@embark/ens): connect to web3 only with dappAutoEnable is true
When we introduced dappConnection to ENS, we didn't add the concept of auto connection, like we do in the "normal" connection. This means that when using $WEB3, the contracts connection waited for the user to click on a button, but the ENS part called `ethereum.enable` directly, which is confusing for the dev, because we specified to NOT automatically connect to ethreum. This fixes it by checking the dappAutoEnable property in contracts config and adds it to the namesystemConfig artifact
This commit is contained in:
parent
3ceffa8454
commit
e0ac539930
|
@ -306,7 +306,7 @@ function Contract(options) {
|
||||||
});
|
});
|
||||||
|
|
||||||
return ContractClass;
|
return ContractClass;
|
||||||
};
|
}
|
||||||
|
|
||||||
Contract.prototype.deploy = function(args, _options) {
|
Contract.prototype.deploy = function(args, _options) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
|
@ -172,7 +172,9 @@ function connectHttp(web3, endpoint, callback) {
|
||||||
async function connectWeb3(web3, callback) {
|
async function connectWeb3(web3, callback) {
|
||||||
if (typeof window !== 'undefined' && window.ethereum) {
|
if (typeof window !== 'undefined' && window.ethereum) {
|
||||||
try {
|
try {
|
||||||
|
if (this.dappAutoEnable) {
|
||||||
await ethereum.enable();
|
await ethereum.enable();
|
||||||
|
}
|
||||||
web3.setProvider(ethereum);
|
web3.setProvider(ethereum);
|
||||||
return checkConnection(callback);
|
return checkConnection(callback);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -207,6 +209,7 @@ __embarkENS.setProvider = function(config) {
|
||||||
this.registration = config.registration;
|
this.registration = config.registration;
|
||||||
this.env = config.env;
|
this.env = config.env;
|
||||||
this.ready = false;
|
this.ready = false;
|
||||||
|
this.dappAutoEnable = config.dappAutoEnable;
|
||||||
|
|
||||||
reduce(config.dappConnection, false, (result, connectionString, next) => {
|
reduce(config.dappConnection, false, (result, connectionString, next) => {
|
||||||
if (result.connected) {
|
if (result.connected) {
|
||||||
|
|
|
@ -140,6 +140,7 @@ class ENS {
|
||||||
path: [this.config.embarkConfig.generationDir, 'config'],
|
path: [this.config.embarkConfig.generationDir, 'config'],
|
||||||
file: 'namesystem.json',
|
file: 'namesystem.json',
|
||||||
format: 'json',
|
format: 'json',
|
||||||
|
dappAutoEnable: this.config.contractsConfig.dappAutoEnable,
|
||||||
content: Object.assign({}, this.embark.config.namesystemConfig, config)
|
content: Object.assign({}, this.embark.config.namesystemConfig, config)
|
||||||
}, cb);
|
}, cb);
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,7 +4,7 @@ const {Utils} = require('embarkjs');
|
||||||
const secureSend = Utils.secureSend;
|
const secureSend = Utils.secureSend;
|
||||||
|
|
||||||
describe('embark-ens', () => {
|
describe('embark-ens', () => {
|
||||||
let ens, doneCb;
|
let ens;
|
||||||
|
|
||||||
const { embark } = fakeEmbark();
|
const { embark } = fakeEmbark();
|
||||||
|
|
||||||
|
@ -22,8 +22,9 @@ describe('embark-ens', () => {
|
||||||
rootDomain: 'root.eth'
|
rootDomain: 'root.eth'
|
||||||
},
|
},
|
||||||
dappConnection: []
|
dappConnection: []
|
||||||
|
},
|
||||||
|
contractsConfig: {dappAutoEnable: true}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
|
@ -37,6 +38,7 @@ describe('embark-ens', () => {
|
||||||
path: ['test-dir', 'config'],
|
path: ['test-dir', 'config'],
|
||||||
file: 'namesystem.json',
|
file: 'namesystem.json',
|
||||||
format: 'json',
|
format: 'json',
|
||||||
|
dappAutoEnable: true,
|
||||||
content: Object.assign({}, embark.config.namesystemConfig, config)
|
content: Object.assign({}, embark.config.namesystemConfig, config)
|
||||||
});
|
});
|
||||||
cb();
|
cb();
|
||||||
|
|
Loading…
Reference in New Issue