Skip to content

Commit 6317b0d

Browse files
authored
Fix fee estimation in simulateTransactions, fix DataAvailability prices in traces (#1745)
1 parent bf96204 commit 6317b0d

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

rpc/handlers.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1664,10 +1664,7 @@ func (h *Handler) simulateTransactions(id BlockID, transactions []BroadcastedTra
16641664
if !v0_6Response {
16651665
trace := traces[i]
16661666
executionResources := trace.TotalExecutionResources()
1667-
executionResources.DataAvailability = &vm.DataAvailability{
1668-
L1Gas: gasConsumed.Uint64(),
1669-
L1DataGas: dataGasConsumed[i].Uint64(),
1670-
}
1667+
executionResources.DataAvailability = vm.NewDataAvailability(gasConsumed, dataGasConsumed[i], header.L1DAMode)
16711668
traces[i].ExecutionResources = executionResources
16721669
}
16731670

@@ -1819,10 +1816,8 @@ func (h *Handler) traceBlockTransactions(ctx context.Context, block *core.Block,
18191816
gasConsumed = gasConsumed.Div(gasConsumed, gasPrice) // division by zero felt is zero felt
18201817

18211818
executionResources := trace.TotalExecutionResources()
1822-
executionResources.DataAvailability = &vm.DataAvailability{
1823-
L1Gas: gasConsumed.Uint64(),
1824-
L1DataGas: dataGasConsumed[index].Uint64(),
1825-
}
1819+
executionResources.DataAvailability = vm.NewDataAvailability(gasConsumed, dataGasConsumed[index],
1820+
header.L1DAMode)
18261821
traces[index].ExecutionResources = executionResources
18271822
}
18281823
result = append(result, TracedBlockTransaction{

vm/rust/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ pub extern "C" fn cairoVMExecute(
282282
}
283283

284284
// we are estimating fee, override actual fee calculation
285-
if !charge_fee {
285+
if t.actual_fee.0 == 0 {
286286
t.actual_fee = calculate_tx_fee(&t.actual_resources, &block_context, &fee_type).unwrap();
287287
}
288288

vm/trace.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"errors"
66
"slices"
77

8+
"github.com/NethermindEth/juno/core"
89
"github.com/NethermindEth/juno/core/felt"
910
)
1011

@@ -242,3 +243,16 @@ type ExecutionResources struct {
242243
ComputationResources
243244
DataAvailability *DataAvailability `json:"data_availability,omitempty"`
244245
}
246+
247+
func NewDataAvailability(gasConsumed, dataGasConsumed *felt.Felt, mode core.L1DAMode) *DataAvailability {
248+
da := &DataAvailability{}
249+
250+
switch mode {
251+
case core.Calldata:
252+
da.L1Gas = gasConsumed.Uint64()
253+
case core.Blob:
254+
da.L1DataGas = dataGasConsumed.Uint64()
255+
}
256+
257+
return da
258+
}

0 commit comments

Comments
 (0)