From 8885c27f6f03353f6549d4e64ff97cae2891f3e3 Mon Sep 17 00:00:00 2001 From: emidev98 Date: Tue, 11 Jul 2023 11:59:57 +0300 Subject: [PATCH] feat: rebalance emissions and update rewards --- internal/provider/alliance/alliance_querier.go | 16 ++++++++++++++++ internal/types/feeder_type.go | 10 ++++++++-- pkg/types/execute.go | 8 ++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/internal/provider/alliance/alliance_querier.go b/internal/provider/alliance/alliance_querier.go index 99d40b8..0cd271b 100644 --- a/internal/provider/alliance/alliance_querier.go +++ b/internal/provider/alliance/alliance_querier.go @@ -2,13 +2,16 @@ package alliance_provider import ( "context" + "encoding/json" "fmt" "io" "net/http" "os" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" "github.com/terra-money/oracle-feeder-go/internal/provider" types "github.com/terra-money/oracle-feeder-go/internal/types" + pkgtypes "github.com/terra-money/oracle-feeder-go/pkg/types" ) type alliancesQuerierProvider struct { @@ -37,6 +40,19 @@ func (a alliancesQuerierProvider) QueryAndSubmitOnChain(ctx context.Context) (re return res, nil } +func (a alliancesQuerierProvider) SubmitOnChain(ctx context.Context) (datxHashta string, err error) { + var sdkMsg wasmtypes.RawContractMessage + + switch a.feederType { + case types.AllianceHubRebalanceEmissions: + sdkMsg, _ = json.Marshal(pkgtypes.MsgRebalanceEmissions{}) + case types.AllianceHubUpdateRewards: + sdkMsg, _ = json.Marshal(pkgtypes.MsgUpdateRewards{}) + } + + return a.transactionsProvider.SubmitAlliancesTransaction(ctx, sdkMsg) +} + func (a alliancesQuerierProvider) requestData() (res []byte, err error) { var url string if url = os.Getenv("PRICE_SERVER_URL"); len(url) == 0 { diff --git a/internal/types/feeder_type.go b/internal/types/feeder_type.go index 7a0f2e8..db6323b 100644 --- a/internal/types/feeder_type.go +++ b/internal/types/feeder_type.go @@ -5,8 +5,10 @@ import "fmt" type FeederType string const ( - AllianceOracleFeeder FeederType = "alliance-oracle-feeder" - AllianceRebalanceFeeder FeederType = "alliance-rebalance-feeder" + AllianceHubUpdateRewards FeederType = "alliance-hub-update-rewards" + AllianceHubRebalanceEmissions FeederType = "Alliance-hub-rebalance-emissions" + AllianceOracleFeeder FeederType = "alliance-oracle-feeder" + AllianceRebalanceFeeder FeederType = "alliance-rebalance-feeder" ) // parse from string to FeederType @@ -16,6 +18,10 @@ func ParseFeederTypeFromString(s string) (FeederType, error) { return AllianceOracleFeeder, nil case string(AllianceRebalanceFeeder): return AllianceRebalanceFeeder, nil + case string(AllianceHubUpdateRewards): + return AllianceHubUpdateRewards, nil + case string(AllianceHubRebalanceEmissions): + return AllianceHubRebalanceEmissions, nil default: return "", fmt.Errorf( `invalid feeder type: "%s", expected types are "%s" | "%s"`, diff --git a/pkg/types/execute.go b/pkg/types/execute.go index 95c7004..117b088 100644 --- a/pkg/types/execute.go +++ b/pkg/types/execute.go @@ -34,3 +34,11 @@ func NewMsgAllianceRedelegate(redelegations []types.Redelegation) MsgAllianceRed }, } } + +type MsgUpdateRewards struct { + UpdateRewards struct{} `json:"update_rewards"` +} + +type MsgRebalanceEmissions struct { + RebalanceEmissions struct{} `json:"rebalance_emissions"` +}