Skip to main content

ExecuteMsg

Enum ExecuteMsg 

Source
pub enum ExecuteMsg {
    UpdateAdmin {
        admin: Option<String>,
    },
    UpdateConfig {
        min_points: Option<u64>,
        max_validators: Option<u32>,
        scaling: Option<u32>,
        epoch_reward: Option<Coin>,
        fee_percentage: Option<Decimal>,
        auto_unjail: Option<bool>,
        double_sign_slash_ratio: Option<Decimal>,
        distribution_contracts: Option<Vec<DistributionContract>>,
        verify_validators: Option<bool>,
        offline_jail_duration: Option<Duration>,
    },
    RegisterValidatorKey {
        pubkey: Pubkey,
        metadata: ValidatorMetadata,
    },
    UpdateMetadata(ValidatorMetadata),
    Jail {
        operator: String,
        duration: JailingDuration,
    },
    Unjail {
        operator: Option<String>,
    },
    Slash {
        addr: String,
        portion: Decimal,
    },
    SimulateValidatorSet {
        validators: Vec<ValidatorInfo>,
    },
}

Variants§

§

UpdateAdmin

Change the admin

Fields

§

UpdateConfig

Alter config values

Fields

§min_points: Option<u64>

minimum points needed by an address in membership to be considered for the validator set. 0-point members are always filtered out.

§max_validators: Option<u32>

The maximum number of validators that can be included in the Tendermint validator set. If there are more validators than slots, we select the top N by membership points descending.

§scaling: Option<u32>

A scaling factor to multiply tg4-engagement points to produce the tendermint validator power

§epoch_reward: Option<Coin>

Total reward paid out each epoch. This will be split among all validators during the last epoch. (epoch_reward.amount * 86_400 * 30 / epoch_length) is reward tokens to mint each month. Ensure this is sensible in relation to the total token supply.

§fee_percentage: Option<Decimal>

Percentage of total accumulated fees which is subtracted from tokens minted as a rewards. 50% as default. To disable this feature just set it to 0 (which effectively means that fees doesn’t affect the per epoch reward).

§auto_unjail: Option<bool>

Flag determining if validators should be automatically unjailed after jailing period, false by default.

§double_sign_slash_ratio: Option<Decimal>

Validators who are caught double signing are jailed forever and their bonded tokens are slashed based on this value.

§distribution_contracts: Option<Vec<DistributionContract>>

Addresses where part of the reward for non-validators is sent for further distribution. These are required to handle the Distribute {} message (eg. tg4-engagement contract) which would distribute the funds sent with this message. The sum of ratios here has to be in the [0, 1] range. The remainder is sent to validators via the rewards contract.

§verify_validators: Option<bool>

If this is enabled, signed blocks are watched for, and if a validator fails to sign any blocks in a string of a number of blocks (typically 1000 blocks), they are jailed.

§offline_jail_duration: Option<Duration>

The duration to jail a validator for in case they don’t sign any blocks for a period of time, if verify_validators is enabled. After the jailing period, they will be jailed again if not signing blocks, ad infinitum.

§

RegisterValidatorKey

Links info.sender (operator) to this Tendermint consensus key. The operator cannot re-register another key. No two operators may have the same consensus_key.

Fields

§pubkey: Pubkey
§metadata: ValidatorMetadata

Additional metadata assigned to this validator

§

UpdateMetadata(ValidatorMetadata)

§

Jail

Jails validator. Can be executed only by the admin.

Fields

§operator: String

Operator which should be jailed

§duration: JailingDuration

Duration for how long validator is jailed

§

Unjail

Unjails validator. Admin can unjail anyone anytime, others can unjail only themselves and only if the jail period passed.

Fields

§operator: Option<String>

Address to unjail. Optional, as if not provided it is assumed to be the sender of the message (for convenience when unjailing self after the jail period).

§

Slash

To be called by admin only. Slashes a given address (by forwarding slash to both rewards contract and engagement contract)

Fields

§addr: String
§portion: Decimal
§

SimulateValidatorSet

This will update the validator set with the passed list. Used for testing validators storage.

Fields

§validators: Vec<ValidatorInfo>

Trait Implementations§

Source§

impl Clone for ExecuteMsg

Source§

fn clone(&self) -> ExecuteMsg

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ExecuteMsg

Source§

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

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

impl<'de> Deserialize<'de> for ExecuteMsg

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 ExecuteMsg

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 ExecuteMsg

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 ExecuteMsg

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 ExecuteMsg

Source§

impl StructuralPartialEq for ExecuteMsg

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<U> As for U

Source§

fn as_<T>(self) -> T
where T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. 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>,