diff --git a/Scripts/cj_analysis.py b/Scripts/cj_analysis.py index 7d882bef6299b3a45c4dc942cfd9423966d1b034..90a50393ca6f4322b082b9c9556e415b22e0d3a6 100644 --- a/Scripts/cj_analysis.py +++ b/Scripts/cj_analysis.py @@ -350,13 +350,16 @@ def plot_mix_liquidity(mix_id: str, data: dict, initial_liquidity, time_liqiudit def plot_mining_fee_rates(mix_id: str, data: dict, mining_fees: dict, ax): coinjoins = data['coinjoins'] - sorted_cj_time = sort_coinjoins(coinjoins, False) # Take real mining time as mining fee are more relevant to it + # Take real mining time as mining fee are more relevant to it, but adapt to relative ordering used for plotting + sorted_cj_fee_time = sort_coinjoins(coinjoins, False) # Real time of mining => time of minig fee rate application + sorted_cj_fee_time_dict = {cj['txid']: cj for cj in sorted_cj_fee_time} # Turn list into dict for faster lookups + sorted_cj_time = sort_coinjoins(coinjoins, False) # Take relative ordering of cjtxs # For each coinjoin find the closest fee rate record and plot it fee_rates = [] fee_start_index = 0 for cj in sorted_cj_time: - timestamp = cj['broadcast_time'].timestamp() + timestamp = sorted_cj_fee_time_dict[cj['txid']]['broadcast_time'].timestamp() while timestamp > mining_fees[fee_start_index]['timestamp']: fee_start_index = fee_start_index + 1 closest_fee = mining_fees[fee_start_index - 1]['avgFee_90']