test_suite/common_setup/
msg.rs

1use anyhow::Error;
2use cosmwasm_std::{Addr, Timestamp};
3
4use cosmwasm_std::Uint128;
5use open_edition_factory::state::{OpenEditionMinterParams, ParamsExtension};
6use sg2::msg::CollectionParams;
7use sg_multi_test::StargazeApp;
8use vending_factory::msg::VendingMinterInitMsgExtension;
9
10pub struct MinterSetupParams<'a> {
11    pub router: &'a mut StargazeApp,
12    pub minter_admin: Addr,
13    pub num_tokens: u32,
14    pub collection_params: CollectionParams,
15    pub splits_addr: Option<String>,
16    pub start_time: Option<Timestamp>,
17    pub minter_code_id: u64,
18    pub factory_code_id: u64,
19    pub sg721_code_id: u64,
20    pub init_msg: Option<VendingMinterInitMsgExtension>,
21}
22pub struct MinterCollectionResponse {
23    pub minter: Option<Addr>,
24    pub collection: Option<Addr>,
25    pub factory: Option<Addr>,
26    pub error: Option<Error>,
27}
28
29pub struct MinterInstantiateParams {
30    pub num_tokens: u32,
31    pub start_time: Option<Timestamp>,
32    pub splits_addr: Option<String>,
33    pub init_msg: Option<VendingMinterInitMsgExtension>,
34}
35
36use cosmwasm_schema::cw_serde;
37use open_edition_factory::msg::OpenEditionMinterInitMsgExtension;
38use open_edition_factory::types::NftData;
39
40#[cw_serde]
41pub struct CodeIds {
42    pub minter_code_id: u64,
43    pub factory_code_id: u64,
44    pub sg721_code_id: u64,
45}
46
47pub struct MinterTemplateResponse<T> {
48    pub collection_response_vec: Vec<MinterCollectionResponse>,
49    pub router: StargazeApp,
50    pub accts: T,
51}
52
53pub struct MinterTemplateResponseCodeIds<T> {
54    pub collection_response_vec: Vec<MinterCollectionResponse>,
55    pub router: StargazeApp,
56    pub accts: T,
57    pub code_ids: CodeIds,
58}
59
60pub struct Accounts {
61    pub creator: Addr,
62    pub buyer: Addr,
63}
64
65pub struct OpenEditionMinterSetupParams<'a> {
66    pub router: &'a mut StargazeApp,
67    pub minter_admin: Addr,
68    pub collection_params: CollectionParams,
69    pub start_time: Option<Timestamp>,
70    pub nft_data: NftData,
71    pub per_address_limit: u32,
72    pub end_time: Option<Timestamp>,
73    pub num_tokens: Option<u32>,
74    pub minter_code_id: u64,
75    pub factory_code_id: u64,
76    pub sg721_code_id: u64,
77    pub init_msg: Option<OpenEditionMinterInitMsgExtension>,
78    pub custom_params: Option<OpenEditionMinterParams>,
79}
80
81pub struct OpenEditionMinterInstantiateParams {
82    pub start_time: Option<Timestamp>,
83    pub end_time: Option<Timestamp>,
84    pub per_address_limit: Option<u32>,
85    pub num_tokens: Option<u32>,
86    pub nft_data: Option<NftData>,
87    pub init_msg: Option<OpenEditionMinterInitMsgExtension>,
88    pub params_extension: Option<ParamsExtension>,
89    pub custom_params: Option<OpenEditionMinterParams>,
90}
91
92#[derive(Default)]
93pub struct OpenEditionMinterCustomParams<'a> {
94    pub denom: Option<&'a str>,
95    pub mint_fee_bps: Option<u64>,
96    pub airdrop_mint_price_amount: Option<Uint128>,
97}