Commit 62f37a0f authored by linj's avatar linj Committed by vipwzw

price: update sell

parent dc5571de
...@@ -61,6 +61,8 @@ func (selldb *sellDB) getSellLogs(tradeType int32, txhash string) *types.Receipt ...@@ -61,6 +61,8 @@ func (selldb *sellDB) getSellLogs(tradeType int32, txhash string) *types.Receipt
TxHash: txhash, TxHash: txhash,
Height: selldb.Height, Height: selldb.Height,
AssetExec: selldb.AssetExec, AssetExec: selldb.AssetExec,
PriceExec: selldb.GetPriceExec(),
PriceSymbol: selldb.GetPriceSymbol(),
} }
if pty.TyLogTradeSellLimit == tradeType { if pty.TyLogTradeSellLimit == tradeType {
receiptTrade := &pty.ReceiptTradeSellLimit{Base: base} receiptTrade := &pty.ReceiptTradeSellLimit{Base: base}
...@@ -262,6 +264,12 @@ func (action *tradeAction) tradeSell(sell *pty.TradeForSell) (*types.Receipt, er ...@@ -262,6 +264,12 @@ func (action *tradeAction) tradeSell(sell *pty.TradeForSell) (*types.Receipt, er
if !checkAsset(action.height, sell.AssetExec, sell.TokenSymbol) { if !checkAsset(action.height, sell.AssetExec, sell.TokenSymbol) {
return nil, types.ErrInvalidParam return nil, types.ErrInvalidParam
} }
if !checkPrice(action.height, sell.PriceExec, sell.PriceExec) {
return nil, types.ErrInvalidParam
}
if !notSameAsset(action.height, sell.AssetExec, sell.TokenSymbol, sell.PriceExec, sell.PriceExec) {
return nil, pty.ErrAssetAndPriceSame
}
accDB, err := createAccountDB(action.height, action.db, sell.AssetExec, sell.TokenSymbol) accDB, err := createAccountDB(action.height, action.db, sell.AssetExec, sell.TokenSymbol)
if err != nil { if err != nil {
...@@ -292,6 +300,8 @@ func (action *tradeAction) tradeSell(sell *pty.TradeForSell) (*types.Receipt, er ...@@ -292,6 +300,8 @@ func (action *tradeAction) tradeSell(sell *pty.TradeForSell) (*types.Receipt, er
Status: pty.TradeOrderStatusOnSale, Status: pty.TradeOrderStatusOnSale,
Height: action.height, Height: action.height,
AssetExec: sell.AssetExec, AssetExec: sell.AssetExec,
PriceExec: sell.GetPriceExec(),
PriceSymbol: sell.GetPriceSymbol(),
} }
tokendb := newSellDB(sellOrder) tokendb := newSellDB(sellOrder)
......
...@@ -47,6 +47,28 @@ func checkAsset(height int64, exec, symbol string) bool { ...@@ -47,6 +47,28 @@ func checkAsset(height int64, exec, symbol string) bool {
return true return true
} }
func checkPrice(height int64, exec, symbol string) bool {
if types.IsDappFork(height, pt.TradeX, pt.ForkTradePriceX) {
if exec == "" || symbol == "" {
return false
}
} else {
if exec != "" || symbol != "" {
return false
}
}
return true
}
func notSameAsset(height int64, assetExec, assetSymbol, priceExec, priceSymbol string) bool {
if types.IsDappFork(height, pt.TradeX, pt.ForkTradePriceX) {
if assetExec == priceExec && assetSymbol == priceSymbol {
return false
}
}
return true
}
func createAccountDB(height int64, db db.KV, exec, symbol string) (*account.DB, error) { func createAccountDB(height int64, db db.KV, exec, symbol string) (*account.DB, error) {
if types.IsDappFork(height, pt.TradeX, pt.ForkTradeFixAssetDBX) { if types.IsDappFork(height, pt.TradeX, pt.ForkTradeFixAssetDBX) {
if exec == "" { if exec == "" {
......
...@@ -37,4 +37,6 @@ var ( ...@@ -37,4 +37,6 @@ var (
ErrTBuyOrderRevoke = errors.New("ErrTradeBuyOrderRevokeNotAllowed") ErrTBuyOrderRevoke = errors.New("ErrTradeBuyOrderRevokeNotAllowed")
//ErrTCntLessThanMinBoardlot : //ErrTCntLessThanMinBoardlot :
ErrTCntLessThanMinBoardlot = errors.New("ErrTradeCountLessThanMinBoardlot") ErrTCntLessThanMinBoardlot = errors.New("ErrTradeCountLessThanMinBoardlot")
// ErrAssetAndPriceSame :
ErrAssetAndPriceSame = errors.New("ErrAssetAndPriceSame")
) )
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment