71 lines
1.7 KiB
Bash
71 lines
1.7 KiB
Bash
function must_address() {
|
|
if [[ ! "$1" =~ ^(0x)?[0-9a-fA-F]{40}$ ]]; then
|
|
>&2 echo -e "\033[;31mvalue '$1' for $2 is not an address\033[;39m"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
|
|
function must_hash_256() {
|
|
if [[ ! "$1" =~ ^(0x)?[0-9a-fA-F]{64}$ ]]; then
|
|
>&2 echo -e "\033[;31mvalue '$1' for $2 is not a 256-bit digest\033[;39m"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
|
|
function must_eth_rpc() {
|
|
if [ -z "${RPC_PROVIDER}" ]; then
|
|
echo "\$RPC_PROVIDER not set!"
|
|
exit 1
|
|
fi
|
|
# Wait for the backend to be up, if we know where it is.
|
|
if [ ! -z "$DEV_USE_DOCKER_WAIT_SCRIPT" ]; then
|
|
WAIT_FOR_TIMEOUT=${WAIT_FOR_TIMEOUT:-60}
|
|
IFS=: read -a p <<< "$RPC_PROVIDER"
|
|
read -i "/" rpc_provider_port <<< "${p[2]}"
|
|
rpc_provider_host=${p[1]:2}
|
|
echo "waiting for provider host $rpc_provider_host port $rpc_provider_port..."
|
|
./wait-for-it.sh "$rpc_provider_host:$rpc_provider_port" -t $WAIT_FOR_TIMEOUT
|
|
fi
|
|
}
|
|
|
|
|
|
function clear_pending_tx_hashes() {
|
|
>&2 echo -e "\033[;96mClearing pending hashes\033[;39m"
|
|
truncate -s 0 ${DEV_DATA_DIR}/hashes
|
|
}
|
|
|
|
|
|
function add_pending_tx_hash() {
|
|
must_hash_256 $1
|
|
echo $1 >> ${DEV_DATA_DIR}/hashes
|
|
}
|
|
|
|
function advance_nonce() {
|
|
nonce=`cat $noncefile`
|
|
next_nonce=$((nonce+1))
|
|
echo -n $next_nonce > $noncefile
|
|
if [ "$DEV_DEBUG_LEVEL" -gt 1 ]; then
|
|
>&2 echo retrieved nonce $nonce
|
|
fi
|
|
}
|
|
|
|
function debug_rpc() {
|
|
if [ "$DEV_DEBUG_LEVEL" -gt 2 ]; then
|
|
>&2 echo -e "\033[;35mRPC Node state\033[;39m"
|
|
>&2 eth-info --local -p $RPC_PROVIDER
|
|
fi
|
|
}
|
|
|
|
function check_wait() {
|
|
#if [ "$1" -eq "$RUN_MASK_HIGHEST" ]; then
|
|
>&2 echo -e "\033[;96mCatch up with paralell transactions\033[;39m"
|
|
if [ "$DEV_DEBUG_LEVEL" -gt "0" ]; then
|
|
>&2 cat ${DEV_DATA_DIR}/hashes
|
|
fi
|
|
eth-wait $DEV_DEBUG_FLAG -p $RPC_PROVIDER ${DEV_DATA_DIR}/hashes
|
|
clear_pending_tx_hashes
|
|
#fi
|
|
}
|