@@ -38,7 +38,7 @@ pub struct FaucetTestDetails {
3838 pub success_count : u64 ,
3939 pub failure_count : u64 ,
4040 pub last_tx_id : Option < String > ,
41- pub challenge_difficulty : Option < u32 > ,
41+ pub faucet_metadata : Option < GetMetadataResponse > ,
4242}
4343
4444/// Response from the faucet's `/pow` endpoint.
@@ -58,6 +58,19 @@ struct GetTokensResponse {
5858 note_id : String ,
5959}
6060
61+ /// Response from the faucet's `/get_metadata` endpoint.
62+ #[ derive( Clone , Debug , Serialize , Deserialize ) ]
63+ pub struct GetMetadataResponse {
64+ id : String ,
65+ issuance : u64 ,
66+ max_supply : u64 ,
67+ decimals : u8 ,
68+ explorer_url : String ,
69+ pow_load_difficulty : u32 ,
70+ base_amount : u64 ,
71+ version : Option < String > ,
72+ }
73+
6174// FAUCET TEST TASK
6275// ================================================================================================
6376
@@ -89,7 +102,7 @@ pub async fn run_faucet_test_task(
89102 let mut success_count = 0u64 ;
90103 let mut failure_count = 0u64 ;
91104 let mut last_tx_id = None ;
92- let mut last_challenge_difficulty = None ;
105+ let mut faucet_metadata = None ;
93106
94107 let mut interval = tokio:: time:: interval ( test_interval) ;
95108 interval. set_missed_tick_behavior ( MissedTickBehavior :: Skip ) ;
@@ -102,11 +115,11 @@ pub async fn run_faucet_test_task(
102115 let start_time = std:: time:: Instant :: now ( ) ;
103116
104117 match perform_faucet_test ( & client, & faucet_url) . await {
105- Ok ( ( result , challenge_difficulty ) ) => {
118+ Ok ( ( minted_tokens , metadata ) ) => {
106119 success_count += 1 ;
107- last_tx_id = Some ( result . tx_id . clone ( ) ) ;
108- last_challenge_difficulty = Some ( challenge_difficulty ) ;
109- info ! ( "Faucet test successful: tx_id={}" , result . tx_id) ;
120+ last_tx_id = Some ( minted_tokens . tx_id . clone ( ) ) ;
121+ faucet_metadata = Some ( metadata ) ;
122+ info ! ( "Faucet test successful: tx_id={}" , minted_tokens . tx_id) ;
110123 } ,
111124 Err ( e) => {
112125 failure_count += 1 ;
@@ -121,7 +134,7 @@ pub async fn run_faucet_test_task(
121134 success_count,
122135 failure_count,
123136 last_tx_id : last_tx_id. clone ( ) ,
124- challenge_difficulty : last_challenge_difficulty ,
137+ faucet_metadata : faucet_metadata . clone ( ) ,
125138 } ;
126139
127140 let status = ServiceStatus {
@@ -157,7 +170,7 @@ pub async fn run_faucet_test_task(
157170async fn perform_faucet_test (
158171 client : & Client ,
159172 faucet_url : & Url ,
160- ) -> anyhow:: Result < ( GetTokensResponse , u32 ) > {
173+ ) -> anyhow:: Result < ( GetTokensResponse , GetMetadataResponse ) > {
161174 // Use a test account ID - convert to AccountId and format properly
162175 let account_id = AccountId :: try_from ( ACCOUNT_ID_SENDER )
163176 . context ( "Failed to create AccountId from test constant" ) ?;
@@ -211,7 +224,17 @@ async fn perform_faucet_test(
211224 let tokens_response: GetTokensResponse = serde_json:: from_str ( & response_text)
212225 . with_context ( || format ! ( "Failed to parse tokens response: {response_text}" ) ) ?;
213226
214- Ok ( ( tokens_response, challenge_response. target . leading_zeros ( ) ) )
227+ // Step 4: Get faucet metadata
228+ let metadata_url = faucet_url. join ( "/get_metadata" ) ?;
229+
230+ let response = client. get ( metadata_url) . send ( ) . await ?;
231+
232+ let response_text = response. text ( ) . await ?;
233+
234+ let metadata: GetMetadataResponse = serde_json:: from_str ( & response_text)
235+ . with_context ( || format ! ( "Failed to parse metadata response: {response_text}" ) ) ?;
236+
237+ Ok ( ( tokens_response, metadata) )
215238}
216239
217240/// Solves a proof-of-work challenge using SHA-256 hashing.
0 commit comments