parity.js interfaces for vaults (#4497)
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
import BigNumber from 'bignumber.js';
|
||||
|
||||
import { toChecksumAddress } from '../../abi/util/address';
|
||||
import { isString } from '../util/types';
|
||||
|
||||
export function outAccountInfo (infos) {
|
||||
return Object
|
||||
@@ -344,3 +345,17 @@ export function outTraceReplay (trace) {
|
||||
|
||||
return trace;
|
||||
}
|
||||
|
||||
export function outVaultMeta (meta) {
|
||||
if (isString(meta)) {
|
||||
try {
|
||||
const obj = JSON.parse(meta);
|
||||
|
||||
return obj;
|
||||
} catch (error) {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
return meta || {};
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
import BigNumber from 'bignumber.js';
|
||||
|
||||
import { outBlock, outAccountInfo, outAddress, outChainStatus, outDate, outHistogram, outNumber, outPeer, outPeers, outReceipt, outSyncing, outTransaction, outTrace } from './output';
|
||||
import { outBlock, outAccountInfo, outAddress, outChainStatus, outDate, outHistogram, outNumber, outPeer, outPeers, outReceipt, outSyncing, outTransaction, outTrace, outVaultMeta } from './output';
|
||||
import { isAddress, isBigNumber, isInstanceOf } from '../../../test/types';
|
||||
|
||||
describe('api/format/output', () => {
|
||||
@@ -455,4 +455,22 @@ describe('api/format/output', () => {
|
||||
expect(formatted.transactionPosition.toNumber()).to.equal(11);
|
||||
});
|
||||
});
|
||||
|
||||
describe('outVaultMeta', () => {
|
||||
it('returns an exmpt object on null', () => {
|
||||
expect(outVaultMeta(null)).to.deep.equal({});
|
||||
});
|
||||
|
||||
it('returns the original value if not string', () => {
|
||||
expect(outVaultMeta({ test: 123 })).to.deep.equal({ test: 123 });
|
||||
});
|
||||
|
||||
it('returns an object from JSON string', () => {
|
||||
expect(outVaultMeta('{"test":123}')).to.deep.equal({ test: 123 });
|
||||
});
|
||||
|
||||
it('returns an empty object on invalid JSON', () => {
|
||||
expect(outVaultMeta('{"test"}')).to.deep.equal({});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import { inAddress, inAddresses, inData, inHex, inNumber16, inOptions, inBlockNumber } from '../../format/input';
|
||||
import { outAccountInfo, outAddress, outAddresses, outChainStatus, outHistogram, outNumber, outPeers, outTransaction } from '../../format/output';
|
||||
import { outAccountInfo, outAddress, outAddresses, outChainStatus, outHistogram, outNumber, outPeers, outTransaction, outVaultMeta } from '../../format/output';
|
||||
|
||||
export default class Parity {
|
||||
constructor (transport) {
|
||||
@@ -55,11 +55,26 @@ export default class Parity {
|
||||
.execute('parity_changePassword', inAddress(account), password, newPassword);
|
||||
}
|
||||
|
||||
changeVault (account, vaultName) {
|
||||
return this._transport
|
||||
.execute('parity_changeVault', inAddress(account), vaultName);
|
||||
}
|
||||
|
||||
changeVaultPassword (vaultName, password) {
|
||||
return this._transport
|
||||
.execute('parity_changeVaultPassword', vaultName, password);
|
||||
}
|
||||
|
||||
checkRequest (requestId) {
|
||||
return this._transport
|
||||
.execute('parity_checkRequest', inNumber16(requestId));
|
||||
}
|
||||
|
||||
closeVault (vaultName) {
|
||||
return this._transport
|
||||
.execute('parity_closeVault', vaultName);
|
||||
}
|
||||
|
||||
consensusCapability () {
|
||||
return this._transport
|
||||
.execute('parity_consensusCapability');
|
||||
@@ -167,6 +182,12 @@ export default class Parity {
|
||||
.then((addresses) => addresses ? addresses.map(outAddress) : null);
|
||||
}
|
||||
|
||||
getVaultMeta (vaultName) {
|
||||
return this._transport
|
||||
.execute('parity_getVaultMeta', vaultName)
|
||||
.then(outVaultMeta);
|
||||
}
|
||||
|
||||
hashContent (url) {
|
||||
return this._transport
|
||||
.execute('parity_hashContent', url);
|
||||
@@ -189,6 +210,16 @@ export default class Parity {
|
||||
.then((accounts) => (accounts || []).map(outAddress));
|
||||
}
|
||||
|
||||
listOpenedVaults () {
|
||||
return this._transport
|
||||
.execute('parity_listOpenedVaults');
|
||||
}
|
||||
|
||||
listVaults () {
|
||||
return this._transport
|
||||
.execute('parity_listVaults');
|
||||
}
|
||||
|
||||
listRecentDapps () {
|
||||
return this._transport
|
||||
.execute('parity_listRecentDapps');
|
||||
@@ -275,6 +306,11 @@ export default class Parity {
|
||||
.then(outAddress);
|
||||
}
|
||||
|
||||
newVault (vaultName, password) {
|
||||
return this._transport
|
||||
.execute('parity_newVault', vaultName, password);
|
||||
}
|
||||
|
||||
nextNonce (account) {
|
||||
return this._transport
|
||||
.execute('parity_nextNonce', inAddress(account))
|
||||
@@ -286,6 +322,11 @@ export default class Parity {
|
||||
.execute('parity_nodeName');
|
||||
}
|
||||
|
||||
openVault (vaultName, password) {
|
||||
return this._transport
|
||||
.execute('parity_openVault', vaultName, password);
|
||||
}
|
||||
|
||||
pendingTransactions () {
|
||||
return this._transport
|
||||
.execute('parity_pendingTransactions')
|
||||
@@ -399,6 +440,11 @@ export default class Parity {
|
||||
.execute('parity_setTransactionsLimit', inNumber16(quantity));
|
||||
}
|
||||
|
||||
setVaultMeta (vaultName, meta) {
|
||||
return this._transport
|
||||
.execute('parity_setVaultMeta', vaultName, JSON.stringify(meta));
|
||||
}
|
||||
|
||||
signerPort () {
|
||||
return this._transport
|
||||
.execute('parity_signerPort')
|
||||
|
||||
@@ -104,11 +104,14 @@ export default class Personal {
|
||||
}
|
||||
|
||||
switch (data.method) {
|
||||
case 'parity_closeVault':
|
||||
case 'parity_openVault':
|
||||
case 'parity_killAccount':
|
||||
case 'parity_importGethAccounts':
|
||||
case 'personal_newAccount':
|
||||
case 'parity_newAccountFromPhrase':
|
||||
case 'parity_newAccountFromWallet':
|
||||
case 'personal_newAccount':
|
||||
this._defaultAccount(true);
|
||||
this._listAccounts();
|
||||
this._accountsInfo();
|
||||
return;
|
||||
@@ -116,6 +119,7 @@ export default class Personal {
|
||||
case 'parity_removeAddress':
|
||||
case 'parity_setAccountName':
|
||||
case 'parity_setAccountMeta':
|
||||
case 'parity_changeVault':
|
||||
this._accountsInfo();
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user