Fixed account selection for Dapps on public node

This commit is contained in:
maciejhirsz 2017-06-16 14:00:30 +02:00
parent 8d04dffe69
commit ba6e41cf07
3 changed files with 23 additions and 5 deletions

View File

@ -129,6 +129,8 @@ export default class Accounts {
set dappsDefaultAddress (value) { set dappsDefaultAddress (value) {
this._dappsDefaultAddress = value.toLowerCase(); this._dappsDefaultAddress = value.toLowerCase();
this.persist();
} }
get (address) { get (address) {
@ -191,10 +193,16 @@ export default class Accounts {
this.persist(); this.persist();
} }
addresses () { allAddresses () {
return Object.keys(this._store); return Object.keys(this._store);
} }
accountAddresses () {
return Object
.keys(this._store)
.filter((address) => this._store[address].uuid);
}
map (mapper) { map (mapper) {
const result = {}; const result = {};

View File

@ -29,7 +29,7 @@ export default class LocalAccountsMiddleware extends Middleware {
const register = this.register.bind(this); const register = this.register.bind(this);
register('eth_accounts', () => { register('eth_accounts', () => {
return accounts.addresses(); return accounts.accountAddresses();
}); });
register('eth_coinbase', () => { register('eth_coinbase', () => {
@ -73,7 +73,7 @@ export default class LocalAccountsMiddleware extends Middleware {
}); });
register('parity_defaultAccount', () => { register('parity_defaultAccount', () => {
return accounts.lastAddress; return accounts.dappsDefaultAddress;
}); });
register('parity_exportAccount', ([address, password]) => { register('parity_exportAccount', ([address, password]) => {
@ -98,11 +98,11 @@ export default class LocalAccountsMiddleware extends Middleware {
}); });
register('parity_getNewDappsAddresses', () => { register('parity_getNewDappsAddresses', () => {
return []; return accounts.accountAddresses();
}); });
register('parity_getNewDappsDefaultAddress', () => { register('parity_getNewDappsDefaultAddress', () => {
return accounts.lastAddress; return accounts.dappsDefaultAddress;
}); });
register('parity_hardwareAccountsInfo', () => { register('parity_hardwareAccountsInfo', () => {
@ -149,6 +149,8 @@ export default class LocalAccountsMiddleware extends Middleware {
register('parity_setNewDappsDefaultAddress', ([address]) => { register('parity_setNewDappsDefaultAddress', ([address]) => {
accounts.dappsDefaultAddress = address; accounts.dappsDefaultAddress = address;
return true;
}); });
register('parity_postTransaction', ([tx]) => { register('parity_postTransaction', ([tx]) => {
@ -210,6 +212,10 @@ export default class LocalAccountsMiddleware extends Middleware {
return account.isValidPassword(password); return account.isValidPassword(password);
}); });
register('parity_upgradeReady', () => {
return false;
});
register('signer_confirmRequest', ([id, modify, password]) => { register('signer_confirmRequest', ([id, modify, password]) => {
const { const {
gasPrice, gasPrice,

View File

@ -21,6 +21,10 @@ export default class Middleware {
} }
register (method, handler) { register (method, handler) {
if (method in this._handlers) {
throw new Error(`${method} is already defined in the middleware!`);
}
this._handlers[method] = handler; this._handlers[method] = handler;
} }