/
key.go
52 lines (45 loc) · 1.37 KB
/
key.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
// Copyright [2021] - [2022], AssetMantle Pte. Ltd. and the code contributors
// SPDX-License-Identifier: Apache-2.0
package key
import (
errorConstants "github.com/AssetMantle/schema/go/errors/constants"
"github.com/AssetMantle/schema/go/ids"
baseIDs "github.com/AssetMantle/schema/go/ids/base"
"github.com/AssetMantle/modules/helpers"
)
var _ helpers.Key = (*Key)(nil)
func (key *Key) GenerateStorePrefixBytes() []byte {
return []byte{}
}
func (key *Key) GenerateStoreKeyBytes() []byte {
return key.MaintainerID.Bytes()
}
func (key *Key) GeneratePrefixedStoreKeyBytes() []byte {
return append(key.GenerateStorePrefixBytes(), key.GenerateStoreKeyBytes()...)
}
func (key *Key) IsPartial() bool {
return len(key.MaintainerID.Bytes()) == 0
}
func (key *Key) Equals(compareKey helpers.Key) bool {
if CompareKey, err := keyFromInterface(compareKey); err != nil {
return false
} else {
return key.MaintainerID.Compare(CompareKey.MaintainerID) == 0
}
}
func keyFromInterface(i interface{}) (*Key, error) {
switch value := i.(type) {
case *Key:
return value, nil
default:
return &Key{}, errorConstants.IncorrectFormat.Wrapf("incorrect key type")
}
}
func NewKey(maintainerID ids.MaintainerID) helpers.Key {
return &Key{
MaintainerID: maintainerID.(*baseIDs.MaintainerID),
}
}
func Prototype() helpers.Key {
return &Key{baseIDs.PrototypeMaintainerID().(*baseIDs.MaintainerID)}
}