Struct multiversx_sc_snippets::Interactor
source · pub struct Interactor {
pub proxy: GatewayProxy,
pub network_config: NetworkConfig,
pub sender_map: HashMap<Address, Sender>,
pub pre_runners: ScenarioRunnerList,
pub post_runners: ScenarioRunnerList,
pub current_dir: PathBuf,
/* private fields */
}
Fields§
§proxy: GatewayProxy
§network_config: NetworkConfig
§sender_map: HashMap<Address, Sender>
§pre_runners: ScenarioRunnerList
§post_runners: ScenarioRunnerList
§current_dir: PathBuf
Implementations§
source§impl Interactor
impl Interactor
pub async fn new(gateway_url: &str) -> Self
pub fn register_wallet(&mut self, wallet: Wallet) -> Address
pub async fn sleep(&mut self, duration: Duration)
pub async fn with_tracer<P: AsRef<Path>>(self, path: P) -> Self
pub async fn retrieve_account(&mut self, wallet_address: &Bech32Address)
source§impl Interactor
impl Interactor
pub async fn sc_call<S>(&mut self, sc_call_step: S)where
S: AsMut<ScCallStep>,
source§impl Interactor
impl Interactor
pub async fn launch_sc_deploy( &mut self, sc_deploy_step: &mut ScDeployStep, ) -> String
pub async fn sc_deploy<S>(&mut self, sc_deploy_step: S)where
S: AsMut<ScDeployStep>,
source§impl Interactor
impl Interactor
pub async fn sc_call_use_raw_response<S, F>( &mut self, step: S, use_raw_response: F, ) -> &mut Self
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_call_use_result<OriginalResult, RequestedResult, F>(
&mut self,
step: TypedScCall<OriginalResult>,
use_result: F,
) -> &mut Selfwhere
OriginalResult: TopEncodeMulti,
RequestedResult: TopDecodeMulti + TypeAbiFrom<OriginalResult>,
F: FnOnce(TypedResponse<RequestedResult>),
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_call_get_result<OriginalResult, RequestedResult>(
&mut self,
step: TypedScCall<OriginalResult>,
) -> TypedResponse<RequestedResult>where
OriginalResult: TopEncodeMulti,
RequestedResult: TopDecodeMulti + TypeAbiFrom<OriginalResult>,
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_query_use_raw_response<S, F>( &mut self, step: S, use_raw_response: F, ) -> &mut Self
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_query_use_result<OriginalResult, RequestedResult, F>(
&mut self,
step: TypedScQuery<OriginalResult>,
use_result: F,
) -> &mut Selfwhere
OriginalResult: TopEncodeMulti,
RequestedResult: TopDecodeMulti + TypeAbiFrom<OriginalResult>,
F: FnOnce(TypedResponse<RequestedResult>),
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_query_get_result<OriginalResult, RequestedResult>(
&mut self,
step: TypedScQuery<OriginalResult>,
) -> TypedResponse<RequestedResult>where
OriginalResult: TopEncodeMulti,
RequestedResult: TopDecodeMulti + TypeAbiFrom<OriginalResult>,
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn quick_query<CC, RequestedResult>(
&mut self,
contract_call: CC,
) -> RequestedResultwhere
CC: ContractCallBase<StaticApi>,
RequestedResult: TopDecodeMulti + TypeAbiFrom<CC::OriginalResult>,
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_deploy_use_raw_response<S, F>( &mut self, step: S, use_raw_response: F, ) -> &mut Self
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_deploy_use_result<OriginalResult, RequestedResult, F>(
&mut self,
step: TypedScDeploy<OriginalResult>,
use_result: F,
) -> &mut Selfwhere
OriginalResult: TopEncodeMulti,
RequestedResult: TopDecodeMulti + TypeAbiFrom<OriginalResult>,
F: FnOnce(Address, TypedResponse<RequestedResult>),
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
pub async fn sc_deploy_get_result<OriginalResult, RequestedResult>(
&mut self,
step: TypedScDeploy<OriginalResult>,
) -> (Address, TypedResponse<RequestedResult>)where
OriginalResult: TopEncodeMulti,
RequestedResult: TopDecodeMulti + TypeAbiFrom<OriginalResult>,
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
source§impl Interactor
impl Interactor
pub async fn transfer(&mut self, transfer_step: TransferStep) -> String
source§impl Interactor
impl Interactor
pub async fn sc_query<S>(&mut self, step: S) -> &mut Selfwhere
S: AsMut<ScQueryStep>,
pub async fn perform_sc_query(&mut self, step: &mut ScQueryStep)
pub async fn vm_query<CC, RequestedResult>(
&mut self,
contract_call: CC,
) -> RequestedResultwhere
CC: ContractCall<StaticApi>,
RequestedResult: TopDecodeMulti + TypeAbiFrom<CC::OriginalResult>,
👎Deprecated since 0.42.0: Was renamed to
quick_query
.source§impl Interactor
impl Interactor
pub async fn recall_nonce(&self, address: &Address) -> u64
source§impl Interactor
impl Interactor
pub async fn chain_call<From, To, Payment, Gas, RH, F>(
&mut self,
f: F,
) -> &mut Selfwhere
From: TxFromSpecified<ScenarioTxEnvData>,
To: TxToSpecified<ScenarioTxEnvData>,
Payment: TxPayment<ScenarioTxEnvData>,
Gas: TxGas<ScenarioTxEnvData>,
RH: RHListExec<TxResponse, ScenarioTxEnvData, ListReturns = ()>,
F: FnOnce(TxBaseWithEnv<ScenarioTxEnvData>) -> Tx<ScenarioTxEnvData, From, To, Payment, Gas, FunctionCall<StaticApi>, RH>,
source§impl Interactor
impl Interactor
pub async fn chain_deploy<From, Payment, Gas, CodeValue, RH, F>(
&mut self,
f: F,
) -> &mut Selfwhere
From: TxFromSpecified<ScenarioTxEnvData>,
Payment: TxPayment<ScenarioTxEnvData>,
Gas: TxGas<ScenarioTxEnvData>,
CodeValue: TxCodeValue<ScenarioTxEnvData>,
RH: RHListExec<TxResponse, ScenarioTxEnvData, ListReturns = ()>,
F: FnOnce(TxBaseWithEnv<ScenarioTxEnvData>) -> Tx<ScenarioTxEnvData, From, (), Payment, Gas, DeployCall<ScenarioTxEnvData, Code<CodeValue>>, RH>,
pub async fn run_deploy<From, Payment, Gas, CodeValue, RH, F>(
&mut self,
f: F,
) -> <RH::ListReturns as NestedTupleFlatten>::Unpackedwhere
From: TxFromSpecified<ScenarioTxEnvData>,
Payment: TxPayment<ScenarioTxEnvData>,
Gas: TxGas<ScenarioTxEnvData>,
CodeValue: TxCodeValue<ScenarioTxEnvData>,
RH: RHListExec<TxResponse, ScenarioTxEnvData>,
RH::ListReturns: NestedTupleFlatten,
F: FnOnce(TxBaseWithEnv<ScenarioTxEnvData>) -> Tx<ScenarioTxEnvData, From, (), Payment, Gas, DeployCall<ScenarioTxEnvData, Code<CodeValue>>, RH>,
source§impl Interactor
impl Interactor
pub fn tx(&mut self) -> TxBaseWithEnv<InteractorEnvExec<'_>>
source§impl Interactor
impl Interactor
pub async fn chain_query<To, Payment, RH, F>(&mut self, f: F) -> &mut Selfwhere
To: TxToSpecified<ScenarioTxEnvData>,
Payment: TxNoPayment<ScenarioTxEnvData>,
RH: RHListExec<TxResponse, ScenarioTxEnvData, ListReturns = ()>,
F: FnOnce(TxBaseWithEnv<ScenarioTxEnvData>) -> Tx<ScenarioTxEnvData, (), To, Payment, (), FunctionCall<StaticApi>, RH>,
source§impl Interactor
impl Interactor
pub fn query(&mut self) -> TxBaseWithEnv<InteractorEnvQuery<'_>>
source§impl Interactor
impl Interactor
sourcepub fn homogenous_call_buffer<Step, RH>(
&mut self,
) -> HomogenousTxBuffer<'_, Step, RH>
pub fn homogenous_call_buffer<Step, RH>( &mut self, ) -> HomogenousTxBuffer<'_, Step, RH>
Creates a buffer that can hold multiple transactions, and then execute them all at once.
This buffer holds transactions of the same type (call/deploy) and with identical result handler types. Therefore, after execution, all results will have the same type.
source§impl Interactor
impl Interactor
pub async fn multi_sc_exec(&mut self, buffer: StepBuffer<'_>)
Auto Trait Implementations§
impl Freeze for Interactor
impl !RefUnwindSafe for Interactor
impl Send for Interactor
impl Sync for Interactor
impl Unpin for Interactor
impl !UnwindSafe for Interactor
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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> InterpretableFrom<T> for T
impl<T> InterpretableFrom<T> for T
fn interpret_from(from: T, _context: &InterpreterContext) -> T
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>
Converts
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>
Converts
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 more