Skip to content

Commit

Permalink
updated store to use new key/prefix setup
Browse files Browse the repository at this point in the history
  • Loading branch information
scottburch committed Mar 27, 2021
1 parent b5f3131 commit 871bd31
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 56 deletions.
1 change: 0 additions & 1 deletion x/oracle/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ func (k Keeper) GetStore(ctx sdk.Context) sdk.KVStore {
return ctx.KVStore(k.storeKey)
}


// Logger returns a module-specific logger.
func (k Keeper) Logger(ctx sdk.Context) log.Logger {
return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName))
Expand Down
4 changes: 2 additions & 2 deletions x/oracle/keeper/keeper_global_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ func (k Keeper) DumpGlobalConfig(ctx sdk.Context) types.GlobalOracleConfig {

func (k Keeper) SetAdminAddress(ctx sdk.Context, admin sdk.AccAddress) {
store := k.GetStore(ctx)
store.Set([]byte(types.ConfigStorePrefix + "admin-address"), admin)
store.Set(types.ConfigStoreKey.MakeKey("admin-address"), admin)
}

func (k Keeper) GetAdminAddress(ctx sdk.Context) sdk.AccAddress{
store := k.GetStore(ctx)
return store.Get([]byte(types.ConfigStorePrefix + "admin-address"))
return store.Get(types.ConfigStoreKey.MakeKey("admin-address"))
}
6 changes: 3 additions & 3 deletions x/oracle/keeper/keeper_proof.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ var voteProofs map[string]types.MsgOracleVoteProof
func (k Keeper) GetVoteProof(ctx sdk.Context, sourceName string, valcons string) types.MsgOracleVoteProof {
var msg types.MsgOracleVoteProof
proofStore := k.GetStore(ctx)
proof := proofStore.Get([]byte(types.ProofStorePrefix + sourceName + valcons))
proof := proofStore.Get([]byte(types.ProofStoreKey.MakeKey(sourceName, valcons)))
k.cdc.MustUnmarshalBinaryBare(proof, &msg)
return msg
}
Expand All @@ -24,7 +24,7 @@ func CalculateProofSig(value string) string {

func (k Keeper) StoreVoteProof(ctx sdk.Context, msg types.MsgOracleVoteProof) {
proofStore := k.GetStore(ctx)
proofStore.Set([]byte(types.ProofStorePrefix + msg.SourceName + msg.ValidatorAddr), k.cdc.MustMarshalBinaryBare(msg))
proofStore.Set([]byte(types.ProofStoreKey.MakeKey(msg.SourceName,msg.ValidatorAddr)), k.cdc.MustMarshalBinaryBare(msg))
}

func (k Keeper) IsVoteValid(ctx sdk.Context, msg types.MsgOracleVote) bool {
Expand Down Expand Up @@ -54,7 +54,7 @@ func (k Keeper) IsVoteValid(ctx sdk.Context, msg types.MsgOracleVote) bool {
}

func (k Keeper) SearchVoteProofs(ctx sdk.Context, prefix string) []types.MsgOracleVoteProof {
iterator := sdk.KVStorePrefixIterator(k.GetStore(ctx), []byte(types.ProofStorePrefix + prefix))
iterator := sdk.KVStorePrefixIterator(k.GetStore(ctx), types.ProofStoreKey.MakeKey(prefix))
defer iterator.Close()
proofs := make([]types.MsgOracleVoteProof, 0)

Expand Down
10 changes: 5 additions & 5 deletions x/oracle/keeper/keeper_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,25 @@ import (

func (k Keeper) AddSource(ctx sdk.Context, name string, source types.Source) {
store := k.GetStore(ctx)
store.Set([]byte(types.SourceStorePrefix + name), k.cdc.MustMarshalBinaryBare(source))
store.Set(types.SourceStoreKey.MakeKey(name), k.cdc.MustMarshalBinaryBare(source))
}

func (k Keeper) GetSource(ctx sdk.Context, name string) (types.Source, error) {
store := k.GetStore(ctx)
var source types.Source
err := k.cdc.UnmarshalBinaryBare(store.Get([]byte(types.SourceStorePrefix + name)), &source)
err := k.cdc.UnmarshalBinaryBare(store.Get(types.SourceStoreKey.MakeKey(name)), &source)
return source, err
}

func (k Keeper) DeleteSource(ctx sdk.Context, name string) error {
store := k.GetStore(ctx)
store.Delete([]byte(types.SourceStorePrefix + name))
store.Delete(types.SourceStoreKey.MakeKey(name))
return nil
}

func (k Keeper) ListSources(ctx sdk.Context) ([]types.Source, error) {
store := k.GetStore(ctx)
iterator := sdk.KVStorePrefixIterator(store, []byte(types.SourceStorePrefix))
iterator := sdk.KVStorePrefixIterator(store, types.SourceStoreKey.Prefix)
defer iterator.Close()
var sources = make([]types.Source, 0)
for ; iterator.Valid(); iterator.Next() {
Expand All @@ -40,7 +40,7 @@ func (k Keeper) ListSources(ctx sdk.Context) ([]types.Source, error) {
func (k Keeper) DumpSources(ctx sdk.Context) map[string] types.Source {
store := k.GetStore(ctx)
var results = make(map[string]types.Source)
iterator := sdk.KVStorePrefixIterator(store, []byte(types.SourceStorePrefix))
iterator := sdk.KVStorePrefixIterator(store, types.SourceStoreKey.Prefix)
for ; iterator.Valid(); iterator.Next() {
var source types.Source
k.cdc.UnmarshalBinaryBare(iterator.Value(), &source)
Expand Down
21 changes: 4 additions & 17 deletions x/oracle/keeper/keeper_value.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,6 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
)

type ValueKey struct {
Batch string
SourceName string
}

func (vk ValueKey) Bytes() []byte {
return []byte(types.ValueStorePrefix + vk.Batch + ">" + vk.SourceName)
}


func (k Keeper) RegisterValueUpdatedListener(listener types.ValueUpdateListener) {
valueUpdateListeners = append(valueUpdateListeners, listener)
}
Expand Down Expand Up @@ -44,10 +34,7 @@ func (k Keeper) UpdateSourceValue(ctx sdk.Context, batch string, sourceName stri
weight = source.Weight
}

key := ValueKey{
Batch: batch,
SourceName: sourceName,
}.Bytes()
key := types.ValueStoreKey.MakeKey(batch, sourceName)

sourceValue := types.SourceValue{
SourceName: sourceName,
Expand Down Expand Up @@ -87,9 +74,9 @@ func calculateAverageFromVotes(votes []types.Vote) sdk.Dec {
func (k Keeper) SearchSourceValues(ctx sdk.Context, prefix string, page uint, limit uint, reverse bool) []types.SourceValue {
var iterator sdk.Iterator
if reverse {
iterator = storeIterator.KVStoreReversePrefixIteratorPaginated(k.GetStore(ctx), []byte(types.ValueStorePrefix + prefix), page, limit)
iterator = storeIterator.KVStoreReversePrefixIteratorPaginated(k.GetStore(ctx), types.ValueStoreKey.MakeKey(prefix), page, limit)
} else {
iterator = storeIterator.KVStorePrefixIteratorPaginated(k.GetStore(ctx), []byte(types.ValueStorePrefix + prefix), page, limit)
iterator = storeIterator.KVStorePrefixIteratorPaginated(k.GetStore(ctx), types.ValueStoreKey.MakeKey(prefix), page, limit)
}
defer iterator.Close()
values := make([]types.SourceValue, 0)
Expand All @@ -110,7 +97,7 @@ func (k Keeper) SearchSourceValues(ctx sdk.Context, prefix string, page uint, li
func (k Keeper) DumpSourceValues(ctx sdk.Context) map[string] types.SourceValue {
store := k.GetStore(ctx)
var results = make(map[string]types.SourceValue)
iterator := sdk.KVStorePrefixIterator(store, []byte(types.ValueStorePrefix))
iterator := sdk.KVStorePrefixIterator(store, types.ValueStoreKey.Prefix)
for ; iterator.Valid(); iterator.Next() {
var value types.SourceValue
k.cdc.UnmarshalBinaryBare(iterator.Value(), &value)
Expand Down
26 changes: 6 additions & 20 deletions x/oracle/keeper/keeper_vote.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,12 @@ import (
)


type VoteKey struct {
Batch string
SourceName string
Valcons string
}

func voteToVoteKey(vote types.Vote) VoteKey {
return VoteKey{
Batch: vote.Batch,
SourceName: vote.SourceName,
Valcons: vote.Valcons,
}
}

func (vk VoteKey) Bytes() []byte {
return []byte(fmt.Sprintf("%s%s>%s>%s", types.VoteStorePrefix, vk.Batch, vk.SourceName, vk.Valcons))
func voteToVoteKey(vote types.Vote) []byte {
return types.VoteStoreKey.MakeKey(vote.Batch, vote.SourceName, vote.Valcons)
}

func (k Keeper) StoreVote(ctx sdk.Context, vote types.Vote) {
key := voteToVoteKey(vote).Bytes()
key := voteToVoteKey(vote)
store := k.GetStore(ctx)
store.Set(key, k.cdc.MustMarshalBinaryBare(vote))
}
Expand All @@ -41,7 +27,7 @@ func (k Keeper) DeleteVotes(ctx sdk.Context, prefix string) int {
}

func (k Keeper) SearchVoteKeys(ctx sdk.Context, prefix string) []string {
iterator := sdk.KVStorePrefixIterator(k.GetStore(ctx), []byte(types.VoteStorePrefix + prefix))
iterator := sdk.KVStorePrefixIterator(k.GetStore(ctx), types.VoteStoreKey.MakeKey(prefix))
defer iterator.Close()
keys := make([]string, 0)

Expand All @@ -62,7 +48,7 @@ func makeSearchVotePrefix(batch string, sourceName string) string {
}

func (k Keeper) SearchVotes(ctx sdk.Context, prefix string) []types.Vote {
iterator := sdk.KVStorePrefixIterator(k.GetStore(ctx), []byte(types.VoteStorePrefix + prefix))
iterator := sdk.KVStorePrefixIterator(k.GetStore(ctx), types.VoteStoreKey.MakeKey(prefix))
defer iterator.Close()
votes := make([]types.Vote, 0)

Expand All @@ -82,7 +68,7 @@ func (k Keeper) SearchVotes(ctx sdk.Context, prefix string) []types.Vote {
func (k Keeper) DumpVotes(ctx sdk.Context) map[string] types.Vote {
store := k.GetStore(ctx)
var results = make(map[string]types.Vote)
iterator := sdk.KVStorePrefixIterator(store, []byte(types.VoteStorePrefix))
iterator := sdk.KVStorePrefixIterator(store, types.VoteStoreKey.Prefix)
for ; iterator.Valid(); iterator.Next() {
var vote types.Vote
k.cdc.UnmarshalBinaryBare(iterator.Value(), &vote)
Expand Down
33 changes: 25 additions & 8 deletions x/oracle/types/key.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package types



import "strings"

const (
// ModuleName is the name of the module
Expand All @@ -16,10 +15,28 @@ const (
// QuerierRoute to be used for querier msgs
QuerierRoute = ModuleName

// Store prefixes
SourceStorePrefix = "SO"
ProofStorePrefix = "PR"
VoteStorePrefix = "VO"
ValueStorePrefix = "VA"
ConfigStorePrefix = "CO"
)

// Oracle store keys
var (
SourceStoreKey = NewOracleStoreKey(0x01)
ProofStoreKey = NewOracleStoreKey(0x02)
VoteStoreKey = NewOracleStoreKey(0x03)
ValueStoreKey = NewOracleStoreKey(0x04)
ConfigStoreKey = NewOracleStoreKey(0x05)
)

type OracleStoreKey struct {
Prefix []byte
}

func NewOracleStoreKey(prefix uint8) OracleStoreKey {
return OracleStoreKey{
Prefix: []byte{prefix},
}
}

func (sk OracleStoreKey) MakeKey(s ...string) []byte {
return append(sk.Prefix, []byte(strings.Join(s, ">"))...)
}

0 comments on commit 871bd31

Please sign in to comment.