diff --git a/Cargo.lock b/Cargo.lock index bea96f65..853d1e5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1562,6 +1562,7 @@ dependencies = [ "cw2 0.16.0", "injective-cosmwasm 0.2.21", "injective-math 0.2.4", + "injective-protobuf", "injective-std 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "injective-test-tube", "prost 0.11.9", diff --git a/contracts/injective-cosmwasm-mock/Cargo.toml b/contracts/injective-cosmwasm-mock/Cargo.toml index 71c3868a..b33b0eab 100644 --- a/contracts/injective-cosmwasm-mock/Cargo.toml +++ b/contracts/injective-cosmwasm-mock/Cargo.toml @@ -40,6 +40,7 @@ serde = { version = "1.0.196", default-features = false, features = thiserror = { version = "1.0.56" } protobuf = "3.3.0" prost = "0.11.9" +injective-protobuf = { path = "../../packages/injective-protobuf" } [dev-dependencies] injective-test-tube = "1.1.7" diff --git a/contracts/injective-cosmwasm-mock/src/contract.rs b/contracts/injective-cosmwasm-mock/src/contract.rs index 470b98b1..f828a503 100644 --- a/contracts/injective-cosmwasm-mock/src/contract.rs +++ b/contracts/injective-cosmwasm-mock/src/contract.rs @@ -2,16 +2,20 @@ use crate::{ error::ContractError, msg::{ExecuteMsg, InstantiateMsg, QueryMsg}, }; -use cosmwasm_std::{to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult}; +use cosmwasm_std::{to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult, SubMsg}; use cw2::set_contract_version; use injective_cosmwasm::{create_deposit_msg, InjectiveMsgWrapper, InjectiveQuerier, InjectiveQueryWrapper}; + #[cfg(not(feature = "library"))] use cosmwasm_std::entry_point; +use injective_std::types::injective::exchange::v1beta1::MsgCreateSpotLimitOrder; const CONTRACT_NAME: &str = "crates.io:injective:dummy"; const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); +pub const CREATE_SPOT_ORDER_REPLY_ID: u64 = 0u64; + #[cfg_attr(not(feature = "library"), entry_point)] pub fn instantiate(deps: DepsMut, _env: Env, _info: MessageInfo, _msg: InstantiateMsg) -> Result { set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; @@ -22,13 +26,38 @@ pub fn instantiate(deps: DepsMut, _env: Env, _info: MessageInfo, _msg: Instantia pub fn execute( _deps: DepsMut, env: Env, - _info: MessageInfo, + info: MessageInfo, msg: ExecuteMsg, ) -> Result, ContractError> { match msg { ExecuteMsg::TestDepositMsg { subaccount_id, amount } => { Ok(Response::new().add_message(create_deposit_msg(env.contract.address, subaccount_id, amount))) } + ExecuteMsg::TestTraderTransientSpotOrders { market_id, subaccount_id } => { + Ok(Response::new().add_submessage( SubMsg::reply_on_success { + id: CREATE_SPOT_ORDER_REPLY_ID, + msg: + MsgCreateSpotLimitOrder { + sender: info.sender.to_string(), + order: Some(injective_std::types::injective::exchange::v1beta1::SpotOrder { + market_id: market_id.into(), + order_info: Some(injective_std::types::injective::exchange::v1beta1::OrderInfo { + subaccount_id: subaccount_id.to_string(), + fee_recipient: info.sender.to_string(), + price: "10".to_string(), + quantity: "10".to_string(), + }), + order_type: 1, + trigger_price: "".to_string(), + }), + }, + })) + + } + ExecuteMsg::TestTraderTransientDerivativeOrders { market_id, subaccount_id } => { + // to_json_binary(&querier.query_trader_transient_derivative_orders(&market_id, &subaccount_id)?) + Ok(Default::default()) + } } } @@ -50,12 +79,6 @@ pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> Std QueryMsg::TestTraderDerivativeOrders { market_id, subaccount_id } => { to_json_binary(&querier.query_trader_derivative_orders(&market_id, &subaccount_id)?) } - QueryMsg::TestTraderTransientSpotOrders { market_id, subaccount_id } => { - to_json_binary(&querier.query_trader_transient_spot_orders(&market_id, &subaccount_id)?) - } - QueryMsg::TestTraderTransientDerivativeOrders { market_id, subaccount_id } => { - to_json_binary(&querier.query_trader_transient_derivative_orders(&market_id, &subaccount_id)?) - } QueryMsg::TestTraderSpotOrders { market_id, subaccount_id } => to_json_binary(&querier.query_trader_spot_orders(&market_id, &subaccount_id)?), QueryMsg::TestSpotOrdersToCancelUpToAmount { market_id, diff --git a/contracts/injective-cosmwasm-mock/src/msg.rs b/contracts/injective-cosmwasm-mock/src/msg.rs index 511f37a6..56c1e0f4 100644 --- a/contracts/injective-cosmwasm-mock/src/msg.rs +++ b/contracts/injective-cosmwasm-mock/src/msg.rs @@ -11,6 +11,14 @@ pub struct InstantiateMsg {} #[serde(rename_all = "snake_case")] pub enum ExecuteMsg { TestDepositMsg { subaccount_id: SubaccountId, amount: Coin }, + TestTraderTransientSpotOrders { + market_id: MarketId, + subaccount_id: SubaccountId, + }, + TestTraderTransientDerivativeOrders { + market_id: MarketId, + subaccount_id: SubaccountId, + }, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] @@ -39,14 +47,6 @@ pub enum QueryMsg { market_id: MarketId, subaccount_id: SubaccountId, }, - TestTraderTransientSpotOrders { - market_id: MarketId, - subaccount_id: SubaccountId, - }, - TestTraderTransientDerivativeOrders { - market_id: MarketId, - subaccount_id: SubaccountId, - }, TestTraderSpotOrders { market_id: MarketId, subaccount_id: SubaccountId,