diff --git a/contracts/collections/sg721-base/src/contract.rs b/contracts/collections/sg721-base/src/contract.rs index 3d7861441..f39d00e0e 100644 --- a/contracts/collections/sg721-base/src/contract.rs +++ b/contracts/collections/sg721-base/src/contract.rs @@ -98,6 +98,9 @@ where Ok(Response::new() .add_attribute("action", "instantiate") .add_attribute("collection_name", info.name) + .add_attribute("collection_symbol", info.symbol) + .add_attribute("collection_creator", collection_info.creator) + .add_attribute("minter", msg.minter) .add_attribute("image", image.to_string())) } diff --git a/contracts/minters/vending-minter-wl-flex/src/contract.rs b/contracts/minters/vending-minter-wl-flex/src/contract.rs index 494a7e84b..e510c891e 100644 --- a/contracts/minters/vending-minter-wl-flex/src/contract.rs +++ b/contracts/minters/vending-minter-wl-flex/src/contract.rs @@ -20,11 +20,11 @@ use cw_utils::{may_pay, maybe_addr, nonpayable, parse_reply_instantiate_data}; use rand_core::{RngCore, SeedableRng}; use rand_xoshiro::Xoshiro128PlusPlus; use semver::Version; -use sg1::checked_fair_burn; +use sg1::{checked_fair_burn, ibc_denom_fair_burn}; use sg2::query::Sg2QueryMsg; use sg4::{MinterConfig, Status, StatusResponse, SudoMsg}; use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg}; -use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME}; +use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME, NATIVE_DENOM}; use sg_whitelist_flex::msg::{ ConfigResponse as WhitelistConfigResponse, HasMemberResponse, Member, QueryMsg as WhitelistQueryMsg, @@ -619,7 +619,7 @@ fn _execute_mint( let mint_price: Coin = mint_price(deps.as_ref(), is_admin)?; // Exact payment only accepted - let payment = may_pay(&info, &config.mint_price.denom)?; + let payment = may_pay(&info, &mint_price.denom)?; if payment != mint_price.amount { return Err(ContractError::IncorrectPaymentAmount( coin(payment.u128(), &config.mint_price.denom), @@ -641,7 +641,19 @@ fn _execute_mint( Decimal::bps(factory_params.mint_fee_bps) }; let network_fee = mint_price.amount * mint_fee; - checked_fair_burn(&info, network_fee.u128(), None, &mut res)?; + // use ibc_denom_fair_burn for non native denoms + if mint_price.denom != NATIVE_DENOM { + // only send non-zero amounts + if !network_fee.is_zero() { + ibc_denom_fair_burn( + coin(network_fee.u128(), mint_price.clone().denom), + None, + &mut res, + )?; + } + } else { + checked_fair_burn(&info, network_fee.u128(), None, &mut res)?; + } let mintable_token_mapping = match token_id { Some(token_id) => { @@ -1009,7 +1021,7 @@ pub fn mint_price(deps: Deps, is_admin: bool) -> Result { if is_admin { return Ok(coin( factory_params.extension.airdrop_mint_price.amount.u128(), - config.mint_price.denom, + factory_params.extension.airdrop_mint_price.denom, )); } diff --git a/contracts/minters/vending-minter/src/contract.rs b/contracts/minters/vending-minter/src/contract.rs index f105e90dc..da484f29d 100644 --- a/contracts/minters/vending-minter/src/contract.rs +++ b/contracts/minters/vending-minter/src/contract.rs @@ -625,7 +625,7 @@ fn _execute_mint( let mint_price: Coin = mint_price(deps.as_ref(), is_admin)?; // Exact payment only accepted - let payment = may_pay(&info, &config.mint_price.denom)?; + let payment = may_pay(&info, &mint_price.denom)?; if payment != mint_price.amount { return Err(ContractError::IncorrectPaymentAmount( coin(payment.u128(), &config.mint_price.denom), @@ -1045,7 +1045,7 @@ pub fn mint_price(deps: Deps, is_admin: bool) -> Result { if is_admin { return Ok(coin( factory_params.extension.airdrop_mint_price.amount.u128(), - config.mint_price.denom, + factory_params.extension.airdrop_mint_price.denom, )); }