veSEILOR holders receive a varied percentage of yield boost depending on the lock-up length.
Config
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct BoostConfig {
pub gov: Addr,
pub ve_seilor_lock_settings: Vec<VeSeilorLockSetting>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct VeSeilorLockSetting {
pub duration: Uint128,
pub mining_boost: Uint128,
}
InitMsg
#[cw_serde]
pub struct InstantiateMsg {
pub gov: Option<Addr>,
pub ve_seilor_lock_settings: Vec<VeSeilorLockSetting>,
}
{
"gov": "addr",
"ve_seilor_lock_settings": [
{
"duration": "1000000000000000000",
"mining_boost": "1000000000000000000"
}
]
}
ExecuteMsg
AddLockSetting
#[cw_serde]
pub enum ExecuteMsg {
AddLockSetting {
duration: Uint128,
mining_boost: Uint128,
},
}
{
"add_lock_setting": {
"duration": "1000000000000000000",
"mining_boost": "1000000000000000000"
}
}
ChangeGov
#[cw_serde]
pub enum ExecuteMsg {
ChangeGov {
gov: Addr,
},
}
{
"change_gov": {
"gov": "addr"
}
}
SetLockStatus
#[cw_serde]
pub enum ExecuteMsg {
SetLockStatus {
index: u32,
},
}
{
"set_lock_status": {
"index": 0
}
}
QueryMsg
GetUnlockTime
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(GetUnlockTimeResponse)]
GetUnlockTime {
user: Addr,
},
}
{
"get_unlock_time": {
"user": "addr"
}
}
GetUnlockTimeResponse
#[cw_serde]
pub struct GetUnlockTimeResponse {
pub unlock_time: Uint128,
}
{
"unlock_time": "1000000000000000000"
}
GetUserLockStatus
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(LockStatusResponse)]
GetUserLockStatus {
user: Addr,
},
}
{
"get_user_lock_status": {
"user": "addr"
}
}
LockStatusResponse
#[cw_serde]
pub struct LockStatusResponse {
pub unlock_time: Uint128,
pub duration: Uint128,
pub mining_boost: Uint128,
}
{
"unlock_time": "1000000000000000000",
"duration": "1000000000000000000",
"mining_boost": "1000000000000000000"
}
GetUserBoost
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(GetUserBoostResponse)]
GetUserBoost {
user: Addr,
user_updated_at: Uint128,
finish_at: Uint128,
},
}
{
"get_user_boost": {
"user": "sei1...",
"user_updated_at": "1000000000000000000",
"finish_at": "1000000000000000000"
}
}
GetUserBoostResponse
#[cw_serde]
pub struct GetUserBoostResponse {
pub user_boost: Uint128,
}
{
"user_boost": "1000000000000000000"
}
GetBoostConfig
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(GetBoostConfigResponse)]
GetBoostConfig {},
}
{
"get_boost_config": {}
}
GetBoostConfigResponse
#[cw_serde]
pub struct GetBoostConfigResponse {
pub gov: Addr,
pub ve_seilor_lock_settings: Vec<VeSeilorLockSetting>,
}
{
"gov": "addr",
"ve_seilor_lock_settings": [
{
"duration": "1000000000000000000",
"mining_boost": "1000000000000000000"
}
]
}