fix cu consumed computations

This commit is contained in:
Kirill Lykov 2024-02-27 14:40:19 +01:00
parent 44ef92f52e
commit 7acf63c817
1 changed files with 14 additions and 16 deletions

View File

@ -46,11 +46,18 @@ pub async fn process_blocks(
if let Some(transactions) = &block.transactions {
let nb_transactions = transactions.len();
let mut cu_consumed: u64 = 0;
let mut mm_cu_consumed: u64 = 0;
let mut total_cu_consumed: u64 = 0;
for solana_transaction_status::EncodedTransactionWithStatusMeta {
transaction, meta, ..
} in transactions
{
let tx_cu_consumed =
meta.as_ref()
.map_or(0, |meta| match meta.compute_units_consumed {
OptionSerializer::Some(cu_consumed) => cu_consumed,
_ => 0,
});
let transaction = match transaction.decode() {
Some(tx) => tx,
None => {
@ -58,21 +65,14 @@ pub async fn process_blocks(
}
};
for signature in &transaction.signatures {
let transaction_record_op = {
let rec = transaction_map.get(signature);
rec.map(|x| x.clone())
};
let transaction_record_op: Option<(TransactionSendRecord, Instant)> =
transaction_map.remove(signature);
// add CU in counter
if let Some(meta) = &meta {
if let solana_transaction_status::option_serializer::OptionSerializer::Some(x) =
meta.compute_units_consumed
{
cu_consumed = cu_consumed.saturating_add(x);
}
}
total_cu_consumed = total_cu_consumed.saturating_add(tx_cu_consumed);
if let Some(transaction_record) = transaction_record_op {
let transaction_record = transaction_record.0;
mm_transaction_count += 1;
mm_cu_consumed = mm_cu_consumed.saturating_add(tx_cu_consumed);
match tx_confirm_records.send(TransactionConfirmRecord {
signature: transaction_record.signature.to_string(),
@ -105,8 +105,6 @@ pub async fn process_blocks(
}
}
}
transaction_map.remove(signature);
}
}
// push block data
@ -122,8 +120,8 @@ pub async fn process_blocks(
},
number_of_mango_simulation_txs: mm_transaction_count,
total_transactions: nb_transactions as u64,
cu_consumed: 0,
cu_consumed_by_mango_simulations: cu_consumed,
cu_consumed: total_cu_consumed,
cu_consumed_by_mango_simulations: mm_cu_consumed,
commitment,
});
}