HandleMessageCreateOrder() is the proper handler for a `CreateOrder` message
(msg *MessageCreateOrder)
| 379 | |
| 380 | // HandleMessageCreateOrder() is the proper handler for a `CreateOrder` message |
| 381 | func (s *StateMachine) HandleMessageCreateOrder(msg *MessageCreateOrder) (err lib.ErrorI) { |
| 382 | valParams, err := s.GetParamsVal() |
| 383 | if err != nil { |
| 384 | return |
| 385 | } |
| 386 | // ensure order isn't below the minimum size |
| 387 | if msg.AmountForSale < valParams.MinimumOrderSize { |
| 388 | return ErrMinimumOrderSize() |
| 389 | } |
| 390 | // subtract from account balance |
| 391 | address := crypto.NewAddress(msg.SellersSendAddress) |
| 392 | if err = s.AccountSub(address, msg.AmountForSale); err != nil { |
| 393 | return |
| 394 | } |
| 395 | // add to committee escrow pool |
| 396 | if err = s.PoolAdd(msg.ChainId+uint64(EscrowPoolAddend), msg.AmountForSale); err != nil { |
| 397 | return |
| 398 | } |
| 399 | // save the order in state |
| 400 | return s.SetOrder(&lib.SellOrder{ |
| 401 | Id: msg.OrderId, |
| 402 | Committee: msg.ChainId, |
| 403 | Data: msg.Data, |
| 404 | AmountForSale: msg.AmountForSale, |
| 405 | RequestedAmount: msg.RequestedAmount, |
| 406 | SellerReceiveAddress: msg.SellerReceiveAddress, |
| 407 | SellersSendAddress: msg.SellersSendAddress, |
| 408 | }, msg.ChainId) |
| 409 | } |
| 410 | |
| 411 | // HandleMessageEditOrder() is the proper handler for a `EditOrder` message |
| 412 | func (s *StateMachine) HandleMessageEditOrder(msg *MessageEditOrder) (err lib.ErrorI) { |