PWeb3 Javascript API
Last updated
Was this helpful?
Last updated
Was this helpful?
First, you need to get web3.js into your project. This can be done using the following methods:
npm: npm install pweb3
bower: bower install pweb3
vanilla: link the dist./pweb3.min.js
Then you need to create a web3 instance, setting a provider. To make sure you don't overwrite the already set provider when in mist, check first if the web3 is available:
After that, you can use the of the web3
object.
Batch requests allow queuing up requests and processing them at once. Note Batch requests are not faster! In fact making many requests at once will in some cases be faster, as requests are processed asynchronously. Batch requests are mainly useful to ensure the serial processing of requests.
You will always get a BigNumber object for number values as JavaScript is not able to handle big numbers correctly. Look at the following examples:
The next example wouldn't work as we have more than 20 floating points, therefore it is recommended to always keep your balance in wei and only transform it to other units when presenting to the user:
The web3
object provides all methods.
Example
Example using HTTP Basic Authentication
Returns
String
- The pchain js api version.
Example
Returns
String
- The client/node version.
Example
Returns
String
- The network protocol version.
Example
Returns
String
- The pchain protocol version.
Example
Returns
String
- The whisper protocol version.
Example
Should be called to check if a connection to a node exists
Parameters
none
Returns
Boolean
Example
Should be called to set provider.
Parameters
none
Returns
undefined
Example
Will contain the current provider, if one is set. This can be used to check if mist etc. has set already a provider.
Returns
Object
- The provider set or null
;
Example
Should be called to reset state of web3. Resets everything except manager. Uninstalls all filters. Stops polling.
Parameters
Returns
undefined
Example
Parameters
String
- The string to hash using the Keccak-256 SHA3 algorithm
Object
- (optional) Set encoding
to hex
if the string to hash is encoded in hex. A leading 0x
will be automatically ignored.
Returns
String
- The Keccak-256 SHA3 of the given data.
Example
Parameters
from
: address, 20 Bytes - the address who triggers the action
amount
: hex string - the amount of vote
salt
: string - salt string
Returns
String
- The Keccak-256 SHA3 of the given data.
Example
Converts any value into HEX.
Parameters
String|Number|Object|Array|BigNumber
- The value to parse to HEX. If its an object or array it will be JSON.stringify
first. If its a BigNumber it will make it the HEX value of a number.
Returns
String
- The hex string of mixed
.
Example
Converts a HEX string into a ASCII string.
Parameters
String
- A HEX string to be converted to ascii.
Returns
String
- An ASCII string made from the given hexString
.
Example
Converts any ASCII string to a HEX string.
Parameters
String
- An ASCII string to be converted to HEX.
Returns
String
- The converted HEX string.
Example
Converts a HEX string to its number representation.
Parameters
String
- A HEX string to be converted to a number.
Returns
Number
- The number representing the data hexString
.
Example
Converts a number or number string to its HEX representation.
Parameters
Number|String
- A number to be converted to a HEX string.
Returns
String
- The HEX string representing of the given number
.
Example
Converts a number of wei into the following pchain units:
Gwei
Kwei
Mwei
/babbage
/pi
/femtoether
pi
finney
/gpi
/grand/gwei
kpi
/kwei
/lovelace
/mether
/micro
microether
/milli
/milliether
mwei
/nano
/nanoether
noether
picoether
/shannon
szabo
tpi
wei
Parameters
Number|String|BigNumber
- A number or BigNumber instance.
String
- One of the above pi units.
Returns
String|BigNumber
- Either a number string, or a BigNumber instance, depending on the given number
parameter.
Example
Converts an pchain unit into wei. Possible units are:
kwei
/ada
mwei
/babbage
gwei
/shannon
szabo
finney
pi
kpi
/grand
/einstein
mpi
gpi
tpi
Parameters
Number|String|BigNumber
- A number or BigNumber instance.
String
- One of the above pi units.
Returns
String|BigNumber
- Either a number string, or a BigNumber instance, depending on the given number
parameter.
Example
Parameters
Number|String
- A number, number string or HEX string of a number.
Returns
BigNumber
- A BigNumber instance representing the given value.
Example
Checks if the given string is an address.
Parameters
String
- A HEX string.
Returns
Boolean
- false
if it's not on a valid address format. Returns true
if it's an all lowercase or all uppercase valid address. If it's a mixed case address, it checks using web3.isChecksumAddress()
.
Example
This property is read only and says whether the node is actively listening for network connections or not.
Returns
Boolean
- true
if the client is actively listening for network connections, otherwise false
.
Example
This property is read only and returns the number of connected peers.
Returns
Number
- The number of peers currently connected to the client.
Example
Contains the pchain blockchain related methods.
Example
This default address is used for the following methods (optionally you can overwrite it by specifying the from
property):
Values
String
, 20 Bytes - Any address you own, or where you have the private key for. Default is undefined
.
Returns
String
, 20 Bytes - The currently set default address.
Example
This default block is used for the following methods (optionally you can override it by passing the defaultBlock parameter):
Values
Default block parameters can be one of the following:
Number
- a block number
String
- "earliest"
, the genesis block
String
- "latest"
, the latest block (current head of the blockchain)
String
- "pending"
, the currently mined block (including pending transactions) Default is latest
Returns
Number|String
- The default block number to use when querying a state.
Example
This property is read only and returns the either a sync object, when the node is syncing or false
.
Returns
Object|Boolean
- A sync object as follows, when the node is currently syncing or false
:
startingBlock
: Number
- The block number where the sync started.
currentBlock
: Number
- The block number where at which block the node currently synced to already.
highestBlock
: Number
- The estimated block number to sync to.
Example
This convenience function calls the callback
everytime a sync starts, updates and stops.
Returns
Object
- a isSyncing object with the following methods:
syncing.addCallback()
: Adds another callback, which will be called when the node starts or stops syncing.
syncing.stopWatching()
: Stops the syncing callbacks.
Callback return value
Boolean
- The callback will be fired with true
when the syncing starts and with false
when it stopped.
Object
- While syncing it will return the syncing object:
startingBlock
: Number
- The block number where the sync started.
currentBlock
: Number
- The block number where at which block the node currently synced to already.
highestBlock
: Number
- The estimated block number to sync to.
Example
This property is read only and returns the coinbase address where the mining rewards go to.
Returns
String
- The coinbase address of the client.
Example
This property is read only and says whether the node is mining or not.
Returns
Boolean
- true
if the client is mining, otherwise false
.
Example
This property is read only and returns the number of hashes per second that the node is mining with.
Returns
Number
- number of hashes per second.
Example
This property is read only and returns the current gas price. The gas price is determined by the x latest blocks median gas price.
Returns
Example
This property is read only and returns a list of accounts the node controls.
Returns
Array
- An array of addresses controlled by client.
Example
This property is read only and returns the current block number.
Returns
Number
- The number of the most recent block.
Example
(Not Implemented yet) Registers the given address to be included in web3.pi.accounts
. This allows non-private-key owned accounts to be associated as an owned account (e.g., contract wallets).
Parameters
String
- The address to register
Returns
?
Example
(Not Implemented yet) Unregisters a given address.
Parameters
String
- The address to unregister.
Returns
?
Example
Get the balance of an address at a given block.
Parameters
String
- The address to get the balance of.
Returns
Example
Get the balance of an address at a given block.
parameters
from
- address, 20 Bytes - address to check for balance.
blockNumber
- QUANTITY|TAG - integer block number, or the string "latest", "earliest" or "pending".
fullProxied
- Boolean - If true it returns the full detail proxied object under this address.
returns
balance
- QUANTITY - integer of the current balance in p-wei. delegateBalance: QUANTITY - total delegate balance in p-wei to other address depositBalance: QUANTITY - deposit balance in p-wei for Validator Stake depositProxiedBalance: QUANTITY - total deposit proxied balance in p-wei for Validator Stake pendingRefundBalance: QUANTITY - total pending refund balance in p-wei which will be return to delegate at the end of Current Epoch proxiedBalance: QUANTITY - total proxied balance in p-wei delegate from other address proxied_detail: Object - detail record of each address's proxied data, including proxied balance, deposit proxied balance and pending refund balance.
example
Get the storage at a specific position of an address.
Parameters
String
- The address to get the storage from.
Number
- The index position of the storage.
Returns
String
- The value in storage at the given position.
Example
Get the code at a specific address.
Parameters
String
- The address to get the code from.
Returns
String
- The data at given address addressHexString
.
Example
Returns a block matching the block number or block hash.
Parameters
Boolean
- (optional, default false
) If true
, the returned block will contain all transactions as objects, if false
it will only contains the transaction hashes.
Returns
Object
- The block object:
number
: Number
- the block number. null
when its pending block.
hash
: String
, 32 Bytes - hash of the block. null
when its pending block.
parentHash
: String
, 32 Bytes - hash of the parent block.
nonce
: String
, 8 Bytes - hash of the generated proof-of-work. null
when its pending block.
sha3Uncles
: String
, 32 Bytes - SHA3 of the uncles data in the block.
logsBloom
: String
, 256 Bytes - the bloom filter for the logs of the block. null
when its pending block.
transactionsRoot
: String
, 32 Bytes - the root of the transaction trie of the block
stateRoot
: String
, 32 Bytes - the root of the final state trie of the block.
miner
: String
, 20 Bytes - the address of the beneficiary to whom the mining rewards were given.
difficulty
: BigNumber
- integer of the difficulty for this block.
totalDifficulty
: BigNumber
- integer of the total difficulty of the chain until this block.
extraData
: String
- the "extra data" field of this block.
size
: Number
- integer the size of this block in bytes.
gasLimit
: Number
- the maximum gas allowed in this block.
gasUsed
: Number
- the total used gas by all transactions in this block.
timestamp
: Number
- the unix timestamp for when the block was collated.
transactions
: Array
- Array of transaction objects, or 32 Bytes transaction hashes depending on the last given parameter.
uncles
: Array
- Array of uncle hashes.
Example
Returns the number of transaction in a given block.
Parameters
Returns
Number
- The number of transactions in the given block.
Example
Returns a blocks uncle by a given uncle index position.
Parameters
Number
- The index position of the uncle.
Boolean
- (optional, default false
) If true
, the returned block will contain all transactions as objects, if false
it will only contains the transaction hashes.
Returns
Example
Returns a transaction matching the given transaction hash.
Parameters
String
- The transaction hash.
Returns
Object
- A transaction object its hash transactionHash
:
hash
: String
, 32 Bytes - hash of the transaction.
nonce
: Number
- the number of transactions made by the sender prior to this one.
blockHash
: String
, 32 Bytes - hash of the block where this transaction was in. null
when its pending.
blockNumber
: Number
- block number where this transaction was in. null
when its pending.
transactionIndex
: Number
- integer of the transactions index position in the block. null
when its pending.
from
: String
, 20 Bytes - address of the sender.
to
: String
, 20 Bytes - address of the receiver. null
when its a contract creation transaction.
value
: BigNumber
- value transferred in Wei.
gasPrice
: BigNumber
- gas price provided by the sender in Wei.
gas
: Number
- gas provided by the sender.
input
: String
- the data sent along with the transaction.
Example
Returns a transaction based on a block hash or number and the transactions index position.
Parameters
Number
- The transactions index position.
Returns
Example
Returns the receipt of a transaction by transaction hash. Note That the receipt is not available for pending transactions.
Parameters
String
- The transaction hash.
Returns
Object
- A transaction receipt object, or null
when no receipt was found:
blockHash
: String
, 32 Bytes - hash of the block where this transaction was in.
blockNumber
: Number
- block number where this transaction was in.
transactionHash
: String
, 32 Bytes - hash of the transaction.
transactionIndex
: Number
- integer of the transactions index position in the block.
from
: String
, 20 Bytes - address of the sender.
to
: String
, 20 Bytes - address of the receiver. null
when its a contract creation transaction.
cumulativeGasUsed
: Number
- The total amount of gas used when this transaction was executed in the block.
gasUsed
: Number
- The amount of gas used by this specific transaction alone.
contractAddress
: String
- 20 Bytes - The contract address created, if the transaction was a contract creation, otherwise null
.
logs
: Array
- Array of log objects, which this transaction generated.
status
: String
- '0x0' indicates transaction failure , '0x1' indicates transaction succeeded.
Example
Get the numbers of transactions sent from this address.
Parameters
String
- The address to get the numbers of transactions from.
Returns
Number
- The number of transactions sent from the given address.
Example
Sends a transaction to the network.
Parameters
Object
- The transaction object to send:
to
: String
- (optional) The destination address of the message, left undefined for a contract-creation transaction.
value
: Number|String|BigNumber
- (optional) The value transferred for the transaction in Wei, also the endowment if it's a contract-creation transaction.
gas
: Number|String|BigNumber
- (optional, default: To-Be-Determined) The amount of gas to use for the transaction (unused gas is refunded).
gasPrice
: Number|String|BigNumber
- (optional, default: To-Be-Determined) The price of gas for this transaction in wei, defaults to the mean network gas price.
nonce
: Number
- (optional) Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce.
Returns
Example
Parameters
String
- Signed transaction data in HEX format
Returns
Example
Signs data from a specific account. This account needs to be unlocked.
Parameters
String
- Address to sign with.
String
- Data to sign.
Returns
String
- The signed data. After the hex prefix, characters correspond to ECDSA values like this:
Note that if you are using ecrecover
, v
will be either "00"
or "01"
. As a result, in order to use this value, you will have to parse it to an integer and then add 27
. This will result in either a 27
or a 28
.
Example
Executes a message call transaction, which is directly executed in the VM of the node, but never mined into the blockchain.
Parameters
Returns
String
- The returned data of the call, e.g. a codes functions return value.
Example
Executes a message call or transaction, which is directly executed in the VM of the node, but never mined into the blockchain and returns the amount of the gas used.
Parameters
Returns
Number
- the used gas for the simulated call/transaction.
Example
Parameters
String|Object
- The string "latest"
or "pending"
to watch for changes in the latest block or pending transactions respectively. Or a filter options object as follows:
fromBlock
: Number|String
- The number of the earliest block (latest
may be given to mean the most recent and pending
currently mining, block). By default latest
.
toBlock
: Number|String
- The number of the latest block (latest
may be given to mean the most recent and pending
currently mining, block). By default latest
.
address
: String
- An address or a list of addresses to only get logs from particular account(s).
topics
: Array of Strings
- An array of values which must each appear in the log entries. The order is important, if you want to leave topics out use null
, e.g. [null, '0x00...']
. You can also pass another array for each topic with options for that topic e.g. [null, ['option1', 'option2']]
Returns
Object
- A filter object with the following methods:
filter.get(callback)
: Returns all of the log entries that fit the filter.
filter.stopWatching()
: Stops the watch and uninstalls the filter in the node. Should always be called once it is done.
Watch callback return value
String
- When using the "latest"
parameter, it returns the block hash of the last incoming block.
String
- When using the "pending"
parameter, it returns a transaction hash of the most recent pending transaction.
Object
- When using manual filter options, it returns a log object as follows:
logIndex
: Number
- integer of the log index position in the block. null
when its pending log.
transactionIndex
: Number
- integer of the transactions index position log was created from. null
when its pending log.
transactionHash
: String
, 32 Bytes - hash of the transactions this log was created from. null
when its pending log.
blockHash
: String
, 32 Bytes - hash of the block where this log was in. null
when its pending. null
when its pending log.
blockNumber
: Number
- the block number where this log was in. null
when its pending. null
when its pending log.
address
: String
, 32 Bytes - address from which this log originated.
data
: String
- contains one or more 32 Bytes non-indexed arguments of the log.
topics
: Array of Strings
- Array of 0 to 4 32 Bytes DATA
of indexed log arguments. (In solidity: The first topic is the hash of the signature of the event (e.g. Deposit(address,bytes32,uint256)
), except if you declared the event with the anonymous
specifier.)
Example
Parameters
Array
- ABI array with descriptions of functions and events of the contract.
Returns
Object
- A contract object, which can be initiated as follows:
And then you can either initiate an existing contract on an address, or deploy the contract using the compiled byte code:
Example
Contract Methods
The contract object exposes the contract's methods, which can be called using parameters and a transaction object.
Parameters
String|Number|BigNumber
- (optional) Zero or more parameters of the function. If passing in a string, it must be formatted as a hex number, e.g. "0xdeadbeef" If you have already created BigNumber object, then you can just pass it too.
Returns
Example
Contract Events
Parameters
Object
- Indexed return values you want to filter the logs by, e.g. {'valueA': 1, 'valueB': [myFirstAddress, mySecondAddress]}
. By default all filter values are set to null
. It means, that they will match any event of given type sent from this contract.
Callback return
Object
- An event object as follows:
address
: String
, 32 Bytes - address from which this log originated.
args
: Object
- The arguments coming from the event.
blockHash
: String
, 32 Bytes - hash of the block where this log was in. null
when its pending.
blockNumber
: Number
- the block number where this log was in. null
when its pending.
logIndex
: Number
- integer of the log index position in the block.
event
: String
- The event name.
removed
: bool
- indicate if the transaction this event was created from was removed from the blockchain (due to orphaned block) or never get to it (due to rejected transaction).
transactionIndex
: Number
- integer of the transactions index position log was created from.
transactionHash
: String
, 32 Bytes - hash of the transactions this log was created from.
Example
Contract allEvents
Will call the callback for all events which are created by this contract.
Parameters
Callback return
Example
Gets a list of available compilers.
Parameters
Returns
Array
- An array of strings of available compilers.
Example
Compiles solidity source code.
Parameters
String
- The solidity source code.
Returns
Object
- Contract and compiler info.
Example
Compiles LLL source code.
Parameters
String
- The LLL source code.
Returns
String
- The compiled LLL code as HEX string.
Example
Compiles serpent source code.
Parameters
String
- The serpent source code.
Returns
String
- The compiled serpent code as HEX string.
Returns GlobalRegistrar object.
Usage
This method should be called, when we want to store a string in the local leveldb database.
Parameters
String
- The database to store to.
String
- The name of the store.
String
- The string value to store.
Returns
Boolean
- true
if successfull, otherwise false
.
Example
param is db name, second is the key, and third is the string value.
This method should be called, when we want to get string from the local leveldb database.
Parameters
String
- The database string name to retrieve from.
String
- The name of the store.
Returns
String
- The stored value.
Example
param is db name and second is the key of string value.
This method should be called, when we want to store binary data in HEX form in the local leveldb database.
Parameters
String
- The database to store to.
String
- The name of the store.
String
- The HEX string to store.
Returns
Boolean
- true
if successfull, otherwise false
.
Example
This method should be called, when we want to get a binary data in HEX form from the local leveldb database.
Parameters
String
- The database to store to.
String
- The name of the store.
Returns
String
- The stored HEX value.
Example
param is db name and second is the key of value.
The web3-shh package allows you to interact with the whisper protocol for broadcasting. For more see Whisper Overview.
Example
Stores a key pair derived from a private key, and returns its ID.
Parameters
String - The private key as HEX bytes to import.
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - The Key ID on success and an error on failure.
Example
Stores the key, and returns its ID.
Parameters
String - The raw key for symmetric encryption as HEX bytes.
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns the key ID on success and an error on failure.
Example
Parameters
String - The key pair ID, returned by the creation functions (shh.newKeyPair and shh.addPrivateKey).
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns true on success, error on failure.
Example
Deletes the symmetric key associated with the given ID.
Parameters
String - The key pair ID, returned by the creation functions (shh.newKeyPair and shh.addPrivateKey).
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns true on success, error on failure.
Example
Generates the key from password, stores it, and returns its ID.
Parameters
String - A password to generate the sym key from.
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise<String|Error> - Returns the Key ID on success and an error on failure.
Example
Returns the private key for a key pair ID.
Parameters
String - The key pair ID, returned by the creation functions (shh.newKeyPair and shh.addPrivateKey).
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns the private key on success and an error on failure.
Example
Returns the public key for a key pair ID.
Parameters
String - The key pair ID, returned by the creation functions (shh.newKeyPair and shh.addPrivateKey).
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns the Public key on success and an error on failure.
Example
Returns the symmetric key associated with the given ID.
Parameters
String - The key pair ID, returned by the creation functions (shh.newKeyPair and shh.addPrivateKey).
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns the raw symmetric key on success and an error on failure.
Example
Checks if the whisper node has a private key of a key pair matching the given ID.
Parameters
String - The key pair ID, returned by the creation functions (shh.newKeyPair and shh.addPrivateKey).
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns true on if the key pair exist in the node, false if not. Error on failure.
Example
Checks if there is a symmetric key stored with the given ID.
Parameters
String - The key pair ID, returned by the creation functions (shh.newSymKey, shh.addSymKey or shh.generateSymKeyFromPassword).
Function - (optional) Optional callback, returns an error object as first parameter and the result as second.
Returns
Promise - Returns true on if the symmetric key exist in the node, false if not. Error on failure.
Example
This method should be called, when we want to post whisper message to the network.
Parameters
Object
- The post object:
from
: String
, 60 Bytes HEX - (optional) The identity of the sender.
to
: String
, 60 Bytes HEX - (optional) The identity of the receiver. When present whisper will encrypt the message so that only the receiver can decrypt it.
topics
: Array of Strings
- Array of topics Strings
, for the receiver to identify messages.
payload
: String|Number|Object
- The payload of the message. Will be autoconverted to a HEX string before.
priority
: Number
- The integer of the priority in a range from ... (?).
ttl
: Number
- integer of the time to live in seconds.
Returns
Boolean
- returns true
if the message was sent, otherwise false
.
Example
Sends IBAN transaction from user account to destination IBAN address.
Parameters
string
- address from which we want to send transaction
string
- IBAN address to which we want to send transaction
value
- value that we want to send in IBAN transaction
Send an application of subchain Creation, save the application into the ChainInfo DB
Parameters
from
, address - the address who triggers the action
chainId
, string - subchain id
minValidators
, hex string - Minimum Validators of the new subchain
minDepositAmount
, hex string - Minimum Deposit PAI of the new subchain
startBlock
, hex string - Start Block height for launch subchain
endBlock
, hex string - End Block height for launch subchain
gasPrice
, hex string - ( if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Send a request to Join the subchain, save the Join Application into the ChainInfo DB, after the blockchain match the criteria of the subchain, chainMgr will load the subchain Data from ChainInfo DB then start it
Parameters
from
: address, 20 Bytes - the address who triggers the action
pubkey
: hex string, 128 Bytes - the BLS Public Key who triggers the action
chainId
: string - subchain id
depositAmount
: hex string - Amount of the Deposit PAI to join the subchain
gasPrice
: hex string - ( if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Send a request to Join the subchain, save the Join Application into the ChainInfo DB, after the blockchain match the criteria of the subchain, chainMgr will load the subchain Data from ChainInfo DB then start it
Parameters
from
, address - the address who triggers the action
chainId
, string - subchain id
amount
, hex string - amount of PAI to deposit
gasPrice
, hex string - ( if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Deposit from the main chain to subchain (step 2). Should be used with chain_depositInMainChain
Parameters
from
, address - the address who triggers the action
txHash
, string - Tx Hash of the chain_depositInMainChain rpc
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Withdraw from subchain to the main chain (step 1). Should be used with chain_withdrawFromMainChain
Parameters
from
, address - the address who triggers the action
amount
, hex string - amount of PAI to withdraw
gasPrice
, hex string - gas price from the request
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Withdraw from subchain to the main chain (step 2). Should be used with chain_withdrawFromChildChain
Parameters
from
, address - the address who triggers the action
amount
, hex string - amount of PAI to withdraw
chainId
, string - subchain id
txHash
, string - Tx Hash of the chain_withdrawFromChildChain rpc
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Sign the Address with BLS Private Key, return the BLS Signature to proof you are the owner of the BLS Public Key
Parameters
from
: address, 20 Bytes - Address which will be signed
Returns
DATA
, 64 Bytes - the BLS Signature for the Address
Example
Set the Reward of each block for the subchain, only subchain Owner is allowed to send this tx. The Block Reward change will effect on the next block after this tx be mined.
The Block Reward will be charged from subchain Address 0x0000000000000000000000000000000000000064 balance, which accept anyone to transfer their contribution
Parameters
from
: address, 20 Bytes - Owner Address of subchain
reward
: hex string - The reward of each block
Returns
hash
, string - the transaction hash
Example
Get the Reward of each block for the subchain
Parameters
QUANTITY|TAG
- integer block number, or the string "latest"
, "earliest"
or "pending"
Returns
QUANTITY
- integer of the block reward in wei
Example
Get all the Chain Info from the node (A synced Full node should have all the chains' info)
Parameters
none
Returns
Object
- The chain info object
chain_id
: String
- The chain id of the chain.
owner
: Address
, 20 Bytes - The owner address of the chain.
current_epoch
: Number
- The current epoch number of the chain.
epoch_start_time
: Time
- The start time of the current epoch
validators
: Array
- Array of validator object
address
: Address
- Address of the Validator
voting_power
: QUANTITY
- Voting Power (Stack) of the Validator
Example
Send hash of Vote for the next epoch
Parameters
from
: address, 20 Bytes - the address who triggers the action
gasPrice
: hex string - (if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Reveal the vote, the content of vote should matched with the hash which provided in tdm_voteNextEpoch
Parameters
from
: address, 20 Bytes - the address who triggers the action
pubkey
: hex string, 128 Bytes - the BLS Public Key who triggers the action
amount
: hex string - the amount of vote
salt
: string - salt string
gasPrice
: hex string - (if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
String
- The 32 Bytes transaction hash as HEX string.
Example
Returns the current epoch number
Parameters
none
Returns
epochNumber
, int - current epoch number
Example
Returns the epoch details
Parameters
number
, int - epoch number
Returns
the epoch details
Example
Returns the votes details of the next epoch
Parameters
none
Returns
result
, string - votes detail of the next epoch, such as epoch number, start block, end block, votes
Example
Returns the validators of the next epoch based on the votes
Parameters
none
Returns
result
, DATA - validators of the next epoch, such as address, public key, voting power
Example
Returns the generated BLS Public/Private Key associate with provided address
Parameters
from
: address, 20 Bytes - the address
Returns
address
: address, 20 Bytes - address from the request
consensus_pub_key
: hex string, 128 Bytes - the generated BLS Public Key
consensus_priv_key
: hex string, 32 Bytes - the generated BLS Private Key
Example
Create a new transaction to Delegate your balance to Candidate
Parameters
from
: address, 20 Bytes - the address who triggers the action
candidate
: address, 20 Bytes - the address of candidate
amount
: hex string - Amount of the Delegate PAI
gasPrice
: hex string - (if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
hash
, hex string - the transaction hash
Example
Create a new transaction to Cancel your Delegation from Candidate
Parameters
from
: address, 20 Bytes - the address who triggers the action
candidate
: address, 20 Bytes - the address of candidate
amount
: hex string - Amount of the Delegate PAI
gasPrice
: hex string - (if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
hash
, hex string - the transaction hash
Example
Create a new transaction to become a Candidate (with specific security deposit and commission fee rate)
Parameters
from
: address, 20 Bytes - the address who triggers the action
securityDeposit
: hex string - Amount of the security deposit PAI (minimum 10,000 PAI)
commission
: integer - the commission fee percentage of each Block Reward be charged to proxied de, when Candidate become a Validator (between 0 - 100)
gasPrice
: hex string - (if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
hash
, hex string - the transaction hash
Example
Create a new transaction to become a Candidate (with specific security deposit and commission fee rate)
Parameters
from
: address, 20 Bytes - the address who triggers the action
gasPrice
: hex string - (if set to null,system will give default value(1 gwei) ) gas price from the request
Returns
hash
, hex string - the transaction hash
Example
CReturns the candidate status of the account of given address.
Parameters
from
: address, 20 Bytes - the address who triggers the action
blockNumber
: QUANTITY|TAG - integer block number, or the string "latest", "earliest" or "pending"
Returns
candidate
: Boolean - Candidate Flag of the given address
commission
: QUANTITY - commission percentage of Candidate Address
Example
As this API is designed to work with a local RPC node, all its functions use synchronous HTTP requests by default. If you want to make an asynchronous request, you can pass an optional callback as the last parameter to most functions. All callbacks are using an style:
web3.js depends on the and adds it automatically.
(Not implemented yet)
(Not implemented yet)
Boolean
- If true
it will uninstall all filters, but will keep the polls
pubkey
: hex string, 128 Bytes - the BLS Public Key who triggers the action,
Converts a given number into a BigNumber instance. See the .
BigNumber
- A BigNumber instance of the current gas price in wei. See the .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Number|String
- (optional) If you pass this parameter it will not use the default block set with .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
String
- A BigNumber instance of the current balance for the given address in wei. See the .
Number|String
- (optional) If you pass this parameter it will not use the default block set with .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Number|String
- (optional) If you pass this parameter it will not use the default block set with .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
String|Number
- The block number or hash. Or the string "earliest"
, "latest"
or "pending"
as in the .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
String|Number
- The block number or hash. Or the string "earliest"
, "latest"
or "pending"
as in the .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
String|Number
- The block number or hash. Or the string "earliest"
, "latest"
or "pending"
as in the .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Object
- the returned uncle. For a return value see . Note: An uncle doesn't contain individual transactions.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
String
- A block number or hash. Or the string "earliest"
, "latest"
or "pending"
as in the .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Object
- A transaction object, see :
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Number|String
- (optional) If you pass this parameter it will not use the default block set with .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
from
: String
- The address for the sending account. Uses the property, if not specified.
data
: String
- (optional) Either a containing the associated data of the message, or in the case of a contract-creation transaction, the initialisation code.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
String
- The 32 Bytes transaction hash as HEX string. If the transaction was a contract creation use to get the contract address, after the transaction was mined.
Sends an already signed transaction. For example can be signed using:
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
String
- The 32 Bytes transaction hash as HEX string. If the transaction was a contract creation use to get the contract address, after the transaction was mined.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Object
- A transaction object see , with the difference that for calls the from
property is optional as well.
Number|String
- (optional) If you pass this parameter it will not use the default block set with .
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
See , except that all properties are optional.
filter.watch(callback)
: Watches for state changes that fit the filter and calls the callback. See for details.
type
: STRING
- pending
when the log is pending. mined
if log is already mined. Note For event filter return values see
Creates a contract object for a solidity contract, which can be used to initiate contracts on an address. You can read more about events .
Object
- (optional) The (previous) last parameter can be a transaction object, see parameter 1 for more. Note: data
and to
properties will not be taken into account.
Number|String
- (optional) If you pass this parameter it will not use the default block set with .
Function
- (optional) If you pass a callback as the last parameter the HTTP request is made asynchronous. See for details.
String
- If its a call the result data, if its a send transaction a created contract address, or the transaction hash, see for details.
You can use events like and they have the same methods, but you pass different objects to create the event filter.
Object
- Additional filter options, see parameter 1 for more. By default filterObject has field 'address' set to address of the contract. Also first topic is the signature of event.
Function
- (optional) If you pass a callback as the last parameter it will immediately start watching and you don't need to call myEvent.watch(function(){})
. See for details.
Object
- Additional filter options, see parameter 1 for more. By default filterObject has field 'address' set to address of the contract. This method sets the topic to the signature of event, and does not support additional topics.
Function
- (optional) If you pass a callback as the last parameter it will immediately start watching and you don't need to call myEvent.watch(function(){})
. See for details.
Object
- See for more.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
see example.
Function
- (optional) If you pass a callback the HTTP request is made asynchronous. See for details.
signature
: hex string, 64 Bytes - the signature of From Address, signed by BLS Private Key. (How to sign, see )
privateKey
: hex string, 32 Bytes - BLS Private Key,
voteHash
: hex string, 32 Bytes - hash of the vote. (How to get the vote hash, use Keccak-256 (not the standardized SHA3-256) example: keccak256(from + pubkey + amount + salt) ),see
signature
: hex string, 64 Bytes - the signature of From Address, signed by BLS Private Key. (How to sign, see )