@@ -54,36 +54,47 @@ defmodule AlignedLayerServiceManager do
5454 end
5555
5656 def get_latest_block_number ( ) do
57+ Logger . info ( "Fetching latest block number" )
5758 { :ok , num } = Ethers . current_block_number ( )
59+ Logger . info ( "Latest block number: #{ num } " )
5860 num
5961 end
6062
6163 def get_new_batch_events ( % { fromBlock: fromBlock , toBlock: toBlock } ) do
64+ Logger . info ( "Fetching new batch events from #{ fromBlock } to #{ toBlock } " )
6265 events =
6366 AlignedLayerServiceManager.EventFilters . new_batch_v3 ( nil )
6467 |> Ethers . get_logs ( fromBlock: fromBlock , toBlock: toBlock )
6568
6669 case events do
6770 { :ok , [ ] } ->
71+ Logger . info ( "No new batch events found in blocks #{ fromBlock } -#{ toBlock } " )
6872 [ ]
6973
7074 { :ok , list } ->
75+ Logger . info ( "Found #{ length ( list ) } new batch events in blocks #{ fromBlock } -#{ toBlock } " )
7176 Enum . map ( list , & extract_new_batch_event_info / 1 )
7277
7378 { :error , reason } ->
79+ Logger . error ( "Error fetching new batch events from #{ fromBlock } to #{ toBlock } : #{ Map . get ( reason , "message" ) } " )
7480 raise ( "Error fetching events: #{ Map . get ( reason , "message" ) } " )
7581 end
7682 end
7783
7884 def extract_new_batch_event_info ( event ) do
85+ block_number = event |> Map . get ( :block_number )
86+ tx_hash = event |> Map . get ( :transaction_hash )
87+ Logger . info ( "Extracting new batch event info for block #{ block_number } , tx: #{ tx_hash } " )
88+
7989 new_batch = parse_new_batch_event ( event )
90+ Logger . info ( "New batch event parsed: #{ inspect ( new_batch ) } " )
8091
8192 { :ok ,
8293 % NewBatchInfo {
8394 address: event |> Map . get ( :address ) ,
84- block_number: event |> Map . get ( : block_number) ,
85- block_timestamp: get_block_timestamp ( event |> Map . get ( : block_number) ) ,
86- transaction_hash: event |> Map . get ( :transaction_hash ) ,
95+ block_number: block_number ,
96+ block_timestamp: get_block_timestamp ( block_number ) ,
97+ transaction_hash: tx_hash ,
8798 new_batch: new_batch
8899 } }
89100 end
@@ -101,29 +112,42 @@ defmodule AlignedLayerServiceManager do
101112 }
102113 end
103114
104- def is_batch_responded ( merkle_root ) do
115+ def is_batch_responded ( merkle_root , fromBlock ) do
116+ Logger . info ( "Checking if batch is responded for merkle_root: #{ merkle_root } , fromBlock: #{ fromBlock } " )
117+
105118 event =
106119 Utils . string_to_bytes32 ( merkle_root )
107120 |> AlignedLayerServiceManager.EventFilters . batch_verified ( )
108- |> Ethers . get_logs ( fromBlock: @ first_block )
121+ |> Ethers . get_logs ( fromBlock: fromBlock )
109122
110123 case event do
111- { :error , reason } -> { :error , reason }
112- { _ , [ ] } -> false
113- { :ok , _ } -> true
124+ { :error , reason } ->
125+ Logger . error ( "Error checking batch response for #{ merkle_root } : #{ inspect ( reason ) } " )
126+ { :error , reason }
127+ { _ , [ ] } ->
128+ Logger . info ( "Batch #{ merkle_root } not responded yet" )
129+ false
130+ { :ok , events } ->
131+ Logger . info ( "Batch #{ merkle_root } responded, found #{ length ( events ) } verification events" )
132+ true
114133 end
115134 end
116135
117136 # for new batches
118137 def extract_batch_response ( { _status , % NewBatchInfo { } = batch_creation } ) do
119138 created_batch = batch_creation . new_batch
120- was_batch_responded = is_batch_responded ( created_batch . batchMerkleRoot )
139+ Logger . info ( "Extracting batch response for new batch: #{ created_batch . batchMerkleRoot } " )
140+ was_batch_responded = is_batch_responded ( created_batch . batchMerkleRoot , fromBlock: batch_creation . block_number )
121141
122142 batch_response =
123143 case was_batch_responded do
124- true -> fetch_batch_response ( created_batch . batchMerkleRoot )
144+ true ->
145+ Logger . info ( "Batch #{ created_batch . batchMerkleRoot } was responded, fetching response details" )
146+ fetch_batch_response ( created_batch . batchMerkleRoot , batch_creation . block_number )
125147 # was not verified, fill with nils
126- false -> % { block_number: nil , transaction_hash: nil , block_timestamp: nil }
148+ false ->
149+ Logger . info ( "Batch #{ created_batch . batchMerkleRoot } was not responded yet" )
150+ % { block_number: nil , transaction_hash: nil , block_timestamp: nil }
127151 end
128152
129153 % BatchDB {
@@ -147,15 +171,18 @@ defmodule AlignedLayerServiceManager do
147171
148172 # for existing but unverified batches
149173 def extract_batch_response ( % Batches { } = unverified_batch ) do
150- was_batch_responded = is_batch_responded ( unverified_batch . merkle_root )
174+ Logger . info ( "Extracting batch response for existing unverified batch: #{ unverified_batch . merkle_root } " )
175+ was_batch_responded = is_batch_responded ( unverified_batch . merkle_root , unverified_batch . submission_block_number )
151176
152177 case was_batch_responded do
153178 # Do nothing since unverified batch was not yet verified
154179 false ->
180+ Logger . info ( "Unverified batch #{ unverified_batch . merkle_root } still not responded" )
155181 nil
156182
157183 true ->
158- batch_response = fetch_batch_response ( unverified_batch . merkle_root )
184+ Logger . info ( "Unverified batch #{ unverified_batch . merkle_root } now responded, updating status" )
185+ batch_response = fetch_batch_response ( unverified_batch . merkle_root , unverified_batch . submission_block_number )
159186
160187 % BatchDB {
161188 merkle_root: unverified_batch . merkle_root ,
@@ -177,29 +204,46 @@ defmodule AlignedLayerServiceManager do
177204 end
178205 end
179206
180- def fetch_batch_response ( merkle_root ) do
181- case get_batch_verified_events ( % { merkle_root: merkle_root } ) do
182- { :ok , batch_verified_info } -> batch_verified_info
183- { :empty , _ } -> nil
184- { :error , error } -> raise ( "Error fetching batch response: #{ error } " )
207+ def fetch_batch_response ( merkle_root , fromBlock \\ @ first_block ) do
208+ Logger . info ( "Fetching batch response for merkle_root: #{ merkle_root } , fromBlock: #{ fromBlock } " )
209+ case get_batch_verified_events ( % { merkle_root: merkle_root , fromBlock: fromBlock } ) do
210+ { :ok , batch_verified_info } ->
211+ Logger . info ( "Successfully fetched batch response for #{ merkle_root } " )
212+ batch_verified_info
213+ { :empty , _ } ->
214+ Logger . info ( "No batch verified events found for #{ merkle_root } " )
215+ nil
216+ { :error , error } ->
217+ Logger . error ( "Error fetching batch response for #{ merkle_root } : #{ error } " )
218+ raise ( "Error fetching batch response: #{ error } " )
185219 end
186220 end
187221
188- def get_batch_verified_events ( % { merkle_root: merkle_root } ) do
222+ def get_batch_verified_events ( % { merkle_root: merkle_root , fromBlock: fromBlock } ) do
223+ Logger . info ( "Getting batch verified events for merkle_root: #{ merkle_root } , fromBlock: #{ fromBlock } " )
189224 event =
190225 AlignedLayerServiceManager.EventFilters . batch_verified ( Utils . string_to_bytes32 ( merkle_root ) )
191- |> Ethers . get_logs ( fromBlock: @ first_block )
226+ |> Ethers . get_logs ( fromBlock: fromBlock )
192227
193228 case event do
194- { :error , reason } -> { :error , reason }
195- { _ , [ ] } -> { :empty , "No task found" }
196- { :ok , event } -> extract_batch_verified_event_info ( event |> List . first ( ) )
229+ { :error , reason } ->
230+ Logger . error ( "Error getting batch verified events for #{ merkle_root } : #{ inspect ( reason ) } " )
231+ { :error , reason }
232+ { _ , [ ] } ->
233+ Logger . info ( "No batch verified events found for #{ merkle_root } " )
234+ { :empty , "No task found" }
235+ { :ok , events } ->
236+ Logger . info ( "Found #{ length ( events ) } batch verified events for #{ merkle_root } " )
237+ extract_batch_verified_event_info ( events |> List . first ( ) )
197238 end
198239 end
199240
200241 defp extract_batch_verified_event_info ( event ) do
201242 batch_merkle_root = event |> Map . get ( :topics_raw ) |> Enum . at ( 1 )
202243 sender_address = event |> Map . get ( :data ) |> Enum . at ( 0 )
244+ block_number = event |> Map . get ( :block_number )
245+ tx_hash = event |> Map . get ( :transaction_hash )
246+ Logger . info ( "Extracting batch verified event info for block #{ block_number } , tx: #{ tx_hash } , merkle_root: #{ batch_merkle_root } " )
203247
204248 { :ok ,
205249 % BatchVerifiedInfo {
@@ -213,9 +257,15 @@ defmodule AlignedLayerServiceManager do
213257 end
214258
215259 def get_block_timestamp ( block_number ) do
260+ Logger . info ( "Fetching block timestamp for block #{ block_number } " )
216261 case Ethers.Utils . get_block_timestamp ( block_number ) do
217- { :ok , timestamp } -> DateTime . from_unix! ( timestamp )
218- { :error , error } -> raise ( "Error fetching block timestamp: #{ error } " )
262+ { :ok , timestamp } ->
263+ datetime = DateTime . from_unix! ( timestamp )
264+ Logger . info ( "Block #{ block_number } timestamp: #{ datetime } " )
265+ datetime
266+ { :error , error } ->
267+ Logger . error ( "Error fetching block timestamp for block #{ block_number } : #{ error } " )
268+ raise ( "Error fetching block timestamp: #{ error } " )
219269 end
220270 end
221271
@@ -230,8 +280,10 @@ defmodule AlignedLayerServiceManager do
230280 end
231281
232282 def update_restakeable_strategies ( ) do
283+ Logger . info ( "Updating restakeable strategies" )
233284 case AlignedLayerServiceManager . get_restakeable_strategies ( ) |> Ethers . call ( ) do
234285 { :ok , restakeable_strategies } ->
286+ Logger . info ( "Successfully fetched #{ length ( restakeable_strategies ) } restakeable strategies" )
235287 Strategies . update ( restakeable_strategies )
236288
237289 { :error , error } ->
0 commit comments