103 lines
3.0 KiB
Bash
103 lines
3.0 KiB
Bash
#! /bin/bash
|
|
|
|
client=${client:=tezos-client}
|
|
|
|
function wait_for_the_node_to_be_ready() {
|
|
local last_level
|
|
local current_level
|
|
while ! $client rpc call blocks/head/proto/context/level >/dev/null 2>&1
|
|
do
|
|
echo Waiting 10 seconds for the node to launch...
|
|
sleep 10
|
|
done
|
|
## Wait for the level not to change for 30sec...
|
|
last_level="$($client rpc call blocks/head/proto/context/level)"
|
|
while [ "$last_level" != "$current_level" ]
|
|
do
|
|
echo Waiting 30 seconds for the node to synchronize...
|
|
sleep 30
|
|
last_level=$current_level
|
|
current_level="$($client rpc call blocks/head/proto/context/level)"
|
|
done
|
|
}
|
|
|
|
function wait_for_a_new_block() {
|
|
local last_level
|
|
local current_level
|
|
last_level="$($client rpc call blocks/head/proto/context/level)"
|
|
current_level="$last_level"
|
|
while [ "$last_level" = "$current_level" ]
|
|
do
|
|
echo Waiting 10 seconds for a block to be baked...
|
|
sleep 10
|
|
current_level="$($client rpc call blocks/head/proto/context/level)"
|
|
done
|
|
}
|
|
|
|
function create_identity() {
|
|
if ! $client get balance my_identity 2> /dev/null 1> /dev/null
|
|
then
|
|
$client gen keys my_identity
|
|
fi
|
|
}
|
|
|
|
function create_account() {
|
|
while ! $client get balance my_account 2> /dev/null 1> /dev/null
|
|
do
|
|
echo Emiting origination...
|
|
$client forget contract my_account || true
|
|
$client originate account my_account for my_identity \
|
|
transfering 50,000.00 from bootstrap1
|
|
wait_for_a_new_block
|
|
done
|
|
echo Adding some credit in the new account...
|
|
$client transfer 50,000.00 from bootstrap2 to my_account
|
|
$client transfer 50,000.00 from bootstrap3 to my_account
|
|
$client transfer 50,000.00 from bootstrap4 to my_account
|
|
echo Provisining some credit for bond deposit...
|
|
$client transfer 50,000.00 from bootstrap5 to my_identity
|
|
wait_for_a_new_block
|
|
}
|
|
|
|
function wait_for_the_account() {
|
|
local account
|
|
while [ -z "$account" ]
|
|
do
|
|
echo Waiting 10 seconds for baker to create the account...
|
|
sleep 10
|
|
for contract in $($client list contracts \
|
|
| grep -v "(default)" \
|
|
| awk '{ print $1; }')
|
|
do
|
|
if $client get manager "$contract" | grep my_identity; then
|
|
account=$($client get manager "$contract" | awk '{ print $1; }')
|
|
echo account created
|
|
fi
|
|
done
|
|
done
|
|
$client remember contract my_account "$account"
|
|
}
|
|
|
|
function start_baker() {
|
|
declare -a identities
|
|
if [ $# -eq 0 ]; then
|
|
identities[0]=my_identity
|
|
else
|
|
identities=("$@")
|
|
fi
|
|
echo "Start baking for ${identities[*]}..."
|
|
$client launch daemon -mining -max-priority 64 "${identities[@]}"
|
|
}
|
|
|
|
function start_endorser() {
|
|
declare -a identities
|
|
if [ $# -eq 0 ]; then
|
|
identities[0]=my_identity
|
|
else
|
|
identities=("$@")
|
|
fi
|
|
echo "Start endorsing for ${identities[*]}..."
|
|
$client launch daemon -endorsement "${identities[@]}"
|
|
}
|
|
|