diff --git a/Cargo.lock b/Cargo.lock index f705c14..e7f4949 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1131,7 +1131,7 @@ dependencies = [ [[package]] name = "neutron-sdk" version = "0.11.0" -source = "git+https://github.com/neutron-org/neutron-sdk?branch=main#240ab2cce961e67b3dfa90c137eb64a6d15c1824" +source = "git+https://github.com/neutron-org/neutron-sdk?branch=main#a11018a9152bb0065868145266f35e283ac36b8e" dependencies = [ "bech32 0.9.1", "chrono", @@ -1155,7 +1155,7 @@ dependencies = [ [[package]] name = "neutron-std-derive" version = "0.20.1" -source = "git+https://github.com/neutron-org/neutron-sdk?branch=main#240ab2cce961e67b3dfa90c137eb64a6d15c1824" +source = "git+https://github.com/neutron-org/neutron-sdk?branch=main#a11018a9152bb0065868145266f35e283ac36b8e" dependencies = [ "itertools 0.10.5", "proc-macro2", diff --git a/contracts/tokenfactory/schema/execute_msg.json b/contracts/tokenfactory/schema/execute_msg.json index 82f89c2..ce3284f 100644 --- a/contracts/tokenfactory/schema/execute_msg.json +++ b/contracts/tokenfactory/schema/execute_msg.json @@ -66,6 +66,12 @@ }, "denom": { "type": "string" + }, + "mint_to_address": { + "type": [ + "string", + "null" + ] } }, "additionalProperties": false @@ -89,6 +95,12 @@ "amount": { "$ref": "#/definitions/Uint128" }, + "burn_from_address": { + "type": [ + "string", + "null" + ] + }, "denom": { "type": "string" } diff --git a/contracts/tokenfactory/src/contract.rs b/contracts/tokenfactory/src/contract.rs index c66085b..69bc940 100644 --- a/contracts/tokenfactory/src/contract.rs +++ b/contracts/tokenfactory/src/contract.rs @@ -33,12 +33,21 @@ pub fn execute( denom, new_admin_address, } => NeutronMsg::submit_change_admin(denom, new_admin_address).into(), - ExecuteMsg::MintTokens { denom, amount } => { - NeutronMsg::submit_mint_tokens(denom, amount, env.contract.address).into() - } - ExecuteMsg::BurnTokens { denom, amount } => { - NeutronMsg::submit_burn_tokens(denom, amount).into() - } + ExecuteMsg::MintTokens { + denom, + amount, + mint_to_address, + } => NeutronMsg::submit_mint_tokens( + denom, + amount, + mint_to_address.unwrap_or(env.contract.address.into()), + ) + .into(), + ExecuteMsg::BurnTokens { + denom, + amount, + burn_from_address, + } => NeutronMsg::submit_burn_tokens(denom, amount, burn_from_address).into(), ExecuteMsg::SetBeforeSendHook { denom, contract_addr, diff --git a/contracts/tokenfactory/src/msg.rs b/contracts/tokenfactory/src/msg.rs index e163c28..64da292 100644 --- a/contracts/tokenfactory/src/msg.rs +++ b/contracts/tokenfactory/src/msg.rs @@ -18,10 +18,12 @@ pub enum ExecuteMsg { MintTokens { denom: String, amount: Uint128, + mint_to_address: Option, }, BurnTokens { denom: String, amount: Uint128, + burn_from_address: Option, }, SendTokens { recipient: String,