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>,
}
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"
}
}
}
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
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"
}
}
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"
}
}
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"
}
}
}
update_rule_msg
UpdateRuleConfigMsg
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"
}
}
}
rule_type
String
Rule type
rule_msg*
RuleConfigMsg
Rule config
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"
}
}
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"
}
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"
}
}
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"
}
}
rule_config
RuleConfig
Rule config
rule_config_type
RuleConfigType
Rule config type
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
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"
}
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