Burner

Trait Burner 

Source
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.

Required Methods§

Source

fn burn(&mut self, kind: ResourceKind, amount: u64) -> Result<(), BurnError>

Source

fn burn_multi_gas(&mut self, amount: MultiGas) -> Result<(), BurnError>

Source

fn burned(&self) -> u64

Source

fn gas_left(&self) -> u64

Source

fn burn_out(&mut self) -> Result<(), BurnError>

Source

fn restrict(&mut self, err: BurnError)

Source

fn handle_error(&self, err: BurnError) -> Result<(), BurnError>

Source

fn read_only(&self) -> bool

Source

fn tracing_info(&self) -> Option<&TracingInfo>

Implementors§