From be50479c65a3b0435a344b7e4087b71efb5e13a0 Mon Sep 17 00:00:00 2001 From: Maciek Malik Date: Tue, 17 Sep 2024 15:42:21 +0200 Subject: [PATCH] Fix compute budget max fees calculation - convert microlamports to lamports --- libsol/compute_budget_instruction.c | 3 ++- libsol/compute_budget_instruction.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libsol/compute_budget_instruction.c b/libsol/compute_budget_instruction.c index 64695ad..95eb4f5 100644 --- a/libsol/compute_budget_instruction.c +++ b/libsol/compute_budget_instruction.c @@ -57,7 +57,8 @@ static uint32_t calculate_max_fee(const ComputeBudgetFeeInfo* info) { max_compute = MIN(info->instructions_count * MAX_CU_PER_INSTRUCTION, MAX_CU_PER_TRANSACTION); } - return max_fee + (info->change_unit_price->units * max_compute); + return max_fee + + ((info->change_unit_price->units * max_compute) / MICRO_LAMPORT_MULTIPLIER); } return max_fee; } diff --git a/libsol/compute_budget_instruction.h b/libsol/compute_budget_instruction.h index c68f3e6..0eadaa6 100644 --- a/libsol/compute_budget_instruction.h +++ b/libsol/compute_budget_instruction.h @@ -9,6 +9,7 @@ #define MAX_CU_PER_INSTRUCTION 200000 #define MAX_CU_PER_TRANSACTION 1400000 #define FEE_LAMPORTS_PER_SIGNATURE 5000 +#define MICRO_LAMPORT_MULTIPLIER 1000000 extern const Pubkey compute_budget_program_id;