Contracts: expose charge_storage to chain_extension (#14712)

* Contracts: expose charge_storage to chain_extension

* fix typo

* export Diff
This commit is contained in:
PG Herveou
2023-08-17 15:37:53 +02:00
committed by GitHub
parent ecf8035da6
commit 91d2ac11b3
3 changed files with 10 additions and 2 deletions
+8 -1
View File
@@ -19,7 +19,7 @@
use crate::unsafe_debug::ExecutionObserver;
use crate::{
gas::GasMeter,
storage::{self, DepositAccount, WriteOutcome},
storage::{self, meter::Diff, DepositAccount, WriteOutcome},
BalanceOf, CodeHash, CodeInfo, CodeInfoOf, Config, ContractInfo, ContractInfoOf,
DebugBufferVec, Determinism, Error, Event, Nonce, Origin, Pallet as Contracts, Schedule,
System, WasmBlob, LOG_TARGET,
@@ -274,6 +274,9 @@ pub trait Ext: sealing::Sealed {
/// Get a mutable reference to the nested gas meter.
fn gas_meter_mut(&mut self) -> &mut GasMeter<Self::T>;
/// Charges `diff` from the meter.
fn charge_storage(&mut self, diff: &Diff);
/// Append a string to the debug buffer.
///
/// It is added as-is without any additional new line.
@@ -1451,6 +1454,10 @@ where
&mut self.top_frame_mut().nested_gas
}
fn charge_storage(&mut self, diff: &Diff) {
self.top_frame_mut().nested_storage.charge(diff)
}
fn append_debug_buffer(&mut self, msg: &str) -> bool {
if let Some(buffer) = &mut self.debug_message {
buffer