pub struct BaseTransactionNetworkExecutor<Interactor: BlockchainInteractor> {
    pub gateway_url: String,
    pub wallet: Wallet,
    /* private fields */
}
Expand description

A struct representing the executor for handling transactions in a real blockchain environment.

This executor is designed to interact with a blockchain network via a specified gateway URL and a wallet for signing transactions. It is parameterized by a type Interactor that encapsulates the blockchain interaction logic.

Fields§

§gateway_url: String

The URL of the blockchain network gateway through which transactions will be sent.

§wallet: Wallet

The wallet used for signing transactions before they are sent to the blockchain network.

Implementations§

source§

impl<Interactor: BlockchainInteractor> BaseTransactionNetworkExecutor<Interactor>

source

pub fn new(gateway_url: &str, wallet: &Wallet) -> Self

Creates a new instance of BaseTransactionNetworkExecutor.

§Parameters
  • gateway_url: The URL of the blockchain network gateway.
  • wallet: A reference to the wallet used for signing transactions.
§Returns

A new BaseTransactionNetworkExecutor instance.

Trait Implementations§

source§

impl<Interactor> Clone for BaseTransactionNetworkExecutor<Interactor>
where Interactor: BlockchainInteractor,

Custom implementation of Clone for BaseTransactionNetworkExecutor.

This implementation is necessary because the Interactor generic parameter might not implement Clone. However, since Interactor is used only as phantom data (it does not affect the state of BaseTransactionNetworkExecutor), we can safely implement Clone without the Interactor needing to be Clone.

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Interactor> Debug for BaseTransactionNetworkExecutor<Interactor>
where Interactor: BlockchainInteractor,

Custom implementation of Debug for BaseTransactionNetworkExecutor.

This implementation is necessary because the Interactor generic parameter might not implement Debug. As with Clone, since Interactor is only used as phantom data, it does not impact the debug representation of BaseTransactionNetworkExecutor. This implementation ensures that instances of BaseTransactionNetworkExecutor can be formatted using the Debug trait regardless of whether Interactor implements Debug.

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Interactor: BlockchainInteractor> DeployExecutor for BaseTransactionNetworkExecutor<Interactor>

Implementation of the DeployExecutor trait for the BaseTransactionNetworkExecutor struct. This implementation enables the deployment of smart contracts on the blockchain using a specified blockchain interactor.

source§

fn sc_deploy<'life0, 'life1, 'async_trait, OriginalResult>( &'life0 mut self, sc_deploy_step: &'life1 mut TypedScDeploy<OriginalResult> ) -> Pin<Box<dyn Future<Output = Result<(), ExecutorError>> + Send + 'async_trait>>
where OriginalResult: TopEncodeMulti + Send + Sync + 'async_trait, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Asynchronously deploys a smart contract to the blockchain.

§Type Parameters
  • OriginalResult: Represents the result type expected from the smart contract deployment. This type must implement TopEncodeMulti, Send, and Sync.
  • S: Represents the type encapsulating the smart contract deployment step. This type must implement AsMut<TypedScDeploy<OriginalResult>> and Send.
§Parameters
  • sc_deploy_step: A mutable reference to the smart contract deployment step to be executed.
§Returns

A Result with an empty Ok(()) value indicating success, or an Err(ExecutorError) indicating failure.

source§

fn should_skip_deserialization<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Specifies whether deserialization should be skipped during the deployment execution. In this implementation, deserialization is not skipped.

§Returns

A bool value of false, indicating that deserialization should not be skipped.

source§

impl<Interactor: BlockchainInteractor> TransactionExecutor for BaseTransactionNetworkExecutor<Interactor>

source§

fn sc_call<'life0, 'life1, 'async_trait, OriginalResult>( &'life0 mut self, sc_call_step: &'life1 mut TypedScCall<OriginalResult> ) -> Pin<Box<dyn Future<Output = Result<(), ExecutorError>> + Send + 'async_trait>>
where OriginalResult: 'async_trait + Send, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Executes a smart contract call on the blockchain.

§Parameters
  • sc_call_step: A mutable reference to the smart contract call step.
§Type Parameters
  • OriginalResult: The type of the result expected from the smart contract call. Must implement the Send trait.
§Returns
  • A Result with an empty Ok(()) value if the call is successful, or an Err(ExecutorError) if the call fails.
source§

fn should_skip_deserialization<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Indicates whether deserialization should be skipped during smart contract call execution.

In the context of a real blockchain environment, deserialization is not skipped, hence this method returns false.

§Returns
  • A boolean value false, indicating that deserialization should not be skipped.

Auto Trait Implementations§

§

impl<Interactor> CodecFromSelf for BaseTransactionNetworkExecutor<Interactor>
where Interactor: Sync + Send + CodecFromSelf,

§

impl<Interactor> Freeze for BaseTransactionNetworkExecutor<Interactor>
where Interactor: Sync + Send,

§

impl<Interactor> RefUnwindSafe for BaseTransactionNetworkExecutor<Interactor>
where Interactor: Sync + Send + RefUnwindSafe,

§

impl<Interactor> Send for BaseTransactionNetworkExecutor<Interactor>
where Interactor: Sync + Send,

§

impl<Interactor> Sync for BaseTransactionNetworkExecutor<Interactor>
where Interactor: Sync + Send,

§

impl<Interactor> Unpin for BaseTransactionNetworkExecutor<Interactor>
where Interactor: Sync + Send + Unpin,

§

impl<Interactor> UnwindSafe for BaseTransactionNetworkExecutor<Interactor>
where Interactor: Sync + Send + UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T> InterpretableFrom<&T> for T
where T: Clone,

source§

fn interpret_from(from: &T, _context: &InterpreterContext) -> T

source§

impl<T> InterpretableFrom<T> for T

source§

fn interpret_from(from: T, _context: &InterpreterContext) -> T

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ReconstructableFrom<&T> for T
where T: Clone,

source§

impl<T> ReconstructableFrom<T> for T

source§

fn reconstruct_from(from: T, _builder: &ReconstructorContext) -> T

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more