@@ -37,12 +37,27 @@ B3PID=$!
37
37
38
38
trap " kill -9 $B1PID $B2PID $B3PID ; rm -rf $D " EXIT
39
39
40
+ # Wait until all three nodes are at the same block number
41
+ function WaitBlocks {
42
+ while :
43
+ do
44
+ sleep 1
45
+ BLOCKS1=$( GetBlocks $B1ARGS )
46
+ BLOCKS2=$( GetBlocks $B2ARGS )
47
+ BLOCKS3=$( GetBlocks $B3ARGS )
48
+ if (( $BLOCKS1 == $BLOCKS2 && $BLOCKS2 == $BLOCKS3 ))
49
+ then
50
+ break
51
+ fi
52
+ done
53
+ }
54
+
40
55
# 1 block, 50 XBT each == 50 XBT
41
56
$CLI $B1ARGS setgenerate true 1
42
- sleep 1 # sleep is necessary to let block broadcast
57
+ WaitBlocks
43
58
# 101 blocks, 1 mature == 50 XBT
44
59
$CLI $B2ARGS setgenerate true 101
45
- sleep 1
60
+ WaitBlocks
46
61
47
62
CheckBalance $B1ARGS 50
48
63
CheckBalance $B2ARGS 50
@@ -56,11 +71,11 @@ Send $B1ARGS $B3ARGS 10
56
71
# Have B1 mine a new block, and mature it
57
72
# to recover transaction fees
58
73
$CLI $B1ARGS setgenerate true 1
59
- sleep 1
74
+ WaitBlocks
60
75
61
76
# Have B2 mine 100 blocks so B1's block is mature:
62
77
$CLI $B2ARGS setgenerate true 100
63
- sleep 1
78
+ WaitBlocks
64
79
65
80
# B1 should end up with 100 XBT in block rewards plus fees,
66
81
# minus the 21 XBT sent to B3:
@@ -77,7 +92,7 @@ RAWTXID2=$(SendRawTxn $B2ARGS $RAW2)
77
92
78
93
# Have B2 mine a block to confirm transactions:
79
94
$CLI $B2ARGS setgenerate true 1
80
- sleep 1 # allow time for block to be relayed
95
+ WaitBlocks
81
96
82
97
# Check balances after confirmation
83
98
CheckBalance $B1ARGS 0
0 commit comments