cw_mtcs: set liquidity sources msg (#62)

This commit is contained in:
Shoaib Ahmed 2024-07-02 00:35:52 +04:00 committed by GitHub
parent cdd5d2d834
commit 8776d88eed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 6 deletions

View file

@ -13,8 +13,8 @@ use crate::{
error::ContractError, error::ContractError,
msg::{ msg::{
execute::{ execute::{
Cw20Transfer, FaucetMintMsg, SubmitObligationMsg, SubmitObligationsMsg, Cw20Transfer, FaucetMintMsg, SetLiquiditySourcesMsg, SubmitObligationMsg,
SubmitSetoffsMsg, SubmitObligationsMsg, SubmitSetoffsMsg,
}, },
ExecuteMsg, InstantiateMsg, QueryMsg, ExecuteMsg, InstantiateMsg, QueryMsg,
}, },
@ -96,7 +96,7 @@ pub fn execute(
for o in obligations { for o in obligations {
execute::submit_obligation(deps.branch(), o.ciphertext, o.digest)?; execute::submit_obligation(deps.branch(), o.ciphertext, o.digest)?;
} }
execute::append_liquidity_sources(deps, liquidity_sources)?; execute::set_liquidity_sources(deps, liquidity_sources)?;
Ok(Response::new()) Ok(Response::new())
} }
ExecuteMsg::SubmitSetoffs(attested_msg) => { ExecuteMsg::SubmitSetoffs(attested_msg) => {
@ -107,6 +107,9 @@ pub fn execute(
execute::submit_setoffs(deps, env, setoffs_enc) execute::submit_setoffs(deps, env, setoffs_enc)
} }
ExecuteMsg::InitClearing => execute::init_clearing(deps), ExecuteMsg::InitClearing => execute::init_clearing(deps),
ExecuteMsg::SetLiquiditySources(SetLiquiditySourcesMsg { liquidity_sources }) => {
execute::set_liquidity_sources(deps, liquidity_sources)
}
} }
} }
@ -172,10 +175,10 @@ pub mod execute {
.add_attribute("ciphertext", ciphertext.to_string())) .add_attribute("ciphertext", ciphertext.to_string()))
} }
pub fn append_liquidity_sources( pub fn set_liquidity_sources(
deps: DepsMut, deps: DepsMut,
liquidity_sources: Vec<HexBinary>, liquidity_sources: Vec<HexBinary>,
) -> Result<(), ContractError> { ) -> Result<Response, ContractError> {
// validate liquidity sources as public keys // validate liquidity sources as public keys
liquidity_sources liquidity_sources
.iter() .iter()
@ -184,11 +187,12 @@ pub mod execute {
// store the liquidity sources // store the liquidity sources
LiquiditySourcesItem::new(&current_epoch_key(LIQUIDITY_SOURCES_KEY, deps.storage)?) LiquiditySourcesItem::new(&current_epoch_key(LIQUIDITY_SOURCES_KEY, deps.storage)?)
.update(deps.storage, |mut ls| { .update(deps.storage, |mut ls| {
ls.clear();
ls.extend(liquidity_sources); ls.extend(liquidity_sources);
Ok::<_, ContractError>(ls) Ok::<_, ContractError>(ls)
})?; })?;
Ok(()) Ok(Response::default())
} }
pub fn submit_setoffs( pub fn submit_setoffs(

View file

@ -24,6 +24,7 @@ pub enum ExecuteMsg {
SubmitObligations(execute::SubmitObligationsMsg), SubmitObligations(execute::SubmitObligationsMsg),
SubmitSetoffs(AttestedMsg<execute::SubmitSetoffsMsg>), SubmitSetoffs(AttestedMsg<execute::SubmitSetoffsMsg>),
InitClearing, InitClearing,
SetLiquiditySources(execute::SetLiquiditySourcesMsg),
} }
pub mod execute { pub mod execute {
@ -82,6 +83,11 @@ pub mod execute {
user_data user_data
} }
} }
#[cw_serde]
pub struct SetLiquiditySourcesMsg {
pub liquidity_sources: Vec<HexBinary>,
}
} }
#[cw_serde] #[cw_serde]