Visible accounts for dapps (default whitelist) (#3898)

* Add APIs for Dapp management

* Move AddDapps modal

* Add DappsPermissions Modal (basics)

* Allow whitelist editing

* Add select/unselect tests

* Case

* Case

* Modal render/non-render tests

* UI made slightly prettier

* Adjust spacing

* Allow get/set of null for default whitelist (all)

* Allow null = all for selection

* Adjust selected background

* Address valid comment on formatters location
This commit is contained in:
Jaco Greeff
2016-12-27 16:23:41 +01:00
committed by Gav Wood
parent 80eae8cc49
commit b27c809c64
17 changed files with 650 additions and 51 deletions

View File

@@ -24,6 +24,10 @@ export function inAddress (address) {
return inHex(address);
}
export function inAddresses (addresses) {
return (addresses || []).map(inAddress);
}
export function inBlockNumber (blockNumber) {
if (isString(blockNumber)) {
switch (blockNumber) {

View File

@@ -42,6 +42,10 @@ export function outAddress (address) {
return toChecksumAddress(address);
}
export function outAddresses (addresses) {
return (addresses || []).map(outAddress);
}
export function outBlock (block) {
if (block) {
Object.keys(block).forEach((key) => {

View File

@@ -14,8 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
import { inAddress, inData, inHex, inNumber16, inOptions } from '../../format/input';
import { outAccountInfo, outAddress, outChainStatus, outHistogram, outNumber, outPeers, outTransaction } from '../../format/output';
import { inAddress, inAddresses, inData, inHex, inNumber16, inOptions } from '../../format/input';
import { outAccountInfo, outAddress, outAddresses, outChainStatus, outHistogram, outNumber, outPeers, outTransaction } from '../../format/output';
export default class Parity {
constructor (transport) {
@@ -128,6 +128,18 @@ export default class Parity {
.execute('parity_generateSecretPhrase');
}
getDappsAddresses (dappId) {
return this._transport
.execute('parity_getDappsAddresses', dappId)
.then(outAddresses);
}
getNewDappsWhitelist () {
return this._transport
.execute('parity_getNewDappsWhitelist')
.then((addresses) => addresses ? addresses.map(outAddress) : null);
}
hashContent (url) {
return this._transport
.execute('parity_hashContent', url);
@@ -135,8 +147,8 @@ export default class Parity {
importGethAccounts (accounts) {
return this._transport
.execute('parity_importGethAccounts', (accounts || []).map(inAddress))
.then((accounts) => (accounts || []).map(outAddress));
.execute('parity_importGethAccounts', inAddresses)
.then(outAddresses);
}
killAccount (account, password) {
@@ -144,6 +156,11 @@ export default class Parity {
.execute('parity_killAccount', inAddress(account), password);
}
listRecentDapps () {
return this._transport
.execute('parity_listRecentDapps');
}
removeAddress (address) {
return this._transport
.execute('parity_removeAddress', inAddress(address));
@@ -152,7 +169,7 @@ export default class Parity {
listGethAccounts () {
return this._transport
.execute('parity_listGethAccounts')
.then((accounts) => (accounts || []).map(outAddress));
.then(outAddresses);
}
localTransactions () {
@@ -289,6 +306,11 @@ export default class Parity {
.execute('parity_setAuthor', inAddress(address));
}
setDappsAddresses (dappId, addresses) {
return this._transport
.execute('parity_setDappsAddresses', dappId, inAddresses(addresses));
}
setExtraData (data) {
return this._transport
.execute('parity_setExtraData', inData(data));
@@ -309,6 +331,11 @@ export default class Parity {
.execute('parity_setMode', mode);
}
setNewDappsWhitelist (addresses) {
return this._transport
.execute('parity_setNewDappsWhitelist', addresses ? inAddresses(addresses) : null);
}
setTransactionsLimit (quantity) {
return this._transport
.execute('parity_setTransactionsLimit', inNumber16(quantity));