working through cli
This commit is contained in:
parent
94e78e0602
commit
afc2bbfe09
|
@ -76,7 +76,7 @@ func printInfo(info keys.Info) {
|
||||||
fmt.Printf("NAME:\tADDRESS:\t\t\t\t\t\tPUBKEY:\n")
|
fmt.Printf("NAME:\tADDRESS:\t\t\t\t\t\tPUBKEY:\n")
|
||||||
printKeyOutput(ko)
|
printKeyOutput(ko)
|
||||||
case "json":
|
case "json":
|
||||||
out, err := json.MarshalIndent(ko, "", "\t")
|
out, err := MarshalJSON(ko)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,41 +36,37 @@ func TestGaiaCLISend(t *testing.T) {
|
||||||
// start gaiad server
|
// start gaiad server
|
||||||
proc := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr))
|
proc := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr))
|
||||||
defer proc.Stop(false)
|
defer proc.Stop(false)
|
||||||
|
time.Sleep(time.Second * 5) // Wait for RPC server to start.
|
||||||
|
|
||||||
fooAddr, _ := executeGetAddrPK(t, "gaiacli keys show foo --output=json")
|
fooAddr, _ := executeGetAddrPK(t, "gaiacli keys show foo --output=json")
|
||||||
|
fooCech, err := sdk.Bech32CosmosifyAcc(fooAddr)
|
||||||
|
require.NoError(t, err)
|
||||||
barAddr, _ := executeGetAddrPK(t, "gaiacli keys show bar --output=json")
|
barAddr, _ := executeGetAddrPK(t, "gaiacli keys show bar --output=json")
|
||||||
|
barCech, err := sdk.Bech32CosmosifyAcc(barAddr)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
fooBech, err := sdk.Bech32CosmosifyAcc(fooAddr)
|
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
barBech, err := sdk.Bech32CosmosifyAcc(barAddr)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
time.Sleep(time.Second * 5) // Wait for RPC server to start.
|
|
||||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooBech, flags))
|
|
||||||
assert.Equal(t, int64(50), fooAcc.GetCoins().AmountOf("steak"))
|
assert.Equal(t, int64(50), fooAcc.GetCoins().AmountOf("steak"))
|
||||||
|
|
||||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barBech), pass)
|
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barCech), pass)
|
||||||
time.Sleep(time.Second * 3) // waiting for some blocks to pass
|
time.Sleep(time.Second * 2) // waiting for some blocks to pass
|
||||||
|
|
||||||
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barBech, flags))
|
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||||
assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("steak"))
|
assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("steak"))
|
||||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooBech, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||||
assert.Equal(t, int64(40), fooAcc.GetCoins().AmountOf("steak"))
|
assert.Equal(t, int64(40), fooAcc.GetCoins().AmountOf("steak"))
|
||||||
|
|
||||||
// test autosequencing
|
// test autosequencing
|
||||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barBech), pass)
|
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barCech), pass)
|
||||||
time.Sleep(time.Second * 3) // waiting for some blocks to pass
|
time.Sleep(time.Second * 2) // waiting for some blocks to pass
|
||||||
|
|
||||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barBech, flags))
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||||
assert.Equal(t, int64(20), barAcc.GetCoins().AmountOf("steak"))
|
assert.Equal(t, int64(20), barAcc.GetCoins().AmountOf("steak"))
|
||||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooBech, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||||
assert.Equal(t, int64(30), fooAcc.GetCoins().AmountOf("steak"))
|
assert.Equal(t, int64(30), fooAcc.GetCoins().AmountOf("steak"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGaiaCLIDeclareCandidacy(t *testing.T) {
|
func TestGaiaCLICreateValidator(t *testing.T) {
|
||||||
|
|
||||||
tests.ExecuteT(t, "gaiad unsafe_reset_all")
|
tests.ExecuteT(t, "gaiad unsafe_reset_all")
|
||||||
pass := "1234567890"
|
pass := "1234567890"
|
||||||
|
@ -86,62 +82,67 @@ func TestGaiaCLIDeclareCandidacy(t *testing.T) {
|
||||||
// start gaiad server
|
// start gaiad server
|
||||||
proc := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr))
|
proc := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr))
|
||||||
defer proc.Stop(false)
|
defer proc.Stop(false)
|
||||||
|
time.Sleep(time.Second * 5) // Wait for RPC server to start.
|
||||||
|
|
||||||
fooAddr, _ := executeGetAddrPK(t, "gaiacli keys show foo --output=json")
|
fooAddr, _ := executeGetAddrPK(t, "gaiacli keys show foo --output=json")
|
||||||
barAddr, _ := executeGetAddrPK(t, "gaiacli keys show bar --output=json")
|
fooCech, err := sdk.Bech32CosmosifyAcc(fooAddr)
|
||||||
|
require.NoError(t, err)
|
||||||
|
barAddr, barPubKey := executeGetAddrPK(t, "gaiacli keys show bar --output=json")
|
||||||
|
barCech, err := sdk.Bech32CosmosifyAcc(barAddr)
|
||||||
|
require.NoError(t, err)
|
||||||
|
barCeshPubKey, err := sdk.Bech32CosmosifyValPub(barPubKey)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
fooBech, err := sdk.Bech32CosmosifyAcc(fooAddr)
|
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barCech), pass)
|
||||||
if err != nil {
|
time.Sleep(time.Second * 2) // waiting for some blocks to pass
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
barBech, err := sdk.Bech32CosmosifyAcc(barAddr)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
valPrivkey := crypto.GenPrivKeyEd25519()
|
|
||||||
valAddr := sdk.Address((valPrivkey.PubKey().Address()))
|
|
||||||
bechVal, err := sdk.Bech32CosmosifyVal(valAddr)
|
|
||||||
|
|
||||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barBech), pass)
|
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||||
time.Sleep(time.Second * 3) // waiting for some blocks to pass
|
|
||||||
|
|
||||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooBech, flags))
|
|
||||||
assert.Equal(t, int64(40), fooAcc.GetCoins().AmountOf("steak"))
|
|
||||||
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barBech, flags))
|
|
||||||
assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("steak"))
|
assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("steak"))
|
||||||
|
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||||
|
assert.Equal(t, int64(40), fooAcc.GetCoins().AmountOf("steak"))
|
||||||
|
|
||||||
|
//valPrivkey := crypto.GenPrivKeyEd25519()
|
||||||
|
//valAddr := sdk.Address((valPrivkey.PubKey().Address()))
|
||||||
|
//bechVal, err := sdk.Bech32CosmosifyVal(valAddr)
|
||||||
|
|
||||||
// declare candidacy
|
// declare candidacy
|
||||||
declStr := fmt.Sprintf("gaiacli create-validator %v", flags)
|
cvStr := fmt.Sprintf("gaiacli create-validator %v", flags)
|
||||||
declStr += fmt.Sprintf(" --name=%v", "bar")
|
cvStr += fmt.Sprintf(" --name=%v", "bar")
|
||||||
declStr += fmt.Sprintf(" --validator-address=%v", bechVal)
|
cvStr += fmt.Sprintf(" --validator-address=%v", barCech)
|
||||||
declStr += fmt.Sprintf(" --amount=%v", "3steak")
|
cvStr += fmt.Sprintf(" --pubkey=%v", barCeshPubKey)
|
||||||
declStr += fmt.Sprintf(" --moniker=%v", "bar-vally")
|
cvStr += fmt.Sprintf(" --amount=%v", "3steak")
|
||||||
t.Log(fmt.Sprintf("debug declStr: %v\n", declStr))
|
cvStr += fmt.Sprintf(" --moniker=%v", "bar-vally")
|
||||||
executeWrite(t, declStr, pass)
|
|
||||||
time.Sleep(time.Second) // waiting for some blocks to pass
|
executeWrite(t, cvStr, pass)
|
||||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barAddr, flags))
|
time.Sleep(time.Second * 5) // waiting for some blocks to pass
|
||||||
|
|
||||||
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||||
assert.Equal(t, int64(7), barAcc.GetCoins().AmountOf("steak"))
|
assert.Equal(t, int64(7), barAcc.GetCoins().AmountOf("steak"))
|
||||||
candidate := executeGetCandidate(t, fmt.Sprintf("gaiacli candidate %v --address-candidate=%v", flags, barAddr))
|
|
||||||
assert.Equal(t, candidate.Owner.String(), barAddr)
|
validator := executeGetValidator(t, fmt.Sprintf("gaiacli validator %v %v", barCech, flags))
|
||||||
assert.Equal(t, int64(3), candidate.PoolShares)
|
assert.Equal(t, validator.Owner.String(), barCech)
|
||||||
|
assert.Equal(t, int64(3), validator.PoolShares)
|
||||||
|
|
||||||
// TODO timeout issues if not connected to the internet
|
// TODO timeout issues if not connected to the internet
|
||||||
// unbond a single share
|
// unbond a single share
|
||||||
//unbondStr := fmt.Sprintf("gaiacli unbond %v", flags)
|
//unbondStr := fmt.Sprintf("gaiacli unbond %v", flags)
|
||||||
//unbondStr += fmt.Sprintf(" --name=%v", "bar")
|
//unbondStr += fmt.Sprintf(" --name=%v", "bar")
|
||||||
//unbondStr += fmt.Sprintf(" --address-candidate=%v", barAddr)
|
//unbondStr += fmt.Sprintf(" --address-validator=%v", barCech)
|
||||||
//unbondStr += fmt.Sprintf(" --address-delegator=%v", barAddr)
|
//unbondStr += fmt.Sprintf(" --address-delegator=%v", barCech)
|
||||||
//unbondStr += fmt.Sprintf(" --shares=%v", "1")
|
//unbondStr += fmt.Sprintf(" --shares=%v", "1")
|
||||||
//unbondStr += fmt.Sprintf(" --sequence=%v", "1")
|
//unbondStr += fmt.Sprintf(" --sequence=%v", "1")
|
||||||
//t.Log(fmt.Sprintf("debug unbondStr: %v\n", unbondStr))
|
//t.Log(fmt.Sprintf("debug unbondStr: %v\n", unbondStr))
|
||||||
//executeWrite(t, unbondStr, pass)
|
//executeWrite(t, unbondStr, pass)
|
||||||
//time.Sleep(time.Second * 3) // waiting for some blocks to pass
|
//time.Sleep(time.Second * 3) // waiting for some blocks to pass
|
||||||
//barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barAddr, flags))
|
//barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||||
//assert.Equal(t, int64(99998), barAcc.GetCoins().AmountOf("steak"))
|
//assert.Equal(t, int64(99998), barAcc.GetCoins().AmountOf("steak"))
|
||||||
//candidate = executeGetCandidate(t, fmt.Sprintf("gaiacli candidate %v --address-candidate=%v", flags, barAddr))
|
//validator = executeGetValidator(t, fmt.Sprintf("gaiacli validator %v --address-validator=%v", flags, barCech))
|
||||||
//assert.Equal(t, int64(2), candidate.BondedShares.Evaluate())
|
//assert.Equal(t, int64(2), validator.BondedShares.Evaluate())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//___________________________________________________________________________________
|
||||||
|
// executors
|
||||||
|
|
||||||
func executeWrite(t *testing.T, cmdStr string, writes ...string) {
|
func executeWrite(t *testing.T, cmdStr string, writes ...string) {
|
||||||
proc := tests.GoExecuteT(t, cmdStr)
|
proc := tests.GoExecuteT(t, cmdStr)
|
||||||
|
|
||||||
|
@ -169,6 +170,7 @@ func executeGetAddrPK(t *testing.T, cmdStr string) (sdk.Address, crypto.PubKey)
|
||||||
out := tests.ExecuteT(t, cmdStr)
|
out := tests.ExecuteT(t, cmdStr)
|
||||||
var ko keys.KeyOutput
|
var ko keys.KeyOutput
|
||||||
keys.UnmarshalJSON([]byte(out), &ko)
|
keys.UnmarshalJSON([]byte(out), &ko)
|
||||||
|
|
||||||
return ko.Address, ko.PubKey
|
return ko.Address, ko.PubKey
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,11 +188,11 @@ func executeGetAccount(t *testing.T, cmdStr string) auth.BaseAccount {
|
||||||
return acc
|
return acc
|
||||||
}
|
}
|
||||||
|
|
||||||
func executeGetCandidate(t *testing.T, cmdStr string) stake.Validator {
|
func executeGetValidator(t *testing.T, cmdStr string) stake.Validator {
|
||||||
out := tests.ExecuteT(t, cmdStr)
|
out := tests.ExecuteT(t, cmdStr)
|
||||||
var candidate stake.Validator
|
var validator stake.Validator
|
||||||
cdc := app.MakeCodec()
|
cdc := app.MakeCodec()
|
||||||
err := cdc.UnmarshalJSON([]byte(out), &candidate)
|
err := cdc.UnmarshalJSON([]byte(out), &validator)
|
||||||
require.NoError(t, err, "out %v, err %v", out, err)
|
require.NoError(t, err, "out %v, err %v", out, err)
|
||||||
return candidate
|
return validator
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,8 +55,8 @@ func main() {
|
||||||
bankcmd.SendTxCmd(cdc),
|
bankcmd.SendTxCmd(cdc),
|
||||||
ibccmd.IBCTransferCmd(cdc),
|
ibccmd.IBCTransferCmd(cdc),
|
||||||
ibccmd.IBCRelayCmd(cdc),
|
ibccmd.IBCRelayCmd(cdc),
|
||||||
stakecmd.GetCmdDeclareCandidacy(cdc),
|
stakecmd.GetCmdCreateValidator(cdc),
|
||||||
stakecmd.GetCmdEditCandidacy(cdc),
|
stakecmd.GetCmdEditValidator(cdc),
|
||||||
stakecmd.GetCmdDelegate(cdc),
|
stakecmd.GetCmdDelegate(cdc),
|
||||||
stakecmd.GetCmdUnbond(cdc),
|
stakecmd.GetCmdUnbond(cdc),
|
||||||
)...)
|
)...)
|
||||||
|
|
|
@ -14,7 +14,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// create declare candidacy command
|
// create declare candidacy command
|
||||||
func GetCmdDeclareCandidacy(cdc *wire.Codec) *cobra.Command {
|
func GetCmdCreateValidator(cdc *wire.Codec) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "create-validator",
|
Use: "create-validator",
|
||||||
Short: "create new validator initialized with a self-delegation to it",
|
Short: "create new validator initialized with a self-delegation to it",
|
||||||
|
@ -68,7 +68,7 @@ func GetCmdDeclareCandidacy(cdc *wire.Codec) *cobra.Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
// create edit candidacy command
|
// create edit candidacy command
|
||||||
func GetCmdEditCandidacy(cdc *wire.Codec) *cobra.Command {
|
func GetCmdEditValidator(cdc *wire.Codec) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "edit-validator",
|
Use: "edit-validator",
|
||||||
Short: "edit and existing validator account",
|
Short: "edit and existing validator account",
|
||||||
|
|
Loading…
Reference in New Issue