From a005f23743662a564153cd9050c859dddb125476 Mon Sep 17 00:00:00 2001 From: victor felder Date: Mon, 27 May 2024 19:03:31 +0200 Subject: [PATCH] fix(fee): take internal operations into account --- lib/rpc.ex | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/rpc.ex b/lib/rpc.ex index c74b937..13c3018 100644 --- a/lib/rpc.ex +++ b/lib/rpc.ex @@ -63,11 +63,21 @@ defmodule Tezex.Rpc do contents = Enum.map(preapplied_operations, fn content -> if validation_passes(content["kind"]) == 3 do + internal_consumed_milligas = + Enum.reduce(content["metadata"]["internal_operation_results"], 0, fn obj, sum -> + sum + + case get_in(obj, ["result", "consumed_milligas"]) do + nil -> 0 + n -> String.to_integer(n) + end + end) + consumed_milligas = - case content["metadata"]["operation_result"]["consumed_milligas"] do - nil -> 0 - v -> String.to_integer(v) - end + internal_consumed_milligas + + case content["metadata"]["operation_result"]["consumed_milligas"] do + nil -> 0 + v -> String.to_integer(v) + end gas_limit_new = ceil(consumed_milligas / 1000)