7 "github.com/vapor/application/dex/common"
8 dbm "github.com/vapor/database/leveldb"
9 "github.com/vapor/protocol/bc"
19 dexStore = []byte("DEX:")
20 ordersPreFix = append(dexStore, order)
21 tradePairPreFix = append(dexStore, tradePair)
22 bestMatchStore = append(dexStore, matchStatus)
25 func calcOrdersPrefix(fromAssetID, toAssetID *bc.AssetID, utxoHash *bc.Hash, rate float64) []byte {
26 buf := make([]byte, 8)
27 binary.BigEndian.PutUint64(buf, math.Float64bits(rate))
28 key := append(ordersPreFix, fromAssetID.Bytes()...)
29 key = append(key, toAssetID.Bytes()...)
30 key = append(key, buf...)
31 return append(key, utxoHash.Bytes()...)
34 func calcTradePairPreFix(fromAssetID, toAssetID *bc.Hash) []byte {
35 key := append(ordersPreFix, fromAssetID.Bytes()...)
36 return append(key, toAssetID.Bytes()...)
39 type DexTradeOrderDB struct {
43 func (d *DexTradeOrderDB) GetTradePairsWithStart(start []byte) ([]common.TradePair, error) {
47 func (d *DexTradeOrderDB) addTradePair() error {
51 func (d *DexTradeOrderDB) deleteTradePair() error {
55 func (d *DexTradeOrderDB) ProcessOrders(addOrders []*common.Order, delOreders []*common.Order, height uint64, blockHash *bc.Hash) error {
60 func (d *DexTradeOrderDB) addOrders(orders []*common.Order) error {
64 func (d *DexTradeOrderDB) deleteOrder(orders []*common.Order) error {
68 func (d *DexTradeOrderDB) ListOrders(fromAssetID, toAssetID string, rateAfter float64) ([]*common.Order, error) {
72 func (d *DexTradeOrderDB) GetDexDatabaseState() (*common.DexDatabaseState, error) {
76 func (d *DexTradeOrderDB) saveDexDatabaseState(state *common.DexDatabaseState) error {