layer_climb_core/signing/contract/
msg.rs1use anyhow::Result;
2use serde::Serialize;
3
4use crate::{contract_helpers::contract_msg_to_vec, prelude::*};
5
6impl SigningClient {
7 pub fn contract_upload_file_msg(
8 &self,
9 wasm_byte_code: Vec<u8>,
10 ) -> Result<layer_climb_proto::wasm::MsgStoreCode> {
11 Ok(layer_climb_proto::wasm::MsgStoreCode {
12 sender: self.addr.to_string(),
13 wasm_byte_code,
14 instantiate_permission: None,
15 })
16 }
17
18 pub fn contract_instantiate_msg(
19 &self,
20 admin: impl Into<Option<Address>>,
21 code_id: u64,
22 label: impl ToString,
23 funds: Vec<layer_climb_proto::Coin>,
24 msg: &impl Serialize,
25 ) -> Result<layer_climb_proto::wasm::MsgInstantiateContract> {
26 Ok(layer_climb_proto::wasm::MsgInstantiateContract {
27 sender: self.addr.to_string(),
28 admin: admin.into().map(|a| a.to_string()).unwrap_or_default(),
29 code_id,
30 label: label.to_string(),
31 msg: contract_msg_to_vec(msg)?,
32 funds,
33 })
34 }
35
36 #[allow(clippy::too_many_arguments)]
37 pub fn contract_instantiate2_msg(
38 &self,
39 admin: impl Into<Option<Address>>,
40 code_id: u64,
41 label: impl ToString,
42 funds: Vec<layer_climb_proto::Coin>,
43 salt: Vec<u8>,
44 fix_msg: bool,
45 msg: &impl Serialize,
46 ) -> Result<layer_climb_proto::wasm::MsgInstantiateContract2> {
47 Ok(layer_climb_proto::wasm::MsgInstantiateContract2 {
48 sender: self.addr.to_string(),
49 admin: admin.into().map(|a| a.to_string()).unwrap_or_default(),
50 code_id,
51 label: label.to_string(),
52 msg: contract_msg_to_vec(msg)?,
53 salt,
54 fix_msg,
55 funds,
56 })
57 }
58
59 pub fn contract_execute_msg(
60 &self,
61 address: &Address,
62 funds: Vec<layer_climb_proto::Coin>,
63 msg: &impl Serialize,
64 ) -> Result<layer_climb_proto::wasm::MsgExecuteContract> {
65 Ok(layer_climb_proto::wasm::MsgExecuteContract {
66 sender: self.addr.to_string(),
67 contract: address.to_string(),
68 msg: contract_msg_to_vec(msg)?,
69 funds,
70 })
71 }
72
73 pub fn contract_migrate_msg(
74 &self,
75 address: &Address,
76 code_id: u64,
77 msg: &impl Serialize,
78 ) -> Result<layer_climb_proto::wasm::MsgMigrateContract> {
79 Ok(layer_climb_proto::wasm::MsgMigrateContract {
80 sender: self.addr.to_string(),
81 contract: address.to_string(),
82 code_id,
83 msg: contract_msg_to_vec(msg)?,
84 })
85 }
86}