From d6228311eeed64170ee84e7849b972e8f89291eb Mon Sep 17 00:00:00 2001 From: wc117 Date: Fri, 11 Oct 2024 00:58:20 +0800 Subject: [PATCH] bugfix --- .../aave_stable_yield_chaser_vault_cw.wasm | Bin 285373 -> 285284 bytes artifacts/checksums.txt | 2 +- src/contract.rs | 109 +++++++++++++++--- 3 files changed, 95 insertions(+), 16 deletions(-) diff --git a/artifacts/aave_stable_yield_chaser_vault_cw.wasm b/artifacts/aave_stable_yield_chaser_vault_cw.wasm index 6b7f826aac2d1d64c708dd26873122f33ccd0930..5396f35a593e003f283f3dc8cf2298329d93f48a 100644 GIT binary patch delta 3651 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 delta 3792 zcmZ`*4OCQR8otk+JHrg~!|PN+{xY_0p8enHbmKF&*>#8kTd$#|x``)=TFifX8=ic{w|DX5! z-tV2;b2R!-$D)sHGs|y$_wa&QmuO6%{=_!wHYo1GPu{QtOKDDl{H?>lyOMg-o~erTygy>_6rnDyxwUt_)R{STjXz^hH_8jdDy5x>i{jr{J= zD!YbTyww~&iMFqhW3|g&ktorwb!D-g=ac(zT3hwW)%f%J4o2z+1;$eJ*~QSWkg>$@flhL2N~ zS=b-MiA3F9Y)Qa$pof|h@fs>=)lepNq@^RUv-h3j;%3r+ZUpC0-m*?l+trB0i|L|4vs@Et)=E?Fo+gSMU=Q>3hETp($(q6 zLaj)d0m#gz&O|b^IWw^wOl$8(zD_Oo;(ef;F3e)w)nrTg-* zhHt1ynuDvbH0Yg~K)utEVNIB>tmoEi5R>NWX&PwqL+scf7Cyvjf|mbSiAz*DAM1jG ziG?T@hw^bJ&`Z}AaOPg&S*U03rFn~xZ0W7y6mD9aha6V@c@d`%%2MZGr?|Kjd9du# zFF>>(h%?#%5)i3#(JF5K4SojfqWnh~(k`*)5gk&%zz^v!%dw6XIR$8grM;4a*^R2~ zMzD4@M$qog%|l04%S6)_3`UrcKHrKOtCxqqnyQwN_eISDXVP&KLT)KP{5Xc9%c5Fs-y*$p2<(~*2l>Rx0S z>nmdIUYvuGu}RP91kLkeWJ(Pma3GvhwHBye=KEljRnhhi#L^MAOb)Shg;~0IKz-@` z32ljf*VSUyYjA*i-oVIl_3RzkR2%;r zs7II&Y^uMKno!_sR{?x?c{g7pN#n|KAHb!w*s%cmiZZ!_4O{CVNLQW~`AAue61$F1L4}&@9k2{>3{EV3zvuk4SeWKQ%~?I1bgGoMvOMrbz)T` z&X~E!C;k=F%yf7&hS(h{+{G9kmFtY8SI^-VxT*OZ;t)xnoWreuwt;b*7oVyMWXvbGBRo?s7)$g~vvtKR}^b z|F*T$t6MRI8b3g0c<|^J41$ZIo3Y0pX;=G(W_|OIh9>!K9lGr=>6sQ}yKNphLp~~V z0dQ}E!$v1saKs%EkV=L$g4VZU6cxXOk<`+PyG{IA?Kg}!4>UB}9WJ}7sMqP_%ZOK0 zs8;dAMZj##-miHQ_Kjnsk*9=z6f1Tg7B2wap zXq4M&>k|aII zPlDv%YI|iQrNk(yR3R(r>)Y5Mij{}>N#-ZW9}Mu^$dZ*Gg`d0m3F?pXIzNPeo7Xc! z_zwg8Q_G)x^w+DGJQegChXHwhC1nm2Nb{MW7ZT_W=0gKN7~r2+_T-{fOIECWY)L<; zBGx5__&!HROiJ3QVD2Mf>ce4tDSdBJhW439%LAiDh4D8iM^Q!(3r3$3rkc8Q(xF8!t4se_y_1ZhfN5Etq41MN%ZVReU&|cv)IHn7j#xnIXO=4<|<33?}Fa5`?+=p2-&7wSFwABX|W# Vec { let token_new_asset: Token = Token::Address(Address::from_str(new_asset.as_str()).unwrap()); let mut token_swap_info: Vec = Vec::new(); - token_swap_info.push(Token::Array( + token_swap_info.push(Token::FixedArray( swap_info .route .iter() .map(|x| Token::Address(Address::from_str(x.as_str()).unwrap())) .collect(), )); - token_swap_info.push(Token::Array( + token_swap_info.push(Token::FixedArray( swap_info .swap_params .iter() .map(|x| { - Token::Array( + Token::FixedArray( x.iter() .map(|y| Token::Uint(Uint::from_big_endian(&y.to_be_bytes()))) .collect(), @@ -205,7 +199,7 @@ pub mod execute { token_swap_info.push(Token::Uint(Uint::from_big_endian( &swap_info.expected.to_be_bytes(), ))); - token_swap_info.push(Token::Array( + token_swap_info.push(Token::FixedArray( swap_info .pools .iter() @@ -310,19 +304,19 @@ pub mod execute { fn get_withdraw_tokens(swap_info: SwapInfo, receiver: String) -> Vec { let mut token_swap_info: Vec = Vec::new(); - token_swap_info.push(Token::Array( + token_swap_info.push(Token::FixedArray( swap_info .route .iter() .map(|x| Token::Address(Address::from_str(x.as_str()).unwrap())) .collect(), )); - token_swap_info.push(Token::Array( + token_swap_info.push(Token::FixedArray( swap_info .swap_params .iter() .map(|x| { - Token::Array( + Token::FixedArray( x.iter() .map(|y| Token::Uint(Uint::from_big_endian(&y.to_be_bytes()))) .collect(), @@ -336,7 +330,7 @@ pub mod execute { token_swap_info.push(Token::Uint(Uint::from_big_endian( &swap_info.expected.to_be_bytes(), ))); - token_swap_info.push(Token::Array( + token_swap_info.push(Token::FixedArray( swap_info .pools .iter() @@ -704,4 +698,89 @@ pub fn query(_deps: Deps, _env: Env, _msg: QueryMsg) -> StdResult { } #[cfg(test)] -mod tests {} +mod tests { + use super::*; + use crate::msg::{ExecuteMsg, SwapInfo}; + use cosmwasm_std::testing::{message_info, mock_dependencies, mock_env}; + use cosmwasm_std::{Addr, Uint256}; + + #[test] + fn test_change_asset() { + let mut deps = mock_dependencies(); + let env = mock_env(); + let info = message_info(&Addr::unchecked("creator"), &[]); + let msg = InstantiateMsg { + retry_delay: 10, + job_id: "job_id".to_string(), + creator: "creator".to_string(), + signers: vec!["signer".to_string()], + }; + + instantiate(deps.as_mut(), env.clone(), info.clone(), msg).unwrap(); + let msg = ExecuteMsg::ChangeAsset { + new_asset: "0x0000000000000000000000000000000000000000".to_string(), + swap_info: SwapInfo { + route: vec![ + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + ], + swap_params: vec![ + vec![ + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + ], + vec![ + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + ], + vec![ + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + ], + vec![ + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + ], + vec![ + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + Uint256::from(0u8), + ], + ], + amount: Uint256::from(0u8), + expected: Uint256::from(0u8), + pools: vec![ + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + "0x0000000000000000000000000000000000000000".to_string(), + ], + }, + }; + execute(deps.as_mut(), env, info, msg).unwrap(); + } +}