Skip to content

Commit b76b4b4

Browse files
authored
Merge pull request #15 from enigmampc/contract-status
ContractStatus query
2 parents f7585cd + dad03fc commit b76b4b4

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed

schema/query_answer.json

+27
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,25 @@
7676
}
7777
}
7878
},
79+
{
80+
"type": "object",
81+
"required": [
82+
"contract_status"
83+
],
84+
"properties": {
85+
"contract_status": {
86+
"type": "object",
87+
"required": [
88+
"status"
89+
],
90+
"properties": {
91+
"status": {
92+
"$ref": "#/definitions/ContractStatusLevel"
93+
}
94+
}
95+
}
96+
}
97+
},
7998
{
8099
"type": "object",
81100
"required": [
@@ -271,6 +290,14 @@
271290
}
272291
}
273292
},
293+
"ContractStatusLevel": {
294+
"type": "string",
295+
"enum": [
296+
"normal_run",
297+
"stop_all_but_redeems",
298+
"stop_all"
299+
]
300+
},
274301
"HumanAddr": {
275302
"type": "string"
276303
},

schema/query_msg.json

+11
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,17 @@
2424
}
2525
}
2626
},
27+
{
28+
"type": "object",
29+
"required": [
30+
"contract_status"
31+
],
32+
"properties": {
33+
"contract_status": {
34+
"type": "object"
35+
}
36+
}
37+
},
2738
{
2839
"type": "object",
2940
"required": [

src/contract.rs

+9
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ pub fn query<S: Storage, A: Api, Q: Querier>(deps: &Extern<S, A, Q>, msg: QueryM
228228
match msg {
229229
QueryMsg::TokenInfo {} => query_token_info(&deps.storage),
230230
QueryMsg::TokenConfig {} => query_token_config(&deps.storage),
231+
QueryMsg::ContractStatus {} => query_contract_status(&deps.storage),
231232
QueryMsg::ExchangeRate {} => query_exchange_rate(&deps.storage),
232233
QueryMsg::Minters { .. } => query_minters(deps),
233234
_ => authenticated_queries(deps, msg),
@@ -331,6 +332,14 @@ fn query_token_config<S: ReadonlyStorage>(storage: &S) -> QueryResult {
331332
})
332333
}
333334

335+
fn query_contract_status<S: ReadonlyStorage>(storage: &S) -> QueryResult {
336+
let config = ReadonlyConfig::from_storage(storage);
337+
338+
to_binary(&QueryAnswer::ContractStatus {
339+
status: config.contract_status(),
340+
})
341+
}
342+
334343
pub fn query_transfers<S: Storage, A: Api, Q: Querier>(
335344
deps: &Extern<S, A, Q>,
336345
account: &HumanAddr,

src/msg.rs

+4
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ pub enum HandleAnswer {
310310
pub enum QueryMsg {
311311
TokenInfo {},
312312
TokenConfig {},
313+
ContractStatus {},
313314
ExchangeRate {},
314315
Allowance {
315316
owner: HumanAddr,
@@ -370,6 +371,9 @@ pub enum QueryAnswer {
370371
mint_enabled: bool,
371372
burn_enabled: bool,
372373
},
374+
ContractStatus {
375+
status: ContractStatusLevel,
376+
},
373377
ExchangeRate {
374378
rate: Uint128,
375379
denom: String,

0 commit comments

Comments
 (0)