Struct cosmwasm_std::Response [−][src]
pub struct Response<T = Empty> where
T: Clone + Debug + PartialEq + JsonSchema, { pub submessages: Vec<SubMsg<T>>, pub messages: Vec<CosmosMsg<T>>, pub attributes: Vec<Attribute>, pub data: Option<Binary>, }
A response of a contract entry point, such as instantiate
, execute
or migrate
.
This type can be constructed directly at the end of the call. Alternatively a mutable response instance can be created early in the contract’s logic and incrementally be updated.
Examples
Direct:
use cosmwasm_std::{attr, Response, StdResult}; pub fn instantiate( deps: DepsMut, _env: Env, _info: MessageInfo, msg: InstantiateMsg, ) -> StdResult<Response> { // ... Ok(Response { submessages: vec![], messages: vec![], attributes: vec![attr("action", "instantiate")], data: None, }) }
Mutating:
use cosmwasm_std::Response; pub fn instantiate( deps: DepsMut, _env: Env, info: MessageInfo, msg: InstantiateMsg, ) -> Result<Response, MyError> { let mut response = Response::new(); // ... response.add_attribute("Let the", "hacking begin"); // ... response.add_message(BankMsg::Send { to_address: String::from("recipient"), amount: coins(128, "uint"), }); response.add_attribute("foo", "bar"); // ... response.set_data(Binary::from(b"the result data")); Ok(response) }
Fields
submessages: Vec<SubMsg<T>>
Optional list of “subcalls” to make. These will be executed in order (and this contract’s subcall_response entry point invoked) before any of the “fire and forget” messages get executed.
messages: Vec<CosmosMsg<T>>
After any submessages are processed, these are all dispatched in the host blockchain. If they all succeed, then the transaction is committed. If any fail, then the transaction and any local contract state changes are reverted.
attributes: Vec<Attribute>
The attributes that will be emitted as part of a “wasm” event
data: Option<Binary>
Implementations
impl<T> Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]
impl<T> Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]pub fn new() -> Self
[src]
pub fn add_attribute<K: Into<String>, V: Into<String>>(
&mut self,
key: K,
value: V
)
[src]
&mut self,
key: K,
value: V
)
pub fn add_message<U: Into<CosmosMsg<T>>>(&mut self, msg: U)
[src]
pub fn add_submessage<U: Into<CosmosMsg<T>>>(
&mut self,
id: u64,
msg: U,
gas_limit: Option<u64>,
reply_on: ReplyOn
)
[src]
&mut self,
id: u64,
msg: U,
gas_limit: Option<u64>,
reply_on: ReplyOn
)
pub fn set_data<U: Into<Binary>>(&mut self, data: U)
[src]
Trait Implementations
impl<'de, T> Deserialize<'de> for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
T: Deserialize<'de>,
[src]
impl<'de, T> Deserialize<'de> for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
T: Deserialize<'de>,
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl<T: JsonSchema> JsonSchema for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]
impl<T: JsonSchema> JsonSchema for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
pub fn is_referenceable() -> bool
[src]
impl<T: PartialEq> PartialEq<Response<T>> for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]
impl<T: PartialEq> PartialEq<Response<T>> for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]impl<T> Serialize for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
T: Serialize,
[src]
impl<T> Serialize for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
T: Serialize,
[src]impl<T> StructuralPartialEq for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]
impl<T> StructuralPartialEq for Response<T> where
T: Clone + Debug + PartialEq + JsonSchema,
[src]Auto Trait Implementations
impl<T> RefUnwindSafe for Response<T> where
T: RefUnwindSafe,
impl<T> RefUnwindSafe for Response<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Response<T> where
T: UnwindSafe,
impl<T> UnwindSafe for Response<T> where
T: UnwindSafe,
Blanket Implementations
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]impl<T> FmtForward for T
impl<T> FmtForward for T
pub fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Self: Binary,
pub fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Self: Display,
pub fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Self: LowerExp,
pub fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Self: LowerHex,
pub fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Self: Octal,
pub fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Self: Pointer,
pub fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Self: UpperExp,
pub fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Self: UpperHex,
impl<T> PipeAsRef for T
impl<T> PipeAsRef for T
pub fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Self: AsRef<T>,
T: 'a,
R: 'a,
pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
impl<T> PipeBorrow for T
impl<T> PipeBorrow for T
pub fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Self: Borrow<T>,
T: 'a,
R: 'a,
pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
impl<T> PipeDeref for T
impl<T> PipeDeref for T
pub fn pipe_deref<'a, R>(
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
pub fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
pub fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
pub fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
impl<T> TapDeref for T
impl<T> TapDeref for T
pub fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
pub fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,