Enum MigratableExecuteMsg

Source
pub enum MigratableExecuteMsg {
    SubscribeToMigrationCompleteEvent {
        address: String,
        code_hash: String,
    },
    BroadcastMigrationCompleteNotification {
        addresses: Vec<String>,
        code_hash: String,
        data: Option<Binary>,
    },
}

Variants§

§

SubscribeToMigrationCompleteEvent

Sets a contract that should be notified when this contract completes the migration process

Fields

§address: String
§code_hash: String
§

BroadcastMigrationCompleteNotification

Triggers a MigrationCompleteNotification to be sent to the address specified. If this contract has been migrated out, otherwise it will return an error.

Consider the case where you have a FactoryContract which only instantiates ChildContracts and only maintains a list of them which can become very large. In this scenario note that the only time a ChildContract needs to interact with the FactoryContract is when it migrates out. When a child Contract migrates out only then does it need to notify the FactoryContract of its new address. Now consider that the FactoryContract can also migrate. Instead of having each ChildContract call SubscribeToMigrationCompleteEvent on the FactoryContract (which could get very expensive with a large number of ChildContracts when the FactoryContract wants to migrate because it needs to notify every ChildContract before completing migration). The ChildContract can instead upon migration just query the FactoryContract address it has stored to check if it is the latest version before allowing a migration to continue. If the FactoryContract has migrated out the sender can call BroadcastMigrationCompleteNotification on the FactoryContract to notify the ChildContract of the new address. After that the ChildContract can proceed with its own migration.

Fields

§addresses: Vec<String>

addresses to send a MigrationCompleteNotification

§code_hash: String

the code for the addresses

Trait Implementations§

Source§

impl Clone for MigratableExecuteMsg

Source§

fn clone(&self) -> MigratableExecuteMsg

Returns a duplicate 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 Debug for MigratableExecuteMsg

Source§

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

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

impl<'de> Deserialize<'de> for MigratableExecuteMsg

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl JsonSchema for MigratableExecuteMsg

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for MigratableExecuteMsg

Source§

fn eq(&self, other: &MigratableExecuteMsg) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for MigratableExecuteMsg

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for MigratableExecuteMsg

Source§

impl StructuralPartialEq for MigratableExecuteMsg

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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>,

Source§

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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,