pub trait Burner {
// Required methods
fn burn(&mut self, kind: ResourceKind, amount: u64) -> Result<(), BurnError>;
fn burn_multi_gas(&mut self, amount: MultiGas) -> Result<(), BurnError>;
fn burned(&self) -> u64;
fn gas_left(&self) -> u64;
fn burn_out(&mut self) -> Result<(), BurnError>;
fn restrict(&mut self, err: BurnError);
fn handle_error(&self, err: BurnError) -> Result<(), BurnError>;
fn read_only(&self) -> bool;
fn tracing_info(&self) -> Option<&TracingInfo>;
}Expand description
Gas burning abstraction for ArbOS operations.
Tracks multi-dimensional gas usage during ArbOS state modifications.
SystemBurner is used for internal ArbOS operations that don’t have
a notion of remaining gas.