2019-01-11 12:08:01 -08:00
|
|
|
package staking
|
2018-10-09 10:58:59 -07:00
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/tendermint/tendermint/crypto"
|
|
|
|
"github.com/tendermint/tendermint/crypto/ed25519"
|
|
|
|
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
2019-01-11 12:08:01 -08:00
|
|
|
"github.com/cosmos/cosmos-sdk/x/staking/types"
|
2018-10-09 10:58:59 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
priv1 = ed25519.GenPrivKey()
|
|
|
|
addr1 = sdk.AccAddress(priv1.PubKey().Address())
|
|
|
|
priv2 = ed25519.GenPrivKey()
|
|
|
|
addr2 = sdk.AccAddress(priv2.PubKey().Address())
|
|
|
|
addr3 = sdk.AccAddress(ed25519.GenPrivKey().PubKey().Address())
|
|
|
|
priv4 = ed25519.GenPrivKey()
|
|
|
|
addr4 = sdk.AccAddress(priv4.PubKey().Address())
|
|
|
|
coins = sdk.Coins{sdk.NewCoin("foocoin", sdk.NewInt(10))}
|
|
|
|
fee = auth.NewStdFee(
|
|
|
|
100000,
|
2018-12-19 16:26:33 -08:00
|
|
|
sdk.Coins{sdk.NewCoin("foocoin", sdk.NewInt(0))},
|
2018-10-09 10:58:59 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
commissionMsg = NewCommissionMsg(sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec())
|
|
|
|
)
|
|
|
|
|
2019-02-05 21:30:48 -08:00
|
|
|
func NewTestMsgCreateValidator(address sdk.ValAddress, pubKey crypto.PubKey, amt sdk.Int) MsgCreateValidator {
|
2018-10-09 10:58:59 -07:00
|
|
|
return types.NewMsgCreateValidator(
|
2019-02-13 15:01:50 -08:00
|
|
|
address, pubKey, sdk.NewCoin(sdk.DefaultBondDenom, amt), Description{}, commissionMsg, sdk.OneInt(),
|
2018-10-09 10:58:59 -07:00
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2018-10-10 23:26:54 -07:00
|
|
|
func NewTestMsgCreateValidatorWithCommission(address sdk.ValAddress, pubKey crypto.PubKey,
|
2019-02-05 21:30:48 -08:00
|
|
|
amt sdk.Int, commissionRate sdk.Dec) MsgCreateValidator {
|
2018-10-10 23:26:54 -07:00
|
|
|
|
|
|
|
commission := NewCommissionMsg(commissionRate, sdk.OneDec(), sdk.ZeroDec())
|
|
|
|
|
|
|
|
return types.NewMsgCreateValidator(
|
2019-02-13 15:01:50 -08:00
|
|
|
address, pubKey, sdk.NewCoin(sdk.DefaultBondDenom, amt), Description{}, commission, sdk.OneInt(),
|
2019-02-08 12:44:19 -08:00
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewTestMsgCreateValidatorWithMinSelfDelegation(address sdk.ValAddress, pubKey crypto.PubKey,
|
|
|
|
amt sdk.Int, minSelfDelegation sdk.Int) MsgCreateValidator {
|
|
|
|
|
|
|
|
return types.NewMsgCreateValidator(
|
2019-02-13 15:01:50 -08:00
|
|
|
address, pubKey, sdk.NewCoin(sdk.DefaultBondDenom, amt), Description{}, commissionMsg, minSelfDelegation,
|
2018-10-10 23:26:54 -07:00
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2019-02-05 21:30:48 -08:00
|
|
|
func NewTestMsgDelegate(delAddr sdk.AccAddress, valAddr sdk.ValAddress, amt sdk.Int) MsgDelegate {
|
2019-02-13 15:01:50 -08:00
|
|
|
amount := sdk.NewCoin(sdk.DefaultBondDenom, amt)
|
2019-01-17 09:53:22 -08:00
|
|
|
return NewMsgDelegate(delAddr, valAddr, amount)
|
2018-10-09 10:58:59 -07:00
|
|
|
}
|
|
|
|
|
2019-02-05 21:30:48 -08:00
|
|
|
func NewTestMsgCreateValidatorOnBehalfOf(delAddr sdk.AccAddress, valAddr sdk.ValAddress,
|
|
|
|
valPubKey crypto.PubKey, amt sdk.Int) MsgCreateValidator {
|
|
|
|
|
2019-02-13 15:01:50 -08:00
|
|
|
amount := sdk.NewCoin(sdk.DefaultBondDenom, amt)
|
2019-02-08 12:44:19 -08:00
|
|
|
return NewMsgCreateValidatorOnBehalfOf(delAddr, valAddr, valPubKey, amount, Description{}, commissionMsg, sdk.OneInt())
|
2018-10-09 10:58:59 -07:00
|
|
|
}
|