~ dao-cli
dao-cli 0.2.0
Dao utilities
USAGE:
dao-cli <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
pausable Pausable related commands
proposal Proposal related commands
seth Encode calldata using abi.encode
timelock TimeLock related commands.
wallet MultiSigWallet related commands.
cargo install --git https://github.com/helex-bridge/dao --bins dao-cli --locked
- Crab
Timelocked proposal are identified by a unique id (their hash) and follow a specific lifecycle:
`Unset` -> `Pending` -> `Pending` + `Ready` -> `Done`
└────> `Cancel`
Proposal status:
- Unset: An operation that is not part of the proposal mechanism.
- Pending: An operation that has been scheduled, before the timer expires.
- Ready: An operation that has been scheduled, after the timer expires.
- Done: An operation that has been executed.
- Cancel: An operation that has been cancelled.
dao-cli proposal list
It will take a long time for scanning the all blocks. so you can set the --latest <block>
to see
the latest block's proposal.
--no-cancel
--no-done
--no-pending
--no-ready
You can set the flag above to filter the proposal.
dao-cli proposal schedule <target> <value> <data> <predecessor> <salt> <delay> --private-key <private-key>
- Target, the address of the smart contract that the proposal should operate on.
- Value, in wei, that should be sent with the transaction. Most of the time this will be 0. Ether can be deposited before-end or passed along when executing the transaction.
- Data, containing the encoded function selector and parameters of the call.
dao-cli seth calldata "transfer(address,uint256)" 2401224012bAE7C2f217392665CA7abC16dCDE1e 1000000000
0xa9059cbb0000000000000000000000002401224012bae7c2f217392665ca7abc16dcde1e0000000000000000000000000000000000000000000000000000000000000064
- Predecessor, that specifies a dependency between operations. This dependency is optional. Use
bytes32(0)
if the operation does not have any dependency. - Salt, used to disambiguate two otherwise identical operations. We use the proposed ID as the Salt.
Proposer
should remember the ID. - private-key, your private key string, or you can set the ENV variable
ETH_PRIVATE_KEY
.
dao-cli proposal execute <target> <value> <data> <predecessor> <salt> --private-key <private-key>
dao-cli proposal cancel <id> --private-key <private-key>
dao-cli wallet tx list
dao-cli wallet tx confirm <tx-id> --private-key <private-key>
dao-cli wallet tx revoke <tx-id> --private-key <private-key>