Struct linera_sdk::test::ActiveChain
source · pub struct ActiveChain { /* private fields */ }
Expand description
A reference to a single microchain inside a TestValidator
.
Implementations§
source§impl ActiveChain
impl ActiveChain
sourcepub fn new(
key_pair: AccountSecretKey,
description: ChainDescription,
validator: TestValidator,
) -> Self
pub fn new( key_pair: AccountSecretKey, description: ChainDescription, validator: TestValidator, ) -> Self
Creates a new ActiveChain
instance referencing a new empty microchain in the
validator
.
The microchain has a single owner that uses the key_pair
to produce blocks. The
description
is used as the identifier of the microchain.
sourcepub fn public_key(&self) -> AccountPublicKey
pub fn public_key(&self) -> AccountPublicKey
Returns the AccountPublicKey
of the active owner of this microchain.
sourcepub fn key_pair(&self) -> &AccountSecretKey
pub fn key_pair(&self) -> &AccountSecretKey
Returns the AccountSecretKey
of the active owner of this microchain.
sourcepub fn set_key_pair(&mut self, key_pair: AccountSecretKey)
pub fn set_key_pair(&mut self, key_pair: AccountSecretKey)
Sets the AccountSecretKey
to use for signing new blocks.
sourcepub async fn chain_balance(&self) -> Amount
pub async fn chain_balance(&self) -> Amount
Reads the current shared balance available to all of the owners of this microchain.
sourcepub async fn owner_balance(&self, owner: &AccountOwner) -> Option<Amount>
pub async fn owner_balance(&self, owner: &AccountOwner) -> Option<Amount>
Reads the current account balance on this microchain of an AccountOwner
.
sourcepub async fn owner_balances(
&self,
owners: impl IntoIterator<Item = AccountOwner>,
) -> HashMap<AccountOwner, Option<Amount>>
pub async fn owner_balances( &self, owners: impl IntoIterator<Item = AccountOwner>, ) -> HashMap<AccountOwner, Option<Amount>>
Reads the current account balance on this microchain of all AccountOwner
s.
sourcepub async fn accounts(&self) -> Vec<AccountOwner>
pub async fn accounts(&self) -> Vec<AccountOwner>
Reads a list of AccountOwner
s that have a non-zero balance on this microchain.
sourcepub async fn all_owner_balances(&self) -> HashMap<AccountOwner, Amount>
pub async fn all_owner_balances(&self) -> HashMap<AccountOwner, Amount>
Reads all the non-zero account balances on this microchain.
sourcepub async fn add_block(
&self,
block_builder: impl FnOnce(&mut BlockBuilder),
) -> ConfirmedBlockCertificate
pub async fn add_block( &self, block_builder: impl FnOnce(&mut BlockBuilder), ) -> ConfirmedBlockCertificate
Adds a block to this microchain.
The block_builder
parameter is a closure that should use the BlockBuilder
parameter
to provide the block’s contents.
sourcepub async fn add_block_with_blobs(
&self,
block_builder: impl FnOnce(&mut BlockBuilder),
blobs: Vec<Blob>,
) -> ConfirmedBlockCertificate
pub async fn add_block_with_blobs( &self, block_builder: impl FnOnce(&mut BlockBuilder), blobs: Vec<Blob>, ) -> ConfirmedBlockCertificate
Adds a block to this microchain, passing the blobs to be used during certificate handling.
The block_builder
parameter is a closure that should use the BlockBuilder
parameter
to provide the block’s contents.
sourcepub async fn try_add_block(
&self,
block_builder: impl FnOnce(&mut BlockBuilder),
) -> Result<ConfirmedBlockCertificate>
pub async fn try_add_block( &self, block_builder: impl FnOnce(&mut BlockBuilder), ) -> Result<ConfirmedBlockCertificate>
Tries to add a block to this microchain.
The block_builder
parameter is a closure that should use the BlockBuilder
parameter
to provide the block’s contents.
sourcepub async fn handle_received_messages(&self)
pub async fn handle_received_messages(&self)
Receives all queued messages in all inboxes of this microchain.
Adds a block to this microchain that receives all queued messages in the microchains inboxes.
sourcepub async fn publish_current_bytecode<Abi, Parameters, InstantiationArgument>(
&self,
) -> BytecodeId<Abi, Parameters, InstantiationArgument>
pub async fn publish_current_bytecode<Abi, Parameters, InstantiationArgument>( &self, ) -> BytecodeId<Abi, Parameters, InstantiationArgument>
Publishes the bytecodes in the crate calling this method to this microchain.
Searches the Cargo manifest for binaries that end with contract
and service
, builds
them for WebAssembly and uses the generated binaries as the contract and service bytecodes
to be published on this chain. Returns the bytecode ID to reference the published bytecode.
sourcepub async fn publish_bytecodes_in<Abi, Parameters, InstantiationArgument>(
&self,
repository_path: impl AsRef<Path>,
) -> BytecodeId<Abi, Parameters, InstantiationArgument>
pub async fn publish_bytecodes_in<Abi, Parameters, InstantiationArgument>( &self, repository_path: impl AsRef<Path>, ) -> BytecodeId<Abi, Parameters, InstantiationArgument>
Publishes the bytecodes in the crate at repository_path
.
Searches the Cargo manifest for binaries that end with contract
and service
, builds
them for WebAssembly and uses the generated binaries as the contract and service bytecodes
to be published on this chain. Returns the bytecode ID to reference the published bytecode.
sourcepub async fn get_tip_height(&self) -> BlockHeight
pub async fn get_tip_height(&self) -> BlockHeight
Returns the height of the tip of this microchain.
sourcepub async fn create_application<Abi, Parameters, InstantiationArgument>(
&mut self,
bytecode_id: BytecodeId<Abi, Parameters, InstantiationArgument>,
parameters: Parameters,
instantiation_argument: InstantiationArgument,
required_application_ids: Vec<ApplicationId>,
) -> ApplicationId<Abi>
pub async fn create_application<Abi, Parameters, InstantiationArgument>( &mut self, bytecode_id: BytecodeId<Abi, Parameters, InstantiationArgument>, parameters: Parameters, instantiation_argument: InstantiationArgument, required_application_ids: Vec<ApplicationId>, ) -> ApplicationId<Abi>
Creates an application on this microchain, using the bytecode referenced by bytecode_id
.
Returns the ApplicationId
of the created application.
If necessary, this microchain will subscribe to the microchain that published the bytecode to use, and fetch it.
The application is instantiated using the instantiation parameters, which consist of the
global static parameters
, the one time instantiation_argument
and the
required_application_ids
of the applications that the new application will depend on.
sourcepub async fn register_application<Abi>(
&self,
application_id: ApplicationId<Abi>,
)
pub async fn register_application<Abi>( &self, application_id: ApplicationId<Abi>, )
Registers on this chain an application created on another chain.
sourcepub async fn query<Abi>(
&self,
application_id: ApplicationId<Abi>,
query: Abi::Query,
) -> QueryOutcome<Abi::QueryResponse>where
Abi: ServiceAbi,
pub async fn query<Abi>(
&self,
application_id: ApplicationId<Abi>,
query: Abi::Query,
) -> QueryOutcome<Abi::QueryResponse>where
Abi: ServiceAbi,
Executes a query
on an application
’s state on this microchain.
Returns the deserialized response from the application
.
sourcepub async fn graphql_query<Abi>(
&self,
application_id: ApplicationId<Abi>,
query: impl Into<Request>,
) -> QueryOutcome<Value>
pub async fn graphql_query<Abi>( &self, application_id: ApplicationId<Abi>, query: impl Into<Request>, ) -> QueryOutcome<Value>
Executes a GraphQL query
on an application
’s state on this microchain.
Returns the deserialized GraphQL JSON response from the application
.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ActiveChain
impl !RefUnwindSafe for ActiveChain
impl Send for ActiveChain
impl Sync for ActiveChain
impl Unpin for ActiveChain
impl !UnwindSafe for ActiveChain
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
source§impl<T> MockResults for T
impl<T> MockResults for T
§type Results = T
type Results = T
MockInstance
.source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length
bytes from memory from the provided location
.
source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes
to memory at the provided location
.
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.