From 36f38287afe1931d359152a1cd600927815e5a4c Mon Sep 17 00:00:00 2001 From: scott Date: Mon, 22 Mar 2021 18:44:58 -0700 Subject: [PATCH] created vote and value struct for keys --- x/oracle/keeper/keeper_value.go | 22 ++++++++++++++---- x/oracle/keeper/keeper_vote.go | 29 +++++++++++++++++------ x/oracle/keeper/keeper_vote_test.go | 36 ----------------------------- 3 files changed, 39 insertions(+), 48 deletions(-) delete mode 100644 x/oracle/keeper/keeper_vote_test.go diff --git a/x/oracle/keeper/keeper_value.go b/x/oracle/keeper/keeper_value.go index 6978cd09..a9110fc2 100644 --- a/x/oracle/keeper/keeper_value.go +++ b/x/oracle/keeper/keeper_value.go @@ -7,6 +7,16 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) +type ValueKey struct { + Batch string + SourceName string +} + +func (vk ValueKey) Bytes() []byte { + return []byte(fmt.Sprintf("%s>%s", vk.Batch, vk.SourceName)) +} + + func (k Keeper) RegisterValueUpdatedListener(listener types.ValueUpdateListener) { valueUpdateListeners = append(valueUpdateListeners, listener) } @@ -39,7 +49,11 @@ func (k Keeper) UpdateSourceValue(ctx sdk.Context, batch string, sourceName stri weight = source.Weight } - key := MakeSourceValueKey(batch, sourceName) + key := ValueKey{ + Batch: batch, + SourceName: sourceName, + }.Bytes() + sourceValue := types.SourceValue{ SourceName: sourceName, Batch: batch, @@ -49,16 +63,14 @@ func (k Keeper) UpdateSourceValue(ctx sdk.Context, batch string, sourceName stri Count: int64(len(votes)), Weight: weight, } - store.Set([]byte(key), k.cdc.MustMarshalBinaryBare(sourceValue)) + store.Set(key, k.cdc.MustMarshalBinaryBare(sourceValue)) for _, listener := range valueUpdateListeners { listener(ctx, sourceValue) } } -func MakeSourceValueKey(batch string, sourceName string) string { - return fmt.Sprintf("%s>%s", batch, sourceName) -} + func calculateAverageFromVotes(votes []types.Vote) sdk.Dec { diff --git a/x/oracle/keeper/keeper_vote.go b/x/oracle/keeper/keeper_vote.go index a15eccbf..a3f403f8 100644 --- a/x/oracle/keeper/keeper_vote.go +++ b/x/oracle/keeper/keeper_vote.go @@ -6,19 +6,34 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) + +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", vk.Batch, vk.SourceName, vk.Valcons)) +} + func (k Keeper) GetVoteStore(ctx sdk.Context) sdk.KVStore { return ctx.KVStore(k.voteStoreKey) } -func CreateVoteKey(vote types.Vote) string { - return fmt.Sprintf("%s>%s>%s", vote.Batch, vote.SourceName, vote.Valcons) -} -func (k Keeper) StoreVote(ctx sdk.Context, vote types.Vote) string { - key := CreateVoteKey(vote) +func (k Keeper) StoreVote(ctx sdk.Context, vote types.Vote) { + key := voteToVoteKey(vote).Bytes() store := k.GetVoteStore(ctx) - store.Set([]byte(key), k.cdc.MustMarshalBinaryBare(vote)) - return key + store.Set(key, k.cdc.MustMarshalBinaryBare(vote)) } func (k Keeper) DeleteVotes(ctx sdk.Context, prefix string) int { diff --git a/x/oracle/keeper/keeper_vote_test.go b/x/oracle/keeper/keeper_vote_test.go deleted file mode 100644 index 96eb5625..00000000 --- a/x/oracle/keeper/keeper_vote_test.go +++ /dev/null @@ -1,36 +0,0 @@ -package keeper_test - -import ( - "github.com/bluzelle/curium/x/oracle/keeper" - "github.com/magiconair/properties/assert" - "testing" -) - -func TestCreateVoteKey(t *testing.T) { - t.Run("it should create a store key from a valcons and source name", func(t *testing.T) { - key := keeper.CreateVoteKey("my-source-name", "my-valcons") - assert.Equal(t, key, keeper.GetCurrentBatchId() + ">my-source-name>my-valcons") - }) -} - -//func TestSearchVotes(t *testing.T) { -// t.Run("it should search for votes based on batchId", func(t *testing.T) { -// k := oracle.NewKeeper() -// ctx := context.NewCLIContext(). -// k.StoreVote(ctx, types.MsgOracleVote{ -// Valcons: "my-valcons", -// SourceName: "source1", -// }) -// k.StoreVote(ctx, types.MsgOracleVote{ -// Valcons: "my-valcons", -// SourceName: "source2", -// }) -// k.StoreVote(ctx, types.MsgOracleVote{ -// Valcons: "my-valcons", -// SourceName: "source3", -// }) -// -// votes := k.SearchVotes(ctx, keeper.GetCurrentBatchId()) -// _ = votes -// }) -//} \ No newline at end of file