--- /dev/null
+package database
+
+import (
+ "encoding/binary"
+ "math"
+
+ "github.com/vapor/application/dex/common"
+ dbm "github.com/vapor/database/leveldb"
+ "github.com/vapor/protocol/bc"
+)
+
+const (
+ order byte = iota
+ tradePair
+ matchStatus
+)
+
+var (
+ dexStore = []byte("DEX:")
+ ordersPreFix = append(dexStore, order)
+ tradePairPreFix = append(dexStore, tradePair)
+ bestMatchStore = append(dexStore, matchStatus)
+)
+
+func calcOrdersPrefix(fromAssetID, toAssetID *bc.AssetID, utxoHash *bc.Hash, rate float64) []byte {
+ buf := make([]byte, 8)
+ binary.BigEndian.PutUint64(buf, math.Float64bits(rate))
+ key := append(ordersPreFix, fromAssetID.Bytes()...)
+ key = append(key, toAssetID.Bytes()...)
+ key = append(key, buf...)
+ return append(key, utxoHash.Bytes()...)
+}
+
+func calcTradePairPreFix(fromAssetID, toAssetID *bc.Hash) []byte {
+ key := append(ordersPreFix, fromAssetID.Bytes()...)
+ return append(key, toAssetID.Bytes()...)
+}
+
+type DexTradeOrderDB struct {
+ db dbm.DB
+}
+
+func (d *DexTradeOrderDB) GetTradePairsWithStart(start []byte) ([]common.TradePair, error) {
+ return nil, nil
+}
+
+func (d *DexTradeOrderDB) addTradePair() error {
+ return nil
+}
+
+func (d *DexTradeOrderDB) deleteTradePair() error {
+ return nil
+}
+
+func (d *DexTradeOrderDB) ProcessOrders(addOrders []*common.Order, delOreders []*common.Order, height uint64, blockHash *bc.Hash) error {
+
+ return nil
+}
+
+func (d *DexTradeOrderDB) addOrders(orders []*common.Order) error {
+ return nil
+}
+
+func (d *DexTradeOrderDB) deleteOrder(orders []*common.Order) error {
+ return nil
+}
+
+func (d *DexTradeOrderDB) ListOrders(fromAssetID, toAssetID string, rateAfter float64) ([]*common.Order, error) {
+ return nil, nil
+}
+
+func (d *DexTradeOrderDB) GetDexDatabaseState() (*common.DexDatabaseState, error) {
+ return nil, nil
+}
+
+func (d *DexTradeOrderDB) saveDexDatabaseState(state *common.DexDatabaseState) error {
+ return nil
+}