@@ -167,6 +167,21 @@ fn update_oracle_msgs(deps: Deps, env: Env, config: &Config) -> Result<Vec<Cosmo
167167 funds : vec ! [ ]
168168 } . into ( ) ) ;
169169
170+ // Post rates to Milkyway Oracle contract
171+ let post_rates_msg = Oracle :: PostRates {
172+ purchase_rate : purchase_rate. to_string ( ) ,
173+ redemption_rate : redemption_rate. to_string ( ) ,
174+ denom : config. liquid_stake_token_denom . clone ( ) ,
175+ } ;
176+
177+ let post_rate_msg_json = serde_json:: to_string ( & post_rates_msg) . unwrap ( ) ;
178+ messages. push ( MsgExecuteContract {
179+ sender : env. contract . address . to_string ( ) ,
180+ contract : config. oracle_address . clone ( ) . unwrap ( ) . to_string ( ) ,
181+ msg : post_rate_msg_json. as_bytes ( ) . to_vec ( ) ,
182+ funds : vec ! [ ]
183+ } . into ( ) ) ;
184+
170185 Ok ( messages)
171186}
172187
@@ -744,15 +759,16 @@ pub fn update_config_from_migrate(
744759) -> ContractResult < Response > {
745760 let mut config: Config = CONFIG . load ( deps. storage ) ?;
746761
747- // update oracle contract address v2
748- if msg. oracle_contract_address_v2 . is_some ( ) {
749- let oracle_contract_address_v2 = msg. oracle_contract_address_v2 . unwrap ( ) ;
750- let address = validate_address ( & oracle_contract_address_v2 , "osmo" ) ?;
751- config. oracle_contract_address_v2 = Some ( address) ;
762+ // update oracle contract address v3
763+ if msg. oracle_address . is_some ( ) {
764+ let oracle_address = msg. oracle_address . unwrap ( ) ;
765+ let address = validate_address ( & oracle_address , "osmo" ) ?;
766+ config. oracle_address = Some ( address) ;
752767 }
768+
753769 CONFIG . save ( deps. storage , & config) ?;
754770
755- Ok ( Response :: new ( ) . add_attribute ( "action" , "update_oracle_contract_address_v2 " ) )
771+ Ok ( Response :: new ( ) . add_attribute ( "action" , "update_oracle_address " ) )
756772}
757773
758774// Update the config; callable by the owner
@@ -771,6 +787,7 @@ pub fn update_config(
771787 treasury_address : Option < String > ,
772788 oracle_contract_address : Option < String > ,
773789 oracle_contract_address_v2 : Option < String > ,
790+ oracle_address : Option < String > ,
774791) -> ContractResult < Response > {
775792 ADMIN . assert_admin ( deps. as_ref ( ) , & info. sender ) ?;
776793
@@ -837,6 +854,12 @@ pub fn update_config(
837854 config. oracle_contract_address_v2 = Some ( address) ;
838855 }
839856
857+ if oracle_address. is_some ( ) {
858+ let oracle_address = oracle_address. unwrap ( ) ;
859+ let address = validate_address ( & oracle_address, "osmo" ) ?;
860+ config. oracle_address = Some ( address) ;
861+ }
862+
840863 CONFIG . save ( deps. storage , & config) ?;
841864
842865 Ok ( Response :: new ( ) . add_attribute ( "action" , "update_config" ) )
0 commit comments