DREP Command Line Interface, a JSON-RPC based client for connecting to the DREP chain to query information on the chain
and send transactions.
Provides a decentralized ID system and data privacy protection
Integrates the underlying chain with both smart contracts and novel smart reputation pipes.
Provides the DREP reputation protocols and reputation templates.
Has high performance and high compatibilities.
Binaries (Windows/Linux/macOS)
Executable binaries can be downloaded from our GitHub page
Build from source code (all platforms)
Clone the repository into the appropriate $GOPATH/src/github.com/drep-project directory.
NOTE: requires Go >= 1.1.11
.
git clone https://github.com/drep-project/drepcli.git
cd drepcli
go install
To start the DREP Cli
drepcli http://127.0.0.1:15645
After the DREP Cli is started, it will connect to the DREP chain.
Meanwhile, you can input commands into the interface and perform operations to the chain.
[{
Data: {
TxCount: 1,
TxList: [{
Data: {...},
Sig: null
}]
},
Header: {
ChainId: "33333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330",
GasLimit: "RWORgkT0AAA=",
GasUsed: "",
Height: 10,
LeaderPubKey: "0x0258fc6797a561c701ca2c1336b4ea641745bd427319c50e82fa044c8a85b18616",
MerkleRoot: "miMn/oiEs+F7TYCzjRmm7Yj9SvqRK1UxdW8pNJnyXYU=",
MinorPubKeys: ["0x0242901062c10d36702cdf75330f74a597ef8058245027a5d2d993418c089fd704", "0x027d6958df8109037eab3fb5f2ca2b03ddf5f1952eed1348f8019c29437770b150"],
PreviousHash: "e94imdsJSiPBxu3GqRJJ0DsJwOjzLePIx99aEcnMUqQ=",
StateRoot: "kovoW3vQnm4jgiwOeMxNzwlAwzpEdvraCpdrLqiKUDI=",
Timestamp: 1547280876,
TxHashes: ["miMn/oiEs+F7TYCzjRmm7Yj9SvqRK1UxdW8pNJnyXYU="],
Version: 1
},
MultiSig: {
Bitmap: "AQE=",
Sig: {
R: 3.7142117789744075e+76,
S: 9.782885030459428e+75
}
}
}...]
Method
getBalance
Parameters
1: Address 2: Chain id
Description
Get the account's balance with respect to the address
Returns
Number
Example
db.getBalance("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b",0)
Example Return
0
Method
getBlock
Parameters
Block height
Description
Get the corresponding block
Returns
Object
Example
db.getBlock(10)
{
Data: {
TxCount: 1,
TxList: [{
Data: {... },
Sig: null
}]
},
Header: {
ChainId: "33333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330",
GasLimit: "RWORgkT0AAA=",
GasUsed: "",
Height: 10,
LeaderPubKey: "0x0258fc6797a561c701ca2c1336b4ea641745bd427319c50e82fa044c8a85b18616",
MerkleRoot: "miMn/oiEs+F7TYCzjRmm7Yj9SvqRK1UxdW8pNJnyXYU=",
MinorPubKeys: ["0x0242901062c10d36702cdf75330f74a597ef8058245027a5d2d993418c089fd704", "0x027d6958df8109037eab3fb5f2ca2b03ddf5f1952eed1348f8019c29437770b150"],
PreviousHash: "e94imdsJSiPBxu3GqRJJ0DsJwOjzLePIx99aEcnMUqQ=",
StateRoot: "kovoW3vQnm4jgiwOeMxNzwlAwzpEdvraCpdrLqiKUDI=",
Timestamp: 1547280876,
TxHashes: ["miMn/oiEs+F7TYCzjRmm7Yj9SvqRK1UxdW8pNJnyXYU="],
Version: 1
},
MultiSig: {
Bitmap: "AQE=",
Sig: {
R: 3.7142117789744075e+76,
S: 9.782885030459428e+75
}
}
}
Method
getBlocksFrom
Parameters
1:The height of the first block to get 2:The number of the blocks to get
Description
Get the blocks between two heights
Returns
Array
Example
db.getBlocksFrom(10,2)
[{
Data: {
TxCount: 1,
TxList: [{... }]
},
Header: {
ChainId: "33333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330",
GasLimit: "RWORgkT0AAA=",
GasUsed: "",
Height: 10,
LeaderPubKey: "0x0258fc6797a561c701ca2c1336b4ea641745bd427319c50e82fa044c8a85b18616",
MerkleRoot: "miMn/oiEs+F7TYCzjRmm7Yj9SvqRK1UxdW8pNJnyXYU=",
MinorPubKeys: ["0x0242901062c10d36702cdf75330f74a597ef8058245027a5d2d993418c089fd704", "0x027d6958df8109037eab3fb5f2ca2b03ddf5f1952eed1348f8019c29437770b150"],
PreviousHash: "e94imdsJSiPBxu3GqRJJ0DsJwOjzLePIx99aEcnMUqQ=",
StateRoot: "kovoW3vQnm4jgiwOeMxNzwlAwzpEdvraCpdrLqiKUDI=",
Timestamp: 1547280876,
TxHashes: ["miMn/oiEs+F7TYCzjRmm7Yj9SvqRK1UxdW8pNJnyXYU="],
Version: 1
},
MultiSig: {
Bitmap: "AQE=",
Sig: {
R: 3.7142117789744075e+76,
S: 9.782885030459428e+75
}
}
}, ...]
Method
getByteCode
Parameters
1:Address 2:Chain id
Description
get bytecode of a stored smart contract by its address and chainID
Returns
Array
Example
chain.check("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b","0x00")
Method
getCodeHash
Parameters
1:Address 2:Chain id
Description
get the bytecode hash value of a smart contract by its address and chainID
Returns
Array
Example
chain.check("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b","0x00")
Method
getHighestBlock
Parameters
None
Description
Get latest block
Returns
Object
Example
db.getHighestBlock()
{
Data: {
TxCount: 1,
TxList: [{
Data: {... },
Sig: null
}]
},
Header: {
ChainId: "33333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330",
GasLimit: "RWORgkT0AAA=",
GasUsed: "",
Height: 1018,
LeaderPubKey: "0x0258fc6797a561c701ca2c1336b4ea641745bd427319c50e82fa044c8a85b18616",
MerkleRoot: "v1M3UKxS9xoaIMraw/UlYlBb7o+4vMkgLgGuUfUXlf8=",
MinorPubKeys: ["0x0242901062c10d36702cdf75330f74a597ef8058245027a5d2d993418c089fd704", "0x027d6958df8109037eab3fb5f2ca2b03ddf5f1952eed1348f8019c29437770b150"],
PreviousHash: "mCK7fbNwQpGUcVwqgYnH2Ea0a8gwbf2irAHdZqH3xYQ=",
StateRoot: "1oGeQV/LDejnVqb9Q4uovyAiQvoYzan3FRFqJGHkq/U=",
Timestamp: 1547288016,
TxHashes: ["v1M3UKxS9xoaIMraw/UlYlBb7o+4vMkgLgGuUfUXlf8="],
Version: 1
},
MultiSig: {
Bitmap: "AQE=",
Sig: {
R: 8.467045644602432e+76,
S: 9.513484500254109e+75
}
}
}
Method
getMaxHeight
Parameters
None
Description
Get current block's height
Returns
Number
Example Return
db.getMaxHeight()
Method
getMostRecentBlocks
Parameters
The number of the newest blocks
Description
Get newest blocks data via the number parameter
Returns
Array
Example
db.getMostRecentBlocks(2)
[{
Data: {
TxCount: 1,
TxList: [{... }]
},
Header: {
ChainId: "33333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330333333303333333033333330",
GasLimit: "RWORgkT0AAA=",
GasUsed: "",
Height: 1,
LeaderPubKey: "0x0258fc6797a561c701ca2c1336b4ea641745bd427319c50e82fa044c8a85b18616",
MerkleRoot: "oRDZuhaSx/h2IlTXgEvSdGIUzln/V50MZIxK/PlVgrg=",
MinorPubKeys: ["0x0242901062c10d36702cdf75330f74a597ef8058245027a5d2d993418c089fd704", "0x027d6958df8109037eab3fb5f2ca2b03ddf5f1952eed1348f8019c29437770b150"],
PreviousHash: "IsZzW/wWnPD9zt1b+gQAd0mvyNzx/fmEtHsjEDiX+QE=",
StateRoot: "jdME0UFb2ooUd84ymQMAQeTMhl/xuQZmb5uDlFv6RaA=",
Timestamp: 1547291143,
TxHashes: ["oRDZuhaSx/h2IlTXgEvSdGIUzln/V50MZIxK/PlVgrg="],
Version: 1
},
MultiSig: {
Bitmap: "AQE=",
Sig: {
R: 7.159555199205425e+76,
S: 6.394261149473947e+76
}
}
}]
Method
getNonce
Parameters
1:Address 2:Chain id
Description
Get value fo nonce in the chain via address and chain id
Returns
Number
Example
db.getNonce("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b","0x00")
Method
me
Parameters
None
Description
Get information about yourself
Returns
Object
Example Return
chain.me()
{
addr: "0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b",
balance: 0,
chainId: 0,
nonce: 0
}
Method
check
Parameters
1: Address 2: Chain id
Description
Get information of the chain via address
Returns
Obeject
Example
chain.check("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b","0x00")
{
Balance: 0,
ByteCode: null,
CodeHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
Nonce: 0,
Reputation: 0
}
Method
checkNonce
Parameters
Address
Description
Get nonce via address
Returns
Number
Example
chain.checkNonce("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b")
Method
checkBalance
Parameters
Address
Description
Get balance via address
Returns
Number
Example
chain.checkBalance("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b")
Method
create
Parameters
The code of contract
Description
Create contract
Returns
String
Example
chain.create("60806040523480...")
Method
call
Parameters
1:Address 2:Chain id 3:Contract address 4:Amount 5:Whether the read-only
Description
Invoke contract
Returns
String
Example Return
chain.call("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b","0x00","511bede065df9c06e98ca75df9f0584f48a0a4f31a66104a5c8095377d69a60f","10",false)
Method
getAllBlocks
Parameters
1:Adress 2:Chain id 3:Amount
Description
Get data of all the blocks
Returns
Array
Example
chain.send("0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b","0x00","10")
Method
addressList
Parameters
None
Description
Print the list of local accounts
Returns
Array
Example
account.addressList()
[" 0x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b" ]
Method
createAccount
Parameters
None
Description
Create account
Returns
String
Example
account.createAccount()
0 x772dec19e0b0b2d63a57a3a7fb03fc066d915e6b
Method
dumpPrikey
Parameters
Address
Description
Export privekey
Returns
String
Example
account.dumpPrikey()
Method
open
Parameters
Password
Description
Open wallet
Returns
None
Example
account.open()
Method
close
Parameters
None
Description
Close wallet
Returns
None
Example
account.close()
Method
lock
Parameters
None
Description
Lock password
Returns
None
Example
account.lock()
Method
open
Parameters
Password
Description
Unlock wallet
Returns
None
Example
account.unLock()
The drep-cli library is licensed under the GNU Lesser General Public License v3.0.