From afc2bbfe091a46154e271083369768d8032e9bba Mon Sep 17 00:00:00 2001 From: rigelrozanski Date: Thu, 31 May 2018 12:10:12 -0700 Subject: [PATCH] working through cli --- client/keys/utils.go | 2 +- cmd/gaia/cli_test/cli_test.go | 118 +++++++++++++++++----------------- cmd/gaia/cmd/gaiacli/main.go | 4 +- x/stake/client/cli/tx.go | 4 +- 4 files changed, 65 insertions(+), 63 deletions(-) diff --git a/client/keys/utils.go b/client/keys/utils.go index 1a358cfc9c..7224294290 100644 --- a/client/keys/utils.go +++ b/client/keys/utils.go @@ -76,7 +76,7 @@ func printInfo(info keys.Info) { fmt.Printf("NAME:\tADDRESS:\t\t\t\t\t\tPUBKEY:\n") printKeyOutput(ko) case "json": - out, err := json.MarshalIndent(ko, "", "\t") + out, err := MarshalJSON(ko) if err != nil { panic(err) } diff --git a/cmd/gaia/cli_test/cli_test.go b/cmd/gaia/cli_test/cli_test.go index c76221c2d7..8d98486d72 100644 --- a/cmd/gaia/cli_test/cli_test.go +++ b/cmd/gaia/cli_test/cli_test.go @@ -36,41 +36,37 @@ func TestGaiaCLISend(t *testing.T) { // start gaiad server proc := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr)) defer proc.Stop(false) + time.Sleep(time.Second * 5) // Wait for RPC server to start. 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") + barCech, err := sdk.Bech32CosmosifyAcc(barAddr) + require.NoError(t, err) - fooBech, err := sdk.Bech32CosmosifyAcc(fooAddr) - 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)) + fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags)) 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) - time.Sleep(time.Second * 3) // waiting for some blocks to pass + executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barCech), 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")) - 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")) // test autosequencing - executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barBech), pass) - time.Sleep(time.Second * 3) // waiting for some blocks to pass + executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barCech), 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")) - 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")) } -func TestGaiaCLIDeclareCandidacy(t *testing.T) { +func TestGaiaCLICreateValidator(t *testing.T) { tests.ExecuteT(t, "gaiad unsafe_reset_all") pass := "1234567890" @@ -86,62 +82,67 @@ func TestGaiaCLIDeclareCandidacy(t *testing.T) { // start gaiad server proc := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr)) defer proc.Stop(false) + time.Sleep(time.Second * 5) // Wait for RPC server to start. 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) - if err != nil { - 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, barCech), pass) + time.Sleep(time.Second * 2) // waiting for some blocks to pass - executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --name=foo", flags, barBech), pass) - 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)) + barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags)) 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 - declStr := fmt.Sprintf("gaiacli create-validator %v", flags) - declStr += fmt.Sprintf(" --name=%v", "bar") - declStr += fmt.Sprintf(" --validator-address=%v", bechVal) - declStr += fmt.Sprintf(" --amount=%v", "3steak") - declStr += fmt.Sprintf(" --moniker=%v", "bar-vally") - t.Log(fmt.Sprintf("debug declStr: %v\n", declStr)) - executeWrite(t, declStr, pass) - time.Sleep(time.Second) // waiting for some blocks to pass - barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barAddr, flags)) + cvStr := fmt.Sprintf("gaiacli create-validator %v", flags) + cvStr += fmt.Sprintf(" --name=%v", "bar") + cvStr += fmt.Sprintf(" --validator-address=%v", barCech) + cvStr += fmt.Sprintf(" --pubkey=%v", barCeshPubKey) + cvStr += fmt.Sprintf(" --amount=%v", "3steak") + cvStr += fmt.Sprintf(" --moniker=%v", "bar-vally") + + executeWrite(t, cvStr, pass) + 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")) - candidate := executeGetCandidate(t, fmt.Sprintf("gaiacli candidate %v --address-candidate=%v", flags, barAddr)) - assert.Equal(t, candidate.Owner.String(), barAddr) - assert.Equal(t, int64(3), candidate.PoolShares) + + validator := executeGetValidator(t, fmt.Sprintf("gaiacli validator %v %v", barCech, flags)) + assert.Equal(t, validator.Owner.String(), barCech) + assert.Equal(t, int64(3), validator.PoolShares) // TODO timeout issues if not connected to the internet // unbond a single share //unbondStr := fmt.Sprintf("gaiacli unbond %v", flags) //unbondStr += fmt.Sprintf(" --name=%v", "bar") - //unbondStr += fmt.Sprintf(" --address-candidate=%v", barAddr) - //unbondStr += fmt.Sprintf(" --address-delegator=%v", barAddr) + //unbondStr += fmt.Sprintf(" --address-validator=%v", barCech) + //unbondStr += fmt.Sprintf(" --address-delegator=%v", barCech) //unbondStr += fmt.Sprintf(" --shares=%v", "1") //unbondStr += fmt.Sprintf(" --sequence=%v", "1") //t.Log(fmt.Sprintf("debug unbondStr: %v\n", unbondStr)) //executeWrite(t, unbondStr, 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")) - //candidate = executeGetCandidate(t, fmt.Sprintf("gaiacli candidate %v --address-candidate=%v", flags, barAddr)) - //assert.Equal(t, int64(2), candidate.BondedShares.Evaluate()) + //validator = executeGetValidator(t, fmt.Sprintf("gaiacli validator %v --address-validator=%v", flags, barCech)) + //assert.Equal(t, int64(2), validator.BondedShares.Evaluate()) } +//___________________________________________________________________________________ +// executors + func executeWrite(t *testing.T, cmdStr string, writes ...string) { 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) var ko keys.KeyOutput keys.UnmarshalJSON([]byte(out), &ko) + return ko.Address, ko.PubKey } @@ -186,11 +188,11 @@ func executeGetAccount(t *testing.T, cmdStr string) auth.BaseAccount { 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) - var candidate stake.Validator + var validator stake.Validator 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) - return candidate + return validator } diff --git a/cmd/gaia/cmd/gaiacli/main.go b/cmd/gaia/cmd/gaiacli/main.go index 2f36201b2f..51dab68e28 100644 --- a/cmd/gaia/cmd/gaiacli/main.go +++ b/cmd/gaia/cmd/gaiacli/main.go @@ -55,8 +55,8 @@ func main() { bankcmd.SendTxCmd(cdc), ibccmd.IBCTransferCmd(cdc), ibccmd.IBCRelayCmd(cdc), - stakecmd.GetCmdDeclareCandidacy(cdc), - stakecmd.GetCmdEditCandidacy(cdc), + stakecmd.GetCmdCreateValidator(cdc), + stakecmd.GetCmdEditValidator(cdc), stakecmd.GetCmdDelegate(cdc), stakecmd.GetCmdUnbond(cdc), )...) diff --git a/x/stake/client/cli/tx.go b/x/stake/client/cli/tx.go index dc88bfc209..5cd2656b62 100644 --- a/x/stake/client/cli/tx.go +++ b/x/stake/client/cli/tx.go @@ -14,7 +14,7 @@ import ( ) // create declare candidacy command -func GetCmdDeclareCandidacy(cdc *wire.Codec) *cobra.Command { +func GetCmdCreateValidator(cdc *wire.Codec) *cobra.Command { cmd := &cobra.Command{ Use: "create-validator", 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 -func GetCmdEditCandidacy(cdc *wire.Codec) *cobra.Command { +func GetCmdEditValidator(cdc *wire.Codec) *cobra.Command { cmd := &cobra.Command{ Use: "edit-validator", Short: "edit and existing validator account",