@@ -14,7 +14,7 @@ function into_array() {
14
14
IFS=$tmp
15
15
}
16
16
17
- function check_finalization {
17
+ function check_finalization() {
18
18
local block_to_check=$1
19
19
local -n nodes=$2
20
20
local -n ports=$3
@@ -30,7 +30,36 @@ function check_finalization {
30
30
done
31
31
}
32
32
33
- function get_best_finalized {
33
+ function check_relative_finalization_at_node() {
34
+ local node=$1
35
+ local rpc_port=$2
36
+ local awaited_blocks=$3
37
+
38
+ local last_block=$( get_last_block $node $rpc_port )
39
+ local awaited_finalized=$(( $last_block + $awaited_blocks ))
40
+
41
+ log " Last block seen at node $node was $last_block , awaiting block $awaited_finalized to be finalized"
42
+
43
+ wait_for_finalized_block $awaited_finalized $node $rpc_port
44
+ }
45
+
46
+ function check_relative_finalization() {
47
+ local awaited_blocks=$1
48
+ local -n nodes=$2
49
+ local -n ports=$3
50
+
51
+ log " checking finalization for $awaited_blocks block(s) in the future"
52
+
53
+ for i in " ${! nodes[@]} " ; do
54
+ local node=${nodes[$i]}
55
+ local rpc_port=${ports[$i]}
56
+
57
+ log " checking finalization at node $node (${node} :$rpc_port )"
58
+ check_relative_finalization_at_node $node $rpc_port $awaited_blocks
59
+ done
60
+ }
61
+
62
+ function get_best_finalized() {
34
63
local validator=$1
35
64
local rpc_port=$2
36
65
@@ -48,7 +77,7 @@ function wait_for_finalized_block() {
48
77
done
49
78
}
50
79
51
- function wait_for_block {
80
+ function wait_for_block() {
52
81
local block=$1
53
82
local validator=$2
54
83
local rpc_port=$3
@@ -61,12 +90,23 @@ function wait_for_block {
61
90
done
62
91
}
63
92
64
- function get_last_block {
93
+ function retrieve_last_block() {
94
+ local validator=$1
95
+ local rpc_port=$2
96
+
97
+ docker run --rm --network container:$validator appropriate/curl:latest \
98
+ -H " Content-Type: application/json" \
99
+ -d ' {"id":1, "jsonrpc":"2.0", "method": "chain_getBlock"}' http://127.0.0.1:$rpc_port | jq ' .result.block.header.number'
100
+ }
101
+
102
+ function get_last_block() {
65
103
local validator=$1
66
104
local rpc_port=$2
67
105
68
- local last_block_number=$( docker run --rm --network container:$validator appropriate/curl:latest \
69
- -H " Content-Type: application/json" \
70
- -d ' {"id":1, "jsonrpc":"2.0", "method": "chain_getBlock"}' http://127.0.0.1:$rpc_port | jq ' .result.block.header.number' )
71
- printf " %d" $last_block_number
106
+ local last_block=0
107
+ while [[ -z " $last_block " ]]; do
108
+ last_block=$( retrieve_last_block $validator $rpc_port )
109
+ sleep 1
110
+ done
111
+ printf " %d" $last_block
72
112
}
0 commit comments