@@ -125,8 +125,7 @@ observed_async_trait!(
125
125
126
126
let to_block = self . get_block_by_hash( & current_mc_block_hash) . await ?. number. into( ) ;
127
127
128
- let data_checkpoint =
129
- self . domain_data_checkpoint_to_db_checkpoint( & data_checkpoint) . await ?;
128
+ let data_checkpoint = self . resolve_data_checkpoint( & data_checkpoint) . await ?;
130
129
131
130
let utxos =
132
131
match self . try_serve_from_cache( & data_checkpoint, to_block, max_transfers) . await {
@@ -170,6 +169,7 @@ impl CachedTokenBridgeDataSourceImpl {
170
169
cache_lookahead,
171
170
}
172
171
}
172
+
173
173
async fn set_cache_mc_scripts ( & self , main_chain_scripts : MainChainScripts ) {
174
174
let mut cache = self . cache . lock ( ) . await ;
175
175
cache. set_mc_scripts ( main_chain_scripts. clone ( ) ) ;
@@ -191,16 +191,11 @@ impl CachedTokenBridgeDataSourceImpl {
191
191
data_checkpoint : & BridgeCheckpoint ,
192
192
to_block : BlockNumber ,
193
193
) -> Result < ( ) , Box < dyn Error + Send + Sync > > {
194
- let from_block = match data_checkpoint {
195
- BridgeCheckpoint :: Block { number } => number. clone ( ) ,
196
- BridgeCheckpoint :: Utxo { block_number, .. } => block_number. clone ( ) ,
197
- } ;
198
- let data_checkpoint = BridgeCheckpoint :: Block { number : from_block. saturating_sub ( 1u32 ) } ;
194
+ let from_block = data_checkpoint. get_block_number ( ) ;
199
195
200
- let asset = Asset {
201
- policy_id : main_chain_scripts. token_policy_id . into ( ) ,
202
- asset_name : main_chain_scripts. token_asset_name . into ( ) ,
203
- } ;
196
+ // We want to load all data in the block of `data_checkpoint`, so we go one block back.
197
+ let effective_data_checkpoint =
198
+ BridgeCheckpoint :: Block { number : from_block. saturating_sub ( 1u32 ) } ;
204
199
205
200
let latest_block = self . get_latest_stable_block ( ) . await ?. unwrap_or ( to_block) ;
206
201
@@ -210,9 +205,9 @@ impl CachedTokenBridgeDataSourceImpl {
210
205
let utxos = get_bridge_utxos_tx (
211
206
self . db_sync_config . get_tx_in_config ( ) . await ?,
212
207
& self . pool ,
213
- & main_chain_scripts. illiquid_circulation_supply_validator_address . into ( ) ,
214
- asset ,
215
- data_checkpoint ,
208
+ & main_chain_scripts. illiquid_circulation_supply_validator_address . clone ( ) . into ( ) ,
209
+ main_chain_scripts . asset_id ( ) . into ( ) ,
210
+ effective_data_checkpoint ,
216
211
to_block. into ( ) ,
217
212
None ,
218
213
)
@@ -253,7 +248,7 @@ impl CachedTokenBridgeDataSourceImpl {
253
248
. ok_or ( format ! ( "Could not find block info for utxo: {utxo_id:?}" ) . into ( ) )
254
249
}
255
250
256
- async fn domain_data_checkpoint_to_db_checkpoint (
251
+ async fn resolve_data_checkpoint (
257
252
& self ,
258
253
data_checkpoint : & BridgeDataCheckpoint ,
259
254
) -> Result < BridgeCheckpoint , Box < dyn Error + Send + Sync > > {
0 commit comments