Distribute

The SEILOR token allocation contract includes a linear release of locks and warehouses, including Community Offering Liquidity, MM, Incentives, Mining Rewards, Team, and Partners & Advisors.

Config

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct DistributeConfig {
    pub gov: Addr,
    pub total_amount: u128,
    pub distribute_token: Addr,
    pub rules_total_amount: u128,
    pub new_gov: Option<Addr>,
    pub distribute_ve_token: Addr,
    pub token_cap: Option<Uint128>,
}
Key
Type
Description

gov

Addr

The address of the governance contract

total_amount

u128

Total amount of SEILOR

distribute_token

Addr

Token address to be distributed

rules_total_amount

u128

Total amount of rules

new_gov

Addr

New Governance address

distribute_ve_token

Addr

veToken address to be distributed

token_cap

Uint128

Token amount limit

InitMsg

#[cw_serde]
pub struct InstantiateMsg {
    pub gov: Option<Addr>,
    pub total_amount: u128,
    pub distribute_token: Addr,
    pub rule_configs_map: HashMap<String, RuleConfigMsg>,
}

#[cw_serde]
pub struct RuleConfigMsg {
    pub rule_name: String,
    pub rule_owner: Addr,
    pub rule_total_amount: u128,
    pub start_release_amount: u128,
    pub lock_start_time: u64,
    pub lock_end_time: u64,
    pub start_linear_release_time: u64,
    pub unlock_linear_release_amount: u128,
    pub unlock_linear_release_time: u64,
}
{
  "gov": "sei1...",
  "total_amount": "1000000000000",
  "distribute_token": "sei1...",
  "rule_configs_map": {
    "key": {
             "rule_name": "Test",
             "rule_owner": "sei1...",
             "rule_total_amount": "1000000000000",
             "start_release_amount": "0",
             "lock_start_time": "175052201",
             "lock_end_time": "185052201",
             "start_linear_release_time": "175052201",
             "unlock_linear_release_amount": "185052201",
             "unlock_linear_release_time": "185052201"
         }
  }
}
Key
Type
Description

gov*

Addr

Governance contract address

total_amount

u128

Total amount of SEILOR

distribute_token

Addr

Token address to be distributed

rule_configs_map

HashMap<String, RuleConfigMsg>

Rule configuration map

Key
Type
Description

rule_name

String

Rule name

rule_owner

Addr

Rule owner

rule_total_amount

u128

Rule total amount

start_release_amount

u128

Start release amount

lock_start_time

u64

Lock start time

lock_end_time

u64

Lock end time

start_linear_release_time

u64

Start linear release time

unlock_linear_release_amount

u128

Unlock linear release amount

unlock_linear_release_time

u64

Unlock linear release time

ExecuteMsg

Claim

Claim the vested SEILOR tokens.

#[cw_serde]
pub enum ExecuteMsg {
    Claim {
        rule_type: String,
        msg: Option<Binary>,
    },
}
{
  "claim": {
    "rule_type": "String",
    "msg": "Binary"
  }
}
Key
Type
Description

rule_type

String

Rule type

msg*

Binary

Message

* = optional

UpdateConfig

Update the configuration of the contract.

#[cw_serde]
pub enum ExecuteMsg {
    UpdateConfig {
        gov: Option<Addr>,
        distribute_token: Option<Addr>,
    },
}
{
  "update_config": {
    "gov": "Addr",
    "distribute_token": "Addr"
  }
}
Key
Type
Description

gov*

Addr

Governance contract address

distribute_token*

Addr

Token address to be distributed

* = optional

UpdateRuleConfig

Update the configuration of the rule.

#[cw_serde]
pub enum ExecuteMsg {
    UpdateRuleConfig {
        update_rule_msg: UpdateRuleConfigMsg,
    },
}

#[cw_serde]
pub struct UpdateRuleConfigMsg {
    pub rule_type: String,
    pub rule_name: Option<String>,
    pub rule_owner: Option<Addr>,
}
{
  "update_rule_config": {
    "update_rule_msg": {
         "rule_type": "String",
         "rule_name": "String",
         "rule_owner": "Addr"
      }
   }
}
Key
Type
Description

update_rule_msg

UpdateRuleConfigMsg

Key

rule_type

String

Rule type

rule_name*

String

Rule name

rule_owner*

Addr

Rule owner

* = optional

AddRuleConfig

#[cw_serde]
pub enum ExecuteMsg {
    AddRuleConfig {
        rule_type: String,
        rule_msg: RuleConfigMsg,
    },
}

#[cw_serde]
pub struct RuleConfigMsg {
    pub rule_name: String,
    pub rule_owner: Addr,
    pub rule_total_amount: u128,
    pub start_release_amount: u128,
    pub lock_start_time: u64,
    pub lock_end_time: u64,
    pub start_linear_release_time: u64,
    pub unlock_linear_release_amount: u128,
    pub unlock_linear_release_time: u64,
}
{
  "add_rule_config": {
     "rule_type": "String",
     "rule_msg": {
        "rule_name": "String",
        "rule_owner": "Addr",
        "rule_total_amount": "u128",
        "start_release_amount": "u128",
        "lock_start_time": "u64",
        "lock_end_time": "u64",
        "start_linear_release_time": "u64",
        "unlock_linear_release_amount": "u128",
        "unlock_linear_release_time": "u64"
    }
  }
}
Key
Type
Description

rule_type

String

Rule type

rule_msg*

RuleConfigMsg

Rule config

Key
Type
Description

rule_name

String

Rule name

rule_owner

Addr

Rule owner

rule_total_amount

u128

Rule total amount

start_release_amount

u128

Start release amount

lock_start_time

u64

Lock start time

lock_end_time

u64

Lock end time

start_linear_release_time

u64

Start linear release time

unlock_linear_release_amount

u128

Unlock linear release amount

unlock_linear_release_time

u64

Unlock linear release time

QueryMsg

QueryClaimableInfo

Query the claimable info.

#[cw_serde]
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
    #[returns(QueryClaimableInfoResponse)]
    QueryClaimableInfo { rule_type: String },
}
{
  "query_claimable_info": {
    "rule_type": "String"
  }
}
Key
Type
Description

rule_type

String

Rule type

QueryClaimableInfoResponse

#[cw_serde]
pub struct QueryClaimableInfoResponse {
    pub can_claim_amount: u128,
    pub release_amount: u128,
    pub linear_release_amount: u128,
}
{
  "can_claim_amount": "u128",
  "release_amount": "u128",
  "linear_release_amount": "u128"
}
Key
Type
Description

can_claim_amount

u128

Can claim amount

release_amount

u128

Release amount

linear_release_amount

u128

Linear release amount

QueryRuleInfo

Query the rule info.

#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
    #[returns(QueryRuleInfoResponse)]
    QueryRuleInfo { rule_type: String },
}
{
  "query_rule_info": {
    "rule_type": "String"
  }
}
Key
Type
Description

rule_type

String

Rule type

QueryRuleInfoResponse

#[cw_serde]
pub struct QueryRuleInfoResponse {
    pub rule_config: RuleConfig,
    pub rule_config_state: RuleConfigState,
}

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct RuleConfig {
    pub rule_name: String,
    pub rule_owner: Addr,
    pub rule_total_amount: u128,
    pub start_release_amount: u128,
    pub lock_start_time: u64,
    pub lock_end_time: u64,
    pub start_linear_release_time: u64,
    pub end_linear_release_time: u64,
    pub unlock_linear_release_amount: u128,
    pub unlock_linear_release_time: u64,
    pub linear_release_per_second: u128,
}

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct RuleConfigState {
    pub is_start_release: bool,
    pub released_amount: u128,
    pub claimed_amount: u128,
    pub last_claim_linear_release_time: u64,
}
{
  "rule_config": {
       "rule_name": "String",
       "rule_owner": "Addr",
       "rule_total_amount": "u128",
       "start_release_amount": "u128",
       "lock_start_time": "u64",
       "lock_end_time": "u64",
       "start_linear_release_time": "u64",
       "end_linear_release_time": "u64",
       "unlock_linear_release_amount": "u128",
       "unlock_linear_release_time": "u64",
       "linear_release_per_second": "u128"
   },
  "rule_config_state": {
       "is_start_release": "bool",
       "released_amount": "u128",
       "claimed_amount": "u128",
       "last_claim_linear_release_time": "u64"
    }
}
Key
Type
Description

rule_config

RuleConfig

Rule config

rule_config_type

RuleConfigType

Rule config type

Key
Type
Description

rule_name

String

Rule name

rule_owner

Addr

Rule owner

rule_total_amount

u128

Rule total amount

start_release_amount

u128

Start release amount

lock_start_time

u64

Lock start time

lock_end_time

u64

Lock end time

start_linear_release_time

u64

Start linear release time

end_linear_release_time

u64

End linear release time

unlock_linear_release_amount

u128

Unlock linear release amount

unlock_linear_release_time

u64

Unlock linear release time

linear_release_per_second

u128

Linear release per second

Key
Type
Description

is_start_release

bool

Is start release

released_amount

u128

Released amount

claimed_amount

u128

Claimed amount

last_claim_linear_release_time

u64

Last claim linear release time

QueryConfig

Query the configuration of the distribute contract.

#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
    #[returns(QueryConfigResponse)]
    QueryConfig {},
}

#[cw_serde]
pub struct QueryConfigResponse {
    pub gov: Addr,
    pub total_amount: u128,
    pub distribute_token: Addr,
    pub distribute_ve_token: Addr,
    pub rules_total_amount: u128,
    pub token_cap: Option<Uint128>,
    pub new_gov: Option<Addr>,
}
{
  "gov": "Addr",
  "total_amount": "u128",
  "distribute_token": "Addr",
  "rules_total_amount": "u128"
}
Key
Type
Description

gov

Addr

Governance contract address

total_amount

u128

Total amount of SEILOR

distribute_token

Addr

Token address to be distributed

distribute_ve_token

Addr

veToken address to be distributed

rules_total_amount

u128

Total amount of rules

token_cap*

Uint128

Token amount limit

new_gov*

Addr

New governance contract address

* = optional

Last updated