Module Plugin.Conflict_map

The purpose of this module is to provide the fee_needed_to_replace_by_fee function. For this function to be correct, the caller must maintain the state of type t by calling update on each successfully validated operation and its induced replacements.

type t

Internal state needed by fee_needed_to_replace_by_fee.

val empty : t

Initial state.

val update : t -> new_operation:operation -> replacements:operation list -> t

Removes all the replacements from the state then adds new_operation.

val fee_needed_to_replace_by_fee : config -> candidate_op:operation -> conflict_map:t -> int64 option

This function should be called when Mempool.add_operation has returned Unchanged. This means that the candidate_op has been rejected because there was a conflict with an pre-existing operation and the conflict_handler has returned `Keep. This function returns the minimal fee (in mumav) that candidate_op would need so that the conflict_handler would return `Replace instead. If no such fee exists, then the function returns None.