Saltar al contenido principal

CLI Sub-commands

Conflux CLI sub-commands is a collection of command line interfaces which allows you to interact with a local or remote Conflux node.

Manage Accounts

account sub-command allows you to manage accounts at local machine.

new

Create a new account at local machine.

Usage

$ ./conflux.exe account new --help
conflux.exe-account-new
Create a new account (and its associated key) for the given --chain (default conflux).

USAGE:
conflux.exe account new [OPTIONS]

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--keys-iterations <NUM> Specify the number of iterations to use when deriving key from the password (bigger is more secure). [default: 10240]
--password <FILE> Provide a file containing a password for unlocking an account. Leading and trailing whitespace is trimmed.

Example

./conflux.exe account new

list

List all accounts at local machine.

Usage

$ ./conflux.exe account list --help
conflux.exe-account-list
List existing accounts of the given --chain (default conflux).

USAGE:
conflux.exe account list

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

Example

./conflux.exe account list

import

Import accounts from JSON UTC keystore files.

Usage

$ ./conflux.exe account import --help
conflux.exe-account-import
Import accounts from JSON UTC keystore files to the specified --chain (default conflux)

USAGE:
conflux.exe account import --import-path <PATH>...

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--import-path <PATH>... A list of file paths to import.

Example

./conflux.exe account import --import-path ./keystores

Public APIs

Public API allows you to interact with a local or remote Conflux node via HTTP connection in JSON-RPC protocol. All public APIs are under rpc sub-command, and access to the JSON-RPC API at local machine with default url option.

OPTIONS:
--url <url> URL of RPC server [default: http://localhost:12539]

To access JSON-RPC API of remote Conflux node, please specify the correct --url option (e.g. http://10.1.5.6:12537). By default, JSON-RPC is enabled only for local access for security consideration. You can manually enable remote access by configuring jsonrpc_http_port in default.toml file.

# jsonrpc_tcp_port=12536
jsonrpc_http_port=12537
# jsonrpc_local_tcp_port=12538
jsonrpc_local_http_port=12539

All available commands are as following:

$ ./conflux.exe rpc --help
conflux.exe-rpc
RPC based subcommands to query blockchain information and send transactions

USAGE:
conflux.exe rpc [OPTIONS] <SUBCOMMAND>

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--url <url> URL of RPC server [default: http://localhost:12539]

SUBCOMMANDS:
balance Get balance of specified account
best-block-hash Get the best block hash
block-by-epoch Get block by epoch
block-by-hash Get block by hash
block-with-assumption Get block by hash with pivot chain assumption
blocks Get blocks of specified epoch
call Executes a new message call immediately without creating a transaction
code Get bytecode of specified contract
local Local subcommands (requires jsonrpc_local_http_port configured)
epoch Get epoch number
estimate-gas Executes a call request immediately without creating a transaction and returns the gas used
help Prints this message or the help of the given subcommand(s)
nonce Get nonce of specified account
price Get recent mean gas price
receipt Get receipt by transaction hash
send Send a signed transaction and return its hash
tx Get transaction by hash

Get balance

./conflux.exe rpc balance --address cfx:type.user:aarc9abycue0hhzgyrr53m6cxedgccrmmyybjgh4xg

Get nonce

./conflux.exe rpc nonce --address cfx:type.user:aarc9abycue0hhzgyrr53m6cxedgccrmmyybjgh4xg

Get current epoch number

./conflux.exe rpc epoch

Get block(s)

  • Get Best block hash: ./conflux.exe rpc best-block-hash
  • Get block by epoch: ./conflux.exe rpc block-by-epoch --epoch latest_state
  • Get block by height: ./conflux.exe rpc block-by-epoch --epoch 0x10
  • Get blocks in epoch: ./conflux.exe rpc blocks --epoch latest_state

Get transaction

./conflux.exe rpc tx --hash 0x718532fe76dbd8c4208c6c5a79588db35c0bf97e7d8a0faa5988ba66ad88b74c

Get receipt

./conflux.exe rpc receipt --hash 0x718532fe76dbd8c4208c6c5a79588db35c0bf97e7d8a0faa5988ba66ad88b74c

Send signed transaction

Send a signed transaction which encoded in HEX format. Generally, this API is used for Java-Script API to send encoded transaction. To send a transaction with CLI, suggest to use private API send transaction.

./conflux.exe rpc send --raw-bytes 0x...

Misc

  • Get contract code: ./conflux.exe rpc code --address cfx:type.contract:acc7uawf5ubtnmezvhu9dhc6sghea0403y2dgpyfjp
  • Get recent mean gas price: ./conflux.exe rpc price

Private APIs

Private API allows you to interact with local Conflux node only via HTTP connection in JSON-RPC protocol. Private APIs are provided for user to manage the local Conflux node, and requires the jsonrpc_local_http_port configured in default.toml configuration file.

In addition, private APIs also helps developers to debug, test, and monitor the runtime of Conflux node.

All private APIs are under local sub-command, and access to the JSON-RPC API at local machine with default url option.

$ ./conflux.exe rpc local --help
conflux.exe-rpc-local
Debug subcommands (requires jsonrpc_local_http_port configured)

USAGE:
conflux.exe rpc local [OPTIONS] <SUBCOMMAND>

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--url <url> URL of RPC server [default: http://localhost:12539]

SUBCOMMANDS:
consensus-graph-state Get the consensus graph state
help Prints this message or the help of the given subcommand(s)
net Network subcommands
send Send a transaction and return its hash
sync-phase Get the current synchronization phase
test Test subcommands (used for test purpose only)
txpool Transaction pool subcommands

net

net sub-command helps you to inspect the P2P network status.

Examples

  • List all connected P2P nodes: ./conflux.exe rpc local net session
  • List a single P2P node: ./conflux.exe rpc local net session --id <node_id>
  • Check network egress: ./conflux.exe rpc local net throttling

txpool

txpool sub-command helps you to inspect the transaction pool.

Examples

  • List transaction pool status: ./conflux.exe rpc local txpool status
  • List transactions in details: ./conflux.exe rpc local txpool content
  • List summary of transactions: ./conflux.exe rpc local txpool inspect
  • Inspect a transaction in detail: ./conflux.exe rpc local txpool inspect-one --hash <tx_hash>

sync-phase

Get the synchronization phase of local conflux node.

./conflux.exe rpc local sync-phase

Send transaction

Send a transaction to local Conflux node.

Usage

$ ./conflux.exe rpc local send --help
conflux.exe-rpc-local-send
Send a transaction and return its hash

USAGE:
conflux.exe rpc local send [OPTIONS] --from <ADDRESS> --value <HEX>

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--data <HEX> Hash of the method signature and encoded parameters
--from <ADDRESS> Transaction from address
--gas <HEX> Gas provided for transaction execution [default: 0x5208]
--gas-price <HEX> Transaction gas price [default: 0x2540BE400]
--nonce <HEX> Transaction nonce
--to <ADDRESS> Transaction to address (empty to create contract)
--url <url> URL of RPC server [default: http://localhost:12537]
--value <HEX> value sent with this transaction

Example

Alice transfer 5 Drip (1 CFX = 10^18 Drip) to Bob. Note, the address of Alice must exist at local machine, otherwise please create account for alice at first.

./conflux.exe rpc local send --from <alice_address> --to <bob_address> --value 0x5 --password 123456

Alice create a contract with gas 3,000,000. You can use solc to compile contract to get the bytecodes.

./conflux.exe rpc local send --from <alice_address> --value 0x0 --gas 0x2DC6C0 --data <HEX_contract_bytecodes> --password 123456