-
Notifications
You must be signed in to change notification settings - Fork 1
/
kv.go
123 lines (97 loc) · 3.72 KB
/
kv.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package executor
import (
"fmt"
"github.com/assetcloud/chain/common/address"
"strings"
ty "github.com/assetcloud/plugin/plugin/dapp/relay/types"
)
const (
relayOrderSCAIH = "LODB-relay-sellorder-scaih:"
relayOrderCSAIH = "LODB-relay-sellorder-csaih:"
relayOrderASCIH = "LODB-relay-sellorder-ascih:"
relayOrderACSIH = "LODB-relay-sellorder-acsih:"
relayBuyOrderACSIH = "LODB-relay-buyorder-acsih:"
orderIDPrefix = "mavl-relay-orderid-"
coinHashPrefix = "mavl-relay-coinhash-"
btcLastHead = "mavl-relay-btclasthead"
relayBTCHeaderHash = "LODB-relay-btcheader-hash"
relayBTCHeaderHeight = "LODB-relay-btcheader-height"
relayBTCHeaderHeightList = "LODB-relay-btcheader-height-list"
)
var (
relayBTCHeaderLastHeight = []byte("LODB-relay-btcheader-last-height")
relayBTCHeaderBaseHeight = []byte("LODB-relay-btcheader-base-height")
)
func calcBtcHeaderKeyHash(hash string) []byte {
key := fmt.Sprintf(relayBTCHeaderHash+"%s", hash)
return []byte(key)
}
func calcBtcHeaderKeyHeight(height int64) []byte {
key := fmt.Sprintf(relayBTCHeaderHeight+"%d", height)
return []byte(key)
}
func calcBtcHeaderKeyHeightList(height int64) []byte {
key := fmt.Sprintf(relayBTCHeaderHeightList+"%d", height)
return []byte(key)
}
func calcOrderKeyStatus(order *ty.RelayOrder, status int32) []byte {
key := fmt.Sprintf(relayOrderSCAIH+"%d:%s:%s:%s:%d",
status, order.XCoin, address.FormatAddrKey(order.CreaterAddr), order.Id, order.Height)
return []byte(key)
}
func calcOrderKeyCoin(order *ty.RelayOrder, status int32) []byte {
key := fmt.Sprintf(relayOrderCSAIH+"%s:%d:%s:%s:%d",
order.XCoin, status, address.FormatAddrKey(order.CreaterAddr), order.Id, order.Height)
return []byte(key)
}
func calcOrderKeyAddrStatus(order *ty.RelayOrder, status int32) []byte {
key := fmt.Sprintf(relayOrderASCIH+"%s:%d:%s:%s:%d",
address.FormatAddrKey(order.CreaterAddr), status, order.XCoin, order.Id, order.Height)
return []byte(key)
}
func calcOrderKeyAddrCoin(order *ty.RelayOrder, status int32) []byte {
key := fmt.Sprintf(relayOrderACSIH+"%s:%s:%d:%s:%d",
address.FormatAddrKey(order.CreaterAddr), order.XCoin, status, order.Id, order.Height)
return []byte(key)
}
func calcOrderPrefixStatus(status int32) []byte {
prefix := fmt.Sprintf(relayOrderSCAIH+"%d:", status)
return []byte(prefix)
}
func calcOrderPrefixCoinStatus(coin string, status int32) []byte {
prefix := fmt.Sprintf(relayOrderCSAIH+"%s:%d:", coin, status)
return []byte(prefix)
}
func calcOrderPrefixAddrCoin(addr string, coin string) []byte {
key := fmt.Sprintf(relayOrderACSIH+"%s:%s", address.FormatAddrKey(addr), coin)
return []byte(key)
}
func calcOrderPrefixAddr(addr string) []byte {
return []byte(fmt.Sprintf(relayOrderACSIH+"%s", address.FormatAddrKey(addr)))
}
func calcAcceptKeyAddr(order *ty.RelayOrder, status int32) []byte {
if order.AcceptAddr != "" {
return []byte(fmt.Sprintf(relayBuyOrderACSIH+"%s:%s:%d:%s:%d",
address.FormatAddrKey(order.AcceptAddr), order.XCoin, status, order.Id, order.Height))
}
return nil
}
func calcAcceptPrefixAddr(addr string) []byte {
return []byte(fmt.Sprintf(relayBuyOrderACSIH+"%s", address.FormatAddrKey(addr)))
}
func calcAcceptPrefixAddrCoin(addr, coin string) []byte {
return []byte(fmt.Sprintf(relayBuyOrderACSIH+"%s:%s", address.FormatAddrKey(addr), coin))
}
func calcRelayOrderID(hash string) string {
return orderIDPrefix + hash
}
func calcCoinHash(hash string) string {
return coinHashPrefix + hash
}
func getRealTxHashID(id string) string {
ids := strings.Split(id, "-")
return ids[len(ids)-1]
}