diff --git a/contracts/tgrade-valset/src/multitest/export_import.rs b/contracts/tgrade-valset/src/multitest/export_import.rs index f38743f2..80c9dfc7 100644 --- a/contracts/tgrade-valset/src/multitest/export_import.rs +++ b/contracts/tgrade-valset/src/multitest/export_import.rs @@ -29,6 +29,8 @@ fn export_works() { } ); + assert_eq!(exp.admin, Some(Addr::unchecked("admin"))); + assert_eq!( exp.config, Config { @@ -78,6 +80,7 @@ fn import_works() { contract: "contract_name".to_owned(), version: "version".to_owned(), }, + admin: Some(Addr::unchecked("imported_admin")), config: Config { membership: Tg4Contract(Addr::unchecked("membership")), min_points: 30, @@ -144,6 +147,7 @@ fn import_deletes_existing_entries() { contract: "contract_name".to_owned(), version: "version".to_owned(), }, + admin: None, config: Config { membership: Tg4Contract(Addr::unchecked("membership")), min_points: 30, diff --git a/contracts/tgrade-valset/src/state.rs b/contracts/tgrade-valset/src/state.rs index 0e4a2b09..450f1f6e 100644 --- a/contracts/tgrade-valset/src/state.rs +++ b/contracts/tgrade-valset/src/state.rs @@ -7,7 +7,7 @@ use cosmwasm_std::{to_binary, Addr, Coin, Decimal, Deps, DepsMut, Response, StdR use cw2::{get_contract_version, set_contract_version, ContractVersion}; use cw_storage_plus::{Index, IndexList, IndexedMap, Item, Map, UniqueIndex}; use tg4::Tg4Contract; -use tg_utils::Duration; +use tg_utils::{Duration, ADMIN}; use crate::error::ContractError; use crate::msg::{default_fee_percentage, JailingPeriod, OperatorResponse, ValidatorMetadata}; @@ -178,6 +178,7 @@ pub struct SlashingResponse { #[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)] pub struct ValsetState { pub contract_version: ContractVersion, + pub admin: Option, pub config: Config, pub epoch: EpochInfo, pub operators: Vec, @@ -190,6 +191,7 @@ pub struct ValsetState { pub fn export(deps: Deps) -> Result, ContractError> { // Valset state items let mut state = ValsetState { + admin: ADMIN.get(deps)?, contract_version: get_contract_version(deps.storage)?, config: CONFIG.load(deps.storage)?, epoch: EPOCH.load(deps.storage)?, @@ -242,7 +244,7 @@ pub fn export(deps: Deps) -> Result, ContractEr /// Import state pub fn import( - deps: DepsMut, + mut deps: DepsMut, state: ValsetState, ) -> Result, ContractError> { // Valset state items @@ -251,6 +253,7 @@ pub fn import( state.contract_version.contract, state.contract_version.version, )?; + ADMIN.set(deps.branch(), state.admin)?; CONFIG.save(deps.storage, &state.config)?; EPOCH.save(deps.storage, &state.epoch)?; VALIDATORS.save(deps.storage, &state.validators)?;