astrovault/staking_derivative/
init_msg.rs1use cosmwasm_std::Uint128;
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5use super::handle_msg::NetworkSettings;
6
7#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq, JsonSchema)]
8pub struct InstantiateMsg {
9 pub owner: Option<String>,
10 pub bulk_distributor_settings: BulkSettings,
11 pub dx_token_settings: DxTokenSettings,
12 pub network_settings: NetworkSettings,
13 pub validators: Vec<ValidatorSetting>,
14 pub external_source_operator: Option<String>, pub archway_handler_addr: Option<String>,
16}
17
18#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone, JsonSchema)]
19pub struct BulkSettings {
20 pub existing_address: Option<String>,
21 pub code_id: Option<u64>,
22 pub distribute_rewards_over: u64,
23}
24
25#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone, JsonSchema)]
26pub struct DxTokenSettings {
27 pub existing_address: Option<String>,
28 pub create_token: Option<CreateDxTokenSettings>,
29}
30
31#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone, JsonSchema)]
32pub struct CreateDxTokenSettings {
33 pub code_id: u64,
34 pub name: String,
35 pub symbol: String,
36 pub label: String,
37 pub decimals: u8,
38}
39
40#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone, JsonSchema)]
41pub struct ValidatorSetting {
42 pub address: String,
43 pub per: Uint128, }