pub(crate) fn charge_system_contract_call<T>(&mut self, amount: T) -> Result<(), Error>
    where
        T: Into<Gas>,
    {
        if self.host_function_flag.is_in_host_function_scope()
            || self.is_system_immediate_caller()?
        {
            // This avoids charging the user in situation when the runtime is in the middle of
            // handling a host function call or a system contract calls other system contract.
            return Ok(());
        }
        self.context.charge_system_contract_call(amount)
    }
/// Charge for a system contract call.
///
/// This method does not charge for system contract calls if the immediate caller is a system
/// contract or if we're currently within the scope of a host function call. This avoids
/// misleading gas charges if one system contract calls other system contract (e.g. auction
/// contract calls into mint to create new purses).
Charge for a system contract call.
This method does not charge for system contract calls if the immediate caller is a system
contract or if we're currently within the scope of a host function call. This avoids
misleading gas charges if one system contract calls other system contract .
Charge for a system contract call . This method does not charge for system contract calls if the immediate caller is a system contract or if we ' re currently within the scope of a host function call . This avoids misleading gas charges if one system contract calls other system contract .
pub(crate) fn charge_system_contract_call<T>(&mut self, amount: T) -> Result<(), Error>
    where
        T: Into<Gas>,
    {
        if self.host_function_flag.is_in_host_function_scope()
            || self.is_system_immediate_caller()?
        {
            // This avoids charging the user in situation when the runtime is in the middle of
            // handling a host function call or a system contract calls other system contract.
            return Ok(());
        }
        self.context.charge_system_contract_call(amount)
    }
pub ( crate ) fn charge_system_contract_call < T > ( & mut self , amount : T ) -> Result < ( ) , Error > where T : Into < Gas > , { if self . host_function_flag . is_in_host_function_scope ( ) || self . is_system_immediate_caller ( ) ? { // This avoids charging the user in situation when the runtime is in the middle of // handling a host function call or a system contract calls other system contract. return Ok ( ( ) ) ; } self . context . charge_system_contract_call ( amount ) }
Charge for a system contract call.
Charge for a system contract call .
&mut self
amount
T
&mut self
amount
T