add other tests and update docs
This commit is contained in:
parent
a2189bc672
commit
666fafb97a
|
@ -35,12 +35,12 @@ passed to the --tag option. To match any transaction, use the --any option.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
$ gaiacli query txs --tags <key1>:<value1>&<key2>:<value2>
|
$ gaiacli query txs --tags <tag1>:<value1>&<tag2>:<value2>
|
||||||
|
|
||||||
will match any transaction tagged with both <key1>=<value1> and <key2>=<value2>.
|
will match any transaction tagged with both <key1>=<value1> and <key2>=<value2>.
|
||||||
To match a transaction tagged with either value1 or value2, use:
|
To match a transaction tagged with either value1 or value2, use:
|
||||||
|
|
||||||
$ gaiacli query txs --tags <key1>:<value1>&<key2>:<value2> --any
|
$ gaiacli query txs --tags <tag1>:<value1>&<tag2>:<value2> --any
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
tagsStr := viper.GetString(flagTags)
|
tagsStr := viper.GetString(flagTags)
|
||||||
|
@ -97,7 +97,7 @@ $ gaiacli query txs --tags <key1>:<value1>&<key2>:<value2> --any
|
||||||
viper.BindPFlag(client.FlagChainID, cmd.Flags().Lookup(client.FlagChainID))
|
viper.BindPFlag(client.FlagChainID, cmd.Flags().Lookup(client.FlagChainID))
|
||||||
cmd.Flags().Bool(client.FlagTrustNode, false, "Trust connected full node (don't verify proofs for responses)")
|
cmd.Flags().Bool(client.FlagTrustNode, false, "Trust connected full node (don't verify proofs for responses)")
|
||||||
viper.BindPFlag(client.FlagTrustNode, cmd.Flags().Lookup(client.FlagTrustNode))
|
viper.BindPFlag(client.FlagTrustNode, cmd.Flags().Lookup(client.FlagTrustNode))
|
||||||
cmd.Flags().String(flagTags, "", "key:value list of tags that must match")
|
cmd.Flags().String(flagTags, "", "tag:value list of tags that must match")
|
||||||
cmd.Flags().Bool(flagAny, false, "Return transactions that match ANY tag, rather than ALL")
|
cmd.Flags().Bool(flagAny, false, "Return transactions that match ANY tag, rather than ALL")
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
abci "github.com/tendermint/tendermint/abci/types"
|
||||||
"github.com/tendermint/tendermint/crypto"
|
"github.com/tendermint/tendermint/crypto"
|
||||||
cmn "github.com/tendermint/tendermint/libs/common"
|
cmn "github.com/tendermint/tendermint/libs/common"
|
||||||
|
|
||||||
|
@ -30,37 +31,6 @@ import (
|
||||||
stakeTypes "github.com/cosmos/cosmos-sdk/x/stake/types"
|
stakeTypes "github.com/cosmos/cosmos-sdk/x/stake/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
// import (
|
|
||||||
// "encoding/json"
|
|
||||||
// "fmt"
|
|
||||||
// "io/ioutil"
|
|
||||||
// "os"
|
|
||||||
// "path"
|
|
||||||
// "path/filepath"
|
|
||||||
// "testing"
|
|
||||||
//
|
|
||||||
// "github.com/tendermint/tendermint/types"
|
|
||||||
//
|
|
||||||
// "github.com/stretchr/testify/require"
|
|
||||||
//
|
|
||||||
// abci "github.com/tendermint/tendermint/abci/types"
|
|
||||||
// "github.com/tendermint/tendermint/crypto"
|
|
||||||
// cmn "github.com/tendermint/tendermint/libs/common"
|
|
||||||
//
|
|
||||||
// "github.com/cosmos/cosmos-sdk/client"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/client/keys"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/client/tx"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/cmd/gaia/app"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/codec"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/server"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/tests"
|
|
||||||
// sdk "github.com/cosmos/cosmos-sdk/types"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/x/auth"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/x/gov"
|
|
||||||
// "github.com/cosmos/cosmos-sdk/x/stake"
|
|
||||||
// stakeTypes "github.com/cosmos/cosmos-sdk/x/stake/types"
|
|
||||||
// )
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
gaiadHome = ""
|
gaiadHome = ""
|
||||||
gaiacliHome = ""
|
gaiacliHome = ""
|
||||||
|
@ -70,270 +40,270 @@ func init() {
|
||||||
gaiadHome, gaiacliHome = getTestingHomeDirs()
|
gaiadHome, gaiacliHome = getTestingHomeDirs()
|
||||||
}
|
}
|
||||||
|
|
||||||
// func TestGaiaCLIMinimumFees(t *testing.T) {
|
func TestGaiaCLIMinimumFees(t *testing.T) {
|
||||||
// chainID, servAddr, port := initializeFixtures(t)
|
chainID, servAddr, port := initializeFixtures(t)
|
||||||
// flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
||||||
//
|
|
||||||
// // start gaiad server with minimum fees
|
// start gaiad server with minimum fees
|
||||||
// proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v --minimum_fees=2feeToken", gaiadHome, servAddr))
|
proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v --minimum_fees=2feeToken", gaiadHome, servAddr))
|
||||||
//
|
|
||||||
// defer proc.Stop(false)
|
defer proc.Stop(false)
|
||||||
// tests.WaitForTMStart(port)
|
tests.WaitForTMStart(port)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||||
// barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
||||||
//
|
|
||||||
// fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// success := executeWrite(t, fmt.Sprintf(
|
success := executeWrite(t, fmt.Sprintf(
|
||||||
// "gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
"gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// require.False(t, success)
|
require.False(t, success)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// func TestGaiaCLIFeesDeduction(t *testing.T) {
|
func TestGaiaCLIFeesDeduction(t *testing.T) {
|
||||||
// chainID, servAddr, port := initializeFixtures(t)
|
chainID, servAddr, port := initializeFixtures(t)
|
||||||
// flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
||||||
//
|
|
||||||
// // start gaiad server with minimum fees
|
// start gaiad server with minimum fees
|
||||||
// proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v --minimum_fees=1fooToken", gaiadHome, servAddr))
|
proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v --minimum_fees=1fooToken", gaiadHome, servAddr))
|
||||||
//
|
|
||||||
// defer proc.Stop(false)
|
defer proc.Stop(false)
|
||||||
// tests.WaitForTMStart(port)
|
tests.WaitForTMStart(port)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||||
// barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
||||||
//
|
|
||||||
// fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(1000), fooAcc.GetCoins().AmountOf("fooToken").Int64())
|
require.Equal(t, int64(1000), fooAcc.GetCoins().AmountOf("fooToken").Int64())
|
||||||
//
|
|
||||||
// // test simulation
|
// test simulation
|
||||||
// success := executeWrite(t, fmt.Sprintf(
|
success := executeWrite(t, fmt.Sprintf(
|
||||||
// "gaiacli tx send %v --amount=1000fooToken --to=%s --from=foo --fee=1fooToken --dry-run", flags, barAddr), app.DefaultKeyPass)
|
"gaiacli tx send %v --amount=1000fooToken --to=%s --from=foo --fee=1fooToken --dry-run", flags, barAddr), app.DefaultKeyPass)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
// // ensure state didn't change
|
// ensure state didn't change
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(1000), fooAcc.GetCoins().AmountOf("fooToken").Int64())
|
require.Equal(t, int64(1000), fooAcc.GetCoins().AmountOf("fooToken").Int64())
|
||||||
//
|
|
||||||
// // insufficient funds (coins + fees)
|
// insufficient funds (coins + fees)
|
||||||
// success = executeWrite(t, fmt.Sprintf(
|
success = executeWrite(t, fmt.Sprintf(
|
||||||
// "gaiacli tx send %v --amount=1000fooToken --to=%s --from=foo --fee=1fooToken", flags, barAddr), app.DefaultKeyPass)
|
"gaiacli tx send %v --amount=1000fooToken --to=%s --from=foo --fee=1fooToken", flags, barAddr), app.DefaultKeyPass)
|
||||||
// require.False(t, success)
|
require.False(t, success)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
// // ensure state didn't change
|
// ensure state didn't change
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(1000), fooAcc.GetCoins().AmountOf("fooToken").Int64())
|
require.Equal(t, int64(1000), fooAcc.GetCoins().AmountOf("fooToken").Int64())
|
||||||
//
|
|
||||||
// // test success (transfer = coins + fees)
|
// test success (transfer = coins + fees)
|
||||||
// success = executeWrite(t, fmt.Sprintf(
|
success = executeWrite(t, fmt.Sprintf(
|
||||||
// "gaiacli tx send %v --fee=300fooToken --amount=500fooToken --to=%s --from=foo", flags, barAddr), app.DefaultKeyPass)
|
"gaiacli tx send %v --fee=300fooToken --amount=500fooToken --to=%s --from=foo", flags, barAddr), app.DefaultKeyPass)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// func TestGaiaCLISend(t *testing.T) {
|
func TestGaiaCLISend(t *testing.T) {
|
||||||
// chainID, servAddr, port := initializeFixtures(t)
|
chainID, servAddr, port := initializeFixtures(t)
|
||||||
// flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
||||||
//
|
|
||||||
// // start gaiad server
|
// start gaiad server
|
||||||
// proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v", gaiadHome, servAddr))
|
proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v", gaiadHome, servAddr))
|
||||||
//
|
|
||||||
// defer proc.Stop(false)
|
defer proc.Stop(false)
|
||||||
// tests.WaitForTMStart(port)
|
tests.WaitForTMStart(port)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||||
// barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
||||||
//
|
|
||||||
// fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
||||||
// require.Equal(t, int64(10), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(10), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// // Test --dry-run
|
// Test --dry-run
|
||||||
// success := executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo --dry-run", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
success := executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo --dry-run", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
// // Check state didn't change
|
// Check state didn't change
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// // test autosequencing
|
// test autosequencing
|
||||||
// executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
||||||
// require.Equal(t, int64(20), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(20), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(30), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(30), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// // test memo
|
// test memo
|
||||||
// executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo --memo 'testmemo'", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo --memo 'testmemo'", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
||||||
// require.Equal(t, int64(30), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(30), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(20), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(20), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// func TestGaiaCLIGasAuto(t *testing.T) {
|
func TestGaiaCLIGasAuto(t *testing.T) {
|
||||||
// chainID, servAddr, port := initializeFixtures(t)
|
chainID, servAddr, port := initializeFixtures(t)
|
||||||
// flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
flags := fmt.Sprintf("--home=%s --node=%v --chain-id=%v", gaiacliHome, servAddr, chainID)
|
||||||
//
|
|
||||||
// // start gaiad server
|
// start gaiad server
|
||||||
// proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v", gaiadHome, servAddr))
|
proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v", gaiadHome, servAddr))
|
||||||
//
|
|
||||||
// defer proc.Stop(false)
|
defer proc.Stop(false)
|
||||||
// tests.WaitForTMStart(port)
|
tests.WaitForTMStart(port)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||||
// barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
||||||
//
|
|
||||||
// fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// // Test failure with auto gas disabled and very little gas set by hand
|
// Test failure with auto gas disabled and very little gas set by hand
|
||||||
// success := executeWrite(t, fmt.Sprintf("gaiacli tx send %v --gas=10 --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
success := executeWrite(t, fmt.Sprintf("gaiacli tx send %v --gas=10 --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// require.False(t, success)
|
require.False(t, success)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
// // Check state didn't change
|
// Check state didn't change
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// // Test failure with negative gas
|
// Test failure with negative gas
|
||||||
// success = executeWrite(t, fmt.Sprintf("gaiacli tx send %v --gas=-100 --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
success = executeWrite(t, fmt.Sprintf("gaiacli tx send %v --gas=-100 --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// require.False(t, success)
|
require.False(t, success)
|
||||||
//
|
|
||||||
// // Test failure with 0 gas
|
// Test failure with 0 gas
|
||||||
// success = executeWrite(t, fmt.Sprintf("gaiacli tx send %v --gas=0 --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
success = executeWrite(t, fmt.Sprintf("gaiacli tx send %v --gas=0 --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// require.False(t, success)
|
require.False(t, success)
|
||||||
//
|
|
||||||
// // Enable auto gas
|
// Enable auto gas
|
||||||
// success, stdout, _ := executeWriteRetStdStreams(t, fmt.Sprintf("gaiacli tx send %v --json --gas=simulate --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
success, stdout, _ := executeWriteRetStdStreams(t, fmt.Sprintf("gaiacli tx send %v --json --gas=simulate --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
// // check that gas wanted == gas used
|
// check that gas wanted == gas used
|
||||||
// cdc := app.MakeCodec()
|
cdc := app.MakeCodec()
|
||||||
// jsonOutput := struct {
|
jsonOutput := struct {
|
||||||
// Height int64
|
Height int64
|
||||||
// TxHash string
|
TxHash string
|
||||||
// Response abci.ResponseDeliverTx
|
Response abci.ResponseDeliverTx
|
||||||
// }{}
|
}{}
|
||||||
// require.Nil(t, cdc.UnmarshalJSON([]byte(stdout), &jsonOutput))
|
require.Nil(t, cdc.UnmarshalJSON([]byte(stdout), &jsonOutput))
|
||||||
// require.Equal(t, jsonOutput.Response.GasWanted, jsonOutput.Response.GasUsed)
|
require.Equal(t, jsonOutput.Response.GasWanted, jsonOutput.Response.GasUsed)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
// // Check state has changed accordingly
|
// Check state has changed accordingly
|
||||||
// fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// func TestGaiaCLICreateValidator(t *testing.T) {
|
func TestGaiaCLICreateValidator(t *testing.T) {
|
||||||
// chainID, servAddr, port := initializeFixtures(t)
|
chainID, servAddr, port := initializeFixtures(t)
|
||||||
// flags := fmt.Sprintf("--home=%s --chain-id=%v --node=%s", gaiacliHome, chainID, servAddr)
|
flags := fmt.Sprintf("--home=%s --chain-id=%v --node=%s", gaiacliHome, chainID, servAddr)
|
||||||
//
|
|
||||||
// // start gaiad server
|
// start gaiad server
|
||||||
// proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v", gaiadHome, servAddr))
|
proc := tests.GoExecuteTWithStdout(t, fmt.Sprintf("gaiad start --home=%s --rpc.laddr=%v", gaiadHome, servAddr))
|
||||||
//
|
|
||||||
// defer proc.Stop(false)
|
defer proc.Stop(false)
|
||||||
// tests.WaitForTMStart(port)
|
tests.WaitForTMStart(port)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||||
// barAddr, barPubKey := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
barAddr, barPubKey := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
||||||
// barCeshPubKey := sdk.MustBech32ifyConsPub(barPubKey)
|
barCeshPubKey := sdk.MustBech32ifyConsPub(barPubKey)
|
||||||
//
|
|
||||||
// executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
executeWrite(t, fmt.Sprintf("gaiacli tx send %v --amount=10%s --to=%s --from=foo", flags, stakeTypes.DefaultBondDenom, barAddr), app.DefaultKeyPass)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
||||||
// require.Equal(t, int64(10), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(10), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
// fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
|
||||||
// require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
|
||||||
//
|
|
||||||
// defaultParams := stake.DefaultParams()
|
defaultParams := stake.DefaultParams()
|
||||||
// initialPool := stake.InitialPool()
|
initialPool := stake.InitialPool()
|
||||||
// initialPool.BondedTokens = initialPool.BondedTokens.Add(sdk.NewDec(100)) // Delegate tx on GaiaAppGenState
|
initialPool.BondedTokens = initialPool.BondedTokens.Add(sdk.NewDec(100)) // Delegate tx on GaiaAppGenState
|
||||||
//
|
|
||||||
// // create validator
|
// create validator
|
||||||
// cvStr := fmt.Sprintf("gaiacli tx stake create-validator %v", flags)
|
cvStr := fmt.Sprintf("gaiacli tx stake create-validator %v", flags)
|
||||||
// cvStr += fmt.Sprintf(" --from=%s", "bar")
|
cvStr += fmt.Sprintf(" --from=%s", "bar")
|
||||||
// cvStr += fmt.Sprintf(" --pubkey=%s", barCeshPubKey)
|
cvStr += fmt.Sprintf(" --pubkey=%s", barCeshPubKey)
|
||||||
// cvStr += fmt.Sprintf(" --amount=%v", fmt.Sprintf("2%s", stakeTypes.DefaultBondDenom))
|
cvStr += fmt.Sprintf(" --amount=%v", fmt.Sprintf("2%s", stakeTypes.DefaultBondDenom))
|
||||||
// cvStr += fmt.Sprintf(" --moniker=%v", "bar-vally")
|
cvStr += fmt.Sprintf(" --moniker=%v", "bar-vally")
|
||||||
// cvStr += fmt.Sprintf(" --commission-rate=%v", "0.05")
|
cvStr += fmt.Sprintf(" --commission-rate=%v", "0.05")
|
||||||
// cvStr += fmt.Sprintf(" --commission-max-rate=%v", "0.20")
|
cvStr += fmt.Sprintf(" --commission-max-rate=%v", "0.20")
|
||||||
// cvStr += fmt.Sprintf(" --commission-max-change-rate=%v", "0.10")
|
cvStr += fmt.Sprintf(" --commission-max-change-rate=%v", "0.10")
|
||||||
//
|
|
||||||
// initialPool.BondedTokens = initialPool.BondedTokens.Add(sdk.NewDec(1))
|
initialPool.BondedTokens = initialPool.BondedTokens.Add(sdk.NewDec(1))
|
||||||
//
|
|
||||||
// // Test --generate-only
|
// Test --generate-only
|
||||||
// success, stdout, stderr := executeWriteRetStdStreams(t, cvStr+" --generate-only", app.DefaultKeyPass)
|
success, stdout, stderr := executeWriteRetStdStreams(t, cvStr+" --generate-only", app.DefaultKeyPass)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
// require.Empty(t, stderr)
|
require.Empty(t, stderr)
|
||||||
// msg := unmarshalStdTx(t, stdout)
|
msg := unmarshalStdTx(t, stdout)
|
||||||
// require.NotZero(t, msg.Fee.Gas)
|
require.NotZero(t, msg.Fee.Gas)
|
||||||
// require.Equal(t, len(msg.Msgs), 1)
|
require.Equal(t, len(msg.Msgs), 1)
|
||||||
// require.Equal(t, 0, len(msg.GetSignatures()))
|
require.Equal(t, 0, len(msg.GetSignatures()))
|
||||||
//
|
|
||||||
// // Test --dry-run
|
// Test --dry-run
|
||||||
// success = executeWrite(t, cvStr+" --dry-run", app.DefaultKeyPass)
|
success = executeWrite(t, cvStr+" --dry-run", app.DefaultKeyPass)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
//
|
|
||||||
// executeWrite(t, cvStr, app.DefaultKeyPass)
|
executeWrite(t, cvStr, app.DefaultKeyPass)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
||||||
// require.Equal(t, int64(8), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64(), "%v", barAcc)
|
require.Equal(t, int64(8), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64(), "%v", barAcc)
|
||||||
//
|
|
||||||
// validator := executeGetValidator(t, fmt.Sprintf("gaiacli query stake validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
validator := executeGetValidator(t, fmt.Sprintf("gaiacli query stake validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
||||||
// require.Equal(t, validator.OperatorAddr, sdk.ValAddress(barAddr))
|
require.Equal(t, validator.OperatorAddr, sdk.ValAddress(barAddr))
|
||||||
// require.True(sdk.DecEq(t, sdk.NewDec(2), validator.Tokens))
|
require.True(sdk.DecEq(t, sdk.NewDec(2), validator.Tokens))
|
||||||
//
|
|
||||||
// validatorDelegations := executeGetValidatorDelegations(t, fmt.Sprintf("gaiacli query stake delegations-to %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
validatorDelegations := executeGetValidatorDelegations(t, fmt.Sprintf("gaiacli query stake delegations-to %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
||||||
// require.Len(t, validatorDelegations, 1)
|
require.Len(t, validatorDelegations, 1)
|
||||||
// require.NotZero(t, validatorDelegations[0].Shares)
|
require.NotZero(t, validatorDelegations[0].Shares)
|
||||||
//
|
|
||||||
// // unbond a single share
|
// unbond a single share
|
||||||
// unbondStr := fmt.Sprintf("gaiacli tx stake unbond begin %v", flags)
|
unbondStr := fmt.Sprintf("gaiacli tx stake unbond begin %v", flags)
|
||||||
// unbondStr += fmt.Sprintf(" --from=%s", "bar")
|
unbondStr += fmt.Sprintf(" --from=%s", "bar")
|
||||||
// unbondStr += fmt.Sprintf(" --validator=%s", sdk.ValAddress(barAddr))
|
unbondStr += fmt.Sprintf(" --validator=%s", sdk.ValAddress(barAddr))
|
||||||
// unbondStr += fmt.Sprintf(" --shares-amount=%v", "1")
|
unbondStr += fmt.Sprintf(" --shares-amount=%v", "1")
|
||||||
//
|
|
||||||
// success = executeWrite(t, unbondStr, app.DefaultKeyPass)
|
success = executeWrite(t, unbondStr, app.DefaultKeyPass)
|
||||||
// require.True(t, success)
|
require.True(t, success)
|
||||||
// tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
//
|
|
||||||
// /* // this won't be what we expect because we've only started unbonding, haven't completed
|
/* // this won't be what we expect because we've only started unbonding, haven't completed
|
||||||
// barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %v %v", barCech, flags))
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %v %v", barCech, flags))
|
||||||
// require.Equal(t, int64(9), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64(), "%v", barAcc)
|
require.Equal(t, int64(9), barAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64(), "%v", barAcc)
|
||||||
// */
|
*/
|
||||||
// validator = executeGetValidator(t, fmt.Sprintf("gaiacli query stake validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
validator = executeGetValidator(t, fmt.Sprintf("gaiacli query stake validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
||||||
// require.Equal(t, "1.0000000000", validator.Tokens.String())
|
require.Equal(t, "1.0000000000", validator.Tokens.String())
|
||||||
//
|
|
||||||
// validatorUbds := executeGetValidatorUnbondingDelegations(t,
|
validatorUbds := executeGetValidatorUnbondingDelegations(t,
|
||||||
// fmt.Sprintf("gaiacli query stake unbonding-delegations-from %s --output=json %v",
|
fmt.Sprintf("gaiacli query stake unbonding-delegations-from %s --output=json %v",
|
||||||
// sdk.ValAddress(barAddr), flags))
|
sdk.ValAddress(barAddr), flags))
|
||||||
// require.Len(t, validatorUbds, 1)
|
require.Len(t, validatorUbds, 1)
|
||||||
// require.Equal(t, "1", validatorUbds[0].Balance.Amount.String())
|
require.Equal(t, "1", validatorUbds[0].Balance.Amount.String())
|
||||||
//
|
|
||||||
// params := executeGetParams(t, fmt.Sprintf("gaiacli query stake parameters --output=json %v", flags))
|
params := executeGetParams(t, fmt.Sprintf("gaiacli query stake parameters --output=json %v", flags))
|
||||||
// require.True(t, defaultParams.Equal(params))
|
require.True(t, defaultParams.Equal(params))
|
||||||
//
|
|
||||||
// pool := executeGetPool(t, fmt.Sprintf("gaiacli query stake pool --output=json %v", flags))
|
pool := executeGetPool(t, fmt.Sprintf("gaiacli query stake pool --output=json %v", flags))
|
||||||
// require.Equal(t, initialPool.BondedTokens, pool.BondedTokens)
|
require.Equal(t, initialPool.BondedTokens, pool.BondedTokens)
|
||||||
// }
|
}
|
||||||
|
|
||||||
func TestGaiaCLISubmitProposal(t *testing.T) {
|
func TestGaiaCLISubmitProposal(t *testing.T) {
|
||||||
chainID, servAddr, port := initializeFixtures(t)
|
chainID, servAddr, port := initializeFixtures(t)
|
||||||
|
|
|
@ -183,10 +183,40 @@ gaiacli tx sign --validate-signatures signedSendTx.json
|
||||||
|
|
||||||
You can broadcast the signed transaction to a node by providing the JSON file to the following command:
|
You can broadcast the signed transaction to a node by providing the JSON file to the following command:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
gaiacli tx broadcast --node=<node> signedSendTx.json
|
gaiacli tx broadcast --node=<node> signedSendTx.json
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Query Transactions
|
||||||
|
|
||||||
|
#### Matching a set of tags
|
||||||
|
|
||||||
|
You can use the transaction search command to query for transactions that match a specific set of `tags`, which are added on every transaction.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gaiacli query txs --tags=<tag1>:<value1>&<tag2>:<value2>
|
||||||
|
```
|
||||||
|
|
||||||
|
::: tip Note
|
||||||
|
|
||||||
|
You can find a list of available `tags` on each of the SDK modules:
|
||||||
|
|
||||||
|
- [Common tags](https://github.com/cosmos/cosmos-sdk/blob/d1e76221d8e28824bb4791cb4ad8662d2ae9051e/types/tags.go#L57-L63)
|
||||||
|
- [Staking tags](https://github.com/cosmos/cosmos-sdk/blob/d1e76221d8e28824bb4791cb4ad8662d2ae9051e/x/stake/tags/tags.go#L8-L24)
|
||||||
|
- [Governance tags](https://github.com/cosmos/cosmos-sdk/blob/d1e76221d8e28824bb4791cb4ad8662d2ae9051e/x/gov/tags/tags.go#L8-L22)
|
||||||
|
- [Slashing tags](https://github.com/cosmos/cosmos-sdk/blob/d1e76221d8e28824bb4791cb4ad8662d2ae9051e/x/slashing/handler.go#L52)
|
||||||
|
- [Distribution tags](https://github.com/cosmos/cosmos-sdk/blob/develop/x/distribution/tags/tags.go#L8-L17)
|
||||||
|
- [Bank tags](https://github.com/cosmos/cosmos-sdk/blob/d1e76221d8e28824bb4791cb4ad8662d2ae9051e/x/bank/keeper.go#L193-L206)
|
||||||
|
:::
|
||||||
|
|
||||||
|
#### Matching a transaction's hash
|
||||||
|
|
||||||
|
You can also query a single transaction by its hash using the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gaiacli query tx [hash]
|
||||||
|
```
|
||||||
|
|
||||||
### Staking
|
### Staking
|
||||||
|
|
||||||
#### Set up a Validator
|
#### Set up a Validator
|
||||||
|
|
Loading…
Reference in New Issue