pub trait ExecutionFeeReserve {
// Required methods
fn consume_execution(
&mut self,
cost_units: u32
) -> Result<(), FeeReserveError>;
fn consume_finalization(
&mut self,
cost_units: u32
) -> Result<(), FeeReserveError>;
fn consume_storage(
&mut self,
storage_type: StorageType,
size_increase: usize
) -> Result<(), FeeReserveError>;
fn consume_royalty(
&mut self,
royalty_amount: RoyaltyAmount,
recipient: RoyaltyRecipient
) -> Result<(), FeeReserveError>;
fn lock_fee(
&mut self,
vault_id: NodeId,
fee: LiquidFungibleResource,
contingent: bool
);
}