warp_controller_pkg/
account.rs

1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::{Addr, Uint128};
3
4#[cw_serde]
5pub struct CreateAccountMsg {
6    pub funds: Option<Vec<Fund>>,
7}
8
9#[cw_serde]
10pub enum Fund {
11    Cw20(Cw20Fund),
12    Cw721(Cw721Fund),
13}
14
15#[cw_serde]
16pub struct Cw20Fund {
17    pub contract_addr: String,
18    pub amount: Uint128,
19}
20
21#[cw_serde]
22pub struct Cw721Fund {
23    pub contract_addr: String,
24    pub token_id: String,
25}
26
27#[cw_serde]
28pub enum FundTransferMsgs {
29    TransferFrom(TransferFromMsg),
30    TransferNft(TransferNftMsg),
31}
32
33#[cw_serde]
34pub struct TransferFromMsg {
35    pub owner: String,
36    pub recipient: String,
37    pub amount: Uint128,
38}
39
40#[cw_serde]
41pub struct TransferNftMsg {
42    pub recipient: String,
43    pub token_id: String,
44}
45
46#[cw_serde]
47pub enum Cw721ExecuteMsg {
48    TransferNft { recipient: String, token_id: String },
49}
50
51#[cw_serde]
52pub struct QueryAccountMsg {
53    pub owner: String,
54}
55
56#[cw_serde]
57pub struct QueryAccountsMsg {
58    pub start_after: Option<String>,
59    pub limit: Option<u32>,
60}
61
62#[cw_serde]
63pub struct Account {
64    pub owner: Addr,
65    pub account: Addr,
66}
67
68#[cw_serde]
69pub struct AccountResponse {
70    pub account: Account,
71}
72
73#[cw_serde]
74pub struct AccountsResponse {
75    pub accounts: Vec<Account>,
76}
77
78#[cw_serde]
79pub enum AssetInfo {
80    Native(String),
81    Cw20(Addr),
82    Cw721(Addr, String),
83}