From 3a9d44972557a515b3ccbfcdd7613d91ceecdc27 Mon Sep 17 00:00:00 2001 From: vlad Date: Thu, 12 Dec 2024 15:55:52 +0000 Subject: [PATCH] Passing initial validatorset evidence on start, WIP --- app/app.go | 12 ++++++++++++ cmd/secretd/root.go | 6 +++++- go-cosmwasm/api/lib.go | 4 ++++ go-cosmwasm/api/lib_mock.go | 4 ++++ x/compute/internal/keeper/keeper.go | 12 ++++++++++++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/app.go b/app/app.go index 4fdadb529..d528fdb90 100644 --- a/app/app.go +++ b/app/app.go @@ -85,6 +85,7 @@ import ( upgradetypes "cosmossdk.io/x/upgrade/types" abci "github.com/cometbft/cometbft/abci/types" tmjson "github.com/cometbft/cometbft/libs/json" + cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" dbm "github.com/cosmos/cosmos-db" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" stakingkeeper "github.com/cosmos/ibc-go/v8/testing/types" @@ -425,6 +426,17 @@ func NewSecretNetworkApp( return app } +func (app *SecretNetworkApp) Initialize() { + + ms := app.BaseApp.CommitMultiStore() // cms is the CommitMultiStore in Cosmos SDK apps + + ctx := sdk.NewContext(ms, cmtproto.Header{}, false, app.Logger()) + + app.AppKeepers.ComputeKeeper.SetValidatorSetEvidence(ctx) + +} + + // Name returns the name of the App func (app *SecretNetworkApp) Name() string { return app.BaseApp.Name() } diff --git a/cmd/secretd/root.go b/cmd/secretd/root.go index a8f158a8e..79f6f2097 100644 --- a/cmd/secretd/root.go +++ b/cmd/secretd/root.go @@ -368,7 +368,7 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty panic(err) } - return app.NewSecretNetworkApp(logger, db, traceStore, true, + res := app.NewSecretNetworkApp(logger, db, traceStore, true, bootstrap, appOpts, compute.GetConfig(appOpts), @@ -385,6 +385,10 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(server.FlagDisableIAVLFastNode))), baseapp.SetChainID(appGenesis.ChainID), ) + + res.Initialize() + + return res } func exportAppStateAndTMValidators( diff --git a/go-cosmwasm/api/lib.go b/go-cosmwasm/api/lib.go index d7a2eadac..9c28be7f5 100644 --- a/go-cosmwasm/api/lib.go +++ b/go-cosmwasm/api/lib.go @@ -64,6 +64,10 @@ func SubmitBlockSignatures(header []byte, commit []byte, txs []byte, encRandom [ return receiveVector(res.buf1), receiveVector(res.buf2), nil } +func SubmitValidatorSetEvidence(evidence []byte) error { + return nil +} + func InitBootstrap(spid []byte, apiKey []byte) ([]byte, error) { errmsg := C.Buffer{} spidSlice := sendSlice(spid) diff --git a/go-cosmwasm/api/lib_mock.go b/go-cosmwasm/api/lib_mock.go index 23d56fee3..5238b7104 100644 --- a/go-cosmwasm/api/lib_mock.go +++ b/go-cosmwasm/api/lib_mock.go @@ -43,6 +43,10 @@ func SubmitBlockSignatures(header []byte, commit []byte, txs []byte, random []by return nil, nil, nil } +func SubmitValidatorSetEvidence(evidence []byte) error { + return nil +} + func LoadSeedToEnclave(masterKey []byte, seed []byte, apiKey []byte) (bool, error) { return true, nil } diff --git a/x/compute/internal/keeper/keeper.go b/x/compute/internal/keeper/keeper.go index 4e71befc0..7eb81f60e 100644 --- a/x/compute/internal/keeper/keeper.go +++ b/x/compute/internal/keeper/keeper.go @@ -16,6 +16,7 @@ import ( channelkeeper "github.com/cosmos/ibc-go/v8/modules/core/04-channel/keeper" portkeeper "github.com/cosmos/ibc-go/v8/modules/core/05-port/keeper" porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + "github.com/scrtlabs/SecretNetwork/go-cosmwasm/api" wasmTypes "github.com/scrtlabs/SecretNetwork/go-cosmwasm/types" "golang.org/x/crypto/ripemd160" //nolint @@ -162,6 +163,17 @@ func NewKeeper( return keeper } +func (k Keeper) SetValidatorSetEvidence(ctx sdk.Context) error { + + store := k.storeService.OpenKVStore(ctx) + validator_set_evidence, err := store.Get(types.ValidatorSetEvidencePrefix) + if err == nil { + api.SubmitValidatorSetEvidence(validator_set_evidence) +s } + + return nil +} + func (k Keeper) GetLastMsgMarkerContainer() *baseapp.LastMsgMarkerContainer { return k.LastMsgManager }