mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-14 23:51:05 +00:00
wasm-executor: Support growing the memory (#12520)
* As always, start with something :P * Add support for max_heap_pages * Add support for wasmtime * Make it compile * Fix compilation * Copy wrongly merged code * Fix compilation * Some fixes * Fix * Get stuff working * More work * More fixes * ... * More * FIXEs * Switch wasmi to use `RuntimeBlob` like wasmtime * Removed unused stuff * Cleanup * More cleanups * Introduce `CallContext` * Fixes * More fixes * Add builder for creating the `WasmExecutor` * Adds some docs * FMT * First round of feedback. * Review feedback round 2 * More fixes * Fix try-runtime * Update client/executor/wasmtime/src/instance_wrapper.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/executor/common/src/wasm_runtime.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/executor/common/src/runtime_blob/runtime_blob.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/executor/common/src/wasm_runtime.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/allocator/src/freeing_bump.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/allocator/src/freeing_bump.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Feedback round 3 * FMT * Review comments --------- Co-authored-by: Koute <koute@users.noreply.github.com>
This commit is contained in:
@@ -21,8 +21,11 @@ use sc_client_api::{
|
||||
backend, call_executor::CallExecutor, execution_extensions::ExecutionExtensions, HeaderBackend,
|
||||
};
|
||||
use sc_executor::{RuntimeVersion, RuntimeVersionOf};
|
||||
use sp_api::{ExecutionContext, ProofRecorder, StorageTransactionCache};
|
||||
use sp_core::traits::{CodeExecutor, RuntimeCode, SpawnNamed};
|
||||
use sp_api::{ProofRecorder, StorageTransactionCache};
|
||||
use sp_core::{
|
||||
traits::{CallContext, CodeExecutor, RuntimeCode, SpawnNamed},
|
||||
ExecutionContext,
|
||||
};
|
||||
use sp_runtime::{generic::BlockId, traits::Block as BlockT};
|
||||
use sp_state_machine::{
|
||||
backend::AsTrieBackend, ExecutionStrategy, Ext, OverlayedChanges, StateMachine, StorageProof,
|
||||
@@ -166,6 +169,7 @@ where
|
||||
method: &str,
|
||||
call_data: &[u8],
|
||||
strategy: ExecutionStrategy,
|
||||
context: CallContext,
|
||||
) -> sp_blockchain::Result<Vec<u8>> {
|
||||
let mut changes = OverlayedChanges::default();
|
||||
let at_number =
|
||||
@@ -193,6 +197,7 @@ where
|
||||
extensions,
|
||||
&runtime_code,
|
||||
self.spawn_handle.clone(),
|
||||
context,
|
||||
)
|
||||
.set_parent_hash(at_hash);
|
||||
|
||||
@@ -216,6 +221,11 @@ where
|
||||
self.backend.blockchain().expect_block_number_from_id(&BlockId::Hash(at_hash))?;
|
||||
let state = self.backend.state_at(at_hash)?;
|
||||
|
||||
let call_context = match context {
|
||||
ExecutionContext::OffchainCall(_) => CallContext::Offchain,
|
||||
_ => CallContext::Onchain,
|
||||
};
|
||||
|
||||
let (execution_manager, extensions) =
|
||||
self.execution_extensions.manager_and_extensions(at_hash, at_number, context);
|
||||
|
||||
@@ -247,6 +257,7 @@ where
|
||||
extensions,
|
||||
&runtime_code,
|
||||
self.spawn_handle.clone(),
|
||||
call_context,
|
||||
)
|
||||
.with_storage_transaction_cache(storage_transaction_cache.as_deref_mut())
|
||||
.set_parent_hash(at_hash);
|
||||
@@ -262,6 +273,7 @@ where
|
||||
extensions,
|
||||
&runtime_code,
|
||||
self.spawn_handle.clone(),
|
||||
call_context,
|
||||
)
|
||||
.with_storage_transaction_cache(storage_transaction_cache.as_deref_mut())
|
||||
.set_parent_hash(at_hash);
|
||||
|
||||
Reference in New Issue
Block a user