mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 19:17:58 +00:00
Contracts: expose charge_storage to chain_extension (#14712)
* Contracts: expose charge_storage to chain_extension * fix typo * export Diff
This commit is contained in:
@@ -79,7 +79,7 @@ use frame_support::weights::Weight;
|
||||
use sp_runtime::DispatchError;
|
||||
use sp_std::{marker::PhantomData, vec::Vec};
|
||||
|
||||
pub use crate::{exec::Ext, gas::ChargedAmount, Config};
|
||||
pub use crate::{exec::Ext, gas::ChargedAmount, storage::meter::Diff, Config};
|
||||
pub use frame_system::Config as SysConfig;
|
||||
pub use pallet_contracts_primitives::ReturnFlags;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -701,6 +701,7 @@ mod tests {
|
||||
fn gas_meter_mut(&mut self) -> &mut GasMeter<Self::T> {
|
||||
&mut self.gas_meter
|
||||
}
|
||||
fn charge_storage(&mut self, _diff: &crate::storage::meter::Diff) {}
|
||||
fn append_debug_buffer(&mut self, msg: &str) -> bool {
|
||||
self.debug_buffer.extend(msg.as_bytes());
|
||||
true
|
||||
|
||||
Reference in New Issue
Block a user