From d803b1b61950b910a771c01b830f4c67d8e651e2 Mon Sep 17 00:00:00 2001 From: PFC <81114960+PFC-developer@users.noreply.github.com> Date: Thu, 23 Nov 2023 12:37:04 -0600 Subject: [PATCH 1/3] feat: dusty.. deals with different kinds of dust in different ways --- .../pfc-dust-collector-kujira/Cargo.toml | 3 +- .../pfc-dust-collector-kujira/src/contract.rs | 45 ++-- .../src/handler/exec.rs | 246 +++++++++++------- .../src/handler/query.rs | 24 +- .../pfc-dust-collector-kujira/src/state.rs | 7 +- .../src/test_helpers.rs | 6 +- notes.txt | 4 +- notes_enterprise.txt | 95 +++++++ notes_harpoon.txt | 40 +++ notes_lunc.txt | 67 +++++ notes_phoenix.txt | 11 +- packages/pfc-dust-collector-kujira/Cargo.toml | 2 +- .../src/dust_collector.rs | 65 ++++- .../harpoon_dustcollector_add_stage.json | 13 + .../harpoon_dustcollector_add_stage_2.json | 14 + test_files/harpoon_instantiate_feesplit.json | 20 ++ test_files/lunc_instantiate.json | 21 ++ 17 files changed, 539 insertions(+), 144 deletions(-) create mode 100644 notes_enterprise.txt create mode 100644 notes_harpoon.txt create mode 100644 notes_lunc.txt create mode 100644 test_files/harpoon_dustcollector_add_stage.json create mode 100644 test_files/harpoon_dustcollector_add_stage_2.json create mode 100644 test_files/harpoon_instantiate_feesplit.json create mode 100644 test_files/lunc_instantiate.json diff --git a/contracts/pfc-dust-collector-kujira/Cargo.toml b/contracts/pfc-dust-collector-kujira/Cargo.toml index 892e0ab..553a0b9 100644 --- a/contracts/pfc-dust-collector-kujira/Cargo.toml +++ b/contracts/pfc-dust-collector-kujira/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "pfc-dust-collector-kujira-contract" -version = "0.0.1" +version = "1.0.1" authors = ["PFC "] edition = "2018" license = "Apache-2.0" @@ -38,7 +38,6 @@ pfc-steak= "3.0.8" cw-ownable = "0.5.0" pfc-dust-collector-kujira={ path="../../packages/pfc-dust-collector-kujira"} pfc-whitelist={ version="0.1.0", path="../../packages/pfc-whitelist"} -#pool-network= {version="2.8.1", path="../../../white-whale-core/packages/pool-network"} [build-dependencies] protoc-rust = "2" diff --git a/contracts/pfc-dust-collector-kujira/src/contract.rs b/contracts/pfc-dust-collector-kujira/src/contract.rs index 9d3a1c0..c670056 100644 --- a/contracts/pfc-dust-collector-kujira/src/contract.rs +++ b/contracts/pfc-dust-collector-kujira/src/contract.rs @@ -7,14 +7,16 @@ use cosmwasm_std::{ use cw2::{get_contract_version, set_contract_version}; use kujira::Denom; -use pfc_dust_collector_kujira::dust_collector::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg}; +use pfc_dust_collector_kujira::dust_collector::{ + ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg, SellStrategy, +}; use crate::error::ContractError; use crate::handler::exec as ExecHandler; use crate::handler::exec::{ - execute_clear_asset, execute_set_asset_minimum, execute_set_asset_stages, - execute_set_base_denom, execute_set_max_swaps, execute_set_return_contract, - execute_set_token_router, + execute_clear_asset, execute_set_asset_minimum, execute_set_asset_strategy, + execute_set_base_denom, execute_set_calc_token_router, execute_set_manta_token_router, + execute_set_max_swaps, execute_set_return_contract, }; use crate::handler::query as QueryHandler; use crate::state; @@ -41,7 +43,8 @@ pub fn instantiate( deps.storage, &state::Config { //this: deps.api.addr_validate(env.contract.address.as_str())?, - token_router: deps.api.addr_validate(&msg.token_router)?, + manta_token_router: deps.api.addr_validate(&msg.manta_token_router)?, + calc_token_router: deps.api.addr_validate(&msg.calc_token_router)?, base_denom: msg.base_denom.clone(), return_contract: deps.api.addr_validate(&msg.return_contract)?, max_swaps: msg.max_swaps, @@ -58,7 +61,11 @@ pub fn instantiate( // } ASSET_HOLDINGS.save(deps.storage, row.denom.to_string(), &row.minimum)?; - ASSET_STAGES.save(deps.storage, row.denom.to_string(), &Vec::new())?; + ASSET_STAGES.save( + deps.storage, + row.denom.to_string(), + &SellStrategy::default(), + )?; } let mut res = Response::new(); @@ -115,9 +122,13 @@ pub fn execute( cw_ownable::assert_owner(deps.storage, &info.sender)?; execute_set_return_contract(deps, &info.sender, &contract) } - ExecuteMsg::SetTokenRouter { contract } => { + ExecuteMsg::SetMantaTokenRouter { contract } => { + cw_ownable::assert_owner(deps.storage, &info.sender)?; + execute_set_manta_token_router(deps, &info.sender, &contract) + } + ExecuteMsg::SetCalcTokenRouter { contract } => { cw_ownable::assert_owner(deps.storage, &info.sender)?; - execute_set_token_router(deps, &info.sender, &contract) + execute_set_calc_token_router(deps, &info.sender, &contract) } ExecuteMsg::SetBaseDenom { denom } => { cw_ownable::assert_owner(deps.storage, &info.sender)?; @@ -142,8 +153,8 @@ pub fn execute( pfc_whitelist::remove_entry(deps.storage, deps.api, address)?; Ok(Response::default()) } - ExecuteMsg::SetAssetStages { denom, stages } => { - execute_set_asset_stages(deps, &info.sender, &denom, &stages) + ExecuteMsg::SetAssetStrategy { denom, strategy } => { + execute_set_asset_strategy(deps, &info.sender, &denom, &strategy) } ExecuteMsg::SetMaxSwaps { max_swaps } => { cw_ownable::assert_owner(deps.storage, &info.sender)?; @@ -214,6 +225,7 @@ mod tests { use pfc_dust_collector_kujira::dust_collector::{ AssetHolding, AssetMinimum, CollectorResponse, InitHook, InstantiateMsg, QueryMsg, + SellStrategy, }; use pfc_whitelist::Whitelist; @@ -230,7 +242,8 @@ mod tests { let hook_msg = Binary::from(r#"{"some": 123}"#.as_bytes()); let instantiate_msg = InstantiateMsg { owner: "owner".to_string(), - token_router: "swap".to_string(), + manta_token_router: "swap".to_string(), + calc_token_router: "calc".to_string(), return_contract: "jim".to_string(), base_denom: Denom::from(DENOM_3), assets: vec![ @@ -295,7 +308,7 @@ mod tests { assert!(false, "{} not expected", entry.denom) } } - assert_eq!(entry.stages.is_empty(), true); + assert_eq!(entry.strategy, SellStrategy::Hold); assert_eq!(entry.balance, Uint128::zero()); } assert_eq!(seen_denom_1, 1, "wantred to see DENOM_1 once"); @@ -307,7 +320,7 @@ mod tests { .iter() .find(|p| p.denom.to_string() == DENOM_2) .unwrap(); - assert_eq!(denom_2.stages.is_empty(), true, "should be empty"); + assert_eq!(denom_2.strategy, SellStrategy::Hold, "should be hold"); assert_eq!( denom_2.minimum, Uint128::from(20u128), @@ -316,7 +329,8 @@ mod tests { let instantiate_msg_fail = InstantiateMsg { owner: "owner".to_string(), - token_router: "swap".to_string(), + manta_token_router: "swap".to_string(), + calc_token_router: "calc".to_string(), return_contract: "jim".to_string(), base_denom: Denom::from(DENOM_3), assets: vec![ @@ -355,7 +369,8 @@ mod tests { } let instantiate_msg_2 = InstantiateMsg { owner: "owner".to_string(), - token_router: "swap".to_string(), + manta_token_router: "swap".to_string(), + calc_token_router: "calc".to_string(), return_contract: "jim".to_string(), base_denom: Denom::from(DENOM_MAIN), assets: vec![ diff --git a/contracts/pfc-dust-collector-kujira/src/handler/exec.rs b/contracts/pfc-dust-collector-kujira/src/handler/exec.rs index 8d5584f..0c5f493 100644 --- a/contracts/pfc-dust-collector-kujira/src/handler/exec.rs +++ b/contracts/pfc-dust-collector-kujira/src/handler/exec.rs @@ -7,31 +7,23 @@ use cosmwasm_std::{ }; use kujira::Denom; -use pfc_dust_collector_kujira::dust_collector::Stage; +use pfc_dust_collector_kujira::dust_collector::{MantaSellStrategy, SellStrategy}; use pfc_dust_collector_kujira::mantaswap; //use crate::contract::{REPLY_RETURN, REPLY_SWAP}; use crate::error::ContractError; use crate::state::{ASSET_HOLDINGS, ASSET_STAGES, CONFIG}; -pub fn execute_set_asset_stages( +pub fn execute_set_asset_strategy( deps: DepsMut, sender: &Addr, denom: &Denom, - stages: &Vec>, + strategy: &SellStrategy, ) -> Result { if pfc_whitelist::is_listed(deps.storage, sender)?.is_some() || cw_ownable::is_owner(deps.storage, sender)? { - let mut save_stage: Vec> = vec![]; - for stage in stages { - let mut swaps: Vec<(Addr, Denom)> = vec![]; - for swap in stage { - swaps.push((swap.address.clone(), swap.denom.clone())) - } - save_stage.push(swaps) - } - ASSET_STAGES.save(deps.storage, denom.to_string(), &save_stage)?; + ASSET_STAGES.save(deps.storage, denom.to_string(), strategy)?; let res = Response::new() .add_attribute("action", "set_asset_stages") @@ -130,14 +122,32 @@ pub fn execute_set_base_denom( Ok(res) } -pub fn execute_set_token_router( + +pub fn execute_set_manta_token_router( + deps: DepsMut, + sender: &Addr, + router: &str, +) -> Result { + let mut config = CONFIG.load(deps.storage)?; + let router_addr = deps.api.addr_validate(router)?; + config.manta_token_router = router_addr; + + CONFIG.save(deps.storage, &config)?; + let res = Response::new() + .add_attribute("action", "set_token_router") + .add_attribute("from", sender) + .add_attribute("token_router", router); + + Ok(res) +} +pub fn execute_set_calc_token_router( deps: DepsMut, sender: &Addr, router: &str, ) -> Result { let mut config = CONFIG.load(deps.storage)?; let router_addr = deps.api.addr_validate(router)?; - config.token_router = router_addr; + config.calc_token_router = router_addr; CONFIG.save(deps.storage, &config)?; let res = Response::new() @@ -195,7 +205,7 @@ pub(crate) fn do_deposit( ) -> Result, ContractError> { let config = CONFIG.load(deps.storage)?; // let to_denom = config.base_denom; - let router = config.token_router; + let router = config.manta_token_router; let mut swap_msg_count: u64 = 0; let mut swaps: Vec = Vec::new(); @@ -232,13 +242,25 @@ pub(crate) fn do_deposit( swaps.push(return_msg); //SubMsg::new(return_msg)); } else if swap_msg_count <= config.max_swaps { - if let Some(stages) = + if let Some(strategy) = ASSET_STAGES.may_load(deps.storage, coin_balance.0.clone())? { - let swap = - create_swap_message(&router, &coin_balance.0, &stages, coin_balance.1)?; - swaps.push(swap); //SubMsg::reply_on_error(swap, REPLY_SWAP)); - swap_msg_count += 1; + match strategy { + SellStrategy::Hold => {} + SellStrategy::Manta(mantaswap) => { + let swap = create_manta_swap_message( + &router, + &coin_balance.0, + &mantaswap, + coin_balance.1, + )?; + swaps.push(swap); //SubMsg::reply_on_error(swap, REPLY_SWAP)); + swap_msg_count += 1; + } + SellStrategy::Calc(_) => {} + SellStrategy::Airdrop(_) => {} + SellStrategy::Custom(_) => {} + } } } } @@ -249,16 +271,25 @@ pub(crate) fn do_deposit( /// this is a VERY basic swap. /// -fn create_swap_message( +fn create_manta_swap_message( router: &Addr, from_denom: &str, - stages: &[Vec<(Addr, Denom)>], + manta: &MantaSellStrategy, amount: Uint128, ) -> Result { let coin: Coin = Coin::new(amount.u128(), from_denom); + let mut stages_to: Vec> = vec![]; + for stage in &manta.stages { + let mut stage_to: Vec<(Addr, Denom)> = vec![]; + for swap in stage { + stage_to.push((swap.address.clone(), swap.denom.clone())) + } + stages_to.push(stage_to) + } + let swapmsg = mantaswap::ExecuteMsg::Swap { - stages: Vec::from(stages), + stages: stages_to, recipient: None, min_return: None, }; @@ -307,14 +338,14 @@ mod exec { use cosmwasm_std::SubMsg; use pfc_dust_collector_kujira::dust_collector::{ - AssetHolding, AssetMinimum, ConfigResponse, ExecuteMsg, QueryMsg, + AssetHolding, AssetMinimum, ConfigResponse, ExecuteMsg, QueryMsg, Stage, }; use crate::contract::execute; use crate::querier::qry::query_helper; use crate::test_helpers::{ - do_instantiate, CREATOR, DENOM_1, DENOM_2, DENOM_3, DENOM_MAIN, LP_1, LP_2, LP_3, ROUTER, - USER_1, USER_2, USER_3, WL_USER_1, + do_instantiate, CREATOR, DENOM_1, DENOM_2, DENOM_3, DENOM_MAIN, LP_1, LP_2, LP_3, + MANTA_ROUTER, USER_1, USER_2, USER_3, WL_USER_1, }; use super::*; @@ -336,7 +367,7 @@ mod exec { )?; let res: ConfigResponse = query_helper(deps.as_ref(), QueryMsg::Config {}); let expected = ConfigResponse { - token_router: ROUTER.to_string(), + token_router: MANTA_ROUTER.to_string(), base_denom: Denom::from(DENOM_MAIN), return_contract: USER_1.to_string(), max_swaps: 2, @@ -366,12 +397,14 @@ mod exec { deps.as_mut(), mock_env(), mock_info(USER_2, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_1), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_1.to_string()), - denom: Denom::from(DENOM_MAIN), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, ) .unwrap_err(); @@ -383,12 +416,14 @@ mod exec { deps.as_mut(), mock_env(), mock_info(WL_USER_1, &[Coin::new(1_000, DENOM_1)]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_1), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_1.to_string()), - denom: Denom::from(DENOM_MAIN), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, ) .unwrap_err(); @@ -409,12 +444,14 @@ mod exec { deps.as_mut(), mock_env(), mock_info(WL_USER_1, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_1), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_1.to_string()), - denom: Denom::from(DENOM_MAIN), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, )?; @@ -429,10 +466,12 @@ mod exec { denom: Denom::from(DENOM_1), minimum: Uint128::from(1_000u128), balance: Uint128::zero(), - stages: vec![vec![( - Addr::unchecked(LP_1.to_string()), - Denom::from(DENOM_MAIN), - )]] + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, stages, "holding mismatch" @@ -443,12 +482,14 @@ mod exec { deps.as_mut(), mock_env(), mock_info(CREATOR, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_2), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_2.to_string()), - denom: Denom::from(DENOM_1), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_2.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, )?; @@ -463,10 +504,12 @@ mod exec { denom: Denom::from(DENOM_2), minimum: Uint128::zero(), balance: Uint128::zero(), - stages: vec![vec![( - Addr::unchecked(LP_2.to_string()), - Denom::from(DENOM_1), - )]] + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_2.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, stages, "holding mismatch" @@ -501,12 +544,14 @@ mod exec { deps.as_mut(), mock_env(), mock_info(WL_USER_1, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_1), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_1.to_string()), - denom: Denom::from(DENOM_MAIN), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, )?; @@ -531,7 +576,7 @@ mod exec { } => match msg { CosmosMsg::Wasm(wasmmsg) => { //eprintln!("WASM-MSG {:?}", wasmmsg); - assert_eq!(format!("{:?}", wasmmsg), "Execute { contract_addr: \"swap_contract\", msg: {\"swap\":{\"stages\":[[[\"LP_xyz_main\",\"umain\"]]],\"recipient\":null,\"min_return\":null}}, funds: [Coin { 1000 \"uxyz\" }] }", "wrong message generated") + assert_eq!(format!("{:?}", wasmmsg), "Execute { contract_addr: \"manta_swap_contract\", msg: {\"swap\":{\"stages\":[[[\"LP_xyz_main\",\"umain\"]]],\"recipient\":null,\"min_return\":null}}, funds: [Coin { 1000 \"uxyz\" }] }", "wrong message generated") } _ => { assert_eq!( @@ -572,24 +617,28 @@ mod exec { deps.as_mut(), mock_env(), mock_info(WL_USER_1, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_1), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_1.to_string()), - denom: Denom::from(DENOM_MAIN), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, )?; execute( deps.as_mut(), mock_env(), mock_info(CREATOR, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_2), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_2.to_string()), - denom: Denom::from(DENOM_1), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_2.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, )?; @@ -638,14 +687,14 @@ mod exec { msg: _msg, funds, } => { - assert_eq!(ROUTER, contract_addr); + assert_eq!(MANTA_ROUTER, contract_addr); assert_eq!( "[Coin { 10000 \"uxyz\" }]", format!("{:?}", funds), "wrong amount" ); - assert_eq!("Execute { contract_addr: \"swap_contract\", msg: {\"swap\":{\"stages\":[[[\"LP_xyz_main\",\"umain\"]]],\"recipient\":null,\"min_return\":null}}, funds: [Coin { 10000 \"uxyz\" }] }", format!("{:?}",wasm),"wrong message?") + assert_eq!("Execute { contract_addr: \"manta_swap_contract\", msg: {\"swap\":{\"stages\":[[[\"LP_xyz_main\",\"umain\"]]],\"recipient\":null,\"min_return\":null}}, funds: [Coin { 10000 \"uxyz\" }] }", format!("{:?}",wasm),"wrong message?") } _ => { eprintln!("{:?}", wasm); @@ -712,24 +761,28 @@ mod exec { deps.as_mut(), mock_env(), mock_info(WL_USER_1, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_1), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_1.to_string()), - denom: Denom::from(DENOM_MAIN), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, )?; execute( deps.as_mut(), mock_env(), mock_info(CREATOR, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_2), - stages: vec![vec![Stage { - address: Addr::unchecked(LP_2.to_string()), - denom: Denom::from(DENOM_1), - }]], + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_2.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), }, )?; @@ -784,18 +837,21 @@ mod exec { deps.as_mut(), mock_env(), mock_info(CREATOR, &[]), - ExecuteMsg::SetAssetStages { + ExecuteMsg::SetAssetStrategy { denom: Denom::from(DENOM_3), - stages: vec![vec![ - Stage { - address: Addr::unchecked(LP_3.to_string()), - denom: Denom::from(DENOM_1), - }, - Stage { - address: Addr::unchecked(LP_1.to_string()), - denom: Denom::from(DENOM_MAIN), - }, - ]], + + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![ + Stage { + address: Addr::unchecked(LP_3.to_string()), + denom: Denom::from(DENOM_1), + }, + Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }, + ]], + }), }, )?; let res = execute( @@ -826,7 +882,7 @@ mod exec { msg: _, funds: _, } => { - assert_eq!(ROUTER, contract_addr); + assert_eq!(MANTA_ROUTER, contract_addr); } _ => { eprintln!("{:?}", wasm); diff --git a/contracts/pfc-dust-collector-kujira/src/handler/query.rs b/contracts/pfc-dust-collector-kujira/src/handler/query.rs index 8e1c61b..f17a280 100644 --- a/contracts/pfc-dust-collector-kujira/src/handler/query.rs +++ b/contracts/pfc-dust-collector-kujira/src/handler/query.rs @@ -2,7 +2,9 @@ use crate::state::{ASSET_HOLDINGS, ASSET_STAGES, CONFIG}; use cosmwasm_std::{Addr, Deps, Order, StdResult, Uint128}; use kujira::Denom; -use pfc_dust_collector_kujira::dust_collector::{AssetHolding, CollectorResponse, ConfigResponse}; +use pfc_dust_collector_kujira::dust_collector::{ + AssetHolding, CollectorResponse, ConfigResponse, SellStrategy, +}; use std::collections::HashSet; //const DEFAULT_LIMIT: u32 = 10; @@ -12,7 +14,7 @@ pub(crate) fn query_config(deps: Deps) -> StdResult> { let config = CONFIG.load(deps.storage)?; Ok(Some(ConfigResponse { - token_router: config.token_router.to_string(), + token_router: config.manta_token_router.to_string(), base_denom: config.base_denom, return_contract: config.return_contract.to_string(), max_swaps: config.max_swaps, @@ -28,9 +30,9 @@ pub(crate) fn query_asset( .may_load(deps.storage, denom.to_string())? .unwrap_or(Uint128::zero()); - let stages = ASSET_STAGES + let strategy = ASSET_STAGES .may_load(deps.storage, denom.to_string())? - .unwrap_or(Vec::new()); + .unwrap_or(SellStrategy::default()); let coin = deps .querier .query_balance(contract_address, denom.to_string())?; @@ -38,7 +40,7 @@ pub(crate) fn query_asset( denom, minimum, balance: coin.amount, - stages, + strategy, })) } @@ -58,26 +60,26 @@ pub(crate) fn query_assets( if minimum.is_some() { minimums.remove(&coin.denom); } - let stages = ASSET_STAGES + let strategy = ASSET_STAGES .may_load(deps.storage, coin.denom.clone())? - .unwrap_or(Vec::new()); + .unwrap_or(SellStrategy::default()); holdings.push(AssetHolding { denom: Denom::from(coin.denom), balance: coin.amount, minimum: minimum.unwrap_or(Uint128::zero()), - stages, + strategy, }); } for denom in minimums { let minimum = ASSET_HOLDINGS.may_load(deps.storage, denom.clone())?; - let stages = ASSET_STAGES + let strategy = ASSET_STAGES .may_load(deps.storage, denom.clone())? - .unwrap_or(Vec::new()); + .unwrap_or(SellStrategy::default()); holdings.push(AssetHolding { denom: Denom::from(denom), balance: Uint128::zero(), minimum: minimum.unwrap_or(Uint128::zero()), - stages, + strategy, }); } diff --git a/contracts/pfc-dust-collector-kujira/src/state.rs b/contracts/pfc-dust-collector-kujira/src/state.rs index 72cd48a..5c0f48d 100644 --- a/contracts/pfc-dust-collector-kujira/src/state.rs +++ b/contracts/pfc-dust-collector-kujira/src/state.rs @@ -1,10 +1,10 @@ -//use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Uint128}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use cw_storage_plus::{Item, Map}; use kujira::Denom; +use pfc_dust_collector_kujira::dust_collector::SellStrategy; //use kujira::Denom; pub(crate) const CONFIG_KEY: &str = "config_001"; @@ -14,12 +14,13 @@ pub(crate) const DENOM_STAGES: &str = "stages_001"; pub const CONFIG: Item = Item::new(CONFIG_KEY); /// denom - minimum amount to hold pub const ASSET_HOLDINGS: Map = Map::new(DENOM_KEY); -pub const ASSET_STAGES: Map>> = Map::new(DENOM_STAGES); +pub const ASSET_STAGES: Map = Map::new(DENOM_STAGES); #[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq, JsonSchema)] pub struct Config { /// The address to send swap messages to - pub token_router: Addr, + pub manta_token_router: Addr, + pub calc_token_router: Addr, /// The denom which we actually want pub base_denom: Denom, /// Where to send it diff --git a/contracts/pfc-dust-collector-kujira/src/test_helpers.rs b/contracts/pfc-dust-collector-kujira/src/test_helpers.rs index 3b327c5..1b68454 100644 --- a/contracts/pfc-dust-collector-kujira/src/test_helpers.rs +++ b/contracts/pfc-dust-collector-kujira/src/test_helpers.rs @@ -10,7 +10,8 @@ use crate::error::ContractError; //pub const GOV_CONTRACT: &str = "gov_contract"; pub const CREATOR: &str = "creator"; -pub const ROUTER: &str = "swap_contract"; +pub const MANTA_ROUTER: &str = "manta_swap_contract"; +pub const CALC_ROUTER: &str = "calc_swap_contract"; pub const USER_1: &str = "user-0001"; pub const USER_2: &str = "user-0002"; pub const USER_3: &str = "user-0003"; @@ -32,7 +33,8 @@ pub(crate) fn do_instantiate( ) -> Result { let instantiate_msg = InstantiateMsg { owner: CREATOR.to_string(), - token_router: ROUTER.to_string(), + manta_token_router: MANTA_ROUTER.to_string(), + calc_token_router: CALC_ROUTER.to_string(), return_contract: return_to.to_string(), base_denom: Denom::from(DENOM_MAIN), assets, diff --git a/notes.txt b/notes.txt index ff7d730..a8e43d5 100644 --- a/notes.txt +++ b/notes.txt @@ -20,7 +20,7 @@ terrad tx wasm exec terra1cvjakzx0jv7y0gf9jgekv37xx9vu3rv08dx9yayesk4qk363xpzq77 # phoenix terrad tx wasm store ./artifacts/pfc_fee_splitter.wasm --from boneLunaAdmin --yes --fees 300000uluna --gas 2500000 -# 572 | 580 | 771 | 834 |1497 +# 572 | 580 | 771 | 834 |1497 |1504 |1508 json=$(cat ./test_files/phoenix_instantiate.json) terrad tx wasm instantiate 572 "${json}" --admin terra12097jggxd6q95hq0wt65ejjqsaggu8xeckwgms --label pfc-fee-split --from boneLunaAdmin --fees 75000uluna --gas 500000 @@ -30,7 +30,7 @@ terrad tx wasm migrate terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgm terrad tx wasm exec terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m "${add_alloc}" --from boneLunaAdmin --fees 30000uluna terrad query wasm cs smart terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m '{"allocations":{}}' -terrad tx wasm migrate terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m 1497 '{}' --from boneLunaAdmin --fees 30000uluna +terrad tx wasm migrate terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m 1508 '{}' --from boneLunaAdmin --fees 30000uluna diff --git a/notes_enterprise.txt b/notes_enterprise.txt new file mode 100644 index 0000000..b7fc31f --- /dev/null +++ b/notes_enterprise.txt @@ -0,0 +1,95 @@ +testnet: +DAO: terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje +feesplit: + terra1cvjakzx0jv7y0gf9jgekv37xx9vu3rv08dx9yayesk4qk363xpzq77rm5k + +phoenix: + terra18f9eklmlvk9hl78e2kwneymunppu8ncvhpsrn2zhc085sah2w3rsa5gssp +feesplit: + terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m + +-- phoenix +-- cw20 +terrad tx wasm set-contract-admin terra17aj4ty4sz4yhgm08na8drc0v03v2jwr3waxcqrwhajj729zhl7zqnpc0ml terra18f9eklmlvk9hl78e2kwneymunppu8ncvhpsrn2zhc085sah2w3rsa5gssp --from boneLunaAdmin --fees 75000uluna --gas 500000 + +terrad query wasm cs smart terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m '{"ownership":{}}' +terrad tx wasm exec terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m \ + '{"transfer_gov_contract": { "gov_contract": "terra18f9eklmlvk9hl78e2kwneymunppu8ncvhpsrn2zhc085sah2w3rsa5gssp", "blocks": 999999 }}' \ + --from boneLunaAdmin --fees 75000uluna --gas 500000 + + +terrad tx wasm exec terra18f9eklmlvk9hl78e2kwneymunppu8ncvhpsrn2zhc085sah2w3rsa5gssp ' +{ + "create_proposal": { + "description": "Accept Gov Ownership", + "proposal_actions": [ + { + "execute_msgs": { + "action_type": "execute", + "msgs": [ + "{\"wasm\":{\"execute\":{\"contract_addr\":\"terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m\",\"funds\":[],\"msg\":\"eyJhY2NlcHRfZ292X2NvbnRyYWN0Ijp7fX0=\"}}}" + ] + } + } + ], + "title": "Accept ownership " + } +}' --from PFC --fees 75000uluna --gas 500000 +terrad tx wasm exec terra18f9eklmlvk9hl78e2kwneymunppu8ncvhpsrn2zhc085sah2w3rsa5gssp ' +{ + "create_proposal": { + "description": "Stop sending fees to Astroport", + "proposal_actions": [ + { + "execute_msgs": { + "action_type": "execute", + "msgs": [ + "{\"wasm\":{\"execute\":{\"contract_addr\":\"terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m\",\"funds\":[],\"msg\":\"eyJyZW1vdmVfYWxsb2NhdGlvbl9kZXRhaWwiOnsibmFtZSI6ImxwX3ZhdWx0In19\"}}}" + ] + } + } + ], + "title": "Remove LP-Vault Allocation" + } +}' --from PFC --fees 75000uluna --gas 500000 + +terrad tx wasm exec terra18f9eklmlvk9hl78e2kwneymunppu8ncvhpsrn2zhc085sah2w3rsa5gssp '{"cast_vote":{"proposal_id":1, "outcome":"yes"}}' --from PFC --fees 75000uluna --gas 500000 --yes + + +-- pisco + +terrad query wasm cs smart terra1cvjakzx0jv7y0gf9jgekv37xx9vu3rv08dx9yayesk4qk363xpzq77rm5k '{"ownership":{}}' +terrad tx wasm set-contract-admin terra1cvjakzx0jv7y0gf9jgekv37xx9vu3rv08dx9yayesk4qk363xpzq77rm5k terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje --from testadmin --fees 75000uluna --gas 500000 +terrad tx wasm exec terra1cvjakzx0jv7y0gf9jgekv37xx9vu3rv08dx9yayesk4qk363xpzq77rm5k \ + '{"transfer_gov_contract": { "gov_contract": "terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje", "blocks": 999999 }}' \ +--from testadmin --fees 75000uluna --gas 500000 + +{"accept_gov_contract":{}} +eyJhY2NlcHRfZ292X2NvbnRyYWN0Ijp7fX0= + + +terrad tx wasm exec terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje ' +{ + "create_proposal": { + "description": "Accept Gov Ownership", + "proposal_actions": [ + { + "execute_msgs": { + "action_type": "execute", + "msgs": [ + "{\"wasm\":{\"execute\":{\"contract_addr\":\"terra1cvjakzx0jv7y0gf9jgekv37xx9vu3rv08dx9yayesk4qk363xpzq77rm5k\",\"funds\":[],\"msg\":\"eyJhY2NlcHRfZ292X2NvbnRyYWN0Ijp7fX0=\"}}}" + ] + } + } + ], + "title": "Accept ownership " + } +}' --from pisco-validator --fees 75000uluna --gas 500000 + +terrad tx wasm exec terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje '{"cast_vote":{"proposal_id":3, "outcome":"yes"}}' --from pisco-validator --fees 75000uluna --gas 500000 --yes +terrad tx wasm exec terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje '{"cast_vote":{"proposal_id":3, "outcome":"yes"}}' --from PFC --fees 75000uluna --gas 500000 --yes + +terrad query wasm cs smart terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje '{"proposal_status": {"proposal_id":3}}' + + +terrad tx wasm exec terra1723jf2ugdvw4z9pxeqrcr77hfapm84ss55dlxjjgwptq8npjv6rqky5hje '{"execute_proposal":{"proposal_id":3}}' --from pisco-validator --fees 75000uluna --gas 1500000 --yes diff --git a/notes_harpoon.txt b/notes_harpoon.txt new file mode 100644 index 0000000..42a4daa --- /dev/null +++ b/notes_harpoon.txt @@ -0,0 +1,40 @@ + +# harpoon +### +### FEE SPLIT +### +kujirad tx wasm store ./artifacts/pfc_fee_splitter.wasm --from andromeda-pfc-testnet --yes --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto +# feesplit -2528 +json=$(cat ./test_files/harpoon_instantiate_feesplit.json) +kujirad tx wasm instantiate 2528 "${json}" --admin kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m --label pfc-feesplit --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto +# kujira1nd3yn5ztn3dl2l7w4h4xelglls08ns5uz6wq8x08t47lh44md7rqvng8h5 +kujirad tx wasm migrate kujira1nd3yn5ztn3dl2l7w4h4xelglls08ns5uz6wq8x08t47lh44md7rqvng8h5 2528 '{}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto + +### +### DUST COLLECTOR +### +kujirad tx wasm store ./artifacts/pfc_dust_collector_kujira_contract.wasm --from andromeda-pfc-testnet --yes --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto +# dust- 2533 +json=$(cat ./test_files/harpoon_instantiate_dustcollector.json) +kujirad tx wasm instantiate 2526 "${json}" --admin kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m --label pfc-dustcollector --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto + +# kujira12lr0d5y0lz83nlgttdrhfydczphvu6arl2akks36wla8hmx85raq8l3lkn + + + +kujirad tx wasm migrate kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz 2533 '{}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto + +add_stage=$(cat ./test_files/harpoon_dustcollector_add_stage.json) +kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz "${add_stage}" --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto + +# mantaDAO testnet +kujirad query wasm cs smart kujira1j80m5dtnxjcdewgccppjpl3sd6z6gnmvzs8avfnkyu96492qdu3qdsrnx3 '{"config":{}}' +kujirad query wasm cs smart kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"config":{}}' +kujirad query wasm cs smart kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"assets":{}}' + + +kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"set_asset_minimum":{"denom":"ukuji", "minimum":"100000"}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto + +kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"dust_received":{}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto --amount "970factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" + +kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"set_return_contract":{"contract":"kujira1p6wkv8lycu5yhrr4cgf0qnp7l3pfwucckgw3y4sjzrzcx6h4385q2fkk2u"}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto diff --git a/notes_lunc.txt b/notes_lunc.txt new file mode 100644 index 0000000..235bbd2 --- /dev/null +++ b/notes_lunc.txt @@ -0,0 +1,67 @@ + +# LUNC +terrad tx wasm store ./artifacts/pfc_fee_splitter.wasm --from lunc-validator --yes --fees 70812500uluna --gas 2500000 + +# 7422 +json=$(cat ./test_files/lunc_instantiate.json) +terrad tx wasm instantiate 7422 "${json}" --admin terra12g4nkvsjjnl0t7fvq3hdcw7y8dc9fq69nt4p4n --label pfc-fee-split --from lunc-validator --fees 14162500uluna --gas 500000 + +# terra1a6e66k49hzrzjndsknvq3hdlpatretcm95glh7n028d7da63evnqwgjv82 + +terrad tx wasm migrate terra1a6e66k49hzrzjndsknvq3hdlpatretcm95glh7n028d7da63evnqwgjv82 1506 '{}' --from boneLunaAdmin --fees 30000uluna +terrad tx wasm exec terra1a6e66k49hzrzjndsknvq3hdlpatretcm95glh7n028d7da63evnqwgjv82 '{"deposit":{"flush":false}}' --amount "10000000uluna" --from lunc-validator --fees 56700000uluna --gas 2000000 + + + +add_alloc=$(cat ./test_files/add_allocation_phoenix_vault.json) +terrad tx wasm exec terra1a6e66k49hzrzjndsknvq3hdlpatretcm95glh7n028d7da63evnqwgjv82 "${add_alloc}" --from boneLunaAdmin --fees 3000uluna +terrad tx wasm exec terra1a6e66k49hzrzjndsknvq3hdlpatretcm95glh7n028d7da63evnqwgjv82 '{"reconcile":{}}' --from boneLunaAdmin --fees 3000uluna +terrad query wasm cs smart terra1a6e66k49hzrzjndsknvq3hdlpatretcm95glh7n028d7da63evnqwgjv82 '{"allocations":{}}' + + +# test contract +terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 +terrad tx wasm exec terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 "${add_alloc}" --from boneLunaAdmin --fees 3000uluna +terrad tx wasm exec terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 '{"remove_allocation_detail":{"name":"sp_enterprise_dao"}}' --from boneLunaAdmin --fees 3000uluna +terrad query wasm cs smart terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 '{"allocations":{}}' + +terrad tx wasm migrate terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 1511 '{}' --from boneLunaAdmin --fees 30000uluna + + + +### +### Vault +### + +terrad tx wasm store ./artifacts/pfc_vault_contract.wasm --from boneLunaAdmin --yes --fees 300000uluna --gas 2000000 +# 835|871|872 + +export steak_hub="terra1l2nd99yze5fszmhl5svyh5fky9wm4nz4etlgnztfu4e8809gd52q04n3ea" +export steak_token="terra17aj4ty4sz4yhgm08na8drc0v03v2jwr3waxcqrwhajj729zhl7zqnpc0ml" +terrad tx wasm exec $steak_hub '{"harvest":{}}' --from testadmin --fees 30000uluna --gas 1500000 + +json=$(cat ./test_files/phoenix_instantiate_vault.json) +terrad tx wasm instantiate 835 "${json}" --admin terra12097jggxd6q95hq0wt65ejjqsaggu8xeckwgms --label boneLuna-LP-Vault --from boneLunaAdmin --fees 75000uluna --gas 500000 + +# vault_contract contract +export vault_contract="terra1tgpwsnndr7djj9smld3u57snyd5xacdgdsz6glr2nqhgu82hyz0sq644hz" + +terrad tx wasm migrate $vault_contract 872 '{}' --from boneLunaAdmin --fees 30000uluna + +terrad tx wasm exec $vault_contract '{"set_astroport_generator":{"generator":"terra17re5g6mrp6upu9prhg35r9y7ugagkxm9kuxpypf2gqya2wnvtg8sdfs8p8"}}' --from boneLunaAdmin --fees 30000uluna +terrad query wasm cs smart $vault_contract '{"state":{}}' + +## +terrad tx wasm store ./artifacts/pfc_astroport_generator.wasm --from boneLunaAdmin --yes --fees 30000uluna --gas 2000000 +# 836 + +json=$(cat ./test_files/phoenix_instantiate_astroport.json) +terrad tx wasm instantiate 836 "${json}" --admin terra12097jggxd6q95hq0wt65ejjqsaggu8xeckwgms --label boneluna-astro-generator --from boneLunaAdmin --fees 75000uluna --gas 500000 + +#export astro_contract="terra17re5g6mrp6upu9prhg35r9y7ugagkxm9kuxpypf2gqya2wnvtg8sdfs8p8" +export astro_contract="terra12jvzm2cy33zspvp8asn7ns98jmyk489es2cy2j8k926mr2n7metqha430q" + +export lp_token="terra1h3z2zv6aw94fx5263dy6tgz6699kxmewlx3vrcu4jjrudg6xmtyqk6vt0u" + +terrad tx wasm exec $lp_token '{"send":{"contract":"terra1tgpwsnndr7djj9smld3u57snyd5xacdgdsz6glr2nqhgu82hyz0sq644hz", "amount":"1000000", "msg":"e30="}}' --from boneLunaAdmin --fees 3000uluna + diff --git a/notes_phoenix.txt b/notes_phoenix.txt index f70e9a7..51ed93a 100644 --- a/notes_phoenix.txt +++ b/notes_phoenix.txt @@ -1,13 +1,13 @@ # phoenix terrad tx wasm store ./artifacts/pfc_fee_splitter.wasm --from boneLunaAdmin --yes --fees 300000uluna --gas 2500000 -# 572 | 580 | 771 | 834 |1493 |1497 +# 572 | 580 | 771 | 834 |1493 |1497|1504 |1508 |1511 json=$(cat ./test_files/phoenix_instantiate.json) terrad tx wasm instantiate 1493 "${json}" --admin terra12097jggxd6q95hq0wt65ejjqsaggu8xeckwgms --label pfc-fee-split --from boneLunaAdmin --fees 75000uluna --gas 500000 # terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m -terrad tx wasm migrate terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m 1493 '{}' --from boneLunaAdmin --fees 30000uluna +terrad tx wasm migrate terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m 1506 '{}' --from boneLunaAdmin --fees 30000uluna add_alloc=$(cat ./test_files/add_allocation_phoenix_vault.json) terrad tx wasm exec terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf9wgmqtglu3m "${add_alloc}" --from boneLunaAdmin --fees 3000uluna @@ -18,9 +18,12 @@ terrad query wasm cs smart terra19kjsu0cnkptte87j3v0c922r8epn06q7g9m26g4pu64klpf # test contract terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 terrad tx wasm exec terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 "${add_alloc}" --from boneLunaAdmin --fees 3000uluna -terrad tx wasm migrate terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 1497 '{}' --from boneLunaAdmin --fees 30000uluna +terrad tx wasm exec terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 '{"remove_allocation_detail":{"name":"sp_enterprise_dao"}}' --from boneLunaAdmin --fees 3000uluna +terrad query wasm cs smart terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 '{"allocations":{}}' -terrad tx wasm exec terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 '{"deposit":{"flush":false}}' --amount "100000uluna" --from boneLunaAdmin --fees 30000uluna --gas 400000 +terrad tx wasm migrate terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 1511 '{}' --from boneLunaAdmin --fees 30000uluna + +terrad tx wasm exec terra1pxgu7cny8k776jc482kua5gqua5y9gnrm976jd6jz555ue05eqvsef6np0 '{"deposit":{"flush":false}}' --amount "1000000uluna" --from boneLunaAdmin --fees 30000uluna --gas 2000000 ### diff --git a/packages/pfc-dust-collector-kujira/Cargo.toml b/packages/pfc-dust-collector-kujira/Cargo.toml index 93dee34..7fa0dfd 100644 --- a/packages/pfc-dust-collector-kujira/Cargo.toml +++ b/packages/pfc-dust-collector-kujira/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pfc-dust-collector-kujira" -version = "0.1.0" +version = "1.0.1" authors = ["PFC"] edition = "2021" description = "Common helpers for other contracts to use pfc-fee-split" diff --git a/packages/pfc-dust-collector-kujira/src/dust_collector.rs b/packages/pfc-dust-collector-kujira/src/dust_collector.rs index 098a114..83a4464 100644 --- a/packages/pfc-dust-collector-kujira/src/dust_collector.rs +++ b/packages/pfc-dust-collector-kujira/src/dust_collector.rs @@ -16,26 +16,72 @@ pub struct Stage { pub denom: Denom, } +#[cw_serde] +pub struct MantaSellStrategy { + pub stages: Vec>, +} + +#[cw_serde] +pub struct CalcSellStrategy { + msg: Binary, +} + +#[cw_serde] +pub struct CustomSellStrategy { + contract: Addr, + msg: Binary, +} + +#[cw_serde] +pub struct AirdropSellStrategy { + contract: Addr, +} + +#[cw_serde] +#[derive(Default)] +pub enum SellStrategy { + #[default] + Hold, + Manta(MantaSellStrategy), + Calc(CalcSellStrategy), + Airdrop(AirdropSellStrategy), + Custom(CustomSellStrategy), +} + #[pfc_dust_collect] #[pfc_whitelist_exec] #[cw_ownable_execute] #[cw_serde] pub enum ExecuteMsg { /// get some dust - SetTokenRouter { contract: String }, + SetMantaTokenRouter { + contract: String, + }, + SetCalcTokenRouter { + contract: String, + }, /// Set Base denom - SetBaseDenom { denom: Denom }, + SetBaseDenom { + denom: Denom, + }, /// Change the number of funds/swaps we can do at a time. ADMIN ONLY - SetMaxSwaps { max_swaps: u64 }, + SetMaxSwaps { + max_swaps: u64, + }, /// minimum of zero - SetAssetMinimum { denom: Denom, minimum: Uint128 }, + SetAssetMinimum { + denom: Denom, + minimum: Uint128, + }, /// set the route path to exchange denom 'X' into something else. - SetAssetStages { + SetAssetStrategy { denom: Denom, - stages: Vec>, + strategy: SellStrategy, }, /// passing this asset moving forward will just hold it, and not attempt to convert it. a 'Flush' will send it back (to avoid loops) - ClearAsset { denom: Denom }, + ClearAsset { + denom: Denom, + }, } #[cw_ownable_query] @@ -71,12 +117,13 @@ pub struct AssetHolding { pub denom: Denom, pub minimum: Uint128, // only send $ after we have this amount in this coin pub balance: Uint128, - pub stages: Vec>, + pub strategy: SellStrategy, } #[cw_serde] pub struct InstantiateMsg { pub owner: String, - pub token_router: String, + pub manta_token_router: String, + pub calc_token_router: String, pub return_contract: String, pub base_denom: Denom, pub assets: Vec, diff --git a/test_files/harpoon_dustcollector_add_stage.json b/test_files/harpoon_dustcollector_add_stage.json new file mode 100644 index 0000000..27424d9 --- /dev/null +++ b/test_files/harpoon_dustcollector_add_stage.json @@ -0,0 +1,13 @@ +{ + "set_asset_stages": { + "stages": [ + [ + { + "address": "kujira1wl003xxwqltxpg5pkre0rl605e406ktmq5gnv0ngyjamq69mc2kqm06ey6", + "denom": "factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" + } + ] + ], + "denom": "factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" + } +} \ No newline at end of file diff --git a/test_files/harpoon_dustcollector_add_stage_2.json b/test_files/harpoon_dustcollector_add_stage_2.json new file mode 100644 index 0000000..476656b --- /dev/null +++ b/test_files/harpoon_dustcollector_add_stage_2.json @@ -0,0 +1,14 @@ +{ + "set_asset_stages": { + "stages": [ + [ + { + "address": "kujira16084g6pg0qk0646erfcwkstck95m46xc70zgt48usya0juf8lf0syg6yr5", + "denom": "factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta" + + } + ] + ], + "denom": "factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta" + } +} \ No newline at end of file diff --git a/test_files/harpoon_instantiate_feesplit.json b/test_files/harpoon_instantiate_feesplit.json new file mode 100644 index 0000000..74f6d05 --- /dev/null +++ b/test_files/harpoon_instantiate_feesplit.json @@ -0,0 +1,20 @@ +{ + "name": "pfc-fee-split", + "gov_contract": "kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m", + "allocation": [ + { + "name": "cron", + "allocation": 1, + "send_after": { + "denom": "ukuji", + "amount": "100" + }, + "send_type": { + "Wallet": { + "receiver": "kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m" + } + } + } + ] +} + diff --git a/test_files/lunc_instantiate.json b/test_files/lunc_instantiate.json new file mode 100644 index 0000000..945a15f --- /dev/null +++ b/test_files/lunc_instantiate.json @@ -0,0 +1,21 @@ +{ + "name": "pfc-fee-split", + "gov_contract": "terra12g4nkvsjjnl0t7fvq3hdcw7y8dc9fq69nt4p4n", + + "allocation": [ + { + "name": "pfc-validator", + "allocation": 30, + "send_after": { + "denom": "uluna", + "amount": "100000" + }, + "send_type": { + "Wallet": { + "receiver": "terra12g4nkvsjjnl0t7fvq3hdcw7y8dc9fq69nt4p4n" + } + } + } + ] +} + From 542dbb83707f1afa6c69a465b2c49b6c2d27e885 Mon Sep 17 00:00:00 2001 From: PFC <81114960+PFC-developer@users.noreply.github.com> Date: Tue, 12 Dec 2023 13:30:18 -0600 Subject: [PATCH 2/3] chore: just some notes --- notes_migaloo.txt | 12 +++++----- .../harpoon_instantiate_dustcollector.json | 22 +++++++++++++++++++ .../modify_allocation_migaloo_vault.json | 15 +++++++++++++ .../pisco_instantiate_dustcollector.json | 22 +++++++++++++++++++ 4 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 test_files/harpoon_instantiate_dustcollector.json create mode 100644 test_files/modify_allocation_migaloo_vault.json create mode 100644 test_files/pisco_instantiate_dustcollector.json diff --git a/notes_migaloo.txt b/notes_migaloo.txt index 43e7376..28c6b7c 100644 --- a/notes_migaloo.txt +++ b/notes_migaloo.txt @@ -5,14 +5,12 @@ migalood tx wasm store ./artifacts/pfc_fee_splitter.wasm --from boneluna-admin - json=$(cat ./test_files/migaloo_instantiate_feesplit.json) migalood tx wasm instantiate 2 "${json}" --admin migaloo1lu92zj8q6cmrptu09rp3343x9969r9qrsplfat --label pfc-fee-split --from boneluna-admin --gas-prices 0.025uwhale --gas-adjustment 1.7 --gas 324601 # migaloo1wug8sewp6cedgkmrmvhl3lf3tulagm9hnvy8p0rppz9yjw0g4wtqvk723g +# - -migalood tx wasm migrate migaloo1d6k8pahenpmx4spwfpf80zealtecfv7v0n7v49rxeu4lpzgzhrwq4wmhkr 834 '{}' --from testadmin --gas-prices 0.025ustars --gas-adjustment 1.7 --gas auto +migalood tx wasm migrate migaloo1wug8sewp6cedgkmrmvhl3lf3tulagm9hnvy8p0rppz9yjw0g4wtqvk723g 834 '{}' --from testadmin --gas-prices 0.025ustars --gas-adjustment 1.7 --gas auto add_alloc=$(cat ./test_files/add_allocation_phoenix_vault.json) -migalood tx wasm exec migaloo1d6k8pahenpmx4spwfpf80zealtecfv7v0n7v49rxeu4lpzgzhrwq4wmhkr "${add_alloc}" --from testadmin --gas-prices 0.025ustars --gas-adjustment 1.7 --gas auto -migalood tx wasm exec migaloo1d6k8pahenpmx4spwfpf80zealtecfv7v0n7v49rxeu4lpzgzhrwq4wmhkr '{"reconcile":{}}' --from testadmin --gas-prices 0.025ustars --gas-adjustment 1.7 --gas auto --node https://narwhal-rpc.dalnim.finance:443 --chain-id narwhal-1 - -migalood query wasm cs smart migaloo1d6k8pahenpmx4spwfpf80zealtecfv7v0n7v49rxeu4lpzgzhrwq4wmhkr '{"allocations":{}}' --node https://narwhal-rpc.dalnim.finance:443 --chain-id narwhal-1 - +migalood tx wasm exec migaloo1wug8sewp6cedgkmrmvhl3lf3tulagm9hnvy8p0rppz9yjw0g4wtqvk723g "${add_alloc}" --from testadmin --gas-prices 0.025ustars --gas-adjustment 1.7 --gas auto +migalood tx wasm exec migaloo1wug8sewp6cedgkmrmvhl3lf3tulagm9hnvy8p0rppz9yjw0g4wtqvk723g '{"reconcile":{}}' --from testadmin --gas-prices 0.025ustars --gas-adjustment 1.7 --gas auto --node https://narwhal-rpc.dalnim.finance:443 --chain-id narwhal-1 +migalood query wasm cs smart migaloo1wug8sewp6cedgkmrmvhl3lf3tulagm9hnvy8p0rppz9yjw0g4wtqvk723g '{"allocations":{}}' --node https://narwhal-rpc.dalnim.finance:443 --chain-id narwhal-1 diff --git a/test_files/harpoon_instantiate_dustcollector.json b/test_files/harpoon_instantiate_dustcollector.json new file mode 100644 index 0000000..e7d1c29 --- /dev/null +++ b/test_files/harpoon_instantiate_dustcollector.json @@ -0,0 +1,22 @@ +{ + "owner": "kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m", + "token_router": "kujira1j80m5dtnxjcdewgccppjpl3sd6z6gnmvzs8avfnkyu96492qdu3qdsrnx3", + "return_contract": "kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m", + "base_denom": "ukuji", + "assets": [ + { + "denom": "ukuji", + "minimum": "1000" + }, + { + "denom": "factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk", + "minimum": "1000" + }, + { + "denom": "factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta", + "minimum": "1000" + } + ], + "max_swaps": 3, + "flush_whitelist": [] +} \ No newline at end of file diff --git a/test_files/modify_allocation_migaloo_vault.json b/test_files/modify_allocation_migaloo_vault.json new file mode 100644 index 0000000..95450e3 --- /dev/null +++ b/test_files/modify_allocation_migaloo_vault.json @@ -0,0 +1,15 @@ +{ + "add_allocation_detail": { + "name": "gravedigger", + "allocation": 100, + "send_after": { + "denom": "uwhale", + "amount": "100000" + }, + "send_type": { + "Wallet": { + "receiver": "migaloo1n38kj5km2jl94jkm0n87zlk7vf6dj5dk3y9fc6" + } + } + } +} diff --git a/test_files/pisco_instantiate_dustcollector.json b/test_files/pisco_instantiate_dustcollector.json new file mode 100644 index 0000000..7e762ad --- /dev/null +++ b/test_files/pisco_instantiate_dustcollector.json @@ -0,0 +1,22 @@ +{ + "owner": "terra1yt8xwehw3mngc7h2z09utf32cgpdpe09lke902", + "token_router": "terra1yt8xwehw3mngc7h2z09utf32cgpdpe09lke902", + "return_contract": "terra1yt8xwehw3mngc7h2z09utf32cgpdpe09lke902", + "base_denom": "ukuji", + "assets": [ + { + "denom": "ukuji", + "minimum": "1000" + }, + { + "denom": "factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk", + "minimum": "1000" + }, + { + "denom": "factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta", + "minimum": "1000" + } + ], + "max_swaps": 3, + "flush_whitelist": [] +} \ No newline at end of file From 014ccd6af56a9195acab001ea33f31419fa48586 Mon Sep 17 00:00:00 2001 From: PFC <81114960+PFC-developer@users.noreply.github.com> Date: Fri, 12 Jan 2024 16:30:51 -1000 Subject: [PATCH 3/3] feat: max amt works --- artifacts/checksums.txt | 2 +- .../pfc_dust_collector_kujira_contract.wasm | Bin 302433 -> 323167 bytes .../pfc-dust-collector-kujira/Cargo.toml | 2 +- .../pfc-dust-collector-kujira/src/contract.rs | 10 +- .../pfc-dust-collector-kujira/src/error.rs | 4 +- .../src/handler/exec.rs | 286 +++++++++++++++++- .../src/handler/query.rs | 12 +- .../pfc-dust-collector-kujira/src/state.rs | 2 + notes_harpoon.txt | 13 +- packages/pfc-dust-collector-kujira/Cargo.toml | 2 +- .../src/dust_collector.rs | 6 + .../harpoon_dustcollector_add_stage.json | 22 +- .../harpoon_dustcollector_add_stage_2.json | 23 +- .../harpoon_instantiate_dustcollector.json | 3 +- 14 files changed, 352 insertions(+), 35 deletions(-) diff --git a/artifacts/checksums.txt b/artifacts/checksums.txt index 11fe4c7..f181aed 100644 --- a/artifacts/checksums.txt +++ b/artifacts/checksums.txt @@ -1,4 +1,4 @@ 3d74986751e5ffaee368e2fef48600a2cec7475cf34180bf4416f0bf38f7511b pfc_astroport_generator.wasm -882eaf36e8f8377e6da7d38338a5f6f1abf1e2c2d4c3201dde34ec62de63faaf pfc_dust_collector_kujira_contract.wasm +9ddaa3af8899c013ce4efaf78dde32124304b624f20ba869cc407a951fafc2e8 pfc_dust_collector_kujira_contract.wasm f4301d89b55b0f1f18279c6b3b3931a5a5db3efc2d58875000d1768a27d27f1a pfc_fee_splitter.wasm 866668e836b01245abc173e2a7669f53eb2adcbc7ba266627d5651f07b7ca580 pfc_vault_contract.wasm diff --git a/artifacts/pfc_dust_collector_kujira_contract.wasm b/artifacts/pfc_dust_collector_kujira_contract.wasm index 4b812cc5bd5a8e5decd602e647d5dccee457d7c9..76892a16c1c1a08d86542ab6e6a8f52fdc6c0384 100644 GIT binary patch literal 323167 zcmeFa3)Ej%UFUsn|I2gDKTX=E7v%i^2H)qIXf))s4VZs=-%oGh$hB_8`Ki}VP z?{m&`P0|AMt~GB1&-tHo_Wtd?fA`;SUruuMt6rWaNs>OCo_kex%Pr|G`kP#p-xB}w zq~L~Usr{e(j_$eX+La$Y|G_WSOK+wqf087Wq)I=Oph&`PtPp|SOwF5bRwdfHnLBHe zx4GQ`)k>(*i3mw8-E!4*>(-xSz)_!X22S=H*{XcU^*45|e#t9#?@2oP-Mi)`SMJ_% z^)*RXcYW@DX7_b_b|k58$L!_HUvcA(rtqs?diC{59;;rz`Ne_6VQy2bc- zFVA_tHnCO#nj}2V(tgqJ>!%*Wn?NtkJM2sNqTykWNEik z^s=!@z)p`%Pt!z~q70;?KNP1+)S;=QbB1n;34kOM6RSEj(q%}iI_ad!^g2n`|Fasr zwEremj=3ggIlhxg`@>|ks@7{yS#4Sm6uY>rq{M?@cGWFW>RCw&C9NS=?<~mtFC*+^;d4;@%WWj zA`Mqxx#Rk4@^s?LE3e&g^$l0PanSML{=kz=2%g;Jz z&y8ol`e!!YnqB|e*Iai`{&P3|?8{!l&)-aU{oGA&1IBNq2hx{Z%ai-`pHGjZSARDB za`u_@aQYYN=h8n%J$@|x!}Jf*KTQv&|0(@=`p4-Xr7ycJdo_E2b3)$zg&u4$0J)HeT_FuB&+1Inb&;B9% z@7WvkT?evnX8$w$r|dWKC$n#7|D3%!e@j08fdi-AmH$GX73jntOsb7LN4@n)na*U% zu#;^q(+x>cY%M!8S%27_OegHusINu-cnzYLyvJ-7G$hru-`|J!h0weM3iWAIHc&S+b$A_D!QpN&H~4pDHj@>@T$jWK6?+PV zVlq>uz6~p>UblDe-kUC(O3OqY%gbbNgi#E>sG($_kfD4ET^ELu$Dzn77k#o#R&NInJC zQ!GSs(MGaV9`gDpMP%`?vbeoA6VOK$BYSTH z$HDw(JftmK4Rtdffd zZ^}&QC>tzMF0njUGIxP%{iHOBd(P%;t;_5(FIDd;%Iemgu+iV(N!OkPieEjRE3?7B zcXXnTOQAEDVqUMo^Q)Q>YM-A>dSPki>fWC}m{c8X+gkOX>pEQr*Z?44cnqwS{L1Sn z36cjtVDH>=Q3}u-lF7lZWs@Kyr#^qqGy7!*n099|?a0Oeq%~%_B^$DN>S!{H)wGUM zKS?$vYXD_^9?}uUft@iB6kW3^NlHeI3fz>8@fc*La%vLUu4wQ@f~V9aRWncFbK{6> zCXelCvU5~Klayz$nVTe`VA!#ioDF$k@(QOScJ>-J6yIW!I!23mj2K)tRVzEt2PuW?5w)-y!4`n*jaN;E!>qu(9N(Z>gIFRrlb_m@4DDC;qD|Skfih1Gw?)KlXE8Rw?bjPzrnpMg zH@Pz=NPz?kB|^j{ z`W49W{N%DwvZxLvbJZK91yEdrHC{`E6C8j0>w1fC65k3A-2f~wHzb!K`_N`4+cH%+ zZHW(R8CZ&yrGO1VEkZvv`t&1x#+Ibd|9~E|NwS&d@ZRUDf1XdDv8P8LQ6+JzIMSUg zjygH%;nofh=zL=9~iUFW-r z$RH}Lo61p#7AF<+!Om~>0+*NaFSGjR~~=C6|>p7qu%Dc zPy3Cc@3ozv0yQcx=w=UEaDm)*0UkTDjc{l0KwgxBixJ#ZJ#_cMWbhpep9Wt`-RM}f z;jE@uQM~5*rBJv?C0WQ-6V);5R-3usGFQFz*ZBPee+G{eJpJweA7^+RJ};&~eSfz@ zik)fN#Mu_unwN$&T9iDKO|B-TM-?5NGmaEmY;Q&ZvrApUwN55gW7h3Zqz)FLr@P>5!9ccF+zQyo1Dbv`cy%!1zjpG%T$ z?Tf90!^ZoQXM--@SlWUlh^%K(hQ*?eY*vxp}+L^^pq9MfeT4zh)(Bv;JWDoI2!I%qh=^D6OiCY?%s zo>#XF$)ry3U~+CaUM0f<$9)_;-~tqL=OxhK$7vNeTd>#ah4d=j?8~On)uP(7Yp$By zIe5l_(Znl9=^QG3+uqmx{B8U8-+OTHEw_%QP{LJzm;qSW8S;n9U=GK&>@Hmc-(GpN zsh>RnuF8}!`<0`t)g78{w_(MG3DjS7%Wo;<^B%_Mbp^c@ z=XYCTs#%vU^3x;+T(*7Vlb`+6fjhtW{>PKskq3M9wJ+cGjbDH0kq;l!BPEomGo#D4 zuN?ceZ+!l-FFyE~-pJcewte%HpT6}A@BYgVe?yO8G%z_55=})ong~f=#f$HN^Phlf zdG#4OpYp7Du3;jd&9^9Qn^pVxO5#`4h4^(gUpGvsfr&;d5WsBP@(Z_((%VPfZG$_w z@4t4`y?xXZ%3nL`Z!7P3Eird`J8zP0Q+Jg8+egW3A!M>`^&R%ppYyZqZ9Dyra!hqo zs%`sDdOHPy5zDH&O3@6>!HEXE``S@L9l#O8rvgFqY3VKVvUfYZP{X`b2lXL@_Yqo)-AwtDQnpUSE+ z;^9fnMeM!#l|xKDx45D&n!%=I)mTLrwZ&}CU-xpK5^T@ zq?*t}vhF+-hGf|O>dPN_=YjVgdEev7zXFvRZ}N%kmPi7!2nIbzN9U<|{|Z7KdR8SK z5HzqEw2W`D5OPu}r(ER|U_7${SVPRoydMk4Zz^@F(>3=1iokZo&?8BuoFPA`V>I|4 z3;&h47rP0M#Uh=m5NmX%^CHj8Q5om9Pe3#|EnChEhnYBypNIXYxie64QhaKa zq4`}%WT?u})$6>vt%&{c5J>%j{F}2Ua~DozhN?r=dm?AFpo|%TI1sASvW&DKrT|~yw3k1s61%NT7LPDyS2<$M5 zZ`z})2?akjBek59T;C{%&l9(ANVa%(wWy*#GN}te7MBK^*4?&b_zeF4OjJtXZA4rA(sPy43o2z=4^5@?q%^vwQqWxz7kg(4 zr8hYayShRl4H`Q!^iGuO#1z`ZTPR!sw6sZY61`!dy~yri7p2vkG(zGrM|fxXtlx%Y zUBpaKB?h2qYK5+dH#$L;>??*-LiugQa9Y>Bg{zb&^I=b9aR!nk_8L_(T@^d0Q6dSt zMBVpHOjIO=M^c?VtLauYKVI$ATg$<|~pZhn**A65+Ce z9n{El3vy5+)22pRa2qw!^N^r7R5RtY)QEngGkUH@Ko4j}jaXJf>Z5=WrXBASO877S zhils1J+g$q43^oNMv*+@fY9Y;EA+l}G)fLHMs?x*f#=dxRQb$S@kgX73fB}awoUON z(xiM%UY>;rBDdxErtA@2CpKXbxDGexhjlGC=ZA9f4mWBkJchbYqM0625d@tgr%5Bo zx*lz5C^*3qW%O`d-G&n=W@@Am%6O^j4+{)Euomfofh`Q|niIE-da;(_!>HaEFYsNx zJr0MOl3S>y9t-LX?|`bN-X67j7foS#@f&8d$53WTdAj1ByaG@S!aKLh(5R^tsrWGP zQ8}@FYB0GfQlv_~A1*0(p*ouJLji$Zwtuje!w$q80hTA;;~x~H*kfeJD0Dn;DD+sQ zkoR`Vd-RM0-<2K(ZXCIZ^B%2l_XrU=QIBMpME|3K{>yWq*j09}T!(mW&L2>Pb1ky` zBmIOmA7J43+3%U;kMd2)f3&AZ^Wifcg{bm38t$>0(ezPIhBv>*>eVLs-*YP~jO0Sf z>2e%Nw_!3o;BHD(KyBVv*PY?nrsR#``8_<}7k=;K_Y*X%x^JWmiM~=HE5OSG!?VhX z;o8a7jBGYPo)61y>F^m+D1JNS_L+?hcK(ifbTsZ9j#oR2V2M%JIHT4U*{eEjo)u_A zEj%8f67G2%4l&^iyl#SrAR^CL8!JE;xzaZi;KvYPUMMpfEyilMKm+UrVLhFfGhAW< z%(l?El~Fv&#F5#hV7p|PvZ2gUITboL9W(=L9S#Yr-RDCbU8{9BK0o=4|LouR0veJ) zLbTl)p~xmMEtZkLzldv``pz{i(lhEq_`rey>6Rj|dvZ?JgksadZFA3uYO`>G+&ZRM zL0^ArVu35>Zb5VotU>85cUJbcT>RICs9`TgN_HL|u&|-}JDXl=yYyNX_jLP) z+9$eB7EjW1twHOY&1E>C@w2n7O=uPTA$e%-uXNob>IRQ!5IrL7EX>fwKP1e;6(BnD zcPT5h+!rF*UbEuW&Wcz0NTM^;l`}*#6@DRxn@Y~E)=W@v6~-EEYM|RbQQ;bmIf)wX zPerHb3Ls;TgL^fN@dtuCMOH2J32Q*zI=(tbI3m8XnNs2_i?>iOg^RLBSIRaLBuz2E z&c*n`-RemhQiW7Z%MYg{SbBXLS7(spD>8E=CV>gZ!T<)o}I{X(zLKp_k^BFs3tA3Kc6h zRv8JwVN~F8N$HuJ0KgS{^k_b5af_oW+HJ4s_VT2{l3=&p-b3YyawTdmm1 z3oP@GJij}0CwN10iNQ<+{?gGD&fmsMNsM%>=U*zlMMnEZ`Tho}_nvLzH;QF7G2Q^V_Y5=b2RmlV|dg?G~ z-~OK6!!u#Ev!y4t?xd85JCzF;ObW9wQt5eoS69`~2oyHTLg5xL(cDad7-48DE9gzf zBwA{IiN~x)0XCXP+E-lGHr`@u5o?KhD2Nm_cjkM_AFz408*aUAWI7Kdn4HhEF`zgv z&)I|#O$bsO{ddesGiFG#*7zs8KU4dt;glnF~zSwQPhh<)?&2Yxg= zWLHS{quE3Hsc8uiy?c|Qti3I#9;Biz@*)1818QwhWDjTmHTBFz)BOyb`^F9 zwSAw}aJBtz`JDIi0Is+%HN_1NSTOu{TNbn-x!0_Wg|z(;&`wdNzes^^1t*MUVL)q2 z#sXStSX1DIksFNLI}2#L(z8Kf-a~&PpS?Ns;+|mZBxl};MWTvn6*-e3>&l!OWG}KC zo>2&97H)qF%ra!KfMv)Gs`Qnfy}8rQSVLb?`yHc9f8C4i5bvkg&1aOEGR1oOO*v_G}x6==&ng=Qd>FH zZdy2U5-Iv`I1>MbigIR6(cr|IqOmdZyaL>BixD<=&RrH@UDS1l?O@h5@`ZKKaf`di}E2Z7tC zv@(p$F8xV|LUwr?A-r@QbEBsI7^|tnNpUT_i;0o?lk1OS73M>Qka)EGAxrD1w08Sc z*8?yWmd8C3FAzp)bsV*4iLOHGlxB~IW*^ga5;oEm-F}QKj_E4QKz7kNBeeWcy?N&5 z{D`iEJP+$iu<|F_=KOyB&MZ*)Fh9}u+3*>9J(GNxb`N+_ifzvC<+swB{ACU!gqR02 zOU%kjMUZmG1IRb=a{~!p^6Z-a_b>$k?K#RV^r58#w4|bH|6W=$2t0oi&wnvI-_P^C z;rCvCA4fFQ%U`6-wNAADdV#aBkqg{$9v7%I!v!L(=K^I)E)ZrN7wEE< z%UW$UpkENye8%lOQ^9T(NGmfLWaa;_+m`rtMGU@ubP$m9!~^_~QZV)xT7mQzsV_}A9;djq>H=k<%^2to7WJwEgkp_T zho*HOE5_uS2QtEj=MM#*KM4u7d2U`ART-o z!{*nEl?WRbtX6`^3~ZyXqk`P9iPl$XT~o9Q6~QNi`n_q^lGy&DdsExm!bFW?z*KH( zwjsHCsD-OZOt~+1r+7;-#fXJDTQu^Q$g}VmsjUqMBOhX7wzVP_p*Cxk}7vnMQSxxmRhBz)GCc>K?#~M zQIH9KOt>mIJdr8V8XoHTpwH4?8_(HGkI>1BQJVq2Okb*Kl!Zq7QgW_b?+j~$POqWe zoeI-{#c|S)q|!Uw21z}pO$&wU_GZ1k8B_maiN7SUW~Ge}s8m6`&8(v7VOQ;yKCtyv z7>@m5qP<~SXl(2HbEPystvu*8&FLoF;Uab=YrD~o3*&r+rTqZ$wn zkL% z*~hafVGB>$7kvpi!8(O|z^Vp#1n^g3>$IJGqukOtj$6?DhCo)Sb>)qmY)&v`YqH7- zJ2JQwo`v?KiOu=7LBiA=E~ZJI?b4E)m}yC7P3@m@YKP=UuG|ozeIPb#P6D+zBw7xg zS+onuFZZMnYadkI6}ECw*lN^|Q0rhqSs{XnLh+J;1m7^$?qLpPEx}`J=8UocdY>gzR#c%{vS`KYJt=}C>jAxbbxfNr+naVZuUsr$qQ<@8QA65tN$VTR?}*1E5SMfQnCrqvz{SxvTSm+0Yh?hdr*v!;~@EucRU+ zZF$l8U~y4QzJ}7*)=vv@`YvFJvLK-O4 znV>mP6Veq>am&qRM&)=|=8C+v zQdV&j-XQys&;|kpZTkKY202$t0O2*75`W~9OxrKw;j}hF!0?hJ`vpy9Iv_N&uYG&2 zHIs6<^*{{ZOH{?I>Xxl={F1O^yLzy-zF2s^0dFHnhTIghvYV+E-Yn!#<3(cFM58d& z#a?Y=1lFs(oeqth%P87j0X`D$;m-H4lJHjPz6`asAt`BoJAOAmhv>77ms03?FT@ka ze+sqnuvnbAZG6BC4QN?siO|H_rYY+fG!?>Fl2$kIT9!6_StZyB(-D$=ww(Q&aPAkR%BI|&Q zWK6+S&X2Q-89$Cx;^0@(5zA>&CuHyd__kbp(QHkSb7_`8k!>e9b6Y@p`Hy061#Heg zfy-1ms1o&2B$slU=YN`xG94&6n1vg=l*m|{TPwV-j6@bTa;v9DoH=bZ;giiecHF>* z6MdMr(=5|4ZBB!^5Dk+d!+O5nkYVDZDMZ1wivbAYpe+?RYfbb)yLWJ)g`>oR9j!UH zQK`c&Hw6o!H~VsQlQVhNym1%a`gPt>Sfr)UR#`4*y8t9anCxv)lg%! zqkTjRf}Jm|N+-2tU@rkoju)(e2}Xq>eIexx&C4fF7$lM8Y5)M*smbNp#-)_&p|tN4l$#s#IA;yhh<%MSEc>~I;p3up^eS&0GGFbsVD*y4H|CV3 zni%p77`yPKV(pzdXIfqtv(bohY<{(muy)O33$=3=GQFB_aM0K`bIz3Mz*7%K_rvfOHqbZ0PGKdRnEJ zrHRx|_2_K}*+1r)UQQwyPT0(41xc&F(<@Emox@Y&lu)03vU|=Tz}CGbAh32Z143^e z1R9g-idkZSF-Xf2%Si$swvm^_2xo3M#wH^BvG5A`MB+w@)cjZggZG@(kQk9Qpxa8KOi8~m%C~DHq;*%*j>tD z#`+?vGCwckLSE-`F64+VFl8c~0%sIt)_TglsHUFkr%~<_t=cquN;{ea2cAt~ zNb@ipX&y);&4YWi6?S=0>DLl4TXznANEji4CfNF`v22aUB}YlTy6cTVq_#RSDq(s2 zTSp{w#8%7a)>0Z$c1@+)ezdY{B%uVQ!~|p#%PnPQuFziFwPg9h2~Vw&Y*1>A{>QYM z+4oh@nE+jcWI8LWKE?GkHkl2u`Sy>dWg@0M?>23DHx}by(OFF-Th;@0N`IlMCOr3t zoT*W@wAvf2jk^I84C=256%{c{c~1;}9-9P8@KU(EXfzFJ$r(V*4avopgd=2ncJgE1 zUGcXPbK`n;sdqg-8&j3b5IHWFU{|-C%pj6E7&7zVyx9)+SFsrB>iZ#>7m2Do~zaIx7a zW4JtD_dgP;w;_3slVhVNOcO;87kbK{@nk_zr8pR3P=fqw<-O6ThD=hZ2!tJ$5=?i2 z;=sELii13@D-I=hVX3z1hCbAl+K}62&d3xFz__MqjTbGcYOX7&mm)|(V1G|Jxm$`t z5}|Au&ygnyv66H^v_8vFj&29r8eF$&Cq!CYgU?d+JzmPes7bH_O z2erqzz*Nc`!4i{PAbcxtWU4w5r$t60|I{#zWt0Mg2t!A08s@gMV)CU?a{al%Z)C1H zPWG=kSyig6Ly_gmUU1q8lEJ0#nh_?)q8G5 zEf)i}%~R=eCJIg#=JV%)Y!3m7Sa?42Hnz3x&V%}mxr%k68!Z}i;<`7oT$95RU$JNYK90M3WCGI3C`=ghp$t9uGvUx2oguStU@bDCa$`g-_oQR2I&hnHvFx8K$#xss_T zLAdu?rA6%MT6k$yXS3i9Gc908pL4CL`TK&OM`}K0K8z&Mr0mlj)q+ke=zqJVme~HG zjRQQbog2W-lGUm4d7QZn9GhdS(eY7%>3rAFA>iL1bhL&cgZ!sUpo2J~W#X1W2f5L9 zsgoBie{#RBct$}vlvdSG*43JLnddrNUkR<;NGtl zYn?X<$P=D7sZdGF(rA1=zpN3Rp2q!v&gdb58?50+2a{3>?kMn5u#Bw;Id=REgZcb^85e2?}2#=4m z3eaNKPu~HXXU66#e%xky#1WMTQlu3RD ziL~^x1lHEqnZWA!8csmbYm~hbH>9J;1u@MV&Ir}PioW{7w9b>ZTCr9vkEe>nOi#Nd z(EBKE7IbD~>(*gE9Li=jd}WKsokX&WY3 zW9Jb+>o7XT&Y{=bYilG_*je>-u%lk|IoQ#L+|=6kwNHNfEpK}4i|_x2o$P3(8bnxi zJH=Elbc*SM>hTm)dkq7~LlFZMoJH(J*D}yR4^O#1&gMcXzOqNJdaTFWWjSGL#U*-2 z{iiB^m35utT>p`)g!*t;y~ocl@@SPM<4BarkDd~R3tf!D>`MemdZ>K6b}70_<_X6u z#xu;lyHmzh8}H@Sr)lWUprX9ChQoIKl|*&K3%}R>$&O>_rYxx z^Kgn%l)h7BI;$s!dMf`a?I5)EDReR43DWaR&r#ZfgF>>r(3;rg@L_^hD~y(nH~ycW z97J20>XFOP(0iT`F9IhGIDbfV)s6Ecd=%uYdfz^@Y+-KtJpLsoBAshm61uY+kL4|! z*ojv&?|m@u7d)@h!-vo~d+t7YUWLlYaNu+m4yRU6Qf#A&57ve@lq5uGbtm{6Xifg3 zdC>tIC+H=zF78~Wm!aW>y$sEJ483&wz@0^!H4Dw;f(%nFGzv+^%ZZ@0$KgPhG}LD$ zS$7@{NIPcdKJlRtTXYmaX`w1e2+qo~FQv8cXpXu^d{hLHa0EuUcd>{(n$7t^n?t~$$Wo1!YqU5@-^{Sn&I->KK2?^U zmm-8aP@~OAmat1Jvb6MDlO1#}d55^sQ))}{GVCa1d@PWKu}1bh2z!Pc;X*F4L`!f! zBA2QrJ7f#?r3MCWX}6A*pH zk=7l~bjn?$3Qfn>Ixe!$6rb=}RsoO*Jp~aKiJqzq&dYT^T^Y=_>K{Wj?QgSVtj+R; zW=_cmrMH)7c{z6?&N6yCq&~%aZe0wu(Yh?Fw?WTJ5^2*P-o1~jdp`H{v>8o7%~KxB zii{@6Ei-yMo=?Rdi|RQ6E4KBl#>$F}X3@5f{Vz0jpAvl9V;9)(&DiS>XO&!t|7`rk z*thO%`N=C{Zvh1Pk><6r2+z{QsCH&QmX}R)m>p$*y)rkSl3o(n6;M_ac|PmgB-9Bs zaNS`?*|%;Lok1CS)|18A0uW2!Y(HB)E((bEeXSHfNVEa8 z;r^)=NNL$5C*?Q4i`*};E0A(!Ewkd09Pn8Y}s-J)k+sP>}D+W?Q=7wrZ=c(8# zic5bJs&O2EECoEslBB0$79#8|cfxF{z>#Lk+vta{8GvO4&H z;X+_SY+(f+Z54=4y%mvHe{>12{`C1^W1KHISmaim|JC3*(GrW>qchu@-kEPcB4HTd zsyaMcrKn_KcyuHHe%Q`dHW4}&9?{`w@(9eT+k|HSQlV>*^=+Z2rLo$zVg;0ziM3;^ zHl#ZRNeZNKXLaK1vh@SsAGV!XET2DBEZY?KDc7=<0;gQdHclQ^4`+xM6`>qcgu)PX zBsJ$^NlwTeSvj&b@U&RbKTO6F_Q;F`wmi3#k>vz+qEL%7sj#!km95c>B7W?pRqKCz z`Ln;vmOm0PD$ww>)eIjsB8js^&G2zb)ytF)%S&WB@TB!4ikw--(6 zAXsGW5bd5qN&sR5U20C^K3~z%zI56tD>`-KX>w&Ja%FchZ*dxq@<21L=-BT#SN%2j z&-R?6I4*uh)rDfGe?!k$aWS-*xUM-h=&PP4{7A2#9@U^nDdIN^6VW_PK&<3iOerWX z6&{uNGKXIj33@E%%scZQT_T>>ghMpXUwaYsW z0fv3gss+NC>ggn=?YmZjsP9_23az_L*7vtiBD4NoD^}soRqy2O--l2}Ups&74T& z;oyS7#5Mr}{+T7RZ-1d2_oh?!g`ILW2YT;=p{F_0)5=LhXg-N~r|=<5ieJS^712>) z{SGsEHsj6Jk}HG%Qwlfqq?s{X(31<)k<_#N>>5ZtaiS&h+EGSQgcZ236Cbi>QcLDh zzu*)u=8>`y4Y{?~SRHMZqu)$fg)dtpqBg5(T4W`3n4gFUTxO8VLf$SD7!fx5jW%o+ zEqwf1lWTQD2+q#RRJnErN|jrWnp$i}+51biD(4^zJVfrF?W)`=Er4cDhhE6(SO6`m za(msHgX}bOkebKv`PjH$p9hB_H+W_Km;-szkQf9y9frgzf)ge z1<(3At8l^cd~ji(Wd+Y#tnYJ+JfY_Nxy9b%xkYA4ZEmKW&t_ki6ne-L9mHw=ikKKA zR|9P};5w;mjFdTcr&XA@wk5&T>pWh=fuZ0Efk*H_YHQ+aH*hqV3TJAJt*i=$rmJ;3 z*(;N9C!8v8Oqfo>|dd-SUv5RSU5h}8axeQN(&CHJ#K>4u?8ROU=fA*Kn zkF^3%i=|kMQkc1y>h4I9oBP&a_XP15~*5 zr~B?vV-~nBF6&!@m=|~uxkZLPDzGh3kg6xO+#)X05@FcoAXm=Am&L2JJREJW+rfV+ z%CM>Ngu$-qo=28r$`DFcUI6UEP3~`?tB)~{_psG>1xlgz>xX%5A8{lGKmjkw^w+pY zhr&W_Y@)8Ivoe7B$~KakPwv>0VQ$y*1{edBbsHy7lWBw%f>n-lbmZu z-G$4>H~>QI7nhBhXML&_F=*In?Wyd>Pl{{1QT>hL4t`4N-zYXE(-j}-7q){-FuuKL zAhDmyQNRwC4x$7frHf{PE%VxGrfMF#v$HH#BrdbUto8_&wF%w5!p>?;L6UZ(jYpN& z)M5wrUt>0cKdaS5)z`SMEi09pJ~iRIpw*VOf!0{o5YEF;TB|F|nr+oT*&Ewa5x=eK z$2?F@OWU-+5^I5Nt!?xFI$xhe>Z}ye3aTGucm0C%vhgwP6fmz+Y8g4L+ zG9&o#p))LfEH)%p3~grJzLc!(SUl8MtXVguJ${#j(*70Ru-2S~i)LE+ieoUX8V;M$ z+h6Pr8Kg_N0p0($;i`_6NC>$!gE zC>z-czF6D0bAnoHI{C_I6izjW>x__nYi%}uOMWvalibhJL_eQz3%fyC0EP#i^bw3V>wLG&UpvuFIKD5frsSyc^WB^k3qVyD;QOVcq2Wj#{0Gbeh^CXP zi^SQPs@=M(^8!^1%@I>AAVOe>XE~ZwFgNP`AyoB$)7^fKj^(QDx%_#Kj#?>j8|gV@g3u za%0;Sik%jUiG5XUJJY2GZo=UyIcnzz)MwRL<~~qGTgM9&J+xqBI|NuSIs{!+j>fg2 zoTq0IYH_iHA#D#j=|UxSP(z$2SS5-KY7UI22>SV(3qCMm$J5)PH60zO$04!+(I+N= zX7B9KnvPA%c;_(9u^XK0sczK!+G7j#p*7(|!R7;jSTWQ`{D2>^q*fQ#@WymNiy($W zYqEG~jRD9w%Y_fBC;}b#uE0h7@3j>109fkLp|mqkx^`!mlH?zE|JwL#=VD zL&Zn56nFXJt#CHE&L*?hJr}a>g4cLhTEQNVCCmV1pMk>{;uIbWj`fWRoLsuo*I+RZ z;q!P^X6MV8NR@mEkiq*1X4FwS&Uu>Fam%bck`9f9j-(vez~*er+T|RUYPDjwN>!mq zIP|ipj+qt^C^0oWM{Gn9LDRl0X2@$R?qwjV)_97jPIGgCod4_q6;2fA5yvdNAo&k)gl*6mLnDvrAOLNq zIEAB8^cexBh@uj|Hw)*&GfLP|q9G}94jWx+Ru|8XY0(A`niF=LS)-kt49S z7#~g3E9*Wgr***Valnh&_D*NPt`YOlW(1}b-l~@PfEk(oA`|N{II{(Ghs1kEOQZSo2cf z0iQ-er`beabh^F%81;3s6VJ61RlubjDaXltW8C-WH23EBeZMF0^ZTCP69f2t*Y9!S z{l4S(xBag z!uFHU3EZPMj7c4nTCG*VPXWjU7tlq1qnz&09rZ#rg7Z-?~E!Z<%abt%*t0fZ+b zKd{1A7FBjS%hHB5tVP>F5L&cxa;#lIvr!-gqk;jz`n9lbB$pO7VVjuqWAq2agXDHJ zbylXzs=)oq5qy(ikw^uV<(cQIPu7zIEA7xu{kD@Y(c%(2D*9Pt$IL8&K^I4DQ6U8T zo;0=h7ZhA9Z0ge{bX(iPrr)@RoJu&|>-78GqR)S6KTD9Ow0id&4kp!Uc#LF~>r-wB z<jo(~?!Ys9 z;By4y@G#oEt)a6_v8yS$rta- zbT-og%O({zDD|2mEWP2Ceefu;3<7`ZduxQ{c=5e;VqJ4@on$*&d@p5!M)7;;T;B$* zeZqQX9aC~IYxh($ncBNsmmu8~Pv2Dytzw(BJ=XGhuPw7}d-)Gzd=~#PqDZQ=y(NKpxc|LU zL|gd9Wg{27ptYs^TYXaGGJfeu03EKUU*wu}vXdNR78T!S3#^s_{MdUI0LIO7z{SY` zHU+k1j}I*bjFWc?J!X~WGCh9RLcrsv1XuwFXw&G}&Cf5P?L7N+u8$b*uy2LXf%S9t z84-So7CKtqdlh~?`fed_9nZKhO`#IcF$!!1RB6AA7EYG)cnAq8H_0!OY5d|G2k66+ zlh`TmiaG^V#SB@wu$9a$b z?g9o`u8B5aqVf|0eqbSB4%A$-?`^=it0x3}=TiYJJAEQlJn}mWP;oLn#(`eQ$S{j2 zdVdY>t*;Ycn8c;Kkz2g&Whx*2?bw%PE906kQ~BK|t}OQwd`P=EN3Lr)(%rEI9BC)A zrqyHj#eOj&DJq^XN!6t}lH5-u!zl^EgA1Eoj!Tzr7H32D%|1@yNLwUzji#ucJg{Jl ztD**4R%b5VEH-N)g@OPcUf6`4bQw{Duu^e(eJ`+BzV!(XB{pp~ze@W>6W3C5(o1H; z&0m2NqitGzRZOv^ZKbC8Z^FLYG?QJhoz!B+Y>higzQmN{TsJBuNW}{<`ORw?XZO$i z3?#H-sHZb}X0ol-D}GJuZ?xb z)lE8nNm+MXLx~;Vx^sz+i-qa<*2Nun)}*uQH`$~%X}~46e?DpMXs?^_gOcSAw+>1c z*;(Ngj!EW~A1xgAf#84IhdlC%FKg7FA2SgCMVCGiqx@o6ekhKzn1!qzQ1xXE2EtiE zgT1x_2)U$$#}|9iQOfiv08x$twv$6`bEbAwt$`F(Jfo#qG=32WqMty$pY`fr2@>y8 znX@Luysa-}aEy{^09)Yj`7|vQ%_u&@3*VZ_j%rR+krc670us_a`0XkGic8NSO)3Lh zyimVL66*#Rzr3`{InJKieo`rZFgs<@`W+6WXJfv)Cv3pX9&7MR`_S>?B;5FM|4zu^ zOlMsZ$C1f`4b&DlW^lYZlvJ;y#hdiGG>`W<5=W_ya1;*VmKJWL@q{KH8BMi_sBzL) z)=!F*5X30S5H-`KcK8)3sRt*bhwVitjvaJQ;y}t?1k3) znA}B@DPLMsP2>)TUkN8tKu@1|gw`V7=YQvO|Kie$bKYy>fsA##jA~*jk@5RYy#LZk z$6|<`qdN8dkdfBEditFd#Jrfyhb*X$WvAA%JjH!%!M65As$xJGJiOi7oE9Ih?%#a@7 zi!7e{01B(Eq#O_{@^0cTh4|`H*2oMqNJ^$>EtwIbgl4`s1+YF9B&7Bc9NkO|+1|no z?xV@BQ8vfai2R?On)p>;ODrEcS7j_$V<_lUV;7+rb3!mMp@EP;;wwRC(8aSxltd(teq*eu?| zmg3g>9#tY<4fnY_4ikUVC5IH)ZELo*%3am+O_ZG=h%;xVJ4vDZhS-U!i8`h19EFFy%}QYsq6Sy^HAEWE0i`RlM#ZYANx|?92svP}<@CC?GAsO0eQh{#HH)%2`&( z6pPujR(^J2{?_c7+c(O`?Ic}HwfXvPG0=V_(xhD{x!{CjG&SW*PkkE56c|2+8jW8L z6AEmqNTbw`{hhezl~4G&{YC9%Y+MiuCB=3+B_HYGkVmzl&-H}kB-sw_I+CTPU%mC9 zjw+C;g4kSLu=&VyfDo(`mLw$dSxmw^R(a}EGMZ}!hy9^BQ2He|6i9|;+kRrNE!l$2 zg%UPkR6>cpv8^o-RqB{O=cx}qGfj7Oj%Cm1h?|M&o;%udv7}oxKF-AiqZ%Le6AqDI z!%yG-P9GUQ8diEhMb~JHtXa{)reuuABC+<3VUT_9%^=G-X~{1X5>_%FO%@kw(=gAm zY+=c7iXv|fjS68ijb3Oojp3lFh4=BsUpkmrXR-6LyuZqQSn_L?8bld1+f1VuTJpO9 zT3qsLui;?=S3V>KVT{UY*umyExH~$<)YQB&h)Ay82WF3-3KfJY|EOf1j>{peKPf5H z4t}3rF*7@|kb}r-XsVhzIRT5$g=#h@uXf4uvu>o~dtq3AeQktE;!Zg+H~4=HMnc@d zmyqX1W8h0bi_y3QcFd(lThh=8+7BqNr|isCyW}!}Gm4$Z<&k$PUY`LwJz*!D$4~rS zRB!~Vr9NWoFwiJ`)i3Rg|@;(1d0hm+q>gFl05X zj{P#JlE3D`mmBi>>R;N-MP3%33`Sj`^COa%Gx_$&r z&=<}#`pTN1Z6{=zMPIsQ^hI3<`noS|^bP8ofi6K`IpfebGj^=Ig}R4DmZEPk{aW$X z(6?ylD-T%Mk>EIe(Q*kln)Kn9(bqo=4t+(2HhtZGETZqr#Z=+ zb8@u$KHsPkTUCPTZX1G~pJNpml=pxg$s2XKJBb_}V_nxSd#@51S{2-E&4MtwfrdYfqo6^HM;ZL2gVz>a?x;f(%D=O)8Og?;b z%?NB%L3D&9=dSLF5L);rXG+{_mGscb+SA-B$&Z^^se`uM%48|H#@d*Xju}Ed;c!y+ z1=LA4ByI3fTd<4d%dYVfoTJTkRRelv4d)P{onOnr`GWM?f6KDGA-Cl|UHjMM#>@wD zE0GDQE8FLS7Pd_u(q53dCsJEd5b^5`E;3S6K&0-7)SVWo0Tf70iLELTN!^k6ZxsTm zRn$qXwyV$Rl<&>n5TvFad*mXiDcO)(8Pz~)?L9J5Q+z(D@xjb}P~H@v4XLeJCpDEc zts~LzfExNWQohznjTs4~j()n6no33qBSR;U`t4`2cOuo^39Uzf+(J_OpXq1Km)Btn z8sp1%G2}v9r)`eR;uUjejY5j>pj;1!}dsF1C@e`+7ej10KV=6UP*Pw;d zJJM#4aRV(T9GE8eBf|oRG<%HOIxSkIu+3P$s4HeB9SWV{feD@5HOG!m+rq&fV+W^C z3yhNq2nRBueOWIpH;f3I(bq?OSmqfK(Td7)-C;4O8IXl>V!uhT2ji#MV@CfkQydWD~&9w-&#c}44iw!x9yQx8yg znhEh9@TB%-#2&KEskuzCWpkNG9Z3F}T*m8se)3u_tSP)HRLE_XJS6NEA2Cu7CRlz= zso(qaC>T_H`=pVe?dkl=jsOeMYFkbhHYBfYY`JI_&Kc>J6WR?u5q3j&+q$e9+?_fqRfirkVSsVsbcU2mf!QhQ%I$>PQ8u*0SdoL;}> zo9vuq5u8{`wBPymZkudX0baGdn{(wFYop7Op0PmQYu}~*3ZG8!?cIk7Q9QvzRK)vw z6fmX5gIfvow1=H|5GI6=Jy8RfK`Y`G3smZ@*=tG8!)nR4*E6+#SP{7NC;Jb5Zcmlg z`F893O(rghagpBKugyyxZ4vdYQ?_9-jGa!*WFKHwKy*`=X7dM_px@`evyX8^&}QE_ zNQ!+gPqqKs8y>vg(kDP?kElaus*!gOws#ZG0)2CS6^}7OgG)tuJBh%*8gJX(d4L02 zFZgCt7GOwOC%n)%&x1)78NnW_gB*xAcCg)8^+4D_PJ0@bCJL=T{H1t3W`dIY!)UMC zOgUb&4ktv%HpIaX3Bp!}#;z}eg1(I>1~_Mg-S6}ef-1$X{?4cr%fj@CBLUQ7l9m^a z#y00A{6m~f+X=tcYKZm=p7I&ka?GPG#lTM9cAE@b4KVp{SUIIOt?o)~TCczr2?3=> zJ@LYw1)Ua!b1;Ol_`w&ZXDZ`zys%|7aO$J%z>Nz|zREVj$a+{WR-HVWnTqG8SB=Ca zJz_h{Ep59UUcMKBP5gA$`$<-&gMZVm4(}Etz920-4y+FlC5Gr;)3*9{_y-I7`m(;J zOo0#EC%vsC%F@J@?Ct|v2E?5*>C#vvt+Zx<1%>u$?ShNe5-fh8J#SiJRF}}Ew|Nh= z!mpy^gI_dXir#9!G?vF&Bc1ty&^8jDRS$+m4(bAIP-yZwti!Rvvkm{>NLL3ianR)B ztr2qTcg<@CS<0&a%w7o=b<~3oSV@oI_6lVfWI#TkwG&()E)Io{Wp8zZ}5h>;=! zH$oO%sq~HyM2cQQml(}h+7n-}-ALyHv}mU6@^n$;nRbdfZuYf0Ee=>2H$EdTrR{8S z6!y}&0Bq3*4;zxNWVZQ@Uq{7SHpwf8qCWPZC)u%${H(>a%A9yW@kcVDpgPPW5OE|M zO^2m!pEZa+1{FMPaM{hzE^3!U4nN4Vt@+kwoQr?C-$gp@JlBQahRfyj(=`sd&}ZGd zq;5DL*B;sF2lb$^1I_OHx#=skDuNHqHrv?c}NlS^z#0 z06ZW7VBOD#u*%ca0rW#8oW=B^^&`mNbXW`asB+O@=~!T&qk(-M3Cq@w6dD^Q$?<@P zmhYVIvJfp}Z4r88Hc7Vq)t5i=&I9i~^1jEDf5kcrnPQ1(3cPxGw)Cc!1sc;C_;$Uy&UDvXX&A;5f=)Q+7yKWc;Cm92pFg1JEw) z5*hPp@scc*&s#Cx5WWve;|LR8v^_A6xr;od=Zsm4b&vWZTc=|4f^ZiQ!jK{a)=@fy zP~1`+K+tFdP@R@rvLoPQbXM8&gSxT|{Xt#P{SWAh?0rC2?DGAX5Sk@oSj3(-B1jRCz8-k;z>$CUZlu%}OP^c5wrJ{l?*ttIcKrL>&# z5z}0F_tqm;4RG8DmBqm;R`HMY9)uI^G!OXfqd~sJa|h>fqhy3J#*Q+xRa6s*`2-9@ z|K`2WM)oz41v_*1SY0U`qW+FgJoIB7y}G@E|{B z(D;eP5jOZKgY$rY_xk~C=+jB|b)nXsqE<8*~1J8Z3BXwk~T{k(Zr=wuWX zreM5tM+*WKI_^~vinGgnI3_D%yf&;W_~=A-ABEhXFbcCpJ_@-oR#_X`Y1d8^GBx(T zpy=)wYbh=YYC8^@=}>9$$h6>GnQMn?{(y)BVKyg!5Xk>PF(E`j4VZ2>)D2Rz9f@Hx z^=>`V?682kO-C)8h*=}JO%g-VK|jYeKqL}h!95SS(8!}TOFrvv=GLa+-Aj?tz|HIL z*{xBd0kewJB<7jH-!`EVhux=fuWSbIwaRV=If_C;e-Dr77iU+D1vB_&>|<7&I6=P0 zAUB3Er6CL<%lY!UoY$bUbQvs|@iW6@)BSGzQp6eqs0|;{`03HWAC0;3v!Q zv|O;UVE+y_3e_Ynx=$!tQ?U1A|1v^RepJc`NPiJ{$z>uz4^~U1ws^GCQ5A9Xfp71}4pRT*F#fXFh5eah>@X8V7hsc|?aF zWi?JvR9^|G3R)1zM-6hLGcmd7%tiXro%wme0$d>#MX&%+)0dVz{Im3&~y7ljb)r)?dEX!N+KtLZ0C~U50G7RJ~MobtrI1 z)R>bHjDQ0_O00?hA&>0F!R)q8mHzaNpB{@#X;Io-jCr5PeBQGcJzl z#?S#dCaV_vlD6VSp@7he%VnNQ@Fgwu8~EXnEZNiA20jCUZZywUE@7`6RF5svjdo<~ zpj|;aM7fDlDWX;do(A1$>t6>kWW|Tz~Tl}z)~sE4IOaa zn|v#RMsq`PIOK-fQIS9;0SJv~GP~JoERY&u= z!HWg<;wf{3@oGQEa1J6Dyk$J*)qY%J@_+_6lYHDGPW9p8d_>Olek(gmoz2PnR8agf zt}_88ZUxIP-Ir5WKL{@Gb=X3JJmv%3T54ClykFh1jp}|=rJM>%ED~yQ0!&j$ojE{f z-W1xumwxY8`}@43Zweiyi+e+n{dDnlDze`+Lx|6UJnWw*4+xMs@q5)H@;K}X^aP_P zV}ZdN>t5{Bw-_)RMbz2jO5^DCDpVU3MZ<|tj%S;h<@7}UO!BRa$ldcx-i8>r_Jvn9 zo0{tlXAM3TqA|{vP~Q;-v9BJ)Uupo=v>&pnh%!j?UaRFwky$cmv^O2D1{~^eA6#V1 zO|{{5FE^TAE>{QL_!^HhZbBzwhEQHoF5C=HCt@qmg8h8SQ~64B1)F&KOQr))2ShSF z9pAd@0g06AYS(v61J+IAZHhZ?P?HKR3{nLEDoeSM3T4iwRpB~?^r~{LY3^z|Q~?`G z+Jq*w?rU{04A%$+R}D|2Gr=g_)5gMnVL@|vrv)thly~Wh78Zyj!NM6}VbIutB}Q!{ z7NWY!$em%gX9NTwuDOtKnj=B$q+^Re=`CKq3=*uSA>vT0(xqPMlF&_<%i5)!O6Ci(vqys*MQ z&tNn>;dU{`3_ih7=$q>H2uu+#;7-`1j-!al!`Q3yy;mC}hUO($7R)Xb{vq|UsXg@C zCAE>O#i;A{>7v1=tmC(0?a zF<>S(U8(>T$@E*rm>`W=R68g(EhjB$U#)9u^0P`y*TWB) zmcQ6+14#-ijN@;GQM3;fllq?Kvhb)nZ$g5qJ|V$wc{5w5EjC-`+n|Lk`(XMKpJ&YG zAL7b-(i80Uk!#MD#mRF(htd)HeYTQ)dTokc!PCiR>1&dk0~ASkvRQh0Bjs8*oI>c@ zXrvAlrZZ!XUg^(rNKS^th6;Y+BV3Ez7KTb0+jp7F`ayHEEdH?@3bJA4q5&S56j}L2M*V zFSqziIXCwfo0FtOj&RBfo0BM6zhL+QPjM1r%9DglXPLh~y&Vk@Cm|-I3;$p-VvUhx zik3b`f>76kK?xyz%0pNeC(9m8!CxT+>peM4b7T3pIfa*~24bVYSMt}DEEoU0LQ)jVR^l;#TE zq0({r{)Uoc>@Bwl5ToWNhR1epXK%cV1 zA=p!c%SU+S+yN}-P=f~ag0A&zDV84Yoe-YWnaBLLz_ zO#0L-b*SPI5ra%zeT9`w0%99ML;!y#J~&=z%iPZ-jh9(+%tOL*9nN`Rxz1AOM8K;Q zQF^~QW5X}bkksYEzt^S)i}OOphv zcBw^@tm4M&PX{k>JaErC(d=fuzd|}ehp1@t8v@jw&98zBy@o;3sz(*X54Y79-P!EL zRstB$CBFy4yV@k9`c&iyVA$6n@^<1!p<-7H|6Z&KzD?N`ykcu@*n(-zu=0>vGr-r% zL*8#``m)iIgWFh8*$3Y?QLe)_SU<>0Lz_<4GDPbGMJxAgH3>p#!3W$Rznqe zti_gEK7j@h+tDwWfljP58892eomL3=p6RaEox({EoSvQO6y57P@{nz!pS1emyACGR zc$wMy)rQ*wzFE(F!DtPbuFfaT&)#M;<;k{RWIf=1K60kC)yBE%Z|+6 zR6#-y*>+ZazJ0%LuKKg~J)0f>w0+;7tNyTk|Donat1_$eUB1AjMh~V4?I$(ck_YzT zGz5Y=v5z+D!#xCdtmZx+>T!BC+6cc8oAKV;Wb)8v;O+Z3?CdP}VyCu4g0V*NjcAunm>JSRX~mbl_U!DGgP$GOlhRcQr2r7RQud zz5=_;FYi`poOyPoooIYP3s|KEEwn&~_Ev5I(31|Dta?(Op%bc;@-&@fX|wj{ap4Hf z87@R~>$!mLk_+zcxm+NHYzSU&YY83)-cIsxwa@*ZBjW^g1)G>Qmwqty?Bw6-=E`cY zXSXH#qD(EkT9wh*bf*&*7(0>`f@g--2F12}B+7?WIxIh%?W(tr$OY&OhQitvqRT~7 z!YJlCa16nkT1OH@FiV(Pq#vf}1M8K8=#FGm zrsRbAhV zYK>a0)Eifrkq*zCFRr2F4NCnx!Vl)afxxRWt>w!&a;9#S*hJA(}^cJPSdnE3`w;Mzo*yZ)Ybv! zAIdXm`*bsB^&{7u(P(qt>h_o@0Nb_ z#KpSps8M#grLXd*KK*#+b}TR&R8I-G#;v+}33$Gwc@#h~`MW9G!-XK|1}B*U^&UYrmeRk(q+J%JY`fKTe&oB@jjqRKsFR~8*<()La zezd>GQdEg}AdNDnFQrueah)niBab*(O0iMvQ!V&jx$#gHj2@*3ogi)1nXnVJ$Wtb$ zNPU`R;zM0Ba`t&pIn?$3F+T~$c6%YBem2>B)u^32Hwf3P6^CPl8GdOhYJ;|R?BX|0 z1AiMo2XxsUGp-im`KMiPK$*15x=Nvp9o@mz&!@A`z}{dEW&_vpK$-P&n7GbZKp4tG zuvQ;ju~Ehj%H!&%2FVFw#D7$X>>Lh_nT$<;MZUn~x2SM>>P3Wj!3yDPm`E@FjV zqfu9SjUW_YmOqE*4LQGLv!4U1J!}NW1_S(yt*mP=)>ldx{3XKLOm>+Gf{j$dQJ2fN zY|d|>Hjz}2C!+z!#87D+>BX=Sjz}8@4-sBL6Q+SAGXES13thLfZ2HlotK z$DettUCW=;b19kT!C!8`UX3n2RpvvPIU@$;HLV#aa+^p%nU~Ewpy8W*%a~Ky_gs!f zNR+JnMw>g7N)4EZJJ!(5a)1CmDNN4hrFu7;4=`TFSD_(?MEw90=*<__9j5xN_6_TH zJf_X5p}fOs_^DD!3(kaMRk-He{eaz6dIb*sMGVf?_zz>lWF&iqlRPzZ@$FwesHsC) z5W46VLHn5eBUz8@?U+q*+5v-U^`Sd>qR(c*jdl6>aWBxFRkz(qiF|Oma&ZwLhM<`E zR=UDj{Uqb&9nmj-;#qS({=s(~gumw>*8jad3!kJ)!1Yqc+ruI!I47U(yUD)`3e@XD z;6|eXiO+^BH6o|kl z*ken06|_yS=%aMG{1@A1?5jofWdqhg87`C_mqsc(+BU68m=1FP{^QLI})Yk=3vYk#I8+z4UM>U{y&%u%QTTEObHeGFOwy$ z^Z`gya{6vfTKz@5wOOHHu7deVt1s%Un=1*_*W+#5w$&ex{I7beZ(6n`wEpnqpXsfC z9#ZUEru6U0|ChaY0kY#d@BI4qeay_A2QG*Q!FS(FkOV|Rq$IvX>VY0&_z-22lodyD zxl&A(EAaxZjeu1#-V{xaL{J{ukPR#J2FlVF6f+CRCM_stV#uq+qg`5tDy%Y;qRLR2 zwxL?C4LOVr?J~Pimb=XF|Nl<+y)zhqfJn2nt_b3E-|jxI?|kQbpYP~dXDMgX;u+<1 ziFMZa?zQk->#V478X(r+Y4K?OmuYYPvL32J9gIqUrgzLtw5G`enf5+6%73I1>r7VI zshXGT?~*?@FS{t1oqWvyYqm`nzOGMoN~fFpW|aGn~n1S)yI>|Mxk&^z{WWRdYi~5`ZfZTd-s&8T(hiDw<`2mz3sYvkVITl zRW0%q(Uu8q7IinKsxn_v8J|iz@^-R%`&;V9jBB(XyDmQwU*u(vzylijmZ}lq9+iKl z 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 ax}#(_$$;T?H+t{uxVpGHxK7?w^Zx*Ho&)&+ literal 302433 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 KcJKf0cK;VO8cQGm diff --git a/contracts/pfc-dust-collector-kujira/Cargo.toml b/contracts/pfc-dust-collector-kujira/Cargo.toml index 553a0b9..33a197e 100644 --- a/contracts/pfc-dust-collector-kujira/Cargo.toml +++ b/contracts/pfc-dust-collector-kujira/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "pfc-dust-collector-kujira-contract" -version = "1.0.1" +version = "1.1.0" authors = ["PFC "] edition = "2018" license = "Apache-2.0" diff --git a/contracts/pfc-dust-collector-kujira/src/contract.rs b/contracts/pfc-dust-collector-kujira/src/contract.rs index c670056..bc986f1 100644 --- a/contracts/pfc-dust-collector-kujira/src/contract.rs +++ b/contracts/pfc-dust-collector-kujira/src/contract.rs @@ -14,9 +14,9 @@ use pfc_dust_collector_kujira::dust_collector::{ use crate::error::ContractError; use crate::handler::exec as ExecHandler; use crate::handler::exec::{ - execute_clear_asset, execute_set_asset_minimum, execute_set_asset_strategy, - execute_set_base_denom, execute_set_calc_token_router, execute_set_manta_token_router, - execute_set_max_swaps, execute_set_return_contract, + execute_clear_asset, execute_set_asset_maximum, execute_set_asset_minimum, + execute_set_asset_strategy, execute_set_base_denom, execute_set_calc_token_router, + execute_set_manta_token_router, execute_set_max_swaps, execute_set_return_contract, }; use crate::handler::query as QueryHandler; use crate::state; @@ -138,6 +138,10 @@ pub fn execute( cw_ownable::assert_owner(deps.storage, &info.sender)?; execute_set_asset_minimum(deps, &info.sender, denom, minimum) } + ExecuteMsg::SetAssetMaximum { denom, maximum } => { + cw_ownable::assert_owner(deps.storage, &info.sender)?; + execute_set_asset_maximum(deps, &info.sender, denom, maximum) + } ExecuteMsg::ClearAsset { denom } => { cw_ownable::assert_owner(deps.storage, &info.sender)?; execute_clear_asset(deps, &info.sender, denom) diff --git a/contracts/pfc-dust-collector-kujira/src/error.rs b/contracts/pfc-dust-collector-kujira/src/error.rs index 1b6da2d..42b52fb 100644 --- a/contracts/pfc-dust-collector-kujira/src/error.rs +++ b/contracts/pfc-dust-collector-kujira/src/error.rs @@ -1,4 +1,4 @@ -use cosmwasm_std::{OverflowError, StdError}; +use cosmwasm_std::{OverflowError, StdError, Uint128}; use cw_ownable::OwnershipError; use kujira::Denom; use thiserror::Error; @@ -42,6 +42,8 @@ pub enum ContractError { DenomNotUnique {}, #[error("PFC-Dust-Kujira: Don't send funds here")] NoFundsRequired {}, + #[error("PFC-Dust-Kujira: Min {min:?} > Max {max:?} ?")] + MinMax { min: Uint128, max: Uint128 }, #[error("PFC-Dust-Kujira: Contract can't be migrated! {current_name:?} {current_version:?}")] MigrationError { diff --git a/contracts/pfc-dust-collector-kujira/src/handler/exec.rs b/contracts/pfc-dust-collector-kujira/src/handler/exec.rs index 0c5f493..2b6c392 100644 --- a/contracts/pfc-dust-collector-kujira/src/handler/exec.rs +++ b/contracts/pfc-dust-collector-kujira/src/handler/exec.rs @@ -12,7 +12,8 @@ use pfc_dust_collector_kujira::mantaswap; //use crate::contract::{REPLY_RETURN, REPLY_SWAP}; use crate::error::ContractError; -use crate::state::{ASSET_HOLDINGS, ASSET_STAGES, CONFIG}; +use crate::error::ContractError::MinMax; +use crate::state::{ASSET_HOLDINGS, ASSET_HOLDINGS_MAX, ASSET_STAGES, CONFIG}; pub fn execute_set_asset_strategy( deps: DepsMut, @@ -96,6 +97,11 @@ pub fn execute_set_asset_minimum( denom: Denom, minimum: Uint128, ) -> Result { + if let Some(max) = ASSET_HOLDINGS_MAX.may_load(deps.storage, denom.to_string())? { + if minimum > max { + return Err(MinMax { min: minimum, max }); + } + } ASSET_HOLDINGS.save(deps.storage, denom.to_string(), &minimum)?; let res = Response::new() .add_attribute("action", "new_denom") @@ -105,6 +111,26 @@ pub fn execute_set_asset_minimum( Ok(res) } +pub fn execute_set_asset_maximum( + deps: DepsMut, + sender: &Addr, + denom: Denom, + maximum: Uint128, +) -> Result { + if let Some(min) = ASSET_HOLDINGS.may_load(deps.storage, denom.to_string())? { + if min > maximum { + return Err(MinMax { min, max: maximum }); + } + } + ASSET_HOLDINGS_MAX.save(deps.storage, denom.to_string(), &maximum)?; + let res = Response::new() + .add_attribute("action", "new_denom") + .add_attribute("from", sender) + .add_attribute("denom", denom.to_string()) + .add_attribute("maximum", format!("{}", maximum)); + + Ok(res) +} pub fn execute_set_base_denom( deps: DepsMut, @@ -222,6 +248,7 @@ pub(crate) fn do_deposit( for coin_balance in funds_to_swap.into_iter() { if let Some(minimum) = ASSET_HOLDINGS.may_load(deps.storage, coin_balance.0.clone())? { if coin_balance.1.ge(&minimum) || flush { + // we don't have a maximum base_denom to send if coin_balance.0 == config.base_denom.to_string() { let coin: Coin = Coin::new(coin_balance.1.u128(), coin_balance.0); let contract_info = deps @@ -245,6 +272,11 @@ pub(crate) fn do_deposit( if let Some(strategy) = ASSET_STAGES.may_load(deps.storage, coin_balance.0.clone())? { + let maximum = ASSET_HOLDINGS_MAX + .may_load(deps.storage, coin_balance.0.clone())? + .unwrap_or(Uint128::MAX); + // cap amount to max if it is above it + let max_amt = coin_balance.1.min(maximum); match strategy { SellStrategy::Hold => {} SellStrategy::Manta(mantaswap) => { @@ -252,7 +284,7 @@ pub(crate) fn do_deposit( &router, &coin_balance.0, &mantaswap, - coin_balance.1, + max_amt, )?; swaps.push(swap); //SubMsg::reply_on_error(swap, REPLY_SWAP)); swap_msg_count += 1; @@ -465,6 +497,7 @@ mod exec { AssetHolding { denom: Denom::from(DENOM_1), minimum: Uint128::from(1_000u128), + maximum: Uint128::MAX, balance: Uint128::zero(), strategy: SellStrategy::Manta(MantaSellStrategy { stages: vec![vec![Stage { @@ -503,6 +536,7 @@ mod exec { AssetHolding { denom: Denom::from(DENOM_2), minimum: Uint128::zero(), + maximum: Uint128::MAX, balance: Uint128::zero(), strategy: SellStrategy::Manta(MantaSellStrategy { stages: vec![vec![Stage { @@ -817,10 +851,13 @@ mod exec { ), ExecuteMsg::DustReceived {}, )?; + /* for msg in &res.messages { eprintln!("swap_test_4:{:?}", msg); } + */ + assert_eq!(res.messages.len(), 3); execute( @@ -829,7 +866,7 @@ mod exec { mock_info(CREATOR, &[]), ExecuteMsg::SetAssetMinimum { denom: Denom::from(DENOM_3), - minimum: Uint128::from(5_000u128), + minimum: Uint128::from(10_000u128), }, )?; // multi-stage. @@ -862,6 +899,71 @@ mod exec { )?; assert_eq!(res.messages.len(), 3); + let denom_1_msg = res + .messages + .iter() + .find(|sm| match sm.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + if funds[0].denom == DENOM_1 { + return true; + } else { + return false; + } + } + _ => return false, + }, + _ => return false, + }) + .unwrap(); + let denom_2_msg = res + .messages + .iter() + .find(|sm| match sm.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + if funds[0].denom == DENOM_2 { + return true; + } else { + return false; + } + } + _ => return false, + }, + _ => return false, + }) + .unwrap(); + match denom_1_msg.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + assert_eq!(funds.len(), 1); + let fund = funds[0].clone(); + assert_eq!(fund.denom, DENOM_1); + assert_eq!(fund.amount, Uint128::from(10_000u32)); + } + + _ => panic!("expected a wasmMsg::exec"), + }, + + _ => panic!("expected a wasmMsg::exec"), + } + match denom_2_msg.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + assert_eq!(funds.len(), 1); + let fund = funds[0].clone(); + assert_eq!(fund.denom, DENOM_2); + assert_eq!(fund.amount, Uint128::from(200_000u32)); + } + + _ => panic!("expected a wasmMsg::exec"), + }, + _ => { + eprintln!("{:?}", res.messages[1].msg); + panic!("expected a wasmMsg::exec") + } + } + let stage = query_helper::>( deps.as_ref(), QueryMsg::Asset { @@ -922,4 +1024,182 @@ mod exec { } Ok(()) } + #[test] + // ensure max amounts are displayed, and only MAX amount is swapped. + pub fn swap_test_maxes() -> Result<(), ContractError> { + let mut deps = mock_dependencies_with_balance(&[ + Coin::new(10_000, DENOM_1), + Coin::new(10_000, DENOM_MAIN), + Coin::new(200_000, DENOM_2), + ]); + + do_instantiate( + deps.as_mut(), + CREATOR, + vec![ + AssetMinimum { + denom: DENOM_1.into(), + minimum: Uint128::from(1_000u128), + }, + AssetMinimum { + denom: DENOM_MAIN.into(), + minimum: Uint128::from(5_000u128), + }, + ], + USER_1, + )?; + execute( + deps.as_mut(), + mock_env(), + mock_info(WL_USER_1, &[]), + ExecuteMsg::SetAssetStrategy { + denom: Denom::from(DENOM_1), + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_1.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), + }, + )?; + execute( + deps.as_mut(), + mock_env(), + mock_info(CREATOR, &[]), + ExecuteMsg::SetAssetStrategy { + denom: Denom::from(DENOM_2), + strategy: SellStrategy::Manta(MantaSellStrategy { + stages: vec![vec![Stage { + address: Addr::unchecked(LP_2.to_string()), + denom: Denom::from(DENOM_MAIN), + }]], + }), + }, + )?; + + execute( + deps.as_mut(), + mock_env(), + mock_info(CREATOR, &[]), + ExecuteMsg::SetAssetMinimum { + denom: Denom::from(DENOM_2), + minimum: Uint128::from(100_000u128), + }, + )?; + + execute( + deps.as_mut(), + mock_env(), + mock_info(CREATOR, &[]), + ExecuteMsg::SetAssetMinimum { + denom: Denom::from(DENOM_MAIN), + minimum: Uint128::from(5_000u128), + }, + )?; + // denom 2 - max & min set + execute( + deps.as_mut(), + mock_env(), + mock_info(CREATOR, &[]), + ExecuteMsg::SetAssetMaximum { + denom: Denom::from(DENOM_2), + maximum: Uint128::from(150_000u128), + }, + )?; + // denom 1 - no minimum, but a maximum + execute( + deps.as_mut(), + mock_env(), + mock_info(CREATOR, &[]), + ExecuteMsg::SetAssetMaximum { + denom: Denom::from(DENOM_1), + maximum: Uint128::from(5_000u128), + }, + )?; + let res = execute( + deps.as_mut(), + mock_env(), + mock_info( + USER_3, + &[ + Coin::new(40_000, DENOM_1), + Coin::new(10_000, DENOM_MAIN), + Coin::new(600_000, DENOM_2), + ], + ), + ExecuteMsg::DustReceived {}, + )?; + /* + for msg in &res.messages { + eprintln!("swap_test_max:{:?}", msg); + } + */ + assert_eq!(res.messages.len(), 3); + let denom_1_msg = res + .messages + .iter() + .find(|sm| match sm.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + if funds[0].denom == DENOM_1 { + return true; + } else { + return false; + } + } + _ => return false, + }, + _ => return false, + }) + .unwrap(); + let denom_2_msg = res + .messages + .iter() + .find(|sm| match sm.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + if funds[0].denom == DENOM_2 { + return true; + } else { + return false; + } + } + _ => return false, + }, + _ => return false, + }) + .unwrap(); + match denom_1_msg.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + assert_eq!(funds.len(), 1); + let fund = funds[0].clone(); + assert_eq!(fund.denom, DENOM_1); + assert_eq!(fund.amount, Uint128::from(5_000u32)); + } + + _ => panic!("expected a wasmMsg::exec"), + }, + + _ => panic!("expected a wasmMsg::exec"), + } + match denom_2_msg.msg.clone() { + CosmosMsg::Wasm(wasm) => match wasm { + WasmMsg::Execute { funds, .. } => { + assert_eq!(funds.len(), 1); + let fund = funds[0].clone(); + assert_eq!(fund.denom, DENOM_2); + assert_eq!(fund.amount, Uint128::from(150_000u32)); + } + + _ => panic!("expected a wasmMsg::exec"), + }, + _ => { + eprintln!("{:?}", res.messages[1].msg); + panic!("expected a wasmMsg::exec") + } + } + + Ok(()) + } } diff --git a/contracts/pfc-dust-collector-kujira/src/handler/query.rs b/contracts/pfc-dust-collector-kujira/src/handler/query.rs index f17a280..bcac9df 100644 --- a/contracts/pfc-dust-collector-kujira/src/handler/query.rs +++ b/contracts/pfc-dust-collector-kujira/src/handler/query.rs @@ -1,4 +1,4 @@ -use crate::state::{ASSET_HOLDINGS, ASSET_STAGES, CONFIG}; +use crate::state::{ASSET_HOLDINGS, ASSET_HOLDINGS_MAX, ASSET_STAGES, CONFIG}; use cosmwasm_std::{Addr, Deps, Order, StdResult, Uint128}; use kujira::Denom; @@ -29,6 +29,9 @@ pub(crate) fn query_asset( let minimum = ASSET_HOLDINGS .may_load(deps.storage, denom.to_string())? .unwrap_or(Uint128::zero()); + let maximum = ASSET_HOLDINGS_MAX + .may_load(deps.storage, denom.to_string())? + .unwrap_or(Uint128::MAX); let strategy = ASSET_STAGES .may_load(deps.storage, denom.to_string())? @@ -39,11 +42,14 @@ pub(crate) fn query_asset( Ok(Some(AssetHolding { denom, minimum, + maximum, balance: coin.amount, strategy, })) } +/// show the holdings, and ones where there are set minimums. +/// if there is no holdings, and no minimum, and a maximum it won't show pub(crate) fn query_assets( deps: Deps, contract_address: &Addr, @@ -57,6 +63,7 @@ pub(crate) fn query_assets( let mut holdings: Vec = Default::default(); for coin in balances { let minimum = ASSET_HOLDINGS.may_load(deps.storage, coin.denom.clone())?; + let maximum = ASSET_HOLDINGS_MAX.may_load(deps.storage, coin.denom.clone())?; if minimum.is_some() { minimums.remove(&coin.denom); } @@ -67,11 +74,13 @@ pub(crate) fn query_assets( denom: Denom::from(coin.denom), balance: coin.amount, minimum: minimum.unwrap_or(Uint128::zero()), + maximum: maximum.unwrap_or(Uint128::MAX), strategy, }); } for denom in minimums { let minimum = ASSET_HOLDINGS.may_load(deps.storage, denom.clone())?; + let maximum = ASSET_HOLDINGS_MAX.may_load(deps.storage, denom.clone())?; let strategy = ASSET_STAGES .may_load(deps.storage, denom.clone())? .unwrap_or(SellStrategy::default()); @@ -79,6 +88,7 @@ pub(crate) fn query_assets( denom: Denom::from(denom), balance: Uint128::zero(), minimum: minimum.unwrap_or(Uint128::zero()), + maximum: maximum.unwrap_or(Uint128::MAX), strategy, }); } diff --git a/contracts/pfc-dust-collector-kujira/src/state.rs b/contracts/pfc-dust-collector-kujira/src/state.rs index 5c0f48d..4014c95 100644 --- a/contracts/pfc-dust-collector-kujira/src/state.rs +++ b/contracts/pfc-dust-collector-kujira/src/state.rs @@ -9,11 +9,13 @@ use pfc_dust_collector_kujira::dust_collector::SellStrategy; pub(crate) const CONFIG_KEY: &str = "config_001"; pub(crate) const DENOM_KEY: &str = "denom_001"; +pub(crate) const DENOM_MAX_KEY: &str = "denom_max_001"; pub(crate) const DENOM_STAGES: &str = "stages_001"; pub const CONFIG: Item = Item::new(CONFIG_KEY); /// denom - minimum amount to hold pub const ASSET_HOLDINGS: Map = Map::new(DENOM_KEY); +pub const ASSET_HOLDINGS_MAX: Map = Map::new(DENOM_MAX_KEY); pub const ASSET_STAGES: Map = Map::new(DENOM_STAGES); #[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq, JsonSchema)] diff --git a/notes_harpoon.txt b/notes_harpoon.txt index 42a4daa..1a3a19f 100644 --- a/notes_harpoon.txt +++ b/notes_harpoon.txt @@ -14,23 +14,25 @@ kujirad tx wasm migrate kujira1nd3yn5ztn3dl2l7w4h4xelglls08ns5uz6wq8x08t47lh44md ### DUST COLLECTOR ### kujirad tx wasm store ./artifacts/pfc_dust_collector_kujira_contract.wasm --from andromeda-pfc-testnet --yes --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto -# dust- 2533 +# dust- 2533 | 2796 json=$(cat ./test_files/harpoon_instantiate_dustcollector.json) -kujirad tx wasm instantiate 2526 "${json}" --admin kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m --label pfc-dustcollector --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto +kujirad tx wasm instantiate 2796 "${json}" --admin kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m --label pfc-dustcollector --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto # kujira12lr0d5y0lz83nlgttdrhfydczphvu6arl2akks36wla8hmx85raq8l3lkn - +# kujira1c2gemd9harv24za0g4yasr2nw66q6err4cmmu9aymdsvh9g3qsaqjq9luf -- latest (2024-01-09) kujirad tx wasm migrate kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz 2533 '{}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto add_stage=$(cat ./test_files/harpoon_dustcollector_add_stage.json) -kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz "${add_stage}" --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto +kujirad tx wasm exec kujira1c2gemd9harv24za0g4yasr2nw66q6err4cmmu9aymdsvh9g3qsaqjq9luf "${add_stage}" --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto # mantaDAO testnet kujirad query wasm cs smart kujira1j80m5dtnxjcdewgccppjpl3sd6z6gnmvzs8avfnkyu96492qdu3qdsrnx3 '{"config":{}}' kujirad query wasm cs smart kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"config":{}}' kujirad query wasm cs smart kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"assets":{}}' +kujirad query wasm cs smart kujira1c2gemd9harv24za0g4yasr2nw66q6err4cmmu9aymdsvh9g3qsaqjq9luf '{"config":{}}' +kujirad query wasm cs smart kujira1c2gemd9harv24za0g4yasr2nw66q6err4cmmu9aymdsvh9g3qsaqjq9luf '{"assets":{}}' kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"set_asset_minimum":{"denom":"ukuji", "minimum":"100000"}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto @@ -38,3 +40,6 @@ kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qss kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"dust_received":{}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto --amount "970factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" kujirad tx wasm exec kujira1952r8uqzs5yue8c8gmmnyw3x6c04l5fpcdwdwyp84j0sdfnm0qssfnqtlz '{"set_return_contract":{"contract":"kujira1p6wkv8lycu5yhrr4cgf0qnp7l3pfwucckgw3y4sjzrzcx6h4385q2fkk2u"}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto +kujirad tx wasm exec kujira1c2gemd9harv24za0g4yasr2nw66q6err4cmmu9aymdsvh9g3qsaqjq9luf '{"set_return_contract":{"contract":"kujira1p6wkv8lycu5yhrr4cgf0qnp7l3pfwucckgw3y4sjzrzcx6h4385q2fkk2u"}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto +kujirad tx wasm exec kujira1c2gemd9harv24za0g4yasr2nw66q6err4cmmu9aymdsvh9g3qsaqjq9luf '{"dust_received":{}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto --amount "3970factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" +kujirad tx wasm exec kujira1c2gemd9harv24za0g4yasr2nw66q6err4cmmu9aymdsvh9g3qsaqjq9luf '{"set_asset_maximum":{"denom":"factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk", "maximum":"2000"}}' --from andromeda-pfc-testnet --gas-prices 0.00125ukuji --gas-adjustment 1.7 --gas auto diff --git a/packages/pfc-dust-collector-kujira/Cargo.toml b/packages/pfc-dust-collector-kujira/Cargo.toml index 7fa0dfd..50e6098 100644 --- a/packages/pfc-dust-collector-kujira/Cargo.toml +++ b/packages/pfc-dust-collector-kujira/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pfc-dust-collector-kujira" -version = "1.0.1" +version = "1.1.0" authors = ["PFC"] edition = "2021" description = "Common helpers for other contracts to use pfc-fee-split" diff --git a/packages/pfc-dust-collector-kujira/src/dust_collector.rs b/packages/pfc-dust-collector-kujira/src/dust_collector.rs index 83a4464..c3bdc0c 100644 --- a/packages/pfc-dust-collector-kujira/src/dust_collector.rs +++ b/packages/pfc-dust-collector-kujira/src/dust_collector.rs @@ -73,6 +73,11 @@ pub enum ExecuteMsg { denom: Denom, minimum: Uint128, }, + /// defaults to unlimited + SetAssetMaximum { + denom: Denom, + maximum: Uint128, + }, /// set the route path to exchange denom 'X' into something else. SetAssetStrategy { denom: Denom, @@ -118,6 +123,7 @@ pub struct AssetHolding { pub minimum: Uint128, // only send $ after we have this amount in this coin pub balance: Uint128, pub strategy: SellStrategy, + pub maximum: Uint128, // only send up to maximum at any one stage } #[cw_serde] pub struct InstantiateMsg { diff --git a/test_files/harpoon_dustcollector_add_stage.json b/test_files/harpoon_dustcollector_add_stage.json index 27424d9..e83b09f 100644 --- a/test_files/harpoon_dustcollector_add_stage.json +++ b/test_files/harpoon_dustcollector_add_stage.json @@ -1,13 +1,17 @@ { - "set_asset_stages": { - "stages": [ - [ - { - "address": "kujira1wl003xxwqltxpg5pkre0rl605e406ktmq5gnv0ngyjamq69mc2kqm06ey6", - "denom": "factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" - } - ] - ], + "set_asset_strategy": { + "strategy": { + "manta": { + "stages": [ + [ + { + "address": "kujira1wl003xxwqltxpg5pkre0rl605e406ktmq5gnv0ngyjamq69mc2kqm06ey6", + "denom": "factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" + } + ] + ] + } + }, "denom": "factory/kujira1r85reqy6h0lu02vyz0hnzhv5whsns55gdt4w0d7ft87utzk7u0wqr4ssll/uusk" } } \ No newline at end of file diff --git a/test_files/harpoon_dustcollector_add_stage_2.json b/test_files/harpoon_dustcollector_add_stage_2.json index 476656b..684e0b3 100644 --- a/test_files/harpoon_dustcollector_add_stage_2.json +++ b/test_files/harpoon_dustcollector_add_stage_2.json @@ -1,14 +1,17 @@ { - "set_asset_stages": { - "stages": [ - [ - { - "address": "kujira16084g6pg0qk0646erfcwkstck95m46xc70zgt48usya0juf8lf0syg6yr5", - "denom": "factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta" - - } - ] - ], + "set_asset_strategy": { + "strategy": { + "manta": { + "stages": [ + [ + { + "address": "kujira16084g6pg0qk0646erfcwkstck95m46xc70zgt48usya0juf8lf0syg6yr5", + "denom": "factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta" + } + ] + ] + } + }, "denom": "factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta" } } \ No newline at end of file diff --git a/test_files/harpoon_instantiate_dustcollector.json b/test_files/harpoon_instantiate_dustcollector.json index e7d1c29..1b14333 100644 --- a/test_files/harpoon_instantiate_dustcollector.json +++ b/test_files/harpoon_instantiate_dustcollector.json @@ -1,6 +1,7 @@ { "owner": "kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m", - "token_router": "kujira1j80m5dtnxjcdewgccppjpl3sd6z6gnmvzs8avfnkyu96492qdu3qdsrnx3", + "manta_token_router": "kujira1j80m5dtnxjcdewgccppjpl3sd6z6gnmvzs8avfnkyu96492qdu3qdsrnx3", + "calc_token_router": "kujira1j80m5dtnxjcdewgccppjpl3sd6z6gnmvzs8avfnkyu96492qdu3qdsrnx3", "return_contract": "kujira1wpayju4jcn2mhv6yewclf6rcq9fyqzvasa2s9m", "base_denom": "ukuji", "assets": [