Introduction to the CLI¶
The aelf-command tool is a CLI tool built for interacting with an AElf node. This section will walk you through some of the most commonly used features and show you how to install the tool.
Features¶
- Get or Set common configs,
endpoint
,account
,datadir
,password
. - For new users who are not familiar with the CLI parameters, any missing parameters will be asked in a prompting way.
- Create a new
account
. - Load an account from a given
private key
ormnemonic
. - Show
wallet
details which include private key, address, public key and mnemonic. - Encrypt account info into
keyStore
format and save to file. - Get current
Best Height
of the chain. - Get
block info
by a givenheight
orblock hash
. - Get
transaction result
by a giventransaction id
. - Send a
transaction
or call aread-only method
on a smartcontract
. - Deploy a smart
contract
. - Open a
REPL
for usingJavaScript
to interact with the chain. - Friendly interactions, beautify with chalk & ora.
- Get current chain status.
- Create a proposal on any contract method.
- Deserialize the result returned by executing a transaction.
- Start a socket.io server for supplying services for dApps.
Install aelf-command¶
npm i aelf-command -g
Using aelf-command¶
First Step¶
You need to create a new account or load a account by a private key
or mnemonic
you already have.
Create a new wallet
$ aelf-command create Your wallet info is : Mnemonic : great mushroom loan crisp ... door juice embrace Private Key : e038eea7e151eb451ba2901f7...b08ba5b76d8f288 Public Key : 0478903d96aa2c8c0...6a3e7d810cacd136117ea7b13d2c9337e1ec88288111955b76ea Address : 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR5oGin1sys6H ✔ Save account info into a file? … no / yes ✔ Enter a password … ******** ✔ Confirm password … ******** ✔ Account info has been saved to "/Users/young/.local/share/aelf/keys/2Ue31YTuB5Szy7cnr...Gi5uMQBYarYUR5oGin1sys6H.json"
Load wallet from private key
$ aelf-command load e038eea7e151eb451ba2901f7...b08ba5b76d8f288 Your wallet info is : Private Key : e038eea7e151eb451ba2901f7...b08ba5b76d8f288 Public Key : 0478903d96aa2c8c0...6a3e7d810cacd136117ea7b13d2c9337e1ec88288111955b76ea Address : 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR5oGin1sys6H ✔ Save account info into a file? ✔ Enter a password … ******** ✔ Confirm password … ******** ✔ Account info has been saved to "/Users/young/.local/share/aelf/keys/2Ue31YTuB5Szy7cnr...Gi5uMQBYarYUR5oGin1sys6H.json"
show wallet info you already have
$ aelf-command wallet -a 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR5oGin1sys6H Your wallet info is : Private Key : e038eea7e151eb451ba2901f7...b08ba5b76d8f288 Public Key : 0478903d96aa2c8c0...6a3e7d810cacd136117ea7b13d2c9337e1ec88288111955b76ea Address : 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR5oGin1sys6H
Here you can get the account info and decide whether to encrypt account info and save into a file.
Examples:
$ aelf-command console -a 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR5oGin1sys6H
✔ Enter the the URI of an AElf node: http://127.0.0.1:8000
✔ Enter the password you typed when creating a wallet … ********
✔ Succeed!
Welcome to aelf interactive console. Ctrl + C to terminate the program. Double tap Tab to list objects
╔═══════════════════════════════════════════════════════════╗
║ ║
║ NAME | DESCRIPTION ║
║ AElf | imported from aelf-sdk ║
║ aelf | the instance of an aelf-sdk, connect to ║
║ | http://127.0.0.1:8000 ║
║ _account | the instance of an AElf wallet, address ║
║ | is ║
║ | 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR… ║
║ | 5oGin1sys6H ║
║ ║
╚═══════════════════════════════════════════════════════════╝
Any missed parameters you did not give in CLI parameters will be asked in a prompting way
$ aelf-command console
✔ Enter the the URI of an AElf node: http://127.0.0.1:8000
✔ Enter a valid wallet address, if you don\'t have, create one by aelf-command create … 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR5oGin1sys6H
✔ Enter the password you typed when creating a wallet … ********
✔ Succeed!
Welcome to aelf interactive console. Ctrl + C to terminate the program. Double tap Tab to list objects
╔═══════════════════════════════════════════════════════════╗
║ ║
║ NAME | DESCRIPTION ║
║ AElf | imported from aelf-sdk ║
║ aelf | the instance of an aelf-sdk, connect to ║
║ | http://13.231.179.27:8000 ║
║ _account | the instance of an AElf wallet, address ║
║ | is ║
║ | 2Ue31YTuB5Szy7cnr3SCEGU2gtGi5uMQBYarYUR… ║
║ | 5oGin1sys6H ║
║ ║
╚═══════════════════════════════════════════════════════════╝
Help¶
Type
$ aelf-command -h
Usage: aelf-command [command] [options]
Options:
-v, --version output the version number
-e, --endpoint <URI> The URI of an AElf node. Eg: http://127.0.0.1:8000
-a, --account <account> The address of AElf wallet
-p, --password <password> The password of encrypted keyStore
-d, --datadir <directory> The directory that contains the AElf related files. Defaults to {home}/.local/share/aelf
-h, --help output usage information
Commands:
call [contract-address|contract-name] [method] [params] Call a read-only method on a contract.
send [contract-address|contract-name] [method] [params] Execute a method on a contract.
get-blk-height Get the current block height of specified chain
get-chain-status Get the current chain status
get-blk-info [height|block-hash] [include-txs] Get a block info
get-tx-result [tx-id] Get a transaction result
console Open a node REPL
create [options] [save-to-file] Create a new account
wallet Show wallet details which include private key, address, public key and mnemonic
load [private-key|mnemonic] [save-to-file] Load wallet from a private key or mnemonic
proposal [proposal-contract] [organization] [expired-time] Send a proposal to an origination with a specific contract method
deploy [category] [code-path] Deprecated! Please use `aelf-command send` , check details in aelf-command `README.md`
config <flag> [key] [value] Get, set, delete or list aelf-command config
event [tx-id] Deserialize the result returned by executing a transaction
dapp-server [options] Start a dAPP SOCKET.IO server
in your terminal and get useful information.
Any sub-commands such as call
, you can get help
by typing this
$ aelf-command call -h
Usage: aelf-command call [options] [contract-address|contract-name] [method] [params]
Call a read-only method on a contract.
Options:
-h, --help output usage information
Examples:
aelf-command call <contractName|contractAddress> <method> <params>
aelf-command call <contractName|contractAddress> <method>
aelf-command call <contractName|contractAddress>
aelf-command call
$ aelf-command console -h
Usage: aelf-command console [options]
Open a node REPL
Options:
-h, --help output usage information
Examples:
aelf-command console
...