feat: Fair Birth logic - allow 0 UMC self-delegation for validators at genesis
Some checks failed
Build SimApp / build (amd64) (push) Has been cancelled
Build SimApp / build (arm64) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Build & Push / build (push) Has been cancelled
Run Gosec / Gosec (push) Has been cancelled
Lint / golangci-lint (push) Has been cancelled
Checks dependencies and mocks generation / Check go mod tidy (push) Has been cancelled
Checks dependencies and mocks generation / Check up to date mocks (push) Has been cancelled
System Tests / setup (push) Has been cancelled
System Tests / test-system (push) Has been cancelled
System Tests / test-system-legacy (push) Has been cancelled
Tests / Code Coverage / split-test-files (push) Has been cancelled
Tests / Code Coverage / tests (00) (push) Has been cancelled
Tests / Code Coverage / tests (01) (push) Has been cancelled
Tests / Code Coverage / tests (02) (push) Has been cancelled
Tests / Code Coverage / tests (03) (push) Has been cancelled
Tests / Code Coverage / test-integration (push) Has been cancelled
Tests / Code Coverage / test-e2e (push) Has been cancelled
Tests / Code Coverage / repo-analysis (push) Has been cancelled
Tests / Code Coverage / test-sim-nondeterminism (push) Has been cancelled
Tests / Code Coverage / test-clientv2 (push) Has been cancelled
Tests / Code Coverage / test-core (push) Has been cancelled
Tests / Code Coverage / test-depinject (push) Has been cancelled
Tests / Code Coverage / test-errors (push) Has been cancelled
Tests / Code Coverage / test-math (push) Has been cancelled
Tests / Code Coverage / test-schema (push) Has been cancelled
Tests / Code Coverage / test-collections (push) Has been cancelled
Tests / Code Coverage / test-cosmovisor (push) Has been cancelled
Tests / Code Coverage / test-confix (push) Has been cancelled
Tests / Code Coverage / test-store (push) Has been cancelled
Tests / Code Coverage / test-log (push) Has been cancelled
Tests / Code Coverage / test-x-tx (push) Has been cancelled
Tests / Code Coverage / test-x-nft (push) Has been cancelled
Tests / Code Coverage / test-x-circuit (push) Has been cancelled
Tests / Code Coverage / test-x-feegrant (push) Has been cancelled
Tests / Code Coverage / test-x-evidence (push) Has been cancelled
Tests / Code Coverage / test-x-upgrade (push) Has been cancelled
Tests / Code Coverage / test-tools-benchmark (push) Has been cancelled
Some checks failed
Build SimApp / build (amd64) (push) Has been cancelled
Build SimApp / build (arm64) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Build & Push / build (push) Has been cancelled
Run Gosec / Gosec (push) Has been cancelled
Lint / golangci-lint (push) Has been cancelled
Checks dependencies and mocks generation / Check go mod tidy (push) Has been cancelled
Checks dependencies and mocks generation / Check up to date mocks (push) Has been cancelled
System Tests / setup (push) Has been cancelled
System Tests / test-system (push) Has been cancelled
System Tests / test-system-legacy (push) Has been cancelled
Tests / Code Coverage / split-test-files (push) Has been cancelled
Tests / Code Coverage / tests (00) (push) Has been cancelled
Tests / Code Coverage / tests (01) (push) Has been cancelled
Tests / Code Coverage / tests (02) (push) Has been cancelled
Tests / Code Coverage / tests (03) (push) Has been cancelled
Tests / Code Coverage / test-integration (push) Has been cancelled
Tests / Code Coverage / test-e2e (push) Has been cancelled
Tests / Code Coverage / repo-analysis (push) Has been cancelled
Tests / Code Coverage / test-sim-nondeterminism (push) Has been cancelled
Tests / Code Coverage / test-clientv2 (push) Has been cancelled
Tests / Code Coverage / test-core (push) Has been cancelled
Tests / Code Coverage / test-depinject (push) Has been cancelled
Tests / Code Coverage / test-errors (push) Has been cancelled
Tests / Code Coverage / test-math (push) Has been cancelled
Tests / Code Coverage / test-schema (push) Has been cancelled
Tests / Code Coverage / test-collections (push) Has been cancelled
Tests / Code Coverage / test-cosmovisor (push) Has been cancelled
Tests / Code Coverage / test-confix (push) Has been cancelled
Tests / Code Coverage / test-store (push) Has been cancelled
Tests / Code Coverage / test-log (push) Has been cancelled
Tests / Code Coverage / test-x-tx (push) Has been cancelled
Tests / Code Coverage / test-x-nft (push) Has been cancelled
Tests / Code Coverage / test-x-circuit (push) Has been cancelled
Tests / Code Coverage / test-x-feegrant (push) Has been cancelled
Tests / Code Coverage / test-x-evidence (push) Has been cancelled
Tests / Code Coverage / test-x-upgrade (push) Has been cancelled
Tests / Code Coverage / test-tools-benchmark (push) Has been cancelled
This commit is contained in:
parent
abb1ff956e
commit
8d5d1699f9
2 changed files with 13 additions and 4 deletions
|
|
@ -162,10 +162,10 @@ func (k msgServer) EditValidator(ctx context.Context, msg *types.MsgEditValidato
|
|||
return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty description")
|
||||
}
|
||||
|
||||
if msg.MinSelfDelegation != nil && !msg.MinSelfDelegation.IsPositive() {
|
||||
if msg.MinSelfDelegation != nil && msg.MinSelfDelegation.IsNegative() {
|
||||
return nil, errorsmod.Wrap(
|
||||
sdkerrors.ErrInvalidRequest,
|
||||
"minimum self delegation must be a positive integer",
|
||||
"minimum self delegation cannot be negative",
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,8 +57,15 @@ func (msg MsgCreateValidator) Validate(ac address.Codec) error {
|
|||
return ErrEmptyValidatorPubKey
|
||||
}
|
||||
|
||||
if !msg.Value.IsValid() {
|
||||
return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid delegation amount")
|
||||
// MUKAN FAIR BIRTH: Allow zero self-delegation at genesis.
|
||||
// Standard Cosmos SDK requires IsValid() which enforces IsPositive().
|
||||
// Mukan Network allows validators to join with 0 UMC — they earn stake
|
||||
// through PoJ mining after the network is live.
|
||||
if err := sdk.ValidateDenom(msg.Value.Denom); err != nil {
|
||||
return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid delegation coin denom")
|
||||
}
|
||||
if msg.Value.Amount.IsNegative() {
|
||||
return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "self delegation amount cannot be negative")
|
||||
}
|
||||
|
||||
if msg.Description == (Description{}) {
|
||||
|
|
@ -80,6 +87,8 @@ func (msg MsgCreateValidator) Validate(ac address.Codec) error {
|
|||
)
|
||||
}
|
||||
|
||||
// MUKAN FAIR BIRTH: Zero self-delegation is valid — minimum is enforced at
|
||||
// the PoJ level, not at the staking layer.
|
||||
if msg.Value.Amount.LT(msg.MinSelfDelegation) {
|
||||
return ErrSelfDelegationBelowMinimum
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue