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>,
}
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"
}
}
}
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"
}
}
* = 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"
}
}
* = 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"
}
}
}
* = 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"
}
}
}
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"
}
}
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"
}
QueryRuleInfo
Query the rule info.
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(QueryRuleInfoResponse)]
QueryRuleInfo { rule_type: String },
}
{
"query_rule_info": {
"rule_type": "String"
}
}
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"
}
}
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"
}
* = optional
Last updated