Skip to content

Commit

Permalink
use keyring reader to get oracle address instead of app.toml
Browse files Browse the repository at this point in the history
  • Loading branch information
avendauz committed Aug 11, 2021
1 parent b67bf68 commit aa10908
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 24 deletions.
1 change: 1 addition & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,7 @@ func NewCRUDApp(
keys[oracle.StoreKey],
app.stakingKeeper,
oracleMsgBroadcaster,
curium.NewKeyringReader(DefaultCLIHome),
nil,
)

Expand Down
34 changes: 11 additions & 23 deletions x/oracle/feeder.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package oracle

import (
"errors"
"fmt"
curium "github.com/bluzelle/curium/x/curium/keeper"
"github.com/bluzelle/curium/x/oracle/keeper"
"github.com/bluzelle/curium/x/oracle/types"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/auth"
"github.com/robfig/cron/v3"
"github.com/spf13/viper"
"github.com/tendermint/tendermint/libs/log"
nestedJson "github.com/wenxiang/go-nestedjson"
"io/ioutil"
Expand Down Expand Up @@ -53,7 +52,7 @@ func GetValueAndSendProofAndVote(ctx sdk.Context, oracleKeeper Keeper, cdc *code
values := fetchValues(sources)
sendPreflightMsgs(ctx, values, cdc, oracleKeeper)
time.AfterFunc(time.Second*20, func() {
sendVoteMsgs(ctx, values, cdc, oracleKeeper)
sendVoteMsgs(ctx, values, oracleKeeper)
})
}
}
Expand Down Expand Up @@ -138,7 +137,7 @@ func readValueFromJson(jsonIn []byte, prop string) (float64, error) {
func sendPreflightMsgs(ctx sdk.Context, values []SourceAndValue, cdc *codec.Codec, keeper Keeper) string {
var msgs []sdk.Msg
for _, value := range values {
msg, _ := generateVoteProofMsg(cdc, value)
msg, _ := generateVoteProofMsg(value, keeper.KeyringReader)
msgs = append(msgs, msg)
}
logger.Info("Sending oracle proof messages", "count", len(msgs))
Expand All @@ -148,10 +147,10 @@ func sendPreflightMsgs(ctx sdk.Context, values []SourceAndValue, cdc *codec.Code
return result.Response.Log
}

func sendVoteMsgs(ctx sdk.Context, values []SourceAndValue, cdc *codec.Codec, keeper Keeper) string {
func sendVoteMsgs(ctx sdk.Context, values []SourceAndValue, keeper Keeper) string {
var msgs []sdk.Msg
for _, value := range values {
msg, _ := generateVoteMsg(cdc, value)
msg, _ := generateVoteMsg(value, keeper.KeyringReader)
msgs = append(msgs, msg)
}
logger.Info("Sending feeder vote messages", "count", len(msgs))
Expand All @@ -160,15 +159,15 @@ func sendVoteMsgs(ctx sdk.Context, values []SourceAndValue, cdc *codec.Codec, ke
return result.Response.Log
}

func generateVoteMsg(cdc *codec.Codec, source SourceAndValue) (types.MsgOracleVote, error) {
config, err := readOracleConfig()
func generateVoteMsg(source SourceAndValue, keyringReader *curium.KeyringReader) (types.MsgOracleVote, error) {
oracleAddr, err := keyringReader.GetAddress("oracle")
if err != nil {
return types.MsgOracleVote{}, err
}
msg := types.NewMsgOracleVote(
keeper.GetValconsAddress(),
fmt.Sprintf("%.12f", source.value),
config.UserAddress,
oracleAddr,
source.source.Name,
getCurrentBatchId(),
)
Expand All @@ -192,15 +191,15 @@ func getCurrentBatchId() string {
return t
}

func generateVoteProofMsg(cdc *codec.Codec, source SourceAndValue) (types.MsgOracleVoteProof, error) {
config, err := readOracleConfig()
func generateVoteProofMsg(source SourceAndValue, keyringReader *curium.KeyringReader) (types.MsgOracleVoteProof, error) {
oracleAddr, err := keyringReader.GetAddress("oracle")
if err != nil {
return types.MsgOracleVoteProof{}, err
}

proof := keeper.CalculateProofSig(fmt.Sprintf("%.12f", source.value))
valcons := keeper.GetValconsAddress()
msg := types.NewMsgOracleVoteProof(valcons, proof, config.UserAddress, source.source.Name)
msg := types.NewMsgOracleVoteProof(valcons, proof, oracleAddr, source.source.Name)
err = msg.ValidateBasic()
if err != nil {
logger.Info("Error generating vote proof message", source.source.Name)
Expand Down Expand Up @@ -228,14 +227,3 @@ func waitForCtx() {
}
}

func readOracleConfig() (types.LocalOracleConfig, error) {
address, err := sdk.AccAddressFromBech32(viper.GetString("oracle-user-address"))
if err != nil {
errors.New("unable to read oracle address from app.toml")
}

return types.LocalOracleConfig{
UserAddress: address,
UserMnemonic: viper.GetString("oracle-user-mnemonic"),
}, nil
}
4 changes: 3 additions & 1 deletion x/oracle/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,18 @@ type Keeper struct {
storeKey sdk.StoreKey
stakingKeeper staking.Keeper
MsgBroadcaster curium.MsgBroadcaster
KeyringReader *curium.KeyringReader
cdc *codec.Codec
paramspace types.ParamSubspace
}

// NewKeeper creates a oracle keeper
func NewKeeper(cdc *codec.Codec, storeKey sdk.StoreKey, stakingKeeper staking.Keeper, msgBroadcaster curium.MsgBroadcaster, paramspace types.ParamSubspace) Keeper {
func NewKeeper(cdc *codec.Codec, storeKey sdk.StoreKey, stakingKeeper staking.Keeper, msgBroadcaster curium.MsgBroadcaster, keyringReader *curium.KeyringReader, paramspace types.ParamSubspace) Keeper {
keeper := Keeper{
storeKey: storeKey,
stakingKeeper: stakingKeeper,
MsgBroadcaster: msgBroadcaster,
KeyringReader: keyringReader,
cdc: cdc,
// paramspace: paramspace.WithKeyTable(types.ParamKeyTable()),
}
Expand Down

0 comments on commit aa10908

Please sign in to comment.