From 8728817d77855018612a92a405468afa5e688620 Mon Sep 17 00:00:00 2001 From: Reuven Podmazo Date: Sun, 23 May 2021 00:19:00 +0300 Subject: [PATCH 1/2] implemented ContractStatus query --- src/contract.rs | 9 +++++++++ src/msg.rs | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/contract.rs b/src/contract.rs index d8a9bf1..6a8efcd 100644 --- a/src/contract.rs +++ b/src/contract.rs @@ -228,6 +228,7 @@ pub fn query(deps: &Extern, msg: QueryM match msg { QueryMsg::TokenInfo {} => query_token_info(&deps.storage), QueryMsg::TokenConfig {} => query_token_config(&deps.storage), + QueryMsg::ContractStatus {} => query_contract_status(&deps.storage), QueryMsg::ExchangeRate {} => query_exchange_rate(&deps.storage), QueryMsg::Minters { .. } => query_minters(deps), _ => authenticated_queries(deps, msg), @@ -331,6 +332,14 @@ fn query_token_config(storage: &S) -> QueryResult { }) } +fn query_contract_status(storage: &S) -> QueryResult { + let config = ReadonlyConfig::from_storage(storage); + + to_binary(&QueryAnswer::ContractStatus { + status: config.contract_status(), + }) +} + pub fn query_transfers( deps: &Extern, account: &HumanAddr, diff --git a/src/msg.rs b/src/msg.rs index a167f93..c342729 100644 --- a/src/msg.rs +++ b/src/msg.rs @@ -310,6 +310,7 @@ pub enum HandleAnswer { pub enum QueryMsg { TokenInfo {}, TokenConfig {}, + ContractStatus {}, ExchangeRate {}, Allowance { owner: HumanAddr, @@ -370,6 +371,9 @@ pub enum QueryAnswer { mint_enabled: bool, burn_enabled: bool, }, + ContractStatus { + status: ContractStatusLevel, + }, ExchangeRate { rate: Uint128, denom: String, From dad03fc4d2ac6c8b4bd0ebda9d1ea98fc95f3ee3 Mon Sep 17 00:00:00 2001 From: Reuven Podmazo Date: Sun, 23 May 2021 00:23:09 +0300 Subject: [PATCH 2/2] updated schema --- schema/query_answer.json | 27 +++++++++++++++++++++++++++ schema/query_msg.json | 11 +++++++++++ 2 files changed, 38 insertions(+) diff --git a/schema/query_answer.json b/schema/query_answer.json index fb8f16c..56f7fd1 100644 --- a/schema/query_answer.json +++ b/schema/query_answer.json @@ -76,6 +76,25 @@ } } }, + { + "type": "object", + "required": [ + "contract_status" + ], + "properties": { + "contract_status": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "$ref": "#/definitions/ContractStatusLevel" + } + } + } + } + }, { "type": "object", "required": [ @@ -271,6 +290,14 @@ } } }, + "ContractStatusLevel": { + "type": "string", + "enum": [ + "normal_run", + "stop_all_but_redeems", + "stop_all" + ] + }, "HumanAddr": { "type": "string" }, diff --git a/schema/query_msg.json b/schema/query_msg.json index ec41b0f..b16caf7 100644 --- a/schema/query_msg.json +++ b/schema/query_msg.json @@ -24,6 +24,17 @@ } } }, + { + "type": "object", + "required": [ + "contract_status" + ], + "properties": { + "contract_status": { + "type": "object" + } + } + }, { "type": "object", "required": [