Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Contracts: expose charge_storage to chain_extension #14712

Merged
merged 3 commits into from
Aug 17, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion frame/contracts/src/exec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

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,
Expand Down Expand Up @@ -272,6 +272,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.
Expand Down Expand Up @@ -1429,6 +1432,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
Expand Down
1 change: 1 addition & 0 deletions frame/contracts/src/wasm/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down