Proper default accounts RPCs (#4580)
* Default accounts setting - account provider * RPC support for default accounts * Updating JS code * Rename whitelist to addresses
This commit is contained in:
@@ -170,18 +170,30 @@ export default class Parity {
|
||||
.execute('parity_generateSecretPhrase');
|
||||
}
|
||||
|
||||
getDappsAddresses (dappId) {
|
||||
getDappAddresses (dappId) {
|
||||
return this._transport
|
||||
.execute('parity_getDappsAddresses', dappId)
|
||||
.execute('parity_getDappAddresses', dappId)
|
||||
.then(outAddresses);
|
||||
}
|
||||
|
||||
getNewDappsWhitelist () {
|
||||
getDappDefaultAddress (dappId) {
|
||||
return this._transport
|
||||
.execute('parity_getNewDappsWhitelist')
|
||||
.execute('parity_getDappDefaultAddress', dappId)
|
||||
.then(outAddress);
|
||||
}
|
||||
|
||||
getNewDappsAddresses () {
|
||||
return this._transport
|
||||
.execute('parity_getNewDappsAddresses')
|
||||
.then((addresses) => addresses ? addresses.map(outAddress) : null);
|
||||
}
|
||||
|
||||
getNewDappsDefaultAddress () {
|
||||
return this._transport
|
||||
.execute('parity_getNewDappsDefaultAddress')
|
||||
.then(outAddress);
|
||||
}
|
||||
|
||||
getVaultMeta (vaultName) {
|
||||
return this._transport
|
||||
.execute('parity_getVaultMeta', vaultName)
|
||||
@@ -391,9 +403,14 @@ export default class Parity {
|
||||
.execute('parity_setAuthor', inAddress(address));
|
||||
}
|
||||
|
||||
setDappsAddresses (dappId, addresses) {
|
||||
setDappAddresses (dappId, addresses) {
|
||||
return this._transport
|
||||
.execute('parity_setDappsAddresses', dappId, inAddresses(addresses));
|
||||
.execute('parity_setDappAddresses', dappId, inAddresses(addresses));
|
||||
}
|
||||
|
||||
setDappDefaultAddress (dappId, address) {
|
||||
return this._transport
|
||||
.execute('parity_setDappDefaultAddress', dappId, address ? inAddress(address) : null);
|
||||
}
|
||||
|
||||
setEngineSigner (address, password) {
|
||||
@@ -431,9 +448,14 @@ export default class Parity {
|
||||
.execute('parity_setMode', mode);
|
||||
}
|
||||
|
||||
setNewDappsWhitelist (addresses) {
|
||||
setNewDappsAddresses (addresses) {
|
||||
return this._transport
|
||||
.execute('parity_setNewDappsWhitelist', addresses ? inAddresses(addresses) : null);
|
||||
.execute('parity_setNewDappsAddresses', addresses ? inAddresses(addresses) : null);
|
||||
}
|
||||
|
||||
setNewDappsDefaultAddress (address) {
|
||||
return this._transport
|
||||
.execute('parity_setNewDappsDefaultAddress', inAddress(address));
|
||||
}
|
||||
|
||||
setTransactionsLimit (quantity) {
|
||||
|
||||
@@ -123,8 +123,10 @@ export default class Personal {
|
||||
this._accountsInfo();
|
||||
return;
|
||||
|
||||
case 'parity_setDappsAddresses':
|
||||
case 'parity_setNewDappsWhitelist':
|
||||
case 'parity_setDappAddresses':
|
||||
case 'parity_setDappDefaultAddress':
|
||||
case 'parity_setNewDappsAddresses':
|
||||
case 'parity_setNewDappsDefaultAddress':
|
||||
this._defaultAccount(true);
|
||||
this._listAccounts();
|
||||
return;
|
||||
|
||||
@@ -1186,9 +1186,9 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
setDappsAddresses: {
|
||||
setDappAddresses: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Sets the available addresses for a dapp.',
|
||||
desc: 'Sets the available addresses for a dapp. When provided with non-empty list changes the default account as well.',
|
||||
params: [
|
||||
{
|
||||
type: String,
|
||||
@@ -1197,7 +1197,7 @@ export default {
|
||||
},
|
||||
{
|
||||
type: Array,
|
||||
desc: 'Array of available accounts available to the dapp.',
|
||||
desc: 'Array of available accounts available to the dapp or `null` for default list.',
|
||||
example: ['0x407d73d8a49eeb85d32cf465507dd71d507100c1']
|
||||
}
|
||||
],
|
||||
@@ -1208,7 +1208,7 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
getDappsAddresses: {
|
||||
getDappAddresses: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Returns the list of accounts available to a specific dapp.',
|
||||
params: [
|
||||
@@ -1225,13 +1225,52 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
setNewDappsWhitelist: {
|
||||
setDappDefaultAddress: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Changes dapp default address. Does not affect other accounts exposed for this dapp, but default account will always be retured as the first one.',
|
||||
params: [
|
||||
{
|
||||
type: String,
|
||||
desc: 'Dapp Id.',
|
||||
example: 'web'
|
||||
},
|
||||
{
|
||||
type: Address,
|
||||
desc: 'Default Address.',
|
||||
example: '0x407d73d8a49eeb85d32cf465507dd71d507100c1'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: '`true` if the call was successful',
|
||||
example: true
|
||||
}
|
||||
},
|
||||
|
||||
getDappDefaultAddress: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Returns a default account available to a specific dapp.',
|
||||
params: [
|
||||
{
|
||||
type: String,
|
||||
desc: 'Dapp Id.',
|
||||
example: 'web'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'Default Address',
|
||||
example: '0x407d73d8a49eeb85d32cf465507dd71d507100c1'
|
||||
}
|
||||
},
|
||||
|
||||
setNewDappsAddresses: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Sets the list of accounts available to new dapps.',
|
||||
params: [
|
||||
{
|
||||
type: Array,
|
||||
desc: 'List of accounts available by default.',
|
||||
desc: 'List of accounts available by default or `null` for all accounts.',
|
||||
example: ['0x407d73d8a49eeb85d32cf465507dd71d507100c1']
|
||||
}
|
||||
],
|
||||
@@ -1242,7 +1281,7 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
getNewDappsWhitelist: {
|
||||
getNewDappsAddresses: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Returns the list of accounts available to a new dapps.',
|
||||
params: [],
|
||||
@@ -1253,6 +1292,34 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
setNewDappsDefaultAddress: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Changes global default address. This setting may be overriden for a specific dapp.',
|
||||
params: [
|
||||
{
|
||||
type: Address,
|
||||
desc: 'Default Address.',
|
||||
example: '0x407d73d8a49eeb85d32cf465507dd71d507100c1'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: '`true` if the call was successful',
|
||||
example: true
|
||||
}
|
||||
},
|
||||
|
||||
getNewDappsDefaultAddress: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Returns a default account available to dapps.',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'Default Address',
|
||||
example: '0x407d73d8a49eeb85d32cf465507dd71d507100c1'
|
||||
}
|
||||
},
|
||||
|
||||
listRecentDapps: {
|
||||
subdoc: SUBDOC_ACCOUNTS,
|
||||
desc: 'Returns a list of the most recent active dapps.',
|
||||
|
||||
@@ -102,7 +102,7 @@ export default class Store {
|
||||
|
||||
loadWhitelist () {
|
||||
return this._api.parity
|
||||
.getNewDappsWhitelist()
|
||||
.getNewDappsAddresses()
|
||||
.then((whitelist) => {
|
||||
this.setWhitelist(whitelist);
|
||||
})
|
||||
@@ -113,7 +113,7 @@ export default class Store {
|
||||
|
||||
updateWhitelist (whitelist) {
|
||||
return this._api.parity
|
||||
.setNewDappsWhitelist(whitelist)
|
||||
.setNewDappsAddresses(whitelist)
|
||||
.then(() => {
|
||||
this.setWhitelist(whitelist);
|
||||
})
|
||||
|
||||
@@ -31,8 +31,8 @@ let store;
|
||||
function create () {
|
||||
api = {
|
||||
parity: {
|
||||
getNewDappsWhitelist: sinon.stub().resolves(WHITELIST),
|
||||
setNewDappsWhitelist: sinon.stub().resolves(true)
|
||||
getNewDappsAddresses: sinon.stub().resolves(WHITELIST),
|
||||
setNewDappsAddresses: sinon.stub().resolves(true)
|
||||
}
|
||||
};
|
||||
|
||||
@@ -46,7 +46,7 @@ describe('modals/DappPermissions/store', () => {
|
||||
|
||||
describe('constructor', () => {
|
||||
it('retrieves the whitelist via api', () => {
|
||||
expect(api.parity.getNewDappsWhitelist).to.be.calledOnce;
|
||||
expect(api.parity.getNewDappsAddresses).to.be.calledOnce;
|
||||
});
|
||||
|
||||
it('sets the retrieved whitelist', () => {
|
||||
@@ -79,12 +79,12 @@ describe('modals/DappPermissions/store', () => {
|
||||
store.closeModal();
|
||||
});
|
||||
|
||||
it('calls setNewDappsWhitelist', () => {
|
||||
expect(api.parity.setNewDappsWhitelist).to.have.been.calledOnce;
|
||||
it('calls setNewDappsAddresses', () => {
|
||||
expect(api.parity.setNewDappsAddresses).to.have.been.calledOnce;
|
||||
});
|
||||
|
||||
it('has the default account in first position', () => {
|
||||
expect(api.parity.setNewDappsWhitelist).to.have.been.calledWith(['789', '456']);
|
||||
expect(api.parity.setNewDappsAddresses).to.have.been.calledWith(['789', '456']);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ export default class AccountStore {
|
||||
this.setDefaultAccount(address);
|
||||
|
||||
return this._api.parity
|
||||
.setNewDappsWhitelist(accounts)
|
||||
.setNewDappsAddresses(accounts)
|
||||
.catch((error) => {
|
||||
console.warn('makeDefaultAccount', error);
|
||||
});
|
||||
@@ -78,7 +78,7 @@ export default class AccountStore {
|
||||
|
||||
return Promise
|
||||
.all([
|
||||
this._api.parity.getNewDappsWhitelist(),
|
||||
this._api.parity.getNewDappsAddresses(),
|
||||
this._api.parity.allAccountsInfo()
|
||||
])
|
||||
.then(([whitelist, accounts]) => {
|
||||
|
||||
@@ -76,8 +76,8 @@ describe('views/ParityBar/AccountStore', () => {
|
||||
store.setAccounts.restore();
|
||||
});
|
||||
|
||||
it('calls into parity_getNewDappsWhitelist', () => {
|
||||
expect(api.parity.getNewDappsWhitelist).to.have.been.called;
|
||||
it('calls into parity_getNewDappsAddresses', () => {
|
||||
expect(api.parity.getNewDappsAddresses).to.have.been.called;
|
||||
});
|
||||
|
||||
it('calls into parity_allAccountsInfo', () => {
|
||||
@@ -104,8 +104,8 @@ describe('views/ParityBar/AccountStore', () => {
|
||||
return store.makeDefaultAccount(ACCOUNT_NEW);
|
||||
});
|
||||
|
||||
it('calls into parity_setNewDappsWhitelist (with ordering)', () => {
|
||||
expect(api.parity.setNewDappsWhitelist).to.have.been.calledWith([
|
||||
it('calls into parity_setNewDappsAddresses (with ordering)', () => {
|
||||
expect(api.parity.setNewDappsAddresses).to.have.been.calledWith([
|
||||
ACCOUNT_NEW, ACCOUNT_FIRST, ACCOUNT_DEFAULT
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -36,8 +36,8 @@ function createApi () {
|
||||
parity: {
|
||||
defaultAccount: sinon.stub().resolves(ACCOUNT_DEFAULT),
|
||||
allAccountsInfo: sinon.stub().resolves(ACCOUNTS),
|
||||
getNewDappsWhitelist: sinon.stub().resolves(null),
|
||||
setNewDappsWhitelist: sinon.stub().resolves(true)
|
||||
getNewDappsAddresses: sinon.stub().resolves(null),
|
||||
setNewDappsAddresses: sinon.stub().resolves(true)
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user