2018-09-24 15:23:58 -07:00
|
|
|
package cli
|
|
|
|
|
|
|
|
import (
|
2019-02-08 11:37:46 -08:00
|
|
|
"errors"
|
2018-12-10 06:27:25 -08:00
|
|
|
|
2018-09-24 15:23:58 -07:00
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
2019-01-11 12:08:01 -08:00
|
|
|
"github.com/cosmos/cosmos-sdk/x/staking/types"
|
2018-09-24 15:23:58 -07:00
|
|
|
)
|
|
|
|
|
2019-02-06 16:15:37 -08:00
|
|
|
func getShares(sharesAmountStr string, delAddr sdk.AccAddress, valAddr sdk.ValAddress) (sharesAmount sdk.Dec, err error) {
|
|
|
|
sharesAmount, err = sdk.NewDecFromStr(sharesAmountStr)
|
|
|
|
if err != nil {
|
|
|
|
return sharesAmount, err
|
|
|
|
}
|
2018-09-24 15:23:58 -07:00
|
|
|
|
2019-02-06 16:15:37 -08:00
|
|
|
if !sharesAmount.GT(sdk.ZeroDec()) {
|
2019-02-08 11:37:46 -08:00
|
|
|
return sharesAmount, errors.New("shares amount must be positive number (ex. 123, 1.23456789)")
|
2018-09-24 15:23:58 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func buildCommissionMsg(rateStr, maxRateStr, maxChangeRateStr string) (commission types.CommissionMsg, err error) {
|
|
|
|
if rateStr == "" || maxRateStr == "" || maxChangeRateStr == "" {
|
2019-02-08 11:37:46 -08:00
|
|
|
return commission, errors.New("must specify all validator commission parameters")
|
2018-09-24 15:23:58 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
rate, err := sdk.NewDecFromStr(rateStr)
|
|
|
|
if err != nil {
|
|
|
|
return commission, err
|
|
|
|
}
|
|
|
|
|
|
|
|
maxRate, err := sdk.NewDecFromStr(maxRateStr)
|
|
|
|
if err != nil {
|
|
|
|
return commission, err
|
|
|
|
}
|
|
|
|
|
|
|
|
maxChangeRate, err := sdk.NewDecFromStr(maxChangeRateStr)
|
|
|
|
if err != nil {
|
|
|
|
return commission, err
|
|
|
|
}
|
|
|
|
|
|
|
|
commission = types.NewCommissionMsg(rate, maxRate, maxChangeRate)
|
|
|
|
return commission, nil
|
|
|
|
}
|