Commit e39dcfce authored by linj's avatar linj

通过table 实现本地数据,不需要额外返回kv

parent c0832f6e
...@@ -47,48 +47,42 @@ func (t *trade) localDelLog(tx *types.Transaction, receipt *types.ReceiptData, i ...@@ -47,48 +47,42 @@ func (t *trade) localDelLog(tx *types.Transaction, receipt *types.ReceiptData, i
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.deleteSell(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot) t.deleteSell(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeSellRevoke { } else if item.Ty == pty.TyLogTradeSellRevoke {
var receipt pty.ReceiptTradeSellRevoke var receipt pty.ReceiptTradeSellRevoke
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.deleteSell(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot) t.deleteSell(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeBuyMarket { } else if item.Ty == pty.TyLogTradeBuyMarket {
var receipt pty.ReceiptTradeBuyMarket var receipt pty.ReceiptTradeBuyMarket
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.deleteBuy(receipt.Base, txIndex, table) t.deleteBuy(receipt.Base, txIndex, table)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeBuyRevoke { } else if item.Ty == pty.TyLogTradeBuyRevoke {
var receipt pty.ReceiptTradeBuyRevoke var receipt pty.ReceiptTradeBuyRevoke
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.deleteBuyLimit(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot) t.deleteBuyLimit(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeBuyLimit { } else if item.Ty == pty.TyLogTradeBuyLimit {
var receipt pty.ReceiptTradeBuyLimit var receipt pty.ReceiptTradeBuyLimit
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.deleteBuyLimit(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot) t.deleteBuyLimit(receipt.Base, item.Ty, tx, txIndex, table, tradedBoardlot)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeSellMarket { } else if item.Ty == pty.TyLogTradeSellMarket {
var receipt pty.ReceiptSellMarket var receipt pty.ReceiptSellMarket
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.deleteSellMarket(receipt.Base, txIndex, table) t.deleteSellMarket(receipt.Base, txIndex, table)
set.KV = append(set.KV, kv...)
} }
} }
newKvs, err := table.Save() newKvs, err := table.Save()
......
...@@ -47,24 +47,21 @@ func (t *trade) localAddLog(tx *types.Transaction, receipt *types.ReceiptData, i ...@@ -47,24 +47,21 @@ func (t *trade) localAddLog(tx *types.Transaction, receipt *types.ReceiptData, i
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.saveSell(receipt.Base, item.Ty, tx, txIndex, table) t.saveSell(receipt.Base, item.Ty, tx, txIndex, table)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeSellRevoke { } else if item.Ty == pty.TyLogTradeSellRevoke {
var receipt pty.ReceiptTradeSellRevoke var receipt pty.ReceiptTradeSellRevoke
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.saveSell(receipt.Base, item.Ty, tx, txIndex, table) t.saveSell(receipt.Base, item.Ty, tx, txIndex, table)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeBuyMarket { } else if item.Ty == pty.TyLogTradeBuyMarket {
var receipt pty.ReceiptTradeBuyMarket var receipt pty.ReceiptTradeBuyMarket
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.saveBuy(receipt.Base, tx, txIndex, table) t.saveBuy(receipt.Base, tx, txIndex, table)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeBuyRevoke { } else if item.Ty == pty.TyLogTradeBuyRevoke {
var receipt pty.ReceiptTradeBuyRevoke var receipt pty.ReceiptTradeBuyRevoke
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
...@@ -72,8 +69,7 @@ func (t *trade) localAddLog(tx *types.Transaction, receipt *types.ReceiptData, i ...@@ -72,8 +69,7 @@ func (t *trade) localAddLog(tx *types.Transaction, receipt *types.ReceiptData, i
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.saveBuyLimit(receipt.Base, item.Ty, tx, txIndex, table) t.saveBuyLimit(receipt.Base, item.Ty, tx, txIndex, table)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeBuyLimit { } else if item.Ty == pty.TyLogTradeBuyLimit {
var receipt pty.ReceiptTradeBuyLimit var receipt pty.ReceiptTradeBuyLimit
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
...@@ -81,17 +77,14 @@ func (t *trade) localAddLog(tx *types.Transaction, receipt *types.ReceiptData, i ...@@ -81,17 +77,14 @@ func (t *trade) localAddLog(tx *types.Transaction, receipt *types.ReceiptData, i
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.saveBuyLimit(receipt.Base, item.Ty, tx, txIndex, table) t.saveBuyLimit(receipt.Base, item.Ty, tx, txIndex, table)
set.KV = append(set.KV, kv...)
} else if item.Ty == pty.TyLogTradeSellMarket { } else if item.Ty == pty.TyLogTradeSellMarket {
var receipt pty.ReceiptSellMarket var receipt pty.ReceiptSellMarket
err := types.Decode(item.Log, &receipt) err := types.Decode(item.Log, &receipt)
if err != nil { if err != nil {
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
kv := t.saveSellMarket(receipt.Base, tx, txIndex, table) t.saveSellMarket(receipt.Base, tx, txIndex, table)
//tradelog.Info("saveSellMarket", "kv", kv)
set.KV = append(set.KV, kv...)
} }
} }
newKvs, err := table.Save() newKvs, err := table.Save()
......
...@@ -74,7 +74,7 @@ func (t *trade) getSellOrderFromDb(sellID []byte) *pty.SellOrder { ...@@ -74,7 +74,7 @@ func (t *trade) getSellOrderFromDb(sellID []byte) *pty.SellOrder {
} }
// sell limit // sell limit
func (t *trade) saveSell(base *pty.ReceiptSellBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table) []*types.KeyValue { func (t *trade) saveSell(base *pty.ReceiptSellBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table) {
sellorder := t.getSellOrderFromDb([]byte(base.SellID)) sellorder := t.getSellOrderFromDb([]byte(base.SellID))
if ty == pty.TyLogTradeSellLimit && sellorder.SoldBoardlot == 0 { if ty == pty.TyLogTradeSellLimit && sellorder.SoldBoardlot == 0 {
...@@ -84,31 +84,27 @@ func (t *trade) saveSell(base *pty.ReceiptSellBase, ty int32, tx *types.Transact ...@@ -84,31 +84,27 @@ func (t *trade) saveSell(base *pty.ReceiptSellBase, ty int32, tx *types.Transact
} else { } else {
t.updateSellLimit(tx, base, sellorder, txIndex, ldb) t.updateSellLimit(tx, base, sellorder, txIndex, ldb)
} }
return nil
} }
func (t *trade) deleteSell(base *pty.ReceiptSellBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table, tradedBoardlot int64) []*types.KeyValue { func (t *trade) deleteSell(base *pty.ReceiptSellBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table, tradedBoardlot int64) {
sellorder := t.getSellOrderFromDb([]byte(base.SellID)) sellorder := t.getSellOrderFromDb([]byte(base.SellID))
if ty == pty.TyLogTradeSellLimit && sellorder.SoldBoardlot == 0 { if ty == pty.TyLogTradeSellLimit && sellorder.SoldBoardlot == 0 {
ldb.Del([]byte(txIndex)) ldb.Del([]byte(txIndex))
} else { } else {
t.rollBackSellLimit(tx, base, sellorder, txIndex, ldb, tradedBoardlot) t.rollBackSellLimit(tx, base, sellorder, txIndex, ldb, tradedBoardlot)
} }
return nil
} }
func (t *trade) saveBuy(receiptTradeBuy *pty.ReceiptBuyBase, tx *types.Transaction, txIndex string, ldb *table.Table) []*types.KeyValue { func (t *trade) saveBuy(receiptTradeBuy *pty.ReceiptBuyBase, tx *types.Transaction, txIndex string, ldb *table.Table) {
//tradelog.Info("save", "buy", receiptTradeBuy) //tradelog.Info("save", "buy", receiptTradeBuy)
order := t.genBuyMarket(tx, receiptTradeBuy, txIndex) order := t.genBuyMarket(tx, receiptTradeBuy, txIndex)
tradelog.Debug("trade BuyMarket save local", "order", order) tradelog.Debug("trade BuyMarket save local", "order", order)
ldb.Add(order) ldb.Add(order)
return nil
} }
func (t *trade) deleteBuy(receiptTradeBuy *pty.ReceiptBuyBase, txIndex string, ldb *table.Table) []*types.KeyValue { func (t *trade) deleteBuy(receiptTradeBuy *pty.ReceiptBuyBase, txIndex string, ldb *table.Table) {
ldb.Del([]byte(txIndex)) ldb.Del([]byte(txIndex))
return nil
} }
// BuyLimit Local // BuyLimit Local
...@@ -122,7 +118,7 @@ func (t *trade) getBuyOrderFromDb(buyID []byte) *pty.BuyLimitOrder { ...@@ -122,7 +118,7 @@ func (t *trade) getBuyOrderFromDb(buyID []byte) *pty.BuyLimitOrder {
return &buyOrder return &buyOrder
} }
func (t *trade) saveBuyLimit(buy *pty.ReceiptBuyBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table) []*types.KeyValue { func (t *trade) saveBuyLimit(buy *pty.ReceiptBuyBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table) {
buyOrder := t.getBuyOrderFromDb([]byte(buy.BuyID)) buyOrder := t.getBuyOrderFromDb([]byte(buy.BuyID))
tradelog.Debug("Table", "buy-add", buyOrder) tradelog.Debug("Table", "buy-add", buyOrder)
if buyOrder.Status == pty.TradeOrderStatusOnBuy && buy.BoughtBoardlot == 0 { if buyOrder.Status == pty.TradeOrderStatusOnBuy && buy.BoughtBoardlot == 0 {
...@@ -132,29 +128,25 @@ func (t *trade) saveBuyLimit(buy *pty.ReceiptBuyBase, ty int32, tx *types.Transa ...@@ -132,29 +128,25 @@ func (t *trade) saveBuyLimit(buy *pty.ReceiptBuyBase, ty int32, tx *types.Transa
} else { } else {
t.updateBuyLimit(tx, buy, buyOrder, txIndex, ldb) t.updateBuyLimit(tx, buy, buyOrder, txIndex, ldb)
} }
return nil
} }
func (t *trade) deleteBuyLimit(buy *pty.ReceiptBuyBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table, traded int64) []*types.KeyValue { func (t *trade) deleteBuyLimit(buy *pty.ReceiptBuyBase, ty int32, tx *types.Transaction, txIndex string, ldb *table.Table, traded int64) {
buyOrder := t.getBuyOrderFromDb([]byte(buy.BuyID)) buyOrder := t.getBuyOrderFromDb([]byte(buy.BuyID))
if ty == pty.TyLogTradeBuyLimit && buy.BoughtBoardlot == 0 { if ty == pty.TyLogTradeBuyLimit && buy.BoughtBoardlot == 0 {
ldb.Del([]byte(txIndex)) ldb.Del([]byte(txIndex))
} else { } else {
t.rollbackBuyLimit(tx, buy, buyOrder, txIndex, ldb, traded) t.rollbackBuyLimit(tx, buy, buyOrder, txIndex, ldb, traded)
} }
return nil
} }
func (t *trade) saveSellMarket(receiptTradeBuy *pty.ReceiptSellBase, tx *types.Transaction, txIndex string, ldb *table.Table) []*types.KeyValue { func (t *trade) saveSellMarket(receiptTradeBuy *pty.ReceiptSellBase, tx *types.Transaction, txIndex string, ldb *table.Table) {
order := t.genSellMarket(tx, receiptTradeBuy, txIndex) order := t.genSellMarket(tx, receiptTradeBuy, txIndex)
ldb.Add(order) ldb.Add(order)
return nil
} }
func (t *trade) deleteSellMarket(receiptTradeBuy *pty.ReceiptSellBase, txIndex string, ldb *table.Table) []*types.KeyValue { func (t *trade) deleteSellMarket(receiptTradeBuy *pty.ReceiptSellBase, txIndex string, ldb *table.Table) {
ldb.Del([]byte(txIndex)) ldb.Del([]byte(txIndex))
return nil
} }
// CheckReceiptExecOk return true to check if receipt ty is ok // CheckReceiptExecOk return true to check if receipt ty is ok
......
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