fix stake query keys

This commit is contained in:
rigelrozanski 2018-04-16 19:17:09 -04:00
parent 265670297c
commit 09fe4c0262
4 changed files with 61 additions and 54 deletions

View File

@ -19,12 +19,45 @@ import (
crkeys "github.com/tendermint/go-crypto/keys"
)
func TestGaiaCLI(t *testing.T) {
//func TestGaiaCLISend(t *testing.T) {
//tests.ExecuteT(t, "gaiad unsafe_reset_all")
//pass := "1234567890"
//executeWrite(t, "gaiacli keys delete foo", pass)
//executeWrite(t, "gaiacli keys delete bar", pass)
//masterKey, chainID := executeInit(t, "gaiad init")
//// get a free port, also setup some common flags
//servAddr := server.FreeTCPAddr(t)
//flags := fmt.Sprintf("--node=%v --chain-id=%v", servAddr, chainID)
//// start gaiad server
//cmd, _, _ := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr))
//defer cmd.Process.Kill()
//executeWrite(t, "gaiacli keys add foo --recover", pass, masterKey)
//executeWrite(t, "gaiacli keys add bar", pass)
//fooAddr, _ := executeGetAddr(t, "gaiacli keys show foo --output=json")
//barAddr, _ := executeGetAddr(t, "gaiacli keys show bar --output=json")
//fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
//assert.Equal(t, int64(100000), fooAcc.GetCoins().AmountOf("fermion"))
//executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10fermion --to=%v --name=foo", flags, barAddr), pass)
//time.Sleep(time.Second * 3) // waiting for some blocks to pass
//barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barAddr, flags))
//assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("fermion"))
//fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
//assert.Equal(t, int64(99990), fooAcc.GetCoins().AmountOf("fermion"))
//}
func TestGaiaCLIDeclareCandidacy(t *testing.T) {
tests.ExecuteT(t, "gaiad unsafe_reset_all")
pass := "1234567890"
executeWrite(t, "gaiacli keys delete foo", pass)
executeWrite(t, "gaiacli keys delete bar", pass)
masterKey, chainID := executeInit(t, "gaiad init")
// get a free port, also setup some common flags
@ -36,22 +69,10 @@ func TestGaiaCLI(t *testing.T) {
defer cmd.Process.Kill()
executeWrite(t, "gaiacli keys add foo --recover", pass, masterKey)
executeWrite(t, "gaiacli keys add bar", pass)
fooAddr, fooPubKey := executeGetAddr(t, "gaiacli keys show foo --output=json")
barAddr, _ := executeGetAddr(t, "gaiacli keys show bar --output=json")
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
assert.Equal(t, int64(100000), fooAcc.GetCoins().AmountOf("fermion"))
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10fermion --to=%v --name=foo", flags, barAddr), pass)
time.Sleep(time.Second * 3) // waiting for some blocks to pass
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barAddr, flags))
assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("fermion"))
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
assert.Equal(t, int64(99990), fooAcc.GetCoins().AmountOf("fermion"))
// declare candidacy
//--address-candidate string hex address of the validator/candidate
//--amount string Amount of coins to bond (default "1fermion")
@ -73,17 +94,14 @@ func TestGaiaCLI(t *testing.T) {
declStr += fmt.Sprintf(" --moniker=%v", "foo-vally")
fmt.Printf("debug declStr: %v\n", declStr)
executeWrite(t, declStr, pass)
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
time.Sleep(time.Second * 3) // waiting for some blocks to pass
assert.Equal(t, int64(99997), fooAcc.GetCoins().AmountOf("fermion"))
}
func executeWrite(t *testing.T, cmdStr string, writes ...string) {
cmd, wc, _ := tests.GoExecuteT(t, cmdStr)
//if print {
//bz := make([]byte, 100000)
//rc.Read(bz)
//fmt.Printf("debug read: %v\n", string(bz))
//}
for _, write := range writes {
_, err := wc.Write([]byte(write + "\n"))
require.NoError(t, err)
@ -91,6 +109,20 @@ func executeWrite(t *testing.T, cmdStr string, writes ...string) {
cmd.Wait()
}
func executeWritePrint(t *testing.T, cmdStr string, writes ...string) {
cmd, wc, rc := tests.GoExecuteT(t, cmdStr)
for _, write := range writes {
_, err := wc.Write([]byte(write + "\n"))
require.NoError(t, err)
}
cmd.Wait()
bz := make([]byte, 100000)
rc.Read(bz)
fmt.Printf("debug read: %v\n", string(bz))
}
func executeInit(t *testing.T, cmdStr string) (masterKey, chainID string) {
out := tests.ExecuteT(t, cmdStr)
outCut := "{" + strings.SplitN(out, "{", 2)[1] // weird I'm sorry

View File

@ -32,25 +32,6 @@ func generateApp(rootDir string, logger log.Logger) (abci.Application, error) {
return nil, err
}
bapp := app.NewGaiaApp(logger, db)
//dbAcc, err := dbm.NewGoLevelDB("gaia-acc", dataDir)
//if err != nil {
//return nil, err
//}
//dbIBC, err := dbm.NewGoLevelDB("gaia-ibc", dataDir)
//if err != nil {
//return nil, err
//}
//dbStake, err := dbm.NewGoLevelDB("gaia-stake", dataDir)
//if err != nil {
//return nil, err
//}
//dbs := map[string]dbm.DB{
//"main": dbMain,
//"acc": dbAcc,
//"ibc": dbIBC,
//"stake": dbStake,
//}
//bapp := app.NewGaiaApp(logger, dbs)
return bapp, nil
}

View File

@ -16,12 +16,6 @@ import (
"github.com/cosmos/cosmos-sdk/x/stake"
)
// XXX remove dependancy
func PrefixedKey(app string, key []byte) []byte {
prefix := append([]byte(app), byte(0))
return append(prefix, key...)
}
//nolint
var (
fsValAddr = flag.NewFlagSet("", flag.ContinueOnError)
@ -44,7 +38,7 @@ func GetCmdQueryCandidates(storeName string, cdc *wire.Codec) *cobra.Command {
Short: "Query for the set of validator-candidates pubkeys",
RunE: func(cmd *cobra.Command, args []string) error {
key := PrefixedKey(stake.MsgType, stake.CandidatesKey)
key := stake.CandidatesKey
ctx := context.NewCoreContextFromViper()
res, err := ctx.Query(key, storeName)
@ -54,7 +48,7 @@ func GetCmdQueryCandidates(storeName string, cdc *wire.Codec) *cobra.Command {
// parse out the candidates
candidates := new(stake.Candidates)
err = cdc.UnmarshalJSON(res, candidates)
err = cdc.UnmarshalBinary(res, candidates)
if err != nil {
return err
}
@ -85,7 +79,7 @@ func GetCmdQueryCandidate(storeName string, cdc *wire.Codec) *cobra.Command {
return err
}
key := PrefixedKey(stake.MsgType, stake.GetCandidateKey(addr))
key := stake.GetCandidateKey(addr)
ctx := context.NewCoreContextFromViper()
@ -133,7 +127,7 @@ func GetCmdQueryDelegatorBond(storeName string, cdc *wire.Codec) *cobra.Command
}
delegator := crypto.Address(bz)
key := PrefixedKey(stake.MsgType, stake.GetDelegatorBondKey(delegator, addr, cdc))
key := stake.GetDelegatorBondKey(delegator, addr, cdc)
ctx := context.NewCoreContextFromViper()
@ -177,7 +171,7 @@ func GetCmdQueryDelegatorBonds(storeName string, cdc *wire.Codec) *cobra.Command
}
delegator := crypto.Address(bz)
key := PrefixedKey(stake.MsgType, stake.GetDelegatorBondsKey(delegator, cdc))
key := stake.GetDelegatorBondsKey(delegator, cdc)
ctx := context.NewCoreContextFromViper()

View File

@ -268,10 +268,10 @@ func GetPubKey(pubKeyStr string) (pk crypto.PubKey, err error) {
err = fmt.Errorf("must use --pubkey flag")
return
}
if len(pubKeyStr) != 64 { //if len(pkBytes) != 32 {
err = fmt.Errorf("pubkey must be Ed25519 hex encoded string which is 64 characters, this pubkey is %v characters", len(pubKeyStr))
return
}
//if len(pubKeyStr) != 64 { //if len(pkBytes) != 32 {
//err = fmt.Errorf("pubkey must be Ed25519 hex encoded string which is 64 characters, this pubkey is %v characters", len(pubKeyStr))
//return
//}
// TODO: bech32 ...
var pkBytes []byte