| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- #!/bin/sh
- set -e
- set -x
- # Path to `drk` binary
- DRK="../../../drk -c drk.toml"
- # First run the consensus node and the faucet:
- #
- # ./clean.sh
- # ./tmux_sessions.sh -vv
- #
- # In another term run the wallet syncing:
- #
- # ./sync-wallet.sh
- #
- # Finally you can run this script
- mint_tokens() {
- $DRK token generate-mint
- $DRK token generate-mint
- TOKEN_ID1="$($DRK token list 2>/dev/null | awk 'NR == 3 {print $1}')"
- TOKEN_ID2="$($DRK token list 2>/dev/null | awk 'NR == 4 {print $1}')"
- $DRK alias add WCKD "$TOKEN_ID1"
- $DRK alias add MLDY "$TOKEN_ID2"
- ADDR="$($DRK wallet --address)"
- $DRK token mint WCKD 42 "$ADDR" | tee /tmp/mint-wkcd.tx | $DRK broadcast
- $DRK token mint MLDY 20 "$ADDR" | tee /tmp/mint-mldy.tx | $DRK broadcast
- $DRK token list
- }
- token_balance() {
- BALANCE="$($DRK wallet --balance 2>/dev/null)"
- # No tokens received at all yet
- if echo "$BALANCE" | grep -q "No unspent balances found"; then
- echo 0
- return
- fi
- BALANCE="$(echo "$BALANCE" | grep -q "$1")"
- # Not received yet so no entry
- if [ $? = 1 ]; then
- echo 0
- return
- fi
- # OK we have the token, show the actual balance
- echo "$BALANCE" | awk '{print $5}'
- }
- wait_tokens() {
- while [ "$(token_balance WCKD)" = 0 ] || [ "$(token_balance MLDY)" = 0 ]; do
- sleep 1
- done
- }
- mint_dao() {
- $DRK dao create 20 10 0.67 MLDY > /tmp/dao.dat
- $DRK dao import MiladyMakerDAO < /tmp/dao.dat
- $DRK dao list
- $DRK dao list MiladyMakerDAO
- $DRK dao mint MiladyMakerDAO | tee /tmp/dao-mint.tx | $DRK broadcast
- }
- wait_dao_mint() {
- while [ "$($DRK dao list MiladyMakerDAO | grep '^Tx hash: ' | awk '{print $3}')" = None ]; do
- sleep 1
- done
- }
- fill_treasury() {
- PUBKEY="$($DRK dao list 1 | grep '^Public key: ' | cut -d ' ' -f3)"
- BULLA="$($DRK dao list 1 | grep '^Bulla: ' | cut -d' ' -f2)"
- $DRK transfer 20 WCKD "$PUBKEY" --dao "$BULLA" | tee /tmp/xfer.tx | $DRK broadcast
- }
- dao_balance() {
- BALANCE=$($DRK dao balance 1 2>/dev/null)
- # No tokens received at all yet
- if echo "$BALANCE" | grep -q "No unspent balances found"; then
- echo 0
- return
- fi
- BALANCE=$(echo "$BALANCE" | grep "$1")
- # Not received yet so no entry
- if [ $? = 1 ]; then
- echo 0
- return
- fi
- # OK we have the token, show the actual balance
- echo "$BALANCE" | awk '{print $5}'
- }
- wait_dao_treasury() {
- while [ "$(dao_balance WCKD)" = 0 ]; do
- sleep 1
- done
- }
- propose() {
- MY_ADDR=$($DRK wallet --address)
- $DRK dao balance MiladyMakerDAO
- $DRK dao propose MiladyMakerDAO "$MY_ADDR" 0.1 WCKD > /tmp/propose.tx
- $DRK broadcast < /tmp/propose.tx
- }
- proposal_status() {
- PROPOSALS_LEN=$($DRK dao proposals MiladyMakerDAO | wc -l)
- if [ "$PROPOSALS_LEN" = 0 ]; then
- echo 0
- else
- echo 1
- fi
- }
- wait_proposal() {
- while [ "$(proposal_status)" = 0 ]; do
- sleep 1
- done
- }
- vote() {
- PROPOSAL_ID=1
- $DRK dao vote MiladyMakerDAO "$PROPOSAL_ID" 1 20 > /tmp/dao-vote.tx
- $DRK broadcast < /tmp/dao-vote.tx
- }
- vote_status() {
- PROPOSAL_ID=1
- $DRK dao proposal MiladyMakerDAO "$PROPOSAL_ID" | grep -q yes
- echo $?
- }
- wait_vote() {
- while [ "$(vote_status)" != 0 ]; do
- sleep 1
- done
- }
- do_exec() {
- PROPOSAL_ID=1
- $DRK dao exec MiladyMakerDAO "$PROPOSAL_ID" > /tmp/dao-exec.tx
- $DRK broadcast < /tmp/dao-exec.tx
- }
- $DRK wallet --keygen
- mint_tokens
- wait_tokens
- mint_dao
- wait_dao_mint
- fill_treasury
- wait_dao_treasury
- propose
- wait_proposal
- vote
- wait_vote
- do_exec
|