difftreelog
feat infallible evm logging
in: master
1 file changed
pallets/evm-coder-substrate/src/lib.rsdiffbeforeafterboth106 self.logs.borrow_mut().push(log);106 self.logs.borrow_mut().push(log);107 Ok(())107 Ok(())108 }108 }109 /// Doesn't consumes any gas, should be used after consume_log_sub110 pub fn log_infallible(&self, log: impl ToLog) {111 self.logs.borrow_mut().push(log.to_log(self.contract));112 }109 pub fn retrieve_logs(self) -> Vec<Log> {113 pub fn retrieve_logs(self) -> Vec<Log> {110 self.logs.into_inner()114 self.logs.into_inner()111 }115 }119 pub fn consume_sstore_sub(&self) -> DispatchResult {123 pub fn consume_sstore_sub(&self) -> DispatchResult {120 self.consume_gas_sub(G_SSTORE_WORD)124 self.consume_gas_sub(G_SSTORE_WORD)121 }125 }126 pub fn consume_log_sub(&self, topics: usize, data: usize) -> DispatchResult {127 self.consume_gas_sub(log_price(data, topics))128 }122 pub fn consume_gas_sub(&self, gas: u64) -> DispatchResult {129 pub fn consume_gas_sub(&self, gas: u64) -> DispatchResult {123 ensure!(gas != u64::MAX, Error::<T>::OutOfGas);130 ensure!(gas != u64::MAX, Error::<T>::OutOfGas);124 let mut gas_limit = self.gas_limit.borrow_mut();131 let mut gas_limit = self.gas_limit.borrow_mut();