1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::{Addr, Reply, Storage};
5use cosmwasm_storage::{
6 bucket, bucket_read, singleton, singleton_read, Bucket, ReadonlyBucket, ReadonlySingleton,
7 Singleton,
8};
9
10const CONFIG_KEY: &[u8] = b"config";
11const RESULT_PREFIX: &[u8] = b"result";
12
13#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
14pub struct State {
15 pub owner: Addr,
16}
17
18pub fn config(storage: &mut dyn Storage) -> Singleton<State> {
19 singleton(storage, CONFIG_KEY)
20}
21
22pub fn config_read(storage: &dyn Storage) -> ReadonlySingleton<State> {
23 singleton_read(storage, CONFIG_KEY)
24}
25
26pub fn replies(storage: &mut dyn Storage) -> Bucket<Reply> {
27 bucket(storage, RESULT_PREFIX)
28}
29
30pub fn replies_read(storage: &dyn Storage) -> ReadonlyBucket<Reply> {
31 bucket_read(storage, RESULT_PREFIX)
32}