@@ -7,8 +7,8 @@ use url::Url;
7
7
#[ derive( Default ) ]
8
8
pub struct Committer {
9
9
show_logs : bool ,
10
- main_key_id : Option < String > ,
11
- blob_key_id : Option < String > ,
10
+ main_key_arn : Option < String > ,
11
+ blob_key_arn : Option < String > ,
12
12
state_contract_address : Option < String > ,
13
13
eth_rpc : Option < Url > ,
14
14
fuel_rpc : Option < Url > ,
@@ -36,10 +36,10 @@ impl Committer {
36
36
let mut cmd = tokio:: process:: Command :: new ( "fuel-block-committer" ) ;
37
37
cmd. arg ( config)
38
38
. env ( "E2E_TEST_AWS_ENDPOINT" , kms_url)
39
- . env ( "AWS_ACCESS_KEY_ID" , "test" )
40
39
. env ( "AWS_REGION" , "us-east-1" )
40
+ . env ( "AWS_ACCESS_KEY_ID" , "test" )
41
41
. env ( "AWS_SECRET_ACCESS_KEY" , "test" )
42
- . env ( "COMMITTER__ETH__MAIN_KEY_ID " , get_field ! ( main_key_id ) )
42
+ . env ( "COMMITTER__ETH__MAIN_KEY_ARN " , get_field ! ( main_key_arn ) )
43
43
. env ( "COMMITTER__ETH__RPC" , get_field ! ( eth_rpc) . as_str ( ) )
44
44
. env (
45
45
"COMMITTER__ETH__STATE_CONTRACT_ADDRESS" ,
@@ -56,12 +56,11 @@ impl Committer {
56
56
. env ( "COMMITTER__APP__DB__PORT" , get_field ! ( db_port) . to_string ( ) )
57
57
. env ( "COMMITTER__APP__DB__DATABASE" , get_field ! ( db_name) )
58
58
. env ( "COMMITTER__APP__PORT" , unused_port. to_string ( ) )
59
- . env ( "COMMITTER__AWS__ALLOW_HTTP" , "true" )
60
59
. current_dir ( Path :: new ( env ! ( "CARGO_MANIFEST_DIR" ) ) . parent ( ) . unwrap ( ) )
61
60
. kill_on_drop ( true ) ;
62
61
63
- if let Some ( blob_wallet_key_id ) = self . blob_key_id {
64
- cmd. env ( "COMMITTER__ETH__BLOB_POOL_KEY_ID " , blob_wallet_key_id ) ;
62
+ if let Some ( blob_wallet_key_arn ) = self . blob_key_arn {
63
+ cmd. env ( "COMMITTER__ETH__BLOB_POOL_KEY_ARN " , blob_wallet_key_arn ) ;
65
64
}
66
65
67
66
let sink = if self . show_logs {
@@ -79,8 +78,8 @@ impl Committer {
79
78
} )
80
79
}
81
80
82
- pub fn with_main_key_id ( mut self , wallet_id : String ) -> Self {
83
- self . main_key_id = Some ( wallet_id ) ;
81
+ pub fn with_main_key_arn ( mut self , wallet_arn : String ) -> Self {
82
+ self . main_key_arn = Some ( wallet_arn ) ;
84
83
self
85
84
}
86
85
@@ -89,8 +88,8 @@ impl Committer {
89
88
self
90
89
}
91
90
92
- pub fn with_blob_key_id ( mut self , blob_wallet_id : String ) -> Self {
93
- self . blob_key_id = Some ( blob_wallet_id ) ;
91
+ pub fn with_blob_key_arn ( mut self , blob_wallet_arn : String ) -> Self {
92
+ self . blob_key_arn = Some ( blob_wallet_arn ) ;
94
93
self
95
94
}
96
95
@@ -149,7 +148,28 @@ impl CommitterProcess {
149
148
Ok ( ( ) )
150
149
}
151
150
151
+ pub async fn wait_for_committed_blob ( & self ) -> anyhow:: Result < ( ) > {
152
+ loop {
153
+ match self . fetch_latest_blob_block ( ) . await {
154
+ Ok ( _) => break ,
155
+ _ => {
156
+ tokio:: time:: sleep ( Duration :: from_secs ( 1 ) ) . await ;
157
+ continue ;
158
+ }
159
+ }
160
+ }
161
+ Ok ( ( ) )
162
+ }
163
+
152
164
async fn fetch_latest_committed_block ( & self ) -> anyhow:: Result < u64 > {
165
+ self . fetch_metric_value ( "latest_committed_block" ) . await
166
+ }
167
+
168
+ async fn fetch_latest_blob_block ( & self ) -> anyhow:: Result < u64 > {
169
+ self . fetch_metric_value ( "last_eth_block_w_blob" ) . await
170
+ }
171
+
172
+ async fn fetch_metric_value ( & self , metric_name : & str ) -> anyhow:: Result < u64 > {
153
173
let response = reqwest:: get ( format ! ( "http://localhost:{}/metrics" , self . port) )
154
174
. await ?
155
175
. error_for_status ( ) ?
@@ -158,8 +178,8 @@ impl CommitterProcess {
158
178
159
179
let height_line = response
160
180
. lines ( )
161
- . find ( |line| line. starts_with ( "latest_committed_block" ) )
162
- . ok_or_else ( || anyhow:: anyhow!( "couldn't find latest_committed_block metric" ) ) ?;
181
+ . find ( |line| line. starts_with ( metric_name ) )
182
+ . ok_or_else ( || anyhow:: anyhow!( "couldn't find {} metric" , metric_name ) ) ?;
163
183
164
184
Ok ( height_line
165
185
. split_whitespace ( )
0 commit comments