diff --git a/PENDING.md b/PENDING.md index fc3c674f4bd4..dafd653fe4a3 100644 --- a/PENDING.md +++ b/PENDING.md @@ -40,6 +40,9 @@ BREAKING CHANGES * [cli] #1551: Officially removed `--name` from CLI commands * [cli] Genesis/key creation (`init`) now supports user-provided key passwords * [cli] unsafe_reset_all, show_validator, and show_node_id have been renamed to unsafe-reset-all, show-validator, and show-node-id +* [cli] \#1901 Flag --address-validator renamed to --validator in stake and slashing commands +* [types] \#1901 Validator interface's GetOwner() renamed to GetOperator() +* [x/stake] \#1901 Validator type's Owner field renamed to Operator; Validator's GetOwner() renamed accordingly to comply with the SDK's Validator interface. FEATURES * [lcd] Can now query governance proposals by ProposalStatus diff --git a/client/lcd/lcd_test.go b/client/lcd/lcd_test.go index db584834af7c..09c0eddd1116 100644 --- a/client/lcd/lcd_test.go +++ b/client/lcd/lcd_test.go @@ -361,13 +361,13 @@ func TestValidatorsQuery(t *testing.T) { validators := getValidators(t, port) require.Equal(t, len(validators), 1) - // make sure all the validators were found (order unknown because sorted by owner addr) + // make sure all the validators were found (order unknown because sorted by operator addr) foundVal := false pkBech := sdk.MustBech32ifyValPub(pks[0]) if validators[0].PubKey == pkBech { foundVal = true } - require.True(t, foundVal, "pkBech %v, owner %v", pkBech, validators[0].Owner) + require.True(t, foundVal, "pkBech %v, operator %v", pkBech, validators[0].Operator) } func TestValidatorQuery(t *testing.T) { @@ -375,9 +375,9 @@ func TestValidatorQuery(t *testing.T) { defer cleanup() require.Equal(t, 1, len(pks)) - validator1Owner := sdk.AccAddress(pks[0].Address()) - validator := getValidator(t, port, validator1Owner) - assert.Equal(t, validator.Owner, validator1Owner, "The returned validator does not hold the correct data") + validator1Operator := sdk.AccAddress(pks[0].Address()) + validator := getValidator(t, port, validator1Operator) + assert.Equal(t, validator.Operator, validator1Operator, "The returned validator does not hold the correct data") } func TestBonding(t *testing.T) { @@ -386,10 +386,11 @@ func TestBonding(t *testing.T) { cleanup, pks, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr}) defer cleanup() - validator1Owner := sdk.AccAddress(pks[0].Address()) - validator := getValidator(t, port, validator1Owner) + validator1Operator := sdk.AccAddress(pks[0].Address()) + validator := getValidator(t, port, validator1Operator) - resultTx := doDelegate(t, port, seed, name, password, addr, validator1Owner, 60) + // create bond TX + resultTx := doDelegate(t, port, seed, name, password, addr, validator1Operator, 60) tests.WaitForHeight(resultTx.Height+1, port) require.Equal(t, uint32(0), resultTx.CheckTx.Code) @@ -400,7 +401,8 @@ func TestBonding(t *testing.T) { require.Equal(t, int64(40), coins.AmountOf(denom).Int64()) - bond := getDelegation(t, port, addr, validator1Owner) + // query validator + bond := getDelegation(t, port, addr, validator1Operator) require.Equal(t, "60.0000000000", bond.Shares) summary := getDelegationSummary(t, port, addr) @@ -411,16 +413,17 @@ func TestBonding(t *testing.T) { bondedValidators := getDelegatorValidators(t, port, addr) require.Len(t, bondedValidators, 1) - require.Equal(t, validator1Owner, bondedValidators[0].Owner) + require.Equal(t, validator1Operator, bondedValidators[0].Operator) require.Equal(t, validator.DelegatorShares.Add(sdk.NewDec(60)).String(), bondedValidators[0].DelegatorShares.String()) - bondedValidator := getDelegatorValidator(t, port, addr, validator1Owner) - require.Equal(t, validator1Owner, bondedValidator.Owner) + bondedValidator := getDelegatorValidator(t, port, addr, validator1Operator) + require.Equal(t, validator1Operator, bondedValidator.Operator) ////////////////////// // testing unbonding - resultTx = doBeginUnbonding(t, port, seed, name, password, addr, validator1Owner, 60) + // create unbond TX + resultTx = doBeginUnbonding(t, port, seed, name, password, addr, validator1Operator, 60) tests.WaitForHeight(resultTx.Height+1, port) require.Equal(t, uint32(0), resultTx.CheckTx.Code) @@ -431,7 +434,7 @@ func TestBonding(t *testing.T) { coins = acc.GetCoins() require.Equal(t, int64(40), coins.AmountOf("steak").Int64()) - unbondings := getUndelegations(t, port, addr, validator1Owner) + unbondings := getUndelegations(t, port, addr, validator1Operator) require.Len(t, unbondings, 1, "Unbondings holds all unbonding-delegations") require.Equal(t, "60", unbondings[0].Balance.Amount.String()) diff --git a/cmd/gaia/app/genesis.go b/cmd/gaia/app/genesis.go index e35b21c4b093..0399d6652887 100644 --- a/cmd/gaia/app/genesis.go +++ b/cmd/gaia/app/genesis.go @@ -202,8 +202,8 @@ func GaiaAppGenState(cdc *wire.Codec, appGenTxs []json.RawMessage) (genesisState // create the self-delegation from the issuedDelShares delegation := stake.Delegation{ - DelegatorAddr: validator.Owner, - ValidatorAddr: validator.Owner, + DelegatorAddr: validator.Operator, + ValidatorAddr: validator.Operator, Shares: issuedDelShares, Height: 0, } diff --git a/cmd/gaia/cli_test/cli_test.go b/cmd/gaia/cli_test/cli_test.go index 244a9eb8322d..4f041d8485f7 100644 --- a/cmd/gaia/cli_test/cli_test.go +++ b/cmd/gaia/cli_test/cli_test.go @@ -131,13 +131,13 @@ func TestGaiaCLICreateValidator(t *testing.T) { require.Equal(t, int64(8), barAcc.GetCoins().AmountOf("steak").Int64(), "%v", barAcc) validator := executeGetValidator(t, fmt.Sprintf("gaiacli stake validator %s --output=json %v", barAddr, flags)) - require.Equal(t, validator.Owner, barAddr) + require.Equal(t, validator.Operator, barAddr) require.True(sdk.DecEq(t, sdk.NewDec(2), validator.Tokens)) // unbond a single share unbondStr := fmt.Sprintf("gaiacli stake unbond begin %v", flags) unbondStr += fmt.Sprintf(" --from=%s", "bar") - unbondStr += fmt.Sprintf(" --address-validator=%s", barAddr) + unbondStr += fmt.Sprintf(" --validator=%s", barAddr) unbondStr += fmt.Sprintf(" --shares-amount=%v", "1") success := executeWrite(t, unbondStr, app.DefaultKeyPass) diff --git a/docs/sdk/clients.md b/docs/sdk/clients.md index 5d02548a27fe..17190d90a3e4 100644 --- a/docs/sdk/clients.md +++ b/docs/sdk/clients.md @@ -120,9 +120,9 @@ On the testnet, we delegate `steak` instead of `atom`. Here's how you can bond t ```bash gaiacli stake delegate \ --amount=10steak \ - --address-validator=$(gaiad tendermint show-validator) \ + --validator=$(gaiad tendermint show-validator) \ --name= \ - --chain-id=gaia-7005 + --chain-id=gaia-6002 ``` While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool. @@ -137,9 +137,9 @@ If for any reason the validator misbehaves, or you want to unbond a certain amou ```bash gaiacli stake unbond begin \ - --address-validator=$(gaiad tendermint show-validator) \ + --validator=$(gaiad tendermint show-validator) \ --shares=MAX \ - --name= \ + --from= \ --chain-id=gaia-7005 ``` @@ -152,7 +152,7 @@ gaiacli account gaiacli stake delegation \ --address-delegator= \ - --address-validator=$(gaiad tendermint show-validator) \ + --validator=$(gaiad tendermint show-validator) \ --chain-id=gaia-7005 ``` diff --git a/docs/spec/staking/transactions.md b/docs/spec/staking/transactions.md index d1b6a3626b05..ee2b976aeccb 100644 --- a/docs/spec/staking/transactions.md +++ b/docs/spec/staking/transactions.md @@ -1,7 +1,7 @@ ## Transaction Overview In this section we describe the processing of the transactions and the -corresponding updates to the state. Transactions: +corresponding updates to the state. Transactions: - TxCreateValidator - TxEditValidator - TxDelegation @@ -19,7 +19,7 @@ Other notes: - `getXxx`, `setXxx`, and `removeXxx` functions are used to retrieve and modify objects from the store - `sdk.Dec` refers to a decimal type specified by the SDK. - + ### TxCreateValidator - triggers: `distribution.CreateValidatorDistribution` @@ -28,39 +28,39 @@ A validator is created using the `TxCreateValidator` transaction. ```golang type TxCreateValidator struct { - OwnerAddr sdk.Address + Operator sdk.Address ConsensusPubKey crypto.PubKey GovernancePubKey crypto.PubKey - SelfDelegation coin.Coin + SelfDelegation coin.Coin Description Description Commission sdk.Dec CommissionMax sdk.Dec CommissionMaxChange sdk.Dec } - + createValidator(tx TxCreateValidator): - validator = getValidator(tx.OwnerAddr) + validator = getValidator(tx.Operator) if validator != nil return // only one validator per address - - validator = NewValidator(OwnerAddr, ConsensusPubKey, GovernancePubKey, Description) + + validator = NewValidator(operatorAddr, ConsensusPubKey, GovernancePubKey, Description) init validator poolShares, delegatorShares set to 0 init validator commision fields from tx validator.PoolShares = 0 - + setValidator(validator) - - txDelegate = TxDelegate(tx.OwnerAddr, tx.OwnerAddr, tx.SelfDelegation) + + txDelegate = TxDelegate(tx.Operator, tx.Operator, tx.SelfDelegation) delegate(txDelegate, validator) // see delegate function in [TxDelegate](TxDelegate) return -``` +``` ### TxEditValidator If either the `Description` (excluding `DateBonded` which is constant), `Commission`, or the `GovernancePubKey` need to be updated, the -`TxEditCandidacy` transaction should be sent from the owner account: +`TxEditCandidacy` transaction should be sent from the operator account: ```golang type TxEditCandidacy struct { @@ -68,34 +68,34 @@ type TxEditCandidacy struct { Commission sdk.Dec Description Description } - + editCandidacy(tx TxEditCandidacy): validator = getValidator(tx.ValidatorAddr) - - if tx.Commission > CommissionMax || tx.Commission < 0 then fail + + if tx.Commission > CommissionMax || tx.Commission < 0 then fail if rateChange(tx.Commission) > CommissionMaxChange then fail validator.Commission = tx.Commission if tx.GovernancePubKey != nil validator.GovernancePubKey = tx.GovernancePubKey if tx.Description != nil validator.Description = tx.Description - + setValidator(store, validator) return ``` - + ### TxDelegate - + - triggers: `distribution.CreateOrModDelegationDistribution` Within this transaction the delegator provides coins, and in return receives some amount of their validator's delegator-shares that are assigned to -`Delegation.Shares`. +`Delegation.Shares`. ```golang type TxDelegate struct { - DelegatorAddr sdk.Address - ValidatorAddr sdk.Address - Amount sdk.Coin + DelegatorAddr sdk.Address + ValidatorAddr sdk.Address + Amount sdk.Coin } delegate(tx TxDelegate): @@ -104,14 +104,14 @@ delegate(tx TxDelegate): delegation = getDelegatorBond(DelegatorAddr, ValidatorAddr) if delegation == nil then delegation = NewDelegation(DelegatorAddr, ValidatorAddr) - + validator, pool, issuedDelegatorShares = validator.addTokensFromDel(tx.Amount, pool) delegation.Shares += issuedDelegatorShares - + setDelegation(delegation) updateValidator(validator) setPool(pool) - return + return ``` ### TxStartUnbonding @@ -120,28 +120,28 @@ Delegator unbonding is defined with the following transaction: ```golang type TxStartUnbonding struct { - DelegatorAddr sdk.Address - ValidatorAddr sdk.Address - Shares string + DelegatorAddr sdk.Address + ValidatorAddr sdk.Address + Shares string } -startUnbonding(tx TxStartUnbonding): +startUnbonding(tx TxStartUnbonding): delegation, found = getDelegatorBond(store, sender, tx.PubKey) - if !found == nil return - + if !found == nil return + if bond.Shares < tx.Shares return ErrNotEnoughBondShares validator, found = GetValidator(tx.ValidatorAddr) if !found { - return err + return err bond.Shares -= tx.Shares revokeCandidacy = false if bond.Shares.IsZero() { - if bond.DelegatorAddr == validator.Owner && validator.Revoked == false + if bond.DelegatorAddr == validator.Operator && validator.Revoked == false revokeCandidacy = true removeDelegation( bond) @@ -162,7 +162,7 @@ startUnbonding(tx TxStartUnbonding): validator = updateValidator(validator) if validator.DelegatorShares == 0 { - removeValidator(validator.Owner) + removeValidator(validator.Operator) return ``` @@ -185,7 +185,7 @@ redelegationComplete(tx TxRedelegate): returnTokens = ExpectedTokens * tx.startSlashRatio/validator.SlashRatio AddCoins(unbonding.DelegatorAddr, returnTokens) removeUnbondingDelegation(unbonding) - return + return ``` ### TxRedelegation @@ -206,20 +206,20 @@ type TxRedelegate struct { redelegate(tx TxRedelegate): pool = getPool() - delegation = getDelegatorBond(tx.DelegatorAddr, tx.ValidatorFrom.Owner) + delegation = getDelegatorBond(tx.DelegatorAddr, tx.ValidatorFrom.Operator) if delegation == nil - return - - if delegation.Shares < tx.Shares - return + return + + if delegation.Shares < tx.Shares + return delegation.shares -= Tx.Shares validator, pool, createdCoins = validator.RemoveShares(pool, tx.Shares) setPool(pool) - - redelegation = newRedelegation(tx.DelegatorAddr, tx.validatorFrom, + + redelegation = newRedelegation(tx.DelegatorAddr, tx.validatorFrom, tx.validatorTo, tx.Shares, createdCoins, tx.CompletedTime) setRedelegation(redelegation) - return + return ``` ### TxCompleteRedelegation @@ -239,7 +239,7 @@ redelegationComplete(tx TxRedelegate): redelegation = getRedelegation(tx.DelegatorAddr, tx.validatorFrom, tx.validatorTo) if redelegation.CompleteTime >= CurrentBlockTime && redelegation.CompleteHeight >= CurrentBlockHeight removeRedelegation(redelegation) - return + return ``` ### Update Validators @@ -273,11 +273,11 @@ updateBondedValidators(newValidator Validator) (updatedVal Validator) // use the validator provided because it has not yet been updated // in the main validator store - ownerAddr = iterator.Value() - if bytes.Equal(ownerAddr, newValidator.Owner) { + operatorAddr = iterator.Value() + if bytes.Equal(operatorAddr, newValidator.Operator) { validator = newValidator else - validator = getValidator(ownerAddr) + validator = getValidator(operatorAddr) // if not previously a validator (and unrevoked), // kick the cliff validator / bond this new validator @@ -285,7 +285,7 @@ updateBondedValidators(newValidator Validator) (updatedVal Validator) kickCliffValidator = true validator = bondValidator(ctx, store, validator) - if bytes.Equal(ownerAddr, newValidator.Owner) { + if bytes.Equal(operatorAddr, newValidator.Operator) { updatedVal = validator bondedValidatorsCount++ @@ -316,7 +316,7 @@ unbondValidator(ctx Context, store KVStore, validator Validator) } // perform all the store operations for when a validator status becomes bonded -bondValidator(ctx Context, store KVStore, validator Validator) Validator +bondValidator(ctx Context, store KVStore, validator Validator) Validator pool = GetPool(ctx) // set the status diff --git a/docs/validators/validator-setup.md b/docs/validators/validator-setup.md index dc3bf147f050..1af796b3712c 100644 --- a/docs/validators/validator-setup.md +++ b/docs/validators/validator-setup.md @@ -31,8 +31,13 @@ Don't use more `steak` thank you have! You can always get more by using the [Fau ```bash gaiacli stake create-validator \ --amount=5steak \ +<<<<<<< HEAD --pubkey=$(gaiad tendermint show-validator) \ --address-validator= +======= + --pubkey=$(gaiad tendermint show_validator) \ + --validator= +>>>>>>> 6f19f2ed... Rename --address-validator flag to --validator --moniker="choose a moniker" \ --chain-id=gaia-7005 \ --name= @@ -46,7 +51,7 @@ The `--identity` can be used as to verify identity with systems like Keybase or ```bash gaiacli stake edit-validator - --address-validator= + --validator= --moniker="choose a moniker" \ --website="https://cosmos.network" \ --identity=6A0D65E29A4CBC8E @@ -61,8 +66,13 @@ View the validator's information with this command: ```bash gaiacli stake validator \ +<<<<<<< HEAD --address-validator= \ --chain-id=gaia-7005 +======= + --validator= \ + --chain-id=gaia-6002 +>>>>>>> 6f19f2ed... Rename --address-validator flag to --validator ``` ### Confirm Your Validator is Running diff --git a/examples/democoin/mock/validator.go b/examples/democoin/mock/validator.go index 789a1cb6a7a8..f76f14803e96 100644 --- a/examples/democoin/mock/validator.go +++ b/examples/democoin/mock/validator.go @@ -19,7 +19,7 @@ func (v Validator) GetStatus() sdk.BondStatus { } // Implements sdk.Validator -func (v Validator) GetOwner() sdk.AccAddress { +func (v Validator) GetOperator() sdk.AccAddress { return v.Address } diff --git a/types/stake.go b/types/stake.go index acd24a154184..ef7388f3ba97 100644 --- a/types/stake.go +++ b/types/stake.go @@ -40,7 +40,7 @@ type Validator interface { GetRevoked() bool // whether the validator is revoked GetMoniker() string // moniker of the validator GetStatus() BondStatus // status of the validator - GetOwner() AccAddress // owner AccAddress to receive/return validators coins + GetOperator() AccAddress // owner AccAddress to receive/return validators coins GetPubKey() crypto.PubKey // validation pubkey GetPower() Dec // validation power GetTokens() Dec // validation tokens diff --git a/x/gov/tally.go b/x/gov/tally.go index fc5b4317b26a..d8d4c78703c1 100644 --- a/x/gov/tally.go +++ b/x/gov/tally.go @@ -24,8 +24,8 @@ func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, tall currValidators := make(map[string]validatorGovInfo) keeper.vs.IterateValidatorsBonded(ctx, func(index int64, validator sdk.Validator) (stop bool) { - currValidators[validator.GetOwner().String()] = validatorGovInfo{ - Address: validator.GetOwner(), + currValidators[validator.GetOperator().String()] = validatorGovInfo{ + Address: validator.GetOperator(), Power: validator.GetPower(), DelegatorShares: validator.GetDelegatorShares(), Minus: sdk.ZeroDec(), diff --git a/x/slashing/app_test.go b/x/slashing/app_test.go index 1e6a4e89d4b4..e018c43e8b8e 100644 --- a/x/slashing/app_test.go +++ b/x/slashing/app_test.go @@ -107,7 +107,7 @@ func TestSlashingMsgs(t *testing.T) { mapp.BeginBlock(abci.RequestBeginBlock{}) validator := checkValidator(t, mapp, stakeKeeper, addr1, true) - require.Equal(t, addr1, validator.Owner) + require.Equal(t, addr1, validator.Operator) require.Equal(t, sdk.Bonded, validator.Status) require.True(sdk.DecEq(t, sdk.NewDec(10), validator.BondedTokens())) unrevokeMsg := MsgUnrevoke{ValidatorAddr: sdk.AccAddress(validator.PubKey.Address())} diff --git a/x/slashing/client/cli/flags.go b/x/slashing/client/cli/flags.go index 43f8fa90a2ba..09db8e8258eb 100644 --- a/x/slashing/client/cli/flags.go +++ b/x/slashing/client/cli/flags.go @@ -2,5 +2,5 @@ package cli // nolint const ( - FlagAddressValidator = "address-validator" + FlagAddressValidator = "validator" ) diff --git a/x/stake/app_test.go b/x/stake/app_test.go index 9847ed2904b6..65c64fdef222 100644 --- a/x/stake/app_test.go +++ b/x/stake/app_test.go @@ -136,7 +136,7 @@ func TestStakeMsgs(t *testing.T) { mApp.BeginBlock(abci.RequestBeginBlock{}) validator := checkValidator(t, mApp, keeper, addr1, true) - require.Equal(t, addr1, validator.Owner) + require.Equal(t, addr1, validator.Operator) require.Equal(t, sdk.Bonded, validator.Status) require.True(sdk.DecEq(t, sdk.NewDec(10), validator.BondedTokens())) @@ -148,7 +148,7 @@ func TestStakeMsgs(t *testing.T) { mApp.BeginBlock(abci.RequestBeginBlock{}) validator = checkValidator(t, mApp, keeper, addr2, true) - require.Equal(t, addr2, validator.Owner) + require.Equal(t, addr2, validator.Operator) require.Equal(t, sdk.Bonded, validator.Status) require.True(sdk.DecEq(t, sdk.NewDec(10), validator.Tokens)) diff --git a/x/stake/client/cli/flags.go b/x/stake/client/cli/flags.go index 3d5e90b35102..d0e83ab3c683 100644 --- a/x/stake/client/cli/flags.go +++ b/x/stake/client/cli/flags.go @@ -9,7 +9,7 @@ import ( // nolint const ( FlagAddressDelegator = "address-delegator" - FlagAddressValidator = "address-validator" + FlagAddressValidator = "validator" FlagAddressValidatorSrc = "addr-validator-source" FlagAddressValidatorDst = "addr-validator-dest" FlagPubKey = "pubkey" diff --git a/x/stake/client/rest/query.go b/x/stake/client/rest/query.go index 4dfaa0f7faa4..036a3b451144 100644 --- a/x/stake/client/rest/query.go +++ b/x/stake/client/rest/query.go @@ -114,7 +114,7 @@ func delegatorHandlerFn(cliCtx context.CLIContext, cdc *wire.Codec) http.Handler } for _, validator := range validators { - validatorAddr = validator.Owner + validatorAddr = validator.Operator // Delegations delegations, statusCode, errMsg, err := getDelegatorDelegations(cliCtx, cdc, delegatorAddr, validatorAddr) @@ -400,7 +400,7 @@ func delegatorValidatorsHandlerFn(cliCtx context.CLIContext, cdc *wire.Codec) ht for _, validator := range validators { // get all transactions from the delegator to val and append - validatorAccAddr = validator.Owner + validatorAccAddr = validator.Operator validator, statusCode, errMsg, errRes := getDelegatorValidator(cliCtx, cdc, delegatorAddr, validatorAccAddr) if errRes != nil { diff --git a/x/stake/handler_test.go b/x/stake/handler_test.go index a06be0f8869c..9ff72090e114 100644 --- a/x/stake/handler_test.go +++ b/x/stake/handler_test.go @@ -136,13 +136,13 @@ func TestDuplicatesMsgCreateValidator(t *testing.T) { require.True(t, found) assert.Equal(t, sdk.Bonded, validator.Status) - assert.Equal(t, addr1, validator.Owner) + assert.Equal(t, addr1, validator.Operator) assert.Equal(t, pk1, validator.PubKey) assert.Equal(t, sdk.NewDec(10), validator.BondedTokens()) assert.Equal(t, sdk.NewDec(10), validator.DelegatorShares) assert.Equal(t, Description{}, validator.Description) - // two validators can't have the same owner address + // two validators can't have the same operator address msgCreateValidator2 := newTestMsgCreateValidator(addr1, pk2, 10) got = handleMsgCreateValidator(ctx, msgCreateValidator2, keeper) require.False(t, got.IsOK(), "%v", got) @@ -152,7 +152,7 @@ func TestDuplicatesMsgCreateValidator(t *testing.T) { got = handleMsgCreateValidator(ctx, msgCreateValidator3, keeper) require.False(t, got.IsOK(), "%v", got) - // must have different pubkey and owner + // must have different pubkey and operator msgCreateValidator4 := newTestMsgCreateValidator(addr2, pk2, 10) got = handleMsgCreateValidator(ctx, msgCreateValidator4, keeper) require.True(t, got.IsOK(), "%v", got) @@ -160,7 +160,7 @@ func TestDuplicatesMsgCreateValidator(t *testing.T) { require.True(t, found) assert.Equal(t, sdk.Bonded, validator.Status) - assert.Equal(t, addr2, validator.Owner) + assert.Equal(t, addr2, validator.Operator) assert.Equal(t, pk2, validator.PubKey) assert.True(sdk.DecEq(t, sdk.NewDec(10), validator.Tokens)) assert.True(sdk.DecEq(t, sdk.NewDec(10), validator.DelegatorShares)) @@ -180,7 +180,7 @@ func TestDuplicatesMsgCreateValidatorOnBehalfOf(t *testing.T) { require.True(t, found) assert.Equal(t, sdk.Bonded, validator.Status) - assert.Equal(t, validatorAddr, validator.Owner) + assert.Equal(t, validatorAddr, validator.Operator) assert.Equal(t, pk, validator.PubKey) assert.True(sdk.DecEq(t, sdk.NewDec(10), validator.Tokens)) assert.True(sdk.DecEq(t, sdk.NewDec(10), validator.DelegatorShares)) diff --git a/x/stake/keeper/_store.md b/x/stake/keeper/_store.md index 1c95ffe87601..818b17ac0ca7 100644 --- a/x/stake/keeper/_store.md +++ b/x/stake/keeper/_store.md @@ -4,18 +4,18 @@ This document provided a bit more insight as to the purpose of several related prefixed areas of the staking store which are accessed in `x/stake/keeper.go`. -## Validators +## Validators - Prefix Key Space: ValidatorsKey - - Key/Sort: Validator Owner Address + - Key/Sort: Validator Operator Address - Value: Validator Object - Contains: All Validator records independent of being bonded or not - - Used For: Retrieve validator from owner address, general validator retrieval + - Used For: Retrieve validator from operator address, general validator retrieval ## Validators By Power - Prefix Key Space: ValidatorsByPowerKey - Key/Sort: Validator Power (equivalent bonded shares) then Block Height then Transaction Order - - Value: Validator Owner Address + - Value: Validator Operator Address - Contains: All Validator records independent of being bonded or not - Used For: Determining who the top validators are whom should be bonded @@ -26,19 +26,19 @@ prefixed areas of the staking store which are accessed in `x/stake/keeper.go`. - Contains: The cliff validator (ex. 100th validator) power - Used For: Efficient updates to validator status -## Validators Bonded +## Validators Bonded - Prefix Key Space: ValidatorsBondedKey - Key/Sort: Validator PubKey Address (NOTE same as Tendermint) - - Value: Validator Owner Address + - Value: Validator Operator Address - Contains: Only currently bonded Validators - - Used For: Retrieving the list of all currently bonded validators when updating - for a new validator entering the validator set we may want to loop + - Used For: Retrieving the list of all currently bonded validators when updating + for a new validator entering the validator set we may want to loop through this set to determine who we've kicked out. retrieving validator by tendermint index ## Tendermint Updates - Prefix Key Space: TendermintUpdatesKey - - Key/Sort: Validator Owner Address + - Key/Sort: Validator Operator Address - Value: Tendermint ABCI Validator - Contains: Validators are queued to affect the consensus validation set in Tendermint - Used For: Informing Tendermint of the validator set updates, is used only intra-block, as the diff --git a/x/stake/keeper/delegation.go b/x/stake/keeper/delegation.go index 4b4d267aa20c..4256df4b5901 100644 --- a/x/stake/keeper/delegation.go +++ b/x/stake/keeper/delegation.go @@ -221,11 +221,11 @@ func (k Keeper) Delegate(ctx sdk.Context, delegatorAddr sdk.AccAddress, bondAmt validator types.Validator, subtractAccount bool) (newShares sdk.Dec, err sdk.Error) { // Get or create the delegator delegation - delegation, found := k.GetDelegation(ctx, delegatorAddr, validator.Owner) + delegation, found := k.GetDelegation(ctx, delegatorAddr, validator.Operator) if !found { delegation = types.Delegation{ DelegatorAddr: delegatorAddr, - ValidatorAddr: validator.Owner, + ValidatorAddr: validator.Operator, Shares: sdk.ZeroDec(), } } @@ -282,9 +282,9 @@ func (k Keeper) unbond(ctx sdk.Context, delegatorAddr, validatorAddr sdk.AccAddr // remove the delegation if delegation.Shares.IsZero() { - // if the delegation is the owner of the validator then + // if the delegation is the operator of the validator then // trigger a revoke validator - if bytes.Equal(delegation.DelegatorAddr, validator.Owner) && validator.Revoked == false { + if bytes.Equal(delegation.DelegatorAddr, validator.Operator) && validator.Revoked == false { validator.Revoked = true } k.RemoveDelegation(ctx, delegation) @@ -303,7 +303,7 @@ func (k Keeper) unbond(ctx sdk.Context, delegatorAddr, validatorAddr sdk.AccAddr // update then remove validator if necessary validator = k.UpdateValidator(ctx, validator) if validator.DelegatorShares.IsZero() { - k.RemoveValidator(ctx, validator.Owner) + k.RemoveValidator(ctx, validator.Operator) } return diff --git a/x/stake/keeper/slash.go b/x/stake/keeper/slash.go index c1fabe44112c..471886c26b2e 100644 --- a/x/stake/keeper/slash.go +++ b/x/stake/keeper/slash.go @@ -43,7 +43,7 @@ func (k Keeper) Slash(ctx sdk.Context, pubkey crypto.PubKey, infractionHeight in pubkey.Address())) return } - ownerAddress := validator.GetOwner() + operatorAddress := validator.GetOperator() // Track remaining slash amount for the validator // This will decrease when we slash unbondings and @@ -68,7 +68,7 @@ func (k Keeper) Slash(ctx sdk.Context, pubkey crypto.PubKey, infractionHeight in case infractionHeight < ctx.BlockHeight(): // Iterate through unbonding delegations from slashed validator - unbondingDelegations := k.GetUnbondingDelegationsFromValidator(ctx, ownerAddress) + unbondingDelegations := k.GetUnbondingDelegationsFromValidator(ctx, operatorAddress) for _, unbondingDelegation := range unbondingDelegations { amountSlashed := k.slashUnbondingDelegation(ctx, unbondingDelegation, infractionHeight, slashFactor) if amountSlashed.IsZero() { @@ -78,7 +78,7 @@ func (k Keeper) Slash(ctx sdk.Context, pubkey crypto.PubKey, infractionHeight in } // Iterate through redelegations from slashed validator - redelegations := k.GetRedelegationsFromValidator(ctx, ownerAddress) + redelegations := k.GetRedelegationsFromValidator(ctx, operatorAddress) for _, redelegation := range redelegations { amountSlashed := k.slashRedelegation(ctx, validator, redelegation, infractionHeight, slashFactor) if amountSlashed.IsZero() { @@ -103,7 +103,7 @@ func (k Keeper) Slash(ctx sdk.Context, pubkey crypto.PubKey, infractionHeight in validator = k.UpdateValidator(ctx, validator) // remove validator if it has been reduced to zero shares if validator.Tokens.IsZero() { - k.RemoveValidator(ctx, validator.Owner) + k.RemoveValidator(ctx, validator.Operator) } // Log that a slash occurred! diff --git a/x/stake/keeper/validator.go b/x/stake/keeper/validator.go index ce5a1906130a..5f880ebabb6a 100644 --- a/x/stake/keeper/validator.go +++ b/x/stake/keeper/validator.go @@ -36,25 +36,25 @@ func (k Keeper) GetValidatorByPubKey(ctx sdk.Context, pubkey crypto.PubKey) (val func (k Keeper) SetValidator(ctx sdk.Context, validator types.Validator) { store := ctx.KVStore(k.storeKey) bz := types.MustMarshalValidator(k.cdc, validator) - store.Set(GetValidatorKey(validator.Owner), bz) + store.Set(GetValidatorKey(validator.Operator), bz) } // validator index func (k Keeper) SetValidatorByPubKeyIndex(ctx sdk.Context, validator types.Validator) { store := ctx.KVStore(k.storeKey) - store.Set(GetValidatorByPubKeyIndexKey(validator.PubKey), validator.Owner) + store.Set(GetValidatorByPubKeyIndexKey(validator.PubKey), validator.Operator) } // validator index func (k Keeper) SetValidatorByPowerIndex(ctx sdk.Context, validator types.Validator, pool types.Pool) { store := ctx.KVStore(k.storeKey) - store.Set(GetValidatorsByPowerIndexKey(validator, pool), validator.Owner) + store.Set(GetValidatorsByPowerIndexKey(validator, pool), validator.Operator) } // validator index func (k Keeper) SetValidatorBondedIndex(ctx sdk.Context, validator types.Validator) { store := ctx.KVStore(k.storeKey) - store.Set(GetValidatorsBondedIndexKey(validator.Owner), []byte{}) + store.Set(GetValidatorsBondedIndexKey(validator.Operator), []byte{}) } // used in testing @@ -203,7 +203,7 @@ func (k Keeper) ClearTendermintUpdates(ctx sdk.Context) { func (k Keeper) UpdateValidator(ctx sdk.Context, validator types.Validator) types.Validator { store := ctx.KVStore(k.storeKey) pool := k.GetPool(ctx) - oldValidator, oldFound := k.GetValidator(ctx, validator.Owner) + oldValidator, oldFound := k.GetValidator(ctx, validator.Operator) validator = k.updateForRevoking(ctx, oldFound, oldValidator, validator) powerIncreasing := k.getPowerIncreasing(ctx, oldFound, oldValidator, validator) @@ -220,11 +220,11 @@ func (k Keeper) UpdateValidator(ctx sdk.Context, validator types.Validator) type (oldFound && oldValidator.Status == sdk.Bonded): bz := k.cdc.MustMarshalBinary(validator.ABCIValidator()) - store.Set(GetTendermintUpdatesKey(validator.Owner), bz) + store.Set(GetTendermintUpdatesKey(validator.Operator), bz) if cliffPower != nil { cliffAddr := sdk.AccAddress(k.GetCliffValidator(ctx)) - if bytes.Equal(cliffAddr, validator.Owner) { + if bytes.Equal(cliffAddr, validator.Operator) { k.updateCliffValidator(ctx, validator) } } @@ -255,7 +255,7 @@ func (k Keeper) UpdateValidator(ctx sdk.Context, validator types.Validator) type // if decreased in power but still bonded, update Tendermint validator if oldFound && oldValidator.BondedTokens().GT(validator.BondedTokens()) { bz := k.cdc.MustMarshalBinary(validator.ABCIValidator()) - store.Set(GetTendermintUpdatesKey(validator.Owner), bz) + store.Set(GetTendermintUpdatesKey(validator.Operator), bz) } } @@ -307,7 +307,7 @@ func (k Keeper) updateCliffValidator(ctx sdk.Context, affectedVal types.Validato panic("failed to create valid validator power iterator") } - if bytes.Equal(affectedVal.Owner, newCliffVal.Owner) { + if bytes.Equal(affectedVal.Operator, newCliffVal.Operator) { // The affected validator remains the cliff validator, however, since // the store does not contain the new power, set the new cliff // validator to the affected validator. @@ -365,7 +365,7 @@ func (k Keeper) updateValidatorPower(ctx sdk.Context, oldFound bool, oldValidato store.Delete(GetValidatorsByPowerIndexKey(oldValidator, pool)) } valPower = GetValidatorsByPowerIndexKey(newValidator, pool) - store.Set(valPower, newValidator.Owner) + store.Set(valPower, newValidator.Operator) return valPower } @@ -407,7 +407,7 @@ func (k Keeper) UpdateBondedValidators( // situation that this is the "affected validator" just use the // validator provided because it has not yet been updated in the store ownerAddr := iterator.Value() - if bytes.Equal(ownerAddr, affectedValidator.Owner) { + if bytes.Equal(ownerAddr, affectedValidator.Operator) { validator = affectedValidator } else { var found bool @@ -462,7 +462,7 @@ func (k Keeper) UpdateBondedValidators( // bond the new validator validator = k.bondValidator(ctx, validatorToBond) - if bytes.Equal(validator.Owner, affectedValidator.Owner) { + if bytes.Equal(validator.Operator, affectedValidator.Operator) { return validator, true } } @@ -572,10 +572,10 @@ func (k Keeper) unbondValidator(ctx sdk.Context, validator types.Validator) type // add to accumulated changes for tendermint bzABCI := k.cdc.MustMarshalBinary(validator.ABCIValidatorZero()) - store.Set(GetTendermintUpdatesKey(validator.Owner), bzABCI) + store.Set(GetTendermintUpdatesKey(validator.Operator), bzABCI) // also remove from the Bonded types.Validators Store - store.Delete(GetValidatorsBondedIndexKey(validator.Owner)) + store.Delete(GetValidatorsBondedIndexKey(validator.Operator)) return validator } @@ -596,11 +596,11 @@ func (k Keeper) bondValidator(ctx sdk.Context, validator types.Validator) types. // save the now bonded validator record to the three referenced stores k.SetValidator(ctx, validator) - store.Set(GetValidatorsBondedIndexKey(validator.Owner), []byte{}) + store.Set(GetValidatorsBondedIndexKey(validator.Operator), []byte{}) // add to accumulated changes for tendermint bzABCI := k.cdc.MustMarshalBinary(validator.ABCIValidator()) - store.Set(GetTendermintUpdatesKey(validator.Owner), bzABCI) + store.Set(GetTendermintUpdatesKey(validator.Operator), bzABCI) return validator } @@ -623,10 +623,10 @@ func (k Keeper) RemoveValidator(ctx sdk.Context, address sdk.AccAddress) { // delete from the current and power weighted validator groups if the validator // is bonded - and add validator with zero power to the validator updates - if store.Get(GetValidatorsBondedIndexKey(validator.Owner)) == nil { + if store.Get(GetValidatorsBondedIndexKey(validator.Operator)) == nil { return } - store.Delete(GetValidatorsBondedIndexKey(validator.Owner)) + store.Delete(GetValidatorsBondedIndexKey(validator.Operator)) bz := k.cdc.MustMarshalBinary(validator.ABCIValidatorZero()) store.Set(GetTendermintUpdatesKey(address), bz) @@ -651,7 +651,7 @@ func (k Keeper) setCliffValidator(ctx sdk.Context, validator types.Validator, po store := ctx.KVStore(k.storeKey) bz := GetValidatorsByPowerIndexKey(validator, pool) store.Set(ValidatorPowerCliffKey, bz) - store.Set(ValidatorCliffIndexKey, validator.Owner) + store.Set(ValidatorCliffIndexKey, validator.Operator) } // clear the current validator and power of the validator on the cliff diff --git a/x/stake/keeper/validator_test.go b/x/stake/keeper/validator_test.go index 7b15a9c7f100..7f17b391bec5 100644 --- a/x/stake/keeper/validator_test.go +++ b/x/stake/keeper/validator_test.go @@ -128,7 +128,7 @@ func TestCliffValidatorChange(t *testing.T) { // assert new cliff validator to be set to the second lowest bonded validator by power newCliffVal := validators[numVals-maxVals+1] - require.Equal(t, newCliffVal.Owner, sdk.AccAddress(keeper.GetCliffValidator(ctx))) + require.Equal(t, newCliffVal.Operator, sdk.AccAddress(keeper.GetCliffValidator(ctx))) // assert cliff validator power should have been updated cliffPower := keeper.GetCliffValidatorPower(ctx) @@ -141,7 +141,7 @@ func TestCliffValidatorChange(t *testing.T) { // assert cliff validator has not change but increased in power cliffPower = keeper.GetCliffValidatorPower(ctx) - require.Equal(t, newCliffVal.Owner, sdk.AccAddress(keeper.GetCliffValidator(ctx))) + require.Equal(t, newCliffVal.Operator, sdk.AccAddress(keeper.GetCliffValidator(ctx))) require.Equal(t, GetValidatorsByPowerIndexKey(newCliffVal, pool), cliffPower) } @@ -240,7 +240,7 @@ func TestValidatorBasics(t *testing.T) { assert.True(ValEq(t, validators[2], resVals[2])) // remove a record - keeper.RemoveValidator(ctx, validators[1].Owner) + keeper.RemoveValidator(ctx, validators[1].Operator) _, found = keeper.GetValidator(ctx, addrVals[1]) require.False(t, found) } @@ -269,11 +269,11 @@ func GetValidatorSortingUnmixed(t *testing.T) { assert.Equal(t, sdk.NewDec(100), resValidators[2].BondedTokens(), "%v", resValidators) assert.Equal(t, sdk.NewDec(1), resValidators[3].BondedTokens(), "%v", resValidators) assert.Equal(t, sdk.NewDec(0), resValidators[4].BondedTokens(), "%v", resValidators) - assert.Equal(t, validators[3].Owner, resValidators[0].Owner, "%v", resValidators) - assert.Equal(t, validators[4].Owner, resValidators[1].Owner, "%v", resValidators) - assert.Equal(t, validators[1].Owner, resValidators[2].Owner, "%v", resValidators) - assert.Equal(t, validators[2].Owner, resValidators[3].Owner, "%v", resValidators) - assert.Equal(t, validators[0].Owner, resValidators[4].Owner, "%v", resValidators) + assert.Equal(t, validators[3].Operator, resValidators[0].Operator, "%v", resValidators) + assert.Equal(t, validators[4].Operator, resValidators[1].Operator, "%v", resValidators) + assert.Equal(t, validators[1].Operator, resValidators[2].Operator, "%v", resValidators) + assert.Equal(t, validators[2].Operator, resValidators[3].Operator, "%v", resValidators) + assert.Equal(t, validators[0].Operator, resValidators[4].Operator, "%v", resValidators) // test a basic increase in voting power validators[3].Tokens = sdk.NewDec(500) @@ -380,11 +380,11 @@ func GetValidatorSortingMixed(t *testing.T) { assert.Equal(t, sdk.NewDec(100), resValidators[2].BondedTokens(), "%v", resValidators) assert.Equal(t, sdk.NewDec(1), resValidators[3].BondedTokens(), "%v", resValidators) assert.Equal(t, sdk.NewDec(0), resValidators[4].BondedTokens(), "%v", resValidators) - assert.Equal(t, validators[3].Owner, resValidators[0].Owner, "%v", resValidators) - assert.Equal(t, validators[4].Owner, resValidators[1].Owner, "%v", resValidators) - assert.Equal(t, validators[1].Owner, resValidators[2].Owner, "%v", resValidators) - assert.Equal(t, validators[2].Owner, resValidators[3].Owner, "%v", resValidators) - assert.Equal(t, validators[0].Owner, resValidators[4].Owner, "%v", resValidators) + assert.Equal(t, validators[3].Operator, resValidators[0].Operator, "%v", resValidators) + assert.Equal(t, validators[4].Operator, resValidators[1].Operator, "%v", resValidators) + assert.Equal(t, validators[1].Operator, resValidators[2].Operator, "%v", resValidators) + assert.Equal(t, validators[2].Operator, resValidators[3].Operator, "%v", resValidators) + assert.Equal(t, validators[0].Operator, resValidators[4].Operator, "%v", resValidators) } // TODO separate out into multiple tests @@ -409,7 +409,7 @@ func TestGetValidatorsEdgeCases(t *testing.T) { validators[i] = keeper.UpdateValidator(ctx, validators[i]) } for i := range amts { - validators[i], found = keeper.GetValidator(ctx, validators[i].Owner) + validators[i], found = keeper.GetValidator(ctx, validators[i].Operator) require.True(t, found) } resValidators := keeper.GetValidatorsByPower(ctx) @@ -433,7 +433,7 @@ func TestGetValidatorsEdgeCases(t *testing.T) { // validator 3 enters bonded validator set ctx = ctx.WithBlockHeight(40) - validators[3], found = keeper.GetValidator(ctx, validators[3].Owner) + validators[3], found = keeper.GetValidator(ctx, validators[3].Operator) require.True(t, found) validators[3], pool, _ = validators[3].AddTokensFromDel(pool, 1) keeper.SetPool(ctx, pool) @@ -460,7 +460,7 @@ func TestGetValidatorsEdgeCases(t *testing.T) { require.Equal(t, nMax, uint16(len(resValidators))) assert.True(ValEq(t, validators[0], resValidators[0])) assert.True(ValEq(t, validators[2], resValidators[1])) - validator, exists := keeper.GetValidator(ctx, validators[3].Owner) + validator, exists := keeper.GetValidator(ctx, validators[3].Operator) require.Equal(t, exists, true) require.Equal(t, int64(40), validator.BondHeight) } @@ -530,7 +530,7 @@ func TestFullValidatorSetPowerChange(t *testing.T) { } for i := range amts { var found bool - validators[i], found = keeper.GetValidator(ctx, validators[i].Owner) + validators[i], found = keeper.GetValidator(ctx, validators[i].Operator) require.True(t, found) } assert.Equal(t, sdk.Unbonded, validators[0].Status) @@ -603,8 +603,8 @@ func TestGetTendermintUpdatesAllNone(t *testing.T) { keeper.ClearTendermintUpdates(ctx) require.Equal(t, 0, len(keeper.GetTendermintUpdates(ctx))) - keeper.RemoveValidator(ctx, validators[0].Owner) - keeper.RemoveValidator(ctx, validators[1].Owner) + keeper.RemoveValidator(ctx, validators[0].Operator) + keeper.RemoveValidator(ctx, validators[1].Operator) updates = keeper.GetTendermintUpdates(ctx) assert.Equal(t, 2, len(updates)) diff --git a/x/stake/types/validator.go b/x/stake/types/validator.go index bd7d769932ad..7f40c57f5445 100644 --- a/x/stake/types/validator.go +++ b/x/stake/types/validator.go @@ -20,9 +20,9 @@ import ( // exchange rate. Voting power can be calculated as total bonds multiplied by // exchange rate. type Validator struct { - Owner sdk.AccAddress `json:"owner"` // sender of BondTx - UnbondTx returns here - PubKey crypto.PubKey `json:"pub_key"` // pubkey of validator - Revoked bool `json:"revoked"` // has the validator been revoked from bonded status? + Operator sdk.AccAddress `json:"operator"` // sender of BondTx - UnbondTx returns here + PubKey crypto.PubKey `json:"pub_key"` // pubkey of validator + Revoked bool `json:"revoked"` // has the validator been revoked from bonded status? Status sdk.BondStatus `json:"status"` // validator status (bonded/unbonding/unbonded) Tokens sdk.Dec `json:"tokens"` // delegated tokens (incl. self-delegation) @@ -43,9 +43,9 @@ type Validator struct { } // NewValidator - initialize a new validator -func NewValidator(owner sdk.AccAddress, pubKey crypto.PubKey, description Description) Validator { +func NewValidator(operator sdk.AccAddress, pubKey crypto.PubKey, description Description) Validator { return Validator{ - Owner: owner, + Operator: operator, PubKey: pubKey, Revoked: false, Status: sdk.Unbonded, @@ -103,8 +103,8 @@ func MustMarshalValidator(cdc *wire.Codec, validator Validator) []byte { } // unmarshal a redelegation from a store key and value -func MustUnmarshalValidator(cdc *wire.Codec, ownerAddr, value []byte) Validator { - validator, err := UnmarshalValidator(cdc, ownerAddr, value) +func MustUnmarshalValidator(cdc *wire.Codec, operatorAddr, value []byte) Validator { + validator, err := UnmarshalValidator(cdc, operatorAddr, value) if err != nil { panic(err) } @@ -113,8 +113,8 @@ func MustUnmarshalValidator(cdc *wire.Codec, ownerAddr, value []byte) Validator } // unmarshal a redelegation from a store key and value -func UnmarshalValidator(cdc *wire.Codec, ownerAddr, value []byte) (validator Validator, err error) { - if len(ownerAddr) != sdk.AddrLen { +func UnmarshalValidator(cdc *wire.Codec, operatorAddr, value []byte) (validator Validator, err error) { + if len(operatorAddr) != sdk.AddrLen { err = fmt.Errorf("%v", ErrBadValidatorAddr(DefaultCodespace).Data()) return } @@ -125,7 +125,7 @@ func UnmarshalValidator(cdc *wire.Codec, ownerAddr, value []byte) (validator Val } return Validator{ - Owner: ownerAddr, + Operator: operatorAddr, PubKey: storeValue.PubKey, Revoked: storeValue.Revoked, Tokens: storeValue.Tokens, @@ -144,7 +144,7 @@ func UnmarshalValidator(cdc *wire.Codec, ownerAddr, value []byte) (validator Val } // HumanReadableString returns a human readable string representation of a -// validator. An error is returned if the owner or the owner's public key +// validator. An error is returned if the operator or the operator's public key // cannot be converted to Bech32 format. func (v Validator) HumanReadableString() (string, error) { bechVal, err := sdk.Bech32ifyValPub(v.PubKey) @@ -153,7 +153,7 @@ func (v Validator) HumanReadableString() (string, error) { } resp := "Validator \n" - resp += fmt.Sprintf("Owner: %s\n", v.Owner) + resp += fmt.Sprintf("Operator: %s\n", v.Operator) resp += fmt.Sprintf("Validator: %s\n", bechVal) resp += fmt.Sprintf("Revoked: %v\n", v.Revoked) resp += fmt.Sprintf("Status: %s\n", sdk.BondStatusToString(v.Status)) @@ -175,9 +175,9 @@ func (v Validator) HumanReadableString() (string, error) { // validator struct for bech output type BechValidator struct { - Owner sdk.AccAddress `json:"owner"` // in bech32 - PubKey string `json:"pub_key"` // in bech32 - Revoked bool `json:"revoked"` // has the validator been revoked from bonded status? + Operator sdk.AccAddress `json:"operator"` // in bech32 + PubKey string `json:"pub_key"` // in bech32 + Revoked bool `json:"revoked"` // has the validator been revoked from bonded status? Status sdk.BondStatus `json:"status"` // validator status (bonded/unbonding/unbonded) Tokens sdk.Dec `json:"tokens"` // delegated tokens (incl. self-delegation) @@ -205,9 +205,9 @@ func (v Validator) Bech32Validator() (BechValidator, error) { } return BechValidator{ - Owner: v.Owner, - PubKey: bechValPubkey, - Revoked: v.Revoked, + Operator: v.Operator, + PubKey: bechValPubkey, + Revoked: v.Revoked, Status: v.Status, Tokens: v.Tokens, @@ -233,7 +233,7 @@ func (v Validator) Bech32Validator() (BechValidator, error) { // nolint gocyclo - why dis fail? func (v Validator) Equal(c2 Validator) bool { return v.PubKey.Equals(c2.PubKey) && - bytes.Equal(v.Owner, c2.Owner) && + bytes.Equal(v.Operator, c2.Operator) && v.Status.Equal(c2.Status) && v.Tokens.Equal(c2.Tokens) && v.DelegatorShares.Equal(c2.DelegatorShares) && @@ -430,7 +430,7 @@ var _ sdk.Validator = Validator{} func (v Validator) GetRevoked() bool { return v.Revoked } func (v Validator) GetMoniker() string { return v.Description.Moniker } func (v Validator) GetStatus() sdk.BondStatus { return v.Status } -func (v Validator) GetOwner() sdk.AccAddress { return v.Owner } +func (v Validator) GetOperator() sdk.AccAddress { return v.Operator } func (v Validator) GetPubKey() crypto.PubKey { return v.PubKey } func (v Validator) GetPower() sdk.Dec { return v.BondedTokens() } func (v Validator) GetTokens() sdk.Dec { return v.Tokens } diff --git a/x/stake/types/validator_test.go b/x/stake/types/validator_test.go index 3981f5754d64..f4c874057f2a 100644 --- a/x/stake/types/validator_test.go +++ b/x/stake/types/validator_test.go @@ -72,7 +72,7 @@ func TestABCIValidatorZero(t *testing.T) { func TestRemoveTokens(t *testing.T) { validator := Validator{ - Owner: addr1, + Operator: addr1, PubKey: pk1, Status: sdk.Bonded, Tokens: sdk.NewDec(100), @@ -148,7 +148,7 @@ func TestAddTokensValidatorUnbonded(t *testing.T) { // TODO refactor to make simpler like the AddToken tests above func TestRemoveDelShares(t *testing.T) { valA := Validator{ - Owner: addr1, + Operator: addr1, PubKey: pk1, Status: sdk.Bonded, Tokens: sdk.NewDec(100), @@ -176,7 +176,7 @@ func TestRemoveDelShares(t *testing.T) { poolTokens := sdk.NewDec(5102) delShares := sdk.NewDec(115) validator := Validator{ - Owner: addr1, + Operator: addr1, PubKey: pk1, Status: sdk.Bonded, Tokens: poolTokens, @@ -229,7 +229,7 @@ func TestPossibleOverflow(t *testing.T) { poolTokens := sdk.NewDec(2159) delShares := sdk.NewDec(391432570689183511).Quo(sdk.NewDec(40113011844664)) validator := Validator{ - Owner: addr1, + Operator: addr1, PubKey: pk1, Status: sdk.Bonded, Tokens: poolTokens,