Compare commits

...
Author SHA1 Message Date
Ian Norden 0ccc53b4bb fixes from integration 2020-09-18 09:29:16 -05:00
Ian Norden 1574d1a968 Merge pull request #17 from vulcanize/ancient_support_1.9.10
Ancient support 1.9.10
2020-09-14 13:49:40 -05:00
2 changed files with 11 additions and 4 deletions
+9 -4
View File
@@ -22,6 +22,7 @@ type KeyType uint
const (
Invalid KeyType = iota
Static
Keccak
Prefixed
Suffixed
@@ -30,11 +31,11 @@ const (
)
var (
// keyDelineation is used to delineate the key prefixes and suffixes
KeyDelineation = []byte("/")
// KeyDelineation is used to delineate the key prefixes and suffixes
KeyDelineation = []byte("-fix-")
// numberDelineation is used to delineate the block number encoded in a key
NumberDelineation = []byte(":")
// NumberDelineation is used to delineate the block number encoded in a key
NumberDelineation = []byte("-nmb-")
// Data item prefixes (use single byte to avoid mixing data types, avoid `i`, used for indexes).
HeaderPrefix = []byte("h") // headerPrefix + num (uint64 big endian) + hash -> header
@@ -45,8 +46,12 @@ var (
func ResolveKeyType(key []byte) (KeyType, [][]byte) {
sk := bytes.Split(key, KeyDelineation)
// these heuristics are reliant on the current db key patterns
switch len(sk) {
case 1:
if len(sk[0]) < 32 {
return Static, sk
}
return Keccak, sk
case 2:
switch prefix := sk[0]; {
+2
View File
@@ -55,6 +55,8 @@ func DatastoreKeyFromGethKey(h []byte) (string, []byte, error) {
// I.e. the public.blocks datastore key == the hex representation of the geth key
// Alternatively, decompose the data and derive the hash
return common.Bytes2Hex(h), keyComponents[0], nil
case Static:
return common.Bytes2Hex(h), nil, nil
default:
return "", nil, fmt.Errorf("invalid formatting of database key: %x", h)
}