From 6dc5f046a133c753169e43b4b038308be78e1a39 Mon Sep 17 00:00:00 2001 From: MaxMustermann2 <82761650+MaxMustermann2@users.noreply.github.com> Date: Wed, 26 Feb 2025 03:29:54 +0000 Subject: [PATCH] fix: genesis validation --- x/appchain/coordinator/types/msg.go | 2 +- x/assets/types/genesis.go | 2 +- x/operator/types/genesis.go | 19 +++++++++++-------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/x/appchain/coordinator/types/msg.go b/x/appchain/coordinator/types/msg.go index 16259c287..82c3a88f7 100644 --- a/x/appchain/coordinator/types/msg.go +++ b/x/appchain/coordinator/types/msg.go @@ -47,7 +47,7 @@ func (msg *RegisterSubscriberChainRequest) ValidateBasic() error { if _, _, err := assetstypes.ValidateID( assetID, true, // the caller must make them lowercase - true, // TODO: we support only Ethereum assets for now. + false, ); err != nil { return fmt.Errorf("invalid asset id %s: %s", assetID, err) } diff --git a/x/assets/types/genesis.go b/x/assets/types/genesis.go index eca917b90..da352cb53 100644 --- a/x/assets/types/genesis.go +++ b/x/assets/types/genesis.go @@ -124,7 +124,7 @@ func (gs GenesisState) ValidateDeposits(lzIDs map[uint64]struct{}, tokensTotalSt // validate the stakerID var stakerClientChainID uint64 var err error - if _, stakerClientChainID, err = ValidateID(stakerID, true, true); err != nil { + if _, stakerClientChainID, err = ValidateID(stakerID, true, false); err != nil { return errorsmod.Wrapf( ErrInvalidGenesisData, "invalid stakerID: %s", diff --git a/x/operator/types/genesis.go b/x/operator/types/genesis.go index 795cc9a07..afa156688 100644 --- a/x/operator/types/genesis.go +++ b/x/operator/types/genesis.go @@ -61,14 +61,17 @@ func (gs GenesisState) ValidateOperators() (map[string]struct{}, error) { "invalid operator address %s: %s", address, err, ) } - if op.OperatorInfo.EarningsAddr != "" { - _, err := sdk.AccAddressFromBech32(op.OperatorInfo.EarningsAddr) - if err != nil { - return nil, errorsmod.Wrapf( - ErrInvalidGenesisData, - "invalid operator earning address %s: %s", op.OperatorInfo.EarningsAddr, err, - ) - } + if op.OperatorInfo.EarningsAddr != address { + return nil, errorsmod.Wrapf( + ErrInvalidGenesisData, + "operator address %s has earnings address %s", address, op.OperatorInfo.EarningsAddr, + ) + } + if op.OperatorInfo.ApproveAddr != address { + return nil, errorsmod.Wrapf( + ErrInvalidGenesisData, + "operator address %s has approve address %s", address, op.OperatorInfo.ApproveAddr, + ) } operators[address] = struct{}{} if op.OperatorInfo.ClientChainEarningsAddr != nil {