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,
msg::{
execute::{
Cw20Transfer, FaucetMintMsg, SubmitObligationMsg, SubmitObligationsMsg,
SubmitSetoffsMsg,
Cw20Transfer, FaucetMintMsg, SetLiquiditySourcesMsg, SubmitObligationMsg,
SubmitObligationsMsg, SubmitSetoffsMsg,
},
ExecuteMsg, InstantiateMsg, QueryMsg,
},
@ -96,7 +96,7 @@ pub fn execute(
for o in obligations {
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())
}
ExecuteMsg::SubmitSetoffs(attested_msg) => {
@ -107,6 +107,9 @@ pub fn execute(
execute::submit_setoffs(deps, env, setoffs_enc)
}
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()))
}
pub fn append_liquidity_sources(
pub fn set_liquidity_sources(
deps: DepsMut,
liquidity_sources: Vec<HexBinary>,
) -> Result<(), ContractError> {
) -> Result<Response, ContractError> {
// validate liquidity sources as public keys
liquidity_sources
.iter()
@ -184,11 +187,12 @@ pub mod execute {
// store the liquidity sources
LiquiditySourcesItem::new(&current_epoch_key(LIQUIDITY_SOURCES_KEY, deps.storage)?)
.update(deps.storage, |mut ls| {
ls.clear();
ls.extend(liquidity_sources);
Ok::<_, ContractError>(ls)
})?;
Ok(())
Ok(Response::default())
}
pub fn submit_setoffs(

View file

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