Commit 6bdad40a authored by cxb's avatar cxb Committed by vipwzw

fix bug for revokeOrder

parent 934cd0a7
...@@ -431,6 +431,7 @@ banks = ["1PTGVR7TUm1MJUH7M1UNcKBGMvfJ7nCrnN"]#Fee ...@@ -431,6 +431,7 @@ banks = ["1PTGVR7TUm1MJUH7M1UNcKBGMvfJ7nCrnN"]#Fee
#minFee最小手续费,配置时需*1e8(如:最小手续费收取1个,minFee=100000000) #minFee最小手续费,配置时需*1e8(如:最小手续费收取1个,minFee=100000000)
coins = [ coins = [
{ name = "bty", rate = 100000, minFee = 0 }, { name = "bty", rate = 100000, minFee = 0 },
{ name = "coins.bty", rate = 100000, minFee = 0 },
{ name = "ETH", rate = 100000, minFee = 0 }, { name = "ETH", rate = 100000, minFee = 0 },
{ name = "USDT", rate = 100000, minFee = 0 }, { name = "USDT", rate = 100000, minFee = 0 },
] ]
......
...@@ -432,6 +432,7 @@ banks = ["1PTGVR7TUm1MJUH7M1UNcKBGMvfJ7nCrnN"]#Fee ...@@ -432,6 +432,7 @@ banks = ["1PTGVR7TUm1MJUH7M1UNcKBGMvfJ7nCrnN"]#Fee
#minFee最小手续费,配置时需*1e8(如:最小手续费收取1个,minFee=100000000) #minFee最小手续费,配置时需*1e8(如:最小手续费收取1个,minFee=100000000)
coins = [ coins = [
{ name = "bty", rate = 100000, minFee = 0 }, { name = "bty", rate = 100000, minFee = 0 },
{ name = "coins.bty", rate = 100000, minFee = 0 },
{ name = "ETH", rate = 100000, minFee = 0 }, { name = "ETH", rate = 100000, minFee = 0 },
{ name = "USDT", rate = 100000, minFee = 0 }, { name = "USDT", rate = 100000, minFee = 0 },
] ]
......
...@@ -347,6 +347,7 @@ banks = ["1PTGVR7TUm1MJUH7M1UNcKBGMvfJ7nCrnN"]#Fee ...@@ -347,6 +347,7 @@ banks = ["1PTGVR7TUm1MJUH7M1UNcKBGMvfJ7nCrnN"]#Fee
#minFee最小手续费,配置时需*1e8(如:最小手续费收取1个,minFee=100000000) #minFee最小手续费,配置时需*1e8(如:最小手续费收取1个,minFee=100000000)
coins = [ coins = [
{ name = "bty", rate = 100000, minFee = 0 }, { name = "bty", rate = 100000, minFee = 0 },
{ name = "coins.bty", rate = 100000, minFee = 0 },
{ name = "ETH", rate = 100000, minFee = 0 }, { name = "ETH", rate = 100000, minFee = 0 },
{ name = "USDT", rate = 100000, minFee = 0 }, { name = "USDT", rate = 100000, minFee = 0 },
] ]
\ No newline at end of file
...@@ -564,31 +564,22 @@ func (a *Action) matchModel(leftAccountDB, rightAccountDB *account.DB, payload * ...@@ -564,31 +564,22 @@ func (a *Action) matchModel(leftAccountDB, rightAccountDB *account.DB, payload *
return logs, kvs, nil return logs, kvs, nil
} }
//根据订单号查询,分为两步,优先去localdb中查询,如没有则再去状态数据库中查询 //根据订单号去状态数据库中查询
// 1.挂单中得订单信会根据orderID在localdb中存储 // 1.localdb删除顺序,先实时删除缓存,区块生成时统一修改db。会导致缓存数据被删除但查询时缓存查询不到会去db查询依旧可以查询到删除的数据
// 2.订单撤销,或者成交后,根据orderID在localdb中存储得数据会被删除,这时只能到状态数据库中查询
func findOrderByOrderID(statedb dbm.KV, localdb dbm.KV, orderID int64) (*et.Order, error) { func findOrderByOrderID(statedb dbm.KV, localdb dbm.KV, orderID int64) (*et.Order, error) {
table := NewMarketOrderTable(localdb) data, err := statedb.Get(calcOrderKey(orderID))
primaryKey := []byte(fmt.Sprintf("%022d", orderID))
row, err := table.GetData(primaryKey)
if err != nil { if err != nil {
data, err := statedb.Get(calcOrderKey(orderID)) elog.Error("findOrderByOrderID.Get", "orderID", orderID, "err", err.Error())
if err != nil { return nil, err
elog.Error("findOrderByOrderID.Get", "orderID", orderID, "err", err.Error()) }
return nil, err var order et.Order
} err = types.Decode(data, &order)
var order et.Order if err != nil {
err = types.Decode(data, &order) elog.Error("findOrderByOrderID.Decode", "orderID", orderID, "err", err.Error())
if err != nil { return nil, err
elog.Error("findOrderByOrderID.Decode", "orderID", orderID, "err", err.Error())
return nil, err
}
order.Executed = order.GetLimitOrder().Amount - order.Balance
return &order, nil
} }
order := row.Data.(*et.Order)
order.Executed = order.GetLimitOrder().Amount - order.Balance order.Executed = order.GetLimitOrder().Amount - order.Balance
return order, nil return &order, nil
} }
func findOrderIDListByPrice(localdb dbm.KV, left, right *et.Asset, price int64, op, direction int32, primaryKey string) (*et.OrderList, error) { func findOrderIDListByPrice(localdb dbm.KV, left, right *et.Asset, price int64, op, direction int32, primaryKey string) (*et.OrderList, error) {
......
package executor package executor
import ( import (
"fmt"
"github.com/33cn/chain33/common/db/table" "github.com/33cn/chain33/common/db/table"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
ety "github.com/33cn/plugin/plugin/dapp/exchange/types" ety "github.com/33cn/plugin/plugin/dapp/exchange/types"
...@@ -191,10 +192,10 @@ func (e *exchange) updateOrder(marketTable, orderTable, historyTable *table.Tabl ...@@ -191,10 +192,10 @@ func (e *exchange) updateOrder(marketTable, orderTable, historyTable *table.Tabl
} }
} }
//删除原有状态orderID //删除原有状态orderID
order.Status = ety.Ordered primaryKey := []byte(fmt.Sprintf("%022d", order.OrderID))
err = orderTable.DelRow(order) err = orderTable.Del(primaryKey)
if err != nil { if err != nil {
elog.Error("updateIndex", "orderTable.DelRow", err.Error()) elog.Error("updateIndex", "orderTable.Del", err.Error())
return err return err
} }
order.Status = ety.Revoked order.Status = ety.Revoked
......
...@@ -273,16 +273,5 @@ coins = [ ...@@ -273,16 +273,5 @@ coins = [
{name = "CCNY", rate = 100000, minFee = 0}, {name = "CCNY", rate = 100000, minFee = 0},
] ]
#[mver.exec.sub.exchange.ForkParamV1]
#banks = [
# "1PTGVR7TUm1MJUH7M1UNcKBGMvfJ7nCrnN"
#]
#coins = [
# {name = "bty", rate = 100000, minFee = 1000000},
# {name = "CCNY", rate = 100000, minFee = 1000000},
#]
[fork.sub.exchange] [fork.sub.exchange]
Enable=0 Enable=0
#ForkParamV1=1 \ No newline at end of file
\ No newline at end of file
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