Backporting to beta (#3229)
* Use ethcore_dappsPort when constructing URLs (#3139) * Upon connect, retrieve the available api ports * Update dapps to load from dappsPort * Update dapps summary with dappsPort * Allow proxy to use dappsPort * Replace /api/ping with HEAD / * Dynamic port for available apps * Retrieve content images with dappsPort * Fix / * Transfer token dropdown image fix * IdentityIcon loads images via contentHash * Update apps fetch to cater for dev & prod * DRY up 127.0.0.1:${dappsPort} with ${dappsUrl} * Cleaning up polluted namespaces (#3143) * Renaming ethcore_ to parity_ * Renaming files * Renaming poluted EthSigning * Tidy up the namespaces * Renaming files to match new structure * Splitting EthSigning into separate traits * jsapi move ethcore.* -> parity.* * Move jsonrpc parity definitions * Update UI API calls for parity interfaces * Move jsapi signer interfaces from personal to signer * Update UI to use signer.* where applicable * Updsate jsapi subscriptions for signer * Fix dodgy merge. * Update README. * Fix some tests. * Move parity-only personal.* to parity.* * Update UI for personal -> parity API moves * Update subscription APIs after personal -> parity move * personal. generateAuthorizationToken -> parity. generateAuthorizationToken (UI) * enode, dappsPort & signerPort (UI) * Update subscription tests (accountsInfo) * subscription update * personal -> parity * Additional error logging on method failures * move postTransaction to parity * Additional debug info with method failures * Fix personal tests. * Console wrning shows parameters, error object does not * Include parity_ signing methods. * Console log http transport info * Fix failing tests * Add RPC stubs for parity_accounts. * Allow some secure built-in dapps * Use parity_accounts in place of accountsInfo * Improve error reporting * Cleanup GHH error handling Former-commit-id: 5a094ccb9f0596d0e07abc23504b80dc099ad584
This commit is contained in:
@@ -16,20 +16,22 @@
|
||||
|
||||
import db from './interfaces/db';
|
||||
import eth from './interfaces/eth';
|
||||
import ethcore from './interfaces/ethcore';
|
||||
import net from './interfaces/net';
|
||||
import parity from './interfaces/parity';
|
||||
import personal from './interfaces/personal';
|
||||
import shh from './interfaces/shh';
|
||||
import signer from './interfaces/signer';
|
||||
import trace from './interfaces/trace';
|
||||
import web3 from './interfaces/web3';
|
||||
|
||||
export default {
|
||||
db: db,
|
||||
eth: eth,
|
||||
ethcore: ethcore,
|
||||
net: net,
|
||||
personal: personal,
|
||||
shh: shh,
|
||||
trace: trace,
|
||||
web3: web3
|
||||
db,
|
||||
eth,
|
||||
parity,
|
||||
net,
|
||||
personal,
|
||||
shh,
|
||||
signer,
|
||||
trace,
|
||||
web3
|
||||
};
|
||||
|
||||
@@ -86,20 +86,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
checkRequest: {
|
||||
desc: 'Returns the transactionhash of the requestId (received from eth_postTransaction) if the request was confirmed',
|
||||
params: [
|
||||
{
|
||||
type: Quantity,
|
||||
desc: 'The requestId to check for'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Hash,
|
||||
desc: '32 Bytes - the transaction hash, or the zero hash if the transaction is not yet available'
|
||||
}
|
||||
},
|
||||
|
||||
coinbase: {
|
||||
desc: 'Returns the client coinbase address.',
|
||||
params: [],
|
||||
@@ -823,22 +809,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
postTransaction: {
|
||||
desc: 'Posts a transaction to the Signer.',
|
||||
params: [
|
||||
{
|
||||
type: Object,
|
||||
desc: 'see [eth_sendTransaction](#eth_sendTransaction)',
|
||||
format: 'inputCallFormatter'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Quantity,
|
||||
desc: 'The id of the actual transaction',
|
||||
format: 'utils.toDecimal'
|
||||
}
|
||||
},
|
||||
|
||||
protocolVersion: {
|
||||
desc: 'Returns the current ethereum protocol version.',
|
||||
params: [],
|
||||
|
||||
@@ -26,6 +26,52 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
accounts: {
|
||||
desc: 'returns a map of accounts as an object',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: 'Account metadata',
|
||||
details: {
|
||||
name: {
|
||||
type: String,
|
||||
desc: 'Account name'
|
||||
},
|
||||
meta: {
|
||||
type: String,
|
||||
desc: 'Encoded JSON string the defines additional account metadata'
|
||||
},
|
||||
uuid: {
|
||||
type: String,
|
||||
desc: 'The account UUID, or null if not available/unknown/not applicable.'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
accountsInfo: {
|
||||
desc: 'returns a map of accounts as an object',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: 'Account metadata',
|
||||
details: {
|
||||
name: {
|
||||
type: String,
|
||||
desc: 'Account name'
|
||||
},
|
||||
meta: {
|
||||
type: String,
|
||||
desc: 'Encoded JSON string the defines additional account metadata'
|
||||
},
|
||||
uuid: {
|
||||
type: String,
|
||||
desc: 'The account UUID, or null if not available/unknown/not applicable.'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
addReservedPeer: {
|
||||
desc: '?',
|
||||
params: [
|
||||
@@ -40,6 +86,20 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
checkRequest: {
|
||||
desc: 'Returns the transactionhash of the requestId (received from parity_postTransaction) if the request was confirmed',
|
||||
params: [
|
||||
{
|
||||
type: Quantity,
|
||||
desc: 'The requestId to check for'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Hash,
|
||||
desc: '32 Bytes - the transaction hash, or the zero hash if the transaction is not yet available'
|
||||
}
|
||||
},
|
||||
|
||||
dappsPort: {
|
||||
desc: 'Returns the port the dapps are running on, error if not enabled',
|
||||
params: [],
|
||||
@@ -155,6 +215,29 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
listGethAccounts: {
|
||||
desc: 'Returns a list of the accounts available from Geth',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: '20 Bytes addresses owned by the client.'
|
||||
}
|
||||
},
|
||||
|
||||
importGethAccounts: {
|
||||
desc: 'Imports a list of accounts from geth',
|
||||
params: [
|
||||
{
|
||||
type: Array,
|
||||
desc: 'List of the geth addresses to import'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: 'Array of the imported addresses'
|
||||
}
|
||||
},
|
||||
|
||||
minGasPrice: {
|
||||
desc: 'Returns currently set minimal gas price',
|
||||
params: [],
|
||||
@@ -210,6 +293,60 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
newAccountFromPhrase: {
|
||||
desc: 'Creates a new account from a recovery passphrase',
|
||||
params: [
|
||||
{
|
||||
type: String,
|
||||
desc: 'Phrase'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'The created address'
|
||||
}
|
||||
},
|
||||
|
||||
newAccountFromSecret: {
|
||||
desc: 'Creates a new account from a private ethstore secret key',
|
||||
params: [
|
||||
{
|
||||
type: Data,
|
||||
desc: 'Secret, 32-byte hex'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'The created address'
|
||||
}
|
||||
},
|
||||
|
||||
newAccountFromWallet: {
|
||||
desc: 'Creates a new account from a JSON import',
|
||||
params: [
|
||||
{
|
||||
type: String,
|
||||
desc: 'JSON'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'The created address'
|
||||
}
|
||||
},
|
||||
|
||||
nodeName: {
|
||||
desc: 'Returns node name (identity)',
|
||||
params: [],
|
||||
@@ -233,6 +370,22 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
postTransaction: {
|
||||
desc: 'Posts a transaction to the Signer.',
|
||||
params: [
|
||||
{
|
||||
type: Object,
|
||||
desc: 'see [eth_sendTransaction](#eth_sendTransaction)',
|
||||
format: 'inputCallFormatter'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Quantity,
|
||||
desc: 'The id of the actual transaction',
|
||||
format: 'utils.toDecimal'
|
||||
}
|
||||
},
|
||||
|
||||
removeReservedPeer: {
|
||||
desc: '?',
|
||||
params: [
|
||||
@@ -265,6 +418,42 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
setAccountName: {
|
||||
desc: 'Sets a name for the account',
|
||||
params: [
|
||||
{
|
||||
type: Address,
|
||||
desc: 'Address'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Name'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Object,
|
||||
desc: 'Returns null in all cases'
|
||||
}
|
||||
},
|
||||
|
||||
setAccountMeta: {
|
||||
desc: 'Sets metadata for the account',
|
||||
params: [
|
||||
{
|
||||
type: Address,
|
||||
desc: 'Address'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Metadata (JSON encoded)'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Object,
|
||||
desc: 'Returns null in all cases'
|
||||
}
|
||||
},
|
||||
|
||||
setAuthor: {
|
||||
desc: 'Changes author (coinbase) for mined blocks.',
|
||||
params: [
|
||||
@@ -17,83 +17,6 @@
|
||||
import { Address, Data, Quantity } from '../types';
|
||||
|
||||
export default {
|
||||
accountsInfo: {
|
||||
desc: 'returns a map of accounts as an object',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: 'Account metadata',
|
||||
details: {
|
||||
name: {
|
||||
type: String,
|
||||
desc: 'Account name'
|
||||
},
|
||||
meta: {
|
||||
type: String,
|
||||
desc: 'Encoded JSON string the defines additional account metadata'
|
||||
},
|
||||
uuid: {
|
||||
type: String,
|
||||
desc: 'The account UUID, or null if not available/unknown/not applicable.'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
generateAuthorizationToken: {
|
||||
desc: 'Generates a new authorization token',
|
||||
params: [],
|
||||
returns: {
|
||||
type: String,
|
||||
desc: 'The new authorization token'
|
||||
}
|
||||
},
|
||||
|
||||
requestsToConfirm: {
|
||||
desc: 'Returns a list of the transactions requiring authorization',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: 'A list of the outstanding transactions'
|
||||
}
|
||||
},
|
||||
|
||||
confirmRequest: {
|
||||
desc: 'Confirm a request in the signer queue',
|
||||
params: [
|
||||
{
|
||||
type: Quantity,
|
||||
desc: 'The request id'
|
||||
},
|
||||
{
|
||||
type: Object,
|
||||
desc: 'The request options'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'The account password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: 'The status of the confirmation'
|
||||
}
|
||||
},
|
||||
|
||||
rejectRequest: {
|
||||
desc: 'Rejects a request in the signer queue',
|
||||
params: [
|
||||
{
|
||||
type: Quantity,
|
||||
desc: 'The request id'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: 'The status of the rejection'
|
||||
}
|
||||
},
|
||||
|
||||
listAccounts: {
|
||||
desc: 'Returns a list of addresses owned by client.',
|
||||
params: [],
|
||||
@@ -103,29 +26,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
listGethAccounts: {
|
||||
desc: 'Returns a list of the accounts available from Geth',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: '20 Bytes addresses owned by the client.'
|
||||
}
|
||||
},
|
||||
|
||||
importGethAccounts: {
|
||||
desc: 'Imports a list of accounts from geth',
|
||||
params: [
|
||||
{
|
||||
type: Array,
|
||||
desc: 'List of the geth addresses to import'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: 'Array of the imported addresses'
|
||||
}
|
||||
},
|
||||
|
||||
newAccount: {
|
||||
desc: 'Creates new account',
|
||||
params: [
|
||||
@@ -140,96 +40,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
newAccountFromPhrase: {
|
||||
desc: 'Creates a new account from a recovery passphrase',
|
||||
params: [
|
||||
{
|
||||
type: String,
|
||||
desc: 'Phrase'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'The created address'
|
||||
}
|
||||
},
|
||||
|
||||
newAccountFromSecret: {
|
||||
desc: 'Creates a new account from a private ethstore secret key',
|
||||
params: [
|
||||
{
|
||||
type: Data,
|
||||
desc: 'Secret, 32-byte hex'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'The created address'
|
||||
}
|
||||
},
|
||||
|
||||
newAccountFromWallet: {
|
||||
desc: 'Creates a new account from a JSON import',
|
||||
params: [
|
||||
{
|
||||
type: String,
|
||||
desc: 'JSON'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Address,
|
||||
desc: 'The created address'
|
||||
}
|
||||
},
|
||||
|
||||
setAccountName: {
|
||||
desc: 'Sets a name for the account',
|
||||
params: [
|
||||
{
|
||||
type: Address,
|
||||
desc: 'Address'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Name'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Object,
|
||||
desc: 'Returns null in all cases'
|
||||
}
|
||||
},
|
||||
|
||||
setAccountMeta: {
|
||||
desc: 'Sets metadata for the account',
|
||||
params: [
|
||||
{
|
||||
type: Address,
|
||||
desc: 'Address'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'Metadata (JSON encoded)'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Object,
|
||||
desc: 'Returns null in all cases'
|
||||
}
|
||||
},
|
||||
|
||||
signAndSendTransaction: {
|
||||
desc: 'Sends and signs a transaction given account passphrase. Does not require the account to be unlocked nor unlocks the account for future transactions. ',
|
||||
params: [
|
||||
@@ -284,15 +94,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
signerEnabled: {
|
||||
desc: 'Returns whether signer is enabled/disabled.',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: 'true when enabled, false when disabled'
|
||||
}
|
||||
},
|
||||
|
||||
unlockAccount: {
|
||||
desc: '?',
|
||||
params: [
|
||||
|
||||
82
js/src/jsonrpc/interfaces/signer.js
Normal file
82
js/src/jsonrpc/interfaces/signer.js
Normal file
@@ -0,0 +1,82 @@
|
||||
// Copyright 2015, 2016 Ethcore (UK) Ltd.
|
||||
// This file is part of Parity.
|
||||
|
||||
// Parity is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Parity is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import { Quantity } from '../types';
|
||||
|
||||
export default {
|
||||
generateAuthorizationToken: {
|
||||
desc: 'Generates a new authorization token',
|
||||
params: [],
|
||||
returns: {
|
||||
type: String,
|
||||
desc: 'The new authorization token'
|
||||
}
|
||||
},
|
||||
|
||||
requestsToConfirm: {
|
||||
desc: 'Returns a list of the transactions requiring authorization',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Array,
|
||||
desc: 'A list of the outstanding transactions'
|
||||
}
|
||||
},
|
||||
|
||||
confirmRequest: {
|
||||
desc: 'Confirm a request in the signer queue',
|
||||
params: [
|
||||
{
|
||||
type: Quantity,
|
||||
desc: 'The request id'
|
||||
},
|
||||
{
|
||||
type: Object,
|
||||
desc: 'The request options'
|
||||
},
|
||||
{
|
||||
type: String,
|
||||
desc: 'The account password'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: 'The status of the confirmation'
|
||||
}
|
||||
},
|
||||
|
||||
rejectRequest: {
|
||||
desc: 'Rejects a request in the signer queue',
|
||||
params: [
|
||||
{
|
||||
type: Quantity,
|
||||
desc: 'The request id'
|
||||
}
|
||||
],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: 'The status of the rejection'
|
||||
}
|
||||
},
|
||||
|
||||
signerEnabled: {
|
||||
desc: 'Returns whether signer is enabled/disabled.',
|
||||
params: [],
|
||||
returns: {
|
||||
type: Boolean,
|
||||
desc: 'true when enabled, false when disabled'
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user