@@ -154,86 +154,86 @@ pub fn execute(
154
154
// then submit order
155
155
submit_order ( deps, & orderbook_pair, info. sender , direction, paid_assets)
156
156
}
157
- ExecuteMsg :: SubmitMarketOrder {
158
- direction,
159
- asset_infos,
160
- base_amount,
161
- quote_amount,
162
- slippage,
163
- } => {
164
- let pair_key = pair_key ( & [
165
- asset_infos[ 0 ] . to_raw ( deps. api ) ?,
166
- asset_infos[ 1 ] . to_raw ( deps. api ) ?,
167
- ] ) ;
168
- let orderbook_pair = read_orderbook ( deps. storage , & pair_key) ?;
169
-
170
- let offer_asset_info = match direction {
171
- OrderDirection :: Buy => orderbook_pair. quote_coin_info . to_normal ( deps. api ) ?,
172
- OrderDirection :: Sell => orderbook_pair. base_coin_info . to_normal ( deps. api ) ?,
173
- } ;
174
- let provided_asset = get_native_asset ( & info, offer_asset_info) ?;
175
-
176
- let expected_offer_amount = match direction {
177
- OrderDirection :: Buy => quote_amount,
178
- OrderDirection :: Sell => base_amount,
179
- } ;
180
-
181
- if let Some ( slippage) = slippage {
182
- if slippage >= Decimal :: one ( ) {
183
- return Err ( ContractError :: SlippageMustLessThanOne { slippage } ) ;
184
- }
185
- }
186
-
187
- let base_amount_response = query_price_by_base_amount (
188
- deps. as_ref ( ) ,
189
- & orderbook_pair,
190
- direction,
191
- base_amount,
192
- slippage,
193
- ) ?;
194
-
195
- // Return error if cannot find opposite side market order
196
- if base_amount_response. market_price . is_zero ( ) {
197
- return Err ( ContractError :: UnableToFindMarketOrder { } ) ;
198
- }
199
-
200
- let ( paid_assets, quote_asset) = get_market_asset (
201
- deps. api ,
202
- & orderbook_pair,
203
- direction,
204
- base_amount_response. market_price ,
205
- base_amount_response. expected_base_amount ,
206
- ) ?;
207
-
208
- if provided_asset. amount < expected_offer_amount {
209
- return Err ( ContractError :: AssetMismatch { } ) ;
210
- }
211
-
212
- // require minimum amount for quote asset
213
- if quote_asset. amount . lt ( & orderbook_pair. min_quote_coin_amount ) {
214
- return Err ( ContractError :: TooSmallQuoteAsset {
215
- quote_coin : quote_asset. info . to_string ( ) ,
216
- min_quote_amount : orderbook_pair. min_quote_coin_amount ,
217
- } ) ;
218
- }
219
-
220
- // calculate refund_amount
221
- let refund_amount = provided_asset
222
- . amount
223
- . checked_sub ( paid_assets[ 0 ] . amount )
224
- . unwrap_or_default ( ) ;
225
-
226
- // submit market order
227
- submit_market_order (
228
- deps,
229
- env. contract . address ,
230
- & orderbook_pair,
231
- info. sender ,
232
- direction,
233
- paid_assets,
234
- refund_amount,
235
- )
236
- }
157
+ // ExecuteMsg::SubmitMarketOrder {
158
+ // direction,
159
+ // asset_infos,
160
+ // base_amount,
161
+ // quote_amount,
162
+ // slippage,
163
+ // } => {
164
+ // let pair_key = pair_key(&[
165
+ // asset_infos[0].to_raw(deps.api)?,
166
+ // asset_infos[1].to_raw(deps.api)?,
167
+ // ]);
168
+ // let orderbook_pair = read_orderbook(deps.storage, &pair_key)?;
169
+
170
+ // let offer_asset_info = match direction {
171
+ // OrderDirection::Buy => orderbook_pair.quote_coin_info.to_normal(deps.api)?,
172
+ // OrderDirection::Sell => orderbook_pair.base_coin_info.to_normal(deps.api)?,
173
+ // };
174
+ // let provided_asset = get_native_asset(&info, offer_asset_info)?;
175
+
176
+ // let expected_offer_amount = match direction {
177
+ // OrderDirection::Buy => quote_amount,
178
+ // OrderDirection::Sell => base_amount,
179
+ // };
180
+
181
+ // if let Some(slippage) = slippage {
182
+ // if slippage >= Decimal::one() {
183
+ // return Err(ContractError::SlippageMustLessThanOne { slippage });
184
+ // }
185
+ // }
186
+
187
+ // let base_amount_response = query_price_by_base_amount(
188
+ // deps.as_ref(),
189
+ // &orderbook_pair,
190
+ // direction,
191
+ // base_amount,
192
+ // slippage,
193
+ // )?;
194
+
195
+ // // Return error if cannot find opposite side market order
196
+ // if base_amount_response.market_price.is_zero() {
197
+ // return Err(ContractError::UnableToFindMarketOrder {});
198
+ // }
199
+
200
+ // let (paid_assets, quote_asset) = get_market_asset(
201
+ // deps.api,
202
+ // &orderbook_pair,
203
+ // direction,
204
+ // base_amount_response.market_price,
205
+ // base_amount_response.expected_base_amount,
206
+ // )?;
207
+
208
+ // if provided_asset.amount < expected_offer_amount {
209
+ // return Err(ContractError::AssetMismatch {});
210
+ // }
211
+
212
+ // // require minimum amount for quote asset
213
+ // if quote_asset.amount.lt(&orderbook_pair.min_quote_coin_amount) {
214
+ // return Err(ContractError::TooSmallQuoteAsset {
215
+ // quote_coin: quote_asset.info.to_string(),
216
+ // min_quote_amount: orderbook_pair.min_quote_coin_amount,
217
+ // });
218
+ // }
219
+
220
+ // // calculate refund_amount
221
+ // let refund_amount = provided_asset
222
+ // .amount
223
+ // .checked_sub(paid_assets[0].amount)
224
+ // .unwrap_or_default();
225
+
226
+ // // submit market order
227
+ // submit_market_order(
228
+ // deps,
229
+ // env.contract.address,
230
+ // &orderbook_pair,
231
+ // info.sender,
232
+ // direction,
233
+ // paid_assets,
234
+ // refund_amount,
235
+ // )
236
+ // }
237
237
ExecuteMsg :: CancelOrder {
238
238
order_id,
239
239
asset_infos,
@@ -404,80 +404,80 @@ pub fn receive_cw20(
404
404
// then submit order
405
405
submit_order ( deps, & orderbook_pair, sender, direction, paid_assets)
406
406
}
407
- Ok ( Cw20HookMsg :: SubmitMarketOrder {
408
- direction,
409
- asset_infos,
410
- base_amount,
411
- quote_amount,
412
- slippage,
413
- } ) => {
414
- let pair_key = pair_key ( & [
415
- asset_infos[ 0 ] . to_raw ( deps. api ) ?,
416
- asset_infos[ 1 ] . to_raw ( deps. api ) ?,
417
- ] ) ;
418
- let orderbook_pair = read_orderbook ( deps. storage , & pair_key) ?;
419
-
420
- let expected_offer_amount = match direction {
421
- OrderDirection :: Buy => quote_amount,
422
- OrderDirection :: Sell => base_amount,
423
- } ;
424
-
425
- if let Some ( slippage) = slippage {
426
- if slippage >= Decimal :: one ( ) {
427
- return Err ( ContractError :: SlippageMustLessThanOne { slippage } ) ;
428
- }
429
- }
430
-
431
- let base_amount_response = query_price_by_base_amount (
432
- deps. as_ref ( ) ,
433
- & orderbook_pair,
434
- direction,
435
- base_amount,
436
- slippage,
437
- ) ?;
438
-
439
- // Return error if cannot find opposite side market order
440
- if base_amount_response. market_price . is_zero ( ) {
441
- return Err ( ContractError :: UnableToFindMarketOrder { } ) ;
442
- }
443
-
444
- let ( paid_assets, quote_asset) = get_market_asset (
445
- deps. api ,
446
- & orderbook_pair,
447
- direction,
448
- base_amount_response. market_price ,
449
- base_amount_response. expected_base_amount ,
450
- ) ?;
451
-
452
- if provided_asset. amount < expected_offer_amount {
453
- return Err ( ContractError :: AssetMismatch { } ) ;
454
- }
455
-
456
- // require minimum amount for quote asset
457
- if quote_asset. amount . lt ( & orderbook_pair. min_quote_coin_amount ) {
458
- return Err ( ContractError :: TooSmallQuoteAsset {
459
- quote_coin : quote_asset. info . to_string ( ) ,
460
- min_quote_amount : orderbook_pair. min_quote_coin_amount ,
461
- } ) ;
462
- }
463
-
464
- // calculate refund_amount
465
- let refund_amount = provided_asset
466
- . amount
467
- . checked_sub ( paid_assets[ 0 ] . amount )
468
- . unwrap_or_default ( ) ;
469
-
470
- // submit market order
471
- submit_market_order (
472
- deps,
473
- env. contract . address ,
474
- & orderbook_pair,
475
- sender,
476
- direction,
477
- paid_assets,
478
- refund_amount,
479
- )
480
- }
407
+ // Ok(Cw20HookMsg::SubmitMarketOrder {
408
+ // direction,
409
+ // asset_infos,
410
+ // base_amount,
411
+ // quote_amount,
412
+ // slippage,
413
+ // }) => {
414
+ // let pair_key = pair_key(&[
415
+ // asset_infos[0].to_raw(deps.api)?,
416
+ // asset_infos[1].to_raw(deps.api)?,
417
+ // ]);
418
+ // let orderbook_pair = read_orderbook(deps.storage, &pair_key)?;
419
+
420
+ // let expected_offer_amount = match direction {
421
+ // OrderDirection::Buy => quote_amount,
422
+ // OrderDirection::Sell => base_amount,
423
+ // };
424
+
425
+ // if let Some(slippage) = slippage {
426
+ // if slippage >= Decimal::one() {
427
+ // return Err(ContractError::SlippageMustLessThanOne { slippage });
428
+ // }
429
+ // }
430
+
431
+ // let base_amount_response = query_price_by_base_amount(
432
+ // deps.as_ref(),
433
+ // &orderbook_pair,
434
+ // direction,
435
+ // base_amount,
436
+ // slippage,
437
+ // )?;
438
+
439
+ // // Return error if cannot find opposite side market order
440
+ // if base_amount_response.market_price.is_zero() {
441
+ // return Err(ContractError::UnableToFindMarketOrder {});
442
+ // }
443
+
444
+ // let (paid_assets, quote_asset) = get_market_asset(
445
+ // deps.api,
446
+ // &orderbook_pair,
447
+ // direction,
448
+ // base_amount_response.market_price,
449
+ // base_amount_response.expected_base_amount,
450
+ // )?;
451
+
452
+ // if provided_asset.amount < expected_offer_amount {
453
+ // return Err(ContractError::AssetMismatch {});
454
+ // }
455
+
456
+ // // require minimum amount for quote asset
457
+ // if quote_asset.amount.lt(&orderbook_pair.min_quote_coin_amount) {
458
+ // return Err(ContractError::TooSmallQuoteAsset {
459
+ // quote_coin: quote_asset.info.to_string(),
460
+ // min_quote_amount: orderbook_pair.min_quote_coin_amount,
461
+ // });
462
+ // }
463
+
464
+ // // calculate refund_amount
465
+ // let refund_amount = provided_asset
466
+ // .amount
467
+ // .checked_sub(paid_assets[0].amount)
468
+ // .unwrap_or_default();
469
+
470
+ // // submit market order
471
+ // submit_market_order(
472
+ // deps,
473
+ // env.contract.address,
474
+ // &orderbook_pair,
475
+ // sender,
476
+ // direction,
477
+ // paid_assets,
478
+ // refund_amount,
479
+ // )
480
+ // }
481
481
Err ( _) => Err ( ContractError :: InvalidCw20HookMessage { } ) ,
482
482
}
483
483
}
@@ -605,11 +605,15 @@ pub fn query_contract_info(deps: Deps) -> StdResult<ContractInfoResponse> {
605
605
admin : deps. api . addr_humanize ( & info. admin ) ?,
606
606
commission_rate : info. commission_rate ,
607
607
reward_address : deps. api . addr_humanize ( & info. reward_address ) ?,
608
+ operator : if let Some ( operator) = info. operator {
609
+ Some ( deps. api . addr_humanize ( & operator) ?)
610
+ } else {
611
+ None
612
+ } ,
608
613
} )
609
614
}
610
615
611
616
#[ cfg_attr( not( feature = "library" ) , entry_point) ]
612
- pub fn migrate ( deps : DepsMut , _env : Env , msg : MigrateMsg ) -> StdResult < Response > {
613
- store_config ( deps. storage , & msg. new_config ) ?;
617
+ pub fn migrate ( _deps : DepsMut , _env : Env , _msg : MigrateMsg ) -> StdResult < Response > {
614
618
Ok ( Response :: default ( ) )
615
619
}
0 commit comments