pub struct ContractWrapper<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error>where
    T1: DeserializeOwned + Debug,
    T2: DeserializeOwned,
    T3: DeserializeOwned,
    T4: DeserializeOwned,
    T6: DeserializeOwned,
    E1: Display + Debug + Send + Sync + 'static,
    E2: Display + Debug + Send + Sync + 'static,
    E3: Display + Debug + Send + Sync + 'static,
    E4: Display + Debug + Send + Sync + 'static,
    E5: Display + Debug + Send + Sync + 'static,
    E6: Display + Debug + Send + Sync + 'static,
    C: Clone + Debug + PartialEq<C> + JsonSchema,
    Q: CustomQuery + DeserializeOwned + 'static,{ /* private fields */ }
Expand description

Wraps the exported functions from a contract and provides the normalized format Place T4 and E4 at the end, as we just want default placeholders for most contracts that don’t have sudo

Implementations§

source§

impl<T1, T2, T3, E1, E2, E3, C, Q> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, Empty, Error, Error, Empty, Error>where T1: DeserializeOwned + Debug + 'static, T2: DeserializeOwned + 'static, T3: DeserializeOwned + 'static, E1: Display + Debug + Send + Sync + 'static, E2: Display + Debug + Send + Sync + 'static, E3: Display + Debug + Send + Sync + 'static, C: Clone + Debug + PartialEq<C> + JsonSchema + 'static, Q: CustomQuery + DeserializeOwned + 'static,

source

pub fn new( execute_fn: fn(_: DepsMut<'_, Q>, _: Env, _: MessageInfo, _: T1) -> Result<Response<C>, E1>, instantiate_fn: fn(_: DepsMut<'_, Q>, _: Env, _: MessageInfo, _: T2) -> Result<Response<C>, E2>, query_fn: fn(_: Deps<'_, Q>, _: Env, _: T3) -> Result<Binary, E3> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, Empty, Error, Error, Empty, Error>

source

pub fn new_with_empty( execute_fn: fn(_: DepsMut<'_, Empty>, _: Env, _: MessageInfo, _: T1) -> Result<Response<Empty>, E1>, instantiate_fn: fn(_: DepsMut<'_, Empty>, _: Env, _: MessageInfo, _: T2) -> Result<Response<Empty>, E2>, query_fn: fn(_: Deps<'_, Empty>, _: Env, _: T3) -> Result<Binary, E3> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, Empty, Error, Error, Empty, Error>

this will take a contract that returns Response and will “upgrade” it to Response if needed to be compatible with a chain-specific extension

source§

impl<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>where T1: DeserializeOwned + Debug + 'static, T2: DeserializeOwned + 'static, T3: DeserializeOwned + 'static, T4: DeserializeOwned + 'static, T6: DeserializeOwned + 'static, E1: Display + Debug + Send + Sync + 'static, E2: Display + Debug + Send + Sync + 'static, E3: Display + Debug + Send + Sync + 'static, E4: Display + Debug + Send + Sync + 'static, E5: Display + Debug + Send + Sync + 'static, E6: Display + Debug + Send + Sync + 'static, C: Clone + Debug + PartialEq<C> + JsonSchema + 'static, Q: CustomQuery + DeserializeOwned + 'static,

source

pub fn with_sudo<T4A, E4A>( self, sudo_fn: fn(_: DepsMut<'_, Q>, _: Env, _: T4A) -> Result<Response<C>, E4A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4A, E4A, E5, T6, E6>where T4A: DeserializeOwned + 'static, E4A: Display + Debug + Send + Sync + 'static,

source

pub fn with_sudo_empty<T4A, E4A>( self, sudo_fn: fn(_: DepsMut<'_, Q>, _: Env, _: T4A) -> Result<Response<Empty>, E4A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4A, E4A, E5, T6, E6>where T4A: DeserializeOwned + 'static, E4A: Display + Debug + Send + Sync + 'static,

source

pub fn with_reply<E5A>( self, reply_fn: fn(_: DepsMut<'_, Q>, _: Env, _: Reply) -> Result<Response<C>, E5A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5A, T6, E6>where E5A: Display + Debug + Send + Sync + 'static,

source

pub fn with_reply_empty<E5A>( self, reply_fn: fn(_: DepsMut<'_, Q>, _: Env, _: Reply) -> Result<Response<Empty>, E5A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5A, T6, E6>where E5A: Display + Debug + Send + Sync + 'static,

A correlate of new_with_empty

source

pub fn with_migrate<T6A, E6A>( self, migrate_fn: fn(_: DepsMut<'_, Q>, _: Env, _: T6A) -> Result<Response<C>, E6A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6A, E6A>where T6A: DeserializeOwned + 'static, E6A: Display + Debug + Send + Sync + 'static,

source

pub fn with_migrate_empty<T6A, E6A>( self, migrate_fn: fn(_: DepsMut<'_, Q>, _: Env, _: T6A) -> Result<Response<Empty>, E6A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6A, E6A>where T6A: DeserializeOwned + 'static, E6A: Display + Debug + Send + Sync + 'static,

Trait Implementations§

source§

impl<T1, T2, T3, E1, E2, E3, C, T4, E4, E5, T6, E6, Q> Contract<C, Q> for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>where T1: DeserializeOwned + Debug + Clone, T2: DeserializeOwned + Debug + Clone, T3: DeserializeOwned + Debug + Clone, T4: DeserializeOwned, T6: DeserializeOwned, E1: Display + Debug + Send + Sync + Error + 'static, E2: Display + Debug + Send + Sync + Error + 'static, E3: Display + Debug + Send + Sync + Error + 'static, E4: Display + Debug + Send + Sync + 'static, E5: Display + Debug + Send + Sync + 'static, E6: Display + Debug + Send + Sync + 'static, C: Clone + Debug + PartialEq<C> + JsonSchema, Q: CustomQuery + DeserializeOwned,

source§

fn execute( &self, deps: DepsMut<'_, Q>, env: Env, info: MessageInfo, msg: Vec<u8, Global> ) -> Result<Response<C>, Error>

source§

fn instantiate( &self, deps: DepsMut<'_, Q>, env: Env, info: MessageInfo, msg: Vec<u8, Global> ) -> Result<Response<C>, Error>

source§

fn query( &self, deps: Deps<'_, Q>, env: Env, msg: Vec<u8, Global> ) -> Result<Binary, Error>

source§

fn sudo( &self, deps: DepsMut<'_, Q>, env: Env, msg: Vec<u8, Global> ) -> Result<Response<C>, Error>

source§

fn reply( &self, deps: DepsMut<'_, Q>, env: Env, reply_data: Reply ) -> Result<Response<C>, Error>

source§

fn migrate( &self, deps: DepsMut<'_, Q>, env: Env, msg: Vec<u8, Global> ) -> Result<Response<C>, Error>

Auto Trait Implementations§

§

impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !RefUnwindSafe for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>

§

impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !Send for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>

§

impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !Sync for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>

§

impl<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6> Unpin for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>

§

impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !UnwindSafe for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<M> AsAny for Mwhere M: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · 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, U> Into<U> for Twhere U: From<T>,

const: unstable · 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> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

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

§

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