1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
use schemars::JsonSchema;
use serde::{de::DeserializeOwned, Serialize};
use std::fmt;
use cosmwasm_std::{
to_vec, Env, HandleResult, InitResult, MigrateResult, QueryResponse, StdResult,
};
use crate::calls::{call_handle, call_init, call_migrate, call_query};
use crate::instance::Instance;
use crate::{Api, Querier, Storage};
pub fn init<S, A, Q, M, U>(instance: &mut Instance<S, A, Q>, env: Env, msg: M) -> InitResult<U>
where
S: Storage + 'static,
A: Api + 'static,
Q: Querier + 'static,
M: Serialize + JsonSchema,
U: DeserializeOwned + Clone + PartialEq + JsonSchema + fmt::Debug,
{
let serialized_msg = to_vec(&msg)?;
call_init(instance, &env, &serialized_msg).expect("VM error")
}
pub fn handle<S, A, Q, M, U>(instance: &mut Instance<S, A, Q>, env: Env, msg: M) -> HandleResult<U>
where
S: Storage + 'static,
A: Api + 'static,
Q: Querier + 'static,
M: Serialize + JsonSchema,
U: DeserializeOwned + Clone + PartialEq + JsonSchema + fmt::Debug,
{
let serialized_msg = to_vec(&msg)?;
call_handle(instance, &env, &serialized_msg).expect("VM error")
}
pub fn migrate<S, A, Q, M, U>(
instance: &mut Instance<S, A, Q>,
env: Env,
msg: M,
) -> MigrateResult<U>
where
S: Storage + 'static,
A: Api + 'static,
Q: Querier + 'static,
M: Serialize + JsonSchema,
U: DeserializeOwned + Clone + PartialEq + JsonSchema + fmt::Debug,
{
let serialized_msg = to_vec(&msg)?;
call_migrate(instance, &env, &serialized_msg).expect("VM error")
}
pub fn query<S, A, Q, M>(instance: &mut Instance<S, A, Q>, msg: M) -> StdResult<QueryResponse>
where
S: Storage + 'static,
A: Api + 'static,
Q: Querier + 'static,
M: Serialize + JsonSchema,
{
let serialized_msg = to_vec(&msg)?;
call_query(instance, &serialized_msg).expect("VM error")
}