Skip to content

Commit

Permalink
add dkg request in genesis
Browse files Browse the repository at this point in the history
  • Loading branch information
keithsue committed Jan 8, 2025
1 parent 43dfc21 commit 5ba94c0
Show file tree
Hide file tree
Showing 6 changed files with 204 additions and 34 deletions.
129 changes: 111 additions & 18 deletions api/side/btcbridge/genesis.pulsar.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions proto/side/btcbridge/genesis.proto
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ message GenesisState {
BlockHeader best_block_header = 2;
repeated BlockHeader block_headers = 3;
repeated UTXO utxos = 4;
DKGRequest dkg_request= 5;
}
8 changes: 7 additions & 1 deletion x/btcbridge/module/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,17 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState)
k.SetBlockHeader(ctx, header)
}

// import utxos
// set utxos
for _, utxo := range genState.Utxos {
k.SaveUTXO(ctx, utxo)
}

// set dkg request
if genState.DkgRequest != nil {
k.SetDKGRequest(ctx, genState.DkgRequest)
k.SetDKGRequestID(ctx, genState.DkgRequest.Id)
}

// sort vaults and set the latest vault version
if len(genState.Params.Vaults) > 0 {
vaults := genState.Params.Vaults
Expand Down
10 changes: 3 additions & 7 deletions x/btcbridge/module/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/btcsuite/btcd/wire"
keepertest "github.com/sideprotocol/side/testutil/keeper"
"github.com/sideprotocol/side/testutil/nullify"
"github.com/sideprotocol/side/x/btcbridge/module"
btcbridge "github.com/sideprotocol/side/x/btcbridge/module"
"github.com/sideprotocol/side/x/btcbridge/types"
"github.com/stretchr/testify/require"
)
Expand All @@ -20,14 +20,10 @@ func TestGenesis(t *testing.T) {
mnemonic := "sunny bamboo garlic fold reopen exile letter addict forest vessel square lunar shell number deliver cruise calm artist fire just kangaroo suit wheel extend"
println(mnemonic)

genesisState := types.GenesisState{
Params: types.DefaultParams(),

// this line is used by starport scaffolding # genesis/test/state
}
genesisState := types.DefaultGenesis()

k, ctx := keepertest.BtcBridgeKeeper(t)
btcbridge.InitGenesis(ctx, *k, genesisState)
btcbridge.InitGenesis(ctx, *k, *genesisState)
got := btcbridge.ExportGenesis(ctx, *k)
require.NotNil(t, got)

Expand Down
12 changes: 12 additions & 0 deletions x/btcbridge/types/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package types
import (
"github.com/btcsuite/btcd/chaincfg"

errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
)

Expand Down Expand Up @@ -72,6 +73,7 @@ func DefaultGenesis() *GenesisState {
BestBlockHeader: DefaultBestBlockHeader(),
BlockHeaders: []*BlockHeader{},
Utxos: []*UTXO{},
DkgRequest: nil,
}
}

Expand All @@ -81,10 +83,20 @@ func (gs GenesisState) Validate() error {
// this line is used by starport scaffolding # genesis/types/validate

// validate the best block header
if gs.BestBlockHeader == nil {
return errorsmod.Wrap(ErrInvalidBlockHeader, "best block header can not be empty")
}
if err := gs.BestBlockHeader.Validate(); err != nil {
return err
}

// validate block headers
if len(gs.BlockHeaders) != 0 {
if err := BlockHeaders(gs.BlockHeaders).Validate(); err != nil {
return err
}
}

// validate params
return gs.Params.Validate()
}
Loading

0 comments on commit 5ba94c0

Please sign in to comment.