mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 10:05:18 +00:00
update cli_test.go
This commit is contained in:
parent
e33898cc1a
commit
353c2e9b74
@ -14,7 +14,6 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/tendermint/tendermint/crypto/ed25519"
|
||||
tmtypes "github.com/tendermint/tendermint/types"
|
||||
|
||||
@ -24,20 +23,22 @@ import (
|
||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov"
|
||||
"github.com/cosmos/cosmos-sdk/x/mint"
|
||||
|
||||
"github.com/kava-labs/kava/app"
|
||||
)
|
||||
|
||||
func TestKavaCLIKeysAddMultisig(t *testing.T) {
|
||||
func TestKvCLIKeysAddMultisig(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
// key names order does not matter
|
||||
f.KeysAdd("msig1", "--multisig-threshold=2",
|
||||
fmt.Sprintf("--multisig=%s,%s", keyBar, keyBaz))
|
||||
ke1Address1 := f.KeysShow("msig1").Address
|
||||
f.KeysDelete("msig1")
|
||||
|
||||
f.KeysAdd("msig2", "--multisig-threshold=2",
|
||||
fmt.Sprintf("--multisig=%s,%s", keyBaz, keyBar))
|
||||
require.Equal(t, f.KeysShow("msig1").Address, f.KeysShow("msig2").Address)
|
||||
require.Equal(t, ke1Address1, f.KeysShow("msig2").Address)
|
||||
f.KeysDelete("msig2")
|
||||
|
||||
f.KeysAdd("msig3", "--multisig-threshold=2",
|
||||
fmt.Sprintf("--multisig=%s,%s", keyBar, keyBaz),
|
||||
@ -51,7 +52,7 @@ func TestKavaCLIKeysAddMultisig(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIKeysAddRecover(t *testing.T) {
|
||||
func TestKvCLIKeysAddRecover(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -95,7 +96,7 @@ func TestKavaCLIKeysAddRecoverHDPath(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIMinimumFees(t *testing.T) {
|
||||
func TestKvCLIMinimumFees(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -133,7 +134,7 @@ func TestKavaCLIMinimumFees(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIGasPrices(t *testing.T) {
|
||||
func TestKvCLIGasPrices(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -167,7 +168,7 @@ func TestKavaCLIGasPrices(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIFeesDeduction(t *testing.T) {
|
||||
func TestKvCLIFeesDeduction(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -220,7 +221,7 @@ func TestKavaCLIFeesDeduction(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLISend(t *testing.T) {
|
||||
func TestKvCLISend(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -236,8 +237,15 @@ func TestKavaCLISend(t *testing.T) {
|
||||
startTokens := sdk.TokensFromConsensusPower(50)
|
||||
require.Equal(t, startTokens, fooAcc.GetCoins().AmountOf(denom))
|
||||
|
||||
// Send some tokens from one account to the other
|
||||
sendTokens := sdk.TokensFromConsensusPower(10)
|
||||
|
||||
// It does not allow to send in offline mode
|
||||
success, _, stdErr := f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "-y", "--offline")
|
||||
require.Contains(t, stdErr, "no RPC client is defined in offline mode")
|
||||
require.False(f.T, success)
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
// Send some tokens from one account to the other
|
||||
f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "-y")
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
@ -248,7 +256,7 @@ func TestKavaCLISend(t *testing.T) {
|
||||
require.Equal(t, startTokens.Sub(sendTokens), fooAcc.GetCoins().AmountOf(denom))
|
||||
|
||||
// Test --dry-run
|
||||
success, _, _ := f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "--dry-run")
|
||||
success, _, _ = f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "--dry-run")
|
||||
require.True(t, success)
|
||||
|
||||
// Test --generate-only
|
||||
@ -289,42 +297,7 @@ func TestKavaCLISend(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
// Note: this was removed from kava due to update in sdk PR#4062 but is now working
|
||||
func TestKavaCLIConfirmTx(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
// start kvd server
|
||||
proc := f.GDStart()
|
||||
defer proc.Stop(false)
|
||||
|
||||
// Save key addresses for later use
|
||||
fooAddr := f.KeyAddress(keyFoo)
|
||||
barAddr := f.KeyAddress(keyBar)
|
||||
|
||||
fooAcc := f.QueryAccount(fooAddr)
|
||||
startTokens := sdk.TokensFromConsensusPower(50)
|
||||
require.Equal(t, startTokens, fooAcc.GetCoins().AmountOf(denom))
|
||||
|
||||
// send some tokens from one account to the other
|
||||
sendTokens := sdk.TokensFromConsensusPower(10)
|
||||
f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "-y")
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
// ensure account balances match expected
|
||||
barAcc := f.QueryAccount(barAddr)
|
||||
require.Equal(t, sendTokens, barAcc.GetCoins().AmountOf(denom))
|
||||
|
||||
// send some tokens from one account to the other (cancelling confirmation)
|
||||
f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "-n")
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
// ensure account balances match expected
|
||||
barAcc = f.QueryAccount(barAddr)
|
||||
require.Equal(t, sendTokens, barAcc.GetCoins().AmountOf(denom))
|
||||
}
|
||||
|
||||
func TestKavaCLIGasAuto(t *testing.T) {
|
||||
func TestKvCLIGasAuto(t *testing.T) {
|
||||
// https://github.com/cosmos/cosmos-sdk/pull/5179
|
||||
t.Skip()
|
||||
t.Parallel()
|
||||
@ -372,9 +345,8 @@ func TestKavaCLIGasAuto(t *testing.T) {
|
||||
success, stdout, stderr := f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "--gas=auto", "-y")
|
||||
require.NotEmpty(t, stderr)
|
||||
require.True(t, success)
|
||||
cdc := app.MakeCodec()
|
||||
sendResp := sdk.TxResponse{}
|
||||
err := cdc.UnmarshalJSON([]byte(stdout), &sendResp)
|
||||
err := f.cdc.UnmarshalJSON([]byte(stdout), &sendResp)
|
||||
require.Nil(t, err)
|
||||
require.True(t, sendResp.GasWanted >= sendResp.GasUsed)
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
@ -386,7 +358,7 @@ func TestKavaCLIGasAuto(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLICreateValidator(t *testing.T) {
|
||||
func TestKvCLICreateValidator(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -397,9 +369,7 @@ func TestKavaCLICreateValidator(t *testing.T) {
|
||||
barAddr := f.KeyAddress(keyBar)
|
||||
barVal := sdk.ValAddress(barAddr)
|
||||
|
||||
consPubKey, err := sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeValPub, ed25519.GenPrivKey().PubKey())
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, consPubKey)
|
||||
consPubKey := sdk.MustBech32ifyPubKey(sdk.Bech32PubKeyTypeConsPub, ed25519.GenPrivKey().PubKey())
|
||||
|
||||
sendTokens := sdk.TokensFromConsensusPower(10)
|
||||
f.TxSend(keyFoo, barAddr, sdk.NewCoin(denom, sendTokens), "-y")
|
||||
@ -410,9 +380,9 @@ func TestKavaCLICreateValidator(t *testing.T) {
|
||||
|
||||
// Generate a create validator transaction and ensure correctness
|
||||
success, stdout, stderr := f.TxStakingCreateValidator(barAddr.String(), consPubKey, sdk.NewInt64Coin(denom, 2), "--generate-only")
|
||||
|
||||
require.True(f.T, success)
|
||||
require.Empty(f.T, stderr)
|
||||
|
||||
msg := f.unmarshalStdTx(f.T, stdout)
|
||||
require.NotZero(t, msg.Fee.Gas)
|
||||
require.Equal(t, len(msg.Msgs), 1)
|
||||
@ -420,7 +390,7 @@ func TestKavaCLICreateValidator(t *testing.T) {
|
||||
|
||||
// Test --dry-run
|
||||
newValTokens := sdk.TokensFromConsensusPower(2)
|
||||
success, _, _ = f.TxStakingCreateValidator(keyBar, consPubKey, sdk.NewCoin(denom, newValTokens), "--dry-run")
|
||||
success, _, _ = f.TxStakingCreateValidator(barAddr.String(), consPubKey, sdk.NewCoin(denom, newValTokens), "--dry-run")
|
||||
require.True(t, success)
|
||||
|
||||
// Create the validator
|
||||
@ -461,26 +431,25 @@ func TestKavaCLICreateValidator(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIQueryRewards(t *testing.T) {
|
||||
func TestKvCLIQueryRewards(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
cdc := app.MakeCodec()
|
||||
|
||||
genesisState := f.GenesisState()
|
||||
inflationMin := sdk.MustNewDecFromStr("10000.0")
|
||||
inflationMin := sdk.MustNewDecFromStr("1.0")
|
||||
var mintData mint.GenesisState
|
||||
cdc.UnmarshalJSON(genesisState[mint.ModuleName], &mintData)
|
||||
f.cdc.UnmarshalJSON(genesisState[mint.ModuleName], &mintData)
|
||||
mintData.Minter.Inflation = inflationMin
|
||||
mintData.Params.InflationMin = inflationMin
|
||||
mintData.Params.InflationMax = sdk.MustNewDecFromStr("15000.0")
|
||||
mintDataBz, err := cdc.MarshalJSON(mintData)
|
||||
mintData.Params.InflationMax = sdk.MustNewDecFromStr("1.0")
|
||||
mintDataBz, err := f.cdc.MarshalJSON(mintData)
|
||||
require.NoError(t, err)
|
||||
genesisState[mint.ModuleName] = mintDataBz
|
||||
|
||||
genFile := filepath.Join(f.KvdHome, "config", "genesis.json")
|
||||
genDoc, err := tmtypes.GenesisDocFromFile(genFile)
|
||||
require.NoError(t, err)
|
||||
genDoc.AppState, err = cdc.MarshalJSON(genesisState)
|
||||
genDoc.AppState, err = f.cdc.MarshalJSON(genesisState)
|
||||
require.NoError(t, genDoc.SaveAs(genFile))
|
||||
|
||||
// start kvd server
|
||||
@ -494,7 +463,7 @@ func TestKavaCLIQueryRewards(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIQuerySupply(t *testing.T) {
|
||||
func TestKvCLIQuerySupply(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -511,7 +480,7 @@ func TestKavaCLIQuerySupply(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLISubmitProposal(t *testing.T) {
|
||||
func TestKvCLISubmitProposal(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -551,8 +520,8 @@ func TestKavaCLISubmitProposal(t *testing.T) {
|
||||
f.TxGovSubmitProposal(keyFoo, "Text", "Test", "test", sdk.NewCoin(denom, proposalTokens), "-y")
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
// Ensure transaction tags can be queried
|
||||
searchResult := f.QueryTxs(1, 50, "message.action:submit_proposal", fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
// Ensure transaction events can be queried
|
||||
searchResult := f.QueryTxs(1, 50, "message.action=submit_proposal", fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, searchResult.Txs, 1)
|
||||
|
||||
// Ensure deposit was deducted
|
||||
@ -595,8 +564,8 @@ func TestKavaCLISubmitProposal(t *testing.T) {
|
||||
deposit = f.QueryGovDeposit(1, fooAddr)
|
||||
require.Equal(t, proposalTokens.Add(depositTokens), deposit.Amount.AmountOf(denom))
|
||||
|
||||
// Ensure tags are set on the transaction
|
||||
searchResult = f.QueryTxs(1, 50, "message.action:deposit", fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
// Ensure events are set on the transaction
|
||||
searchResult = f.QueryTxs(1, 50, "message.action=deposit", fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, searchResult.Txs, 1)
|
||||
|
||||
// Ensure account has expected amount of funds
|
||||
@ -632,8 +601,8 @@ func TestKavaCLISubmitProposal(t *testing.T) {
|
||||
require.Equal(t, uint64(1), votes[0].ProposalID)
|
||||
require.Equal(t, gov.OptionYes, votes[0].Option)
|
||||
|
||||
// Ensure tags are applied to voting transaction properly
|
||||
searchResult = f.QueryTxs(1, 50, "message.action:vote", fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
// Ensure events are applied to voting transaction properly
|
||||
searchResult = f.QueryTxs(1, 50, "message.action=vote", fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, searchResult.Txs, 1)
|
||||
|
||||
// Ensure no proposals in deposit period
|
||||
@ -649,13 +618,14 @@ func TestKavaCLISubmitProposal(t *testing.T) {
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
// Test limit on proposals query
|
||||
proposalsQuery = f.QueryGovProposals("--limit=1")
|
||||
require.Equal(t, uint64(2), proposalsQuery[0].ProposalID)
|
||||
proposalsQuery = f.QueryGovProposals("--limit=2")
|
||||
require.Len(t, proposalsQuery, 2)
|
||||
require.Equal(t, uint64(1), proposalsQuery[0].ProposalID)
|
||||
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLISubmitParamChangeProposal(t *testing.T) {
|
||||
func TestKvCLISubmitParamChangeProposal(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -679,12 +649,7 @@ func TestKavaCLISubmitParamChangeProposal(t *testing.T) {
|
||||
"value": 105
|
||||
}
|
||||
],
|
||||
"deposit": [
|
||||
{
|
||||
"denom": "stake",
|
||||
"amount": "%s"
|
||||
}
|
||||
]
|
||||
"deposit": "%sstake"
|
||||
}
|
||||
`, proposalTokens.String())
|
||||
|
||||
@ -694,8 +659,8 @@ func TestKavaCLISubmitParamChangeProposal(t *testing.T) {
|
||||
f.TxGovSubmitParamChangeProposal(keyFoo, proposalFile.Name(), sdk.NewCoin(denom, proposalTokens), "-y")
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
// ensure transaction tags can be queried
|
||||
txsPage := f.QueryTxs(1, 50, "message.action:submit_proposal", fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
// ensure transaction events can be queried
|
||||
txsPage := f.QueryTxs(1, 50, "message.action=submit_proposal", fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, txsPage.Txs, 1)
|
||||
|
||||
// ensure deposit was deducted
|
||||
@ -719,27 +684,26 @@ func TestKavaCLISubmitParamChangeProposal(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLISubmitCommunityPoolSpendProposal(t *testing.T) {
|
||||
func TestKvCLISubmitCommunityPoolSpendProposal(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
// create some inflation
|
||||
cdc := app.MakeCodec()
|
||||
genesisState := f.GenesisState()
|
||||
inflationMin := sdk.MustNewDecFromStr("10000.0")
|
||||
inflationMin := sdk.MustNewDecFromStr("1.0")
|
||||
var mintData mint.GenesisState
|
||||
cdc.UnmarshalJSON(genesisState[mint.ModuleName], &mintData)
|
||||
f.cdc.UnmarshalJSON(genesisState[mint.ModuleName], &mintData)
|
||||
mintData.Minter.Inflation = inflationMin
|
||||
mintData.Params.InflationMin = inflationMin
|
||||
mintData.Params.InflationMax = sdk.MustNewDecFromStr("15000.0")
|
||||
mintDataBz, err := cdc.MarshalJSON(mintData)
|
||||
mintData.Params.InflationMax = sdk.MustNewDecFromStr("1.0")
|
||||
mintDataBz, err := f.cdc.MarshalJSON(mintData)
|
||||
require.NoError(t, err)
|
||||
genesisState[mint.ModuleName] = mintDataBz
|
||||
|
||||
genFile := filepath.Join(f.KvdHome, "config", "genesis.json")
|
||||
genDoc, err := tmtypes.GenesisDocFromFile(genFile)
|
||||
require.NoError(t, err)
|
||||
genDoc.AppState, err = cdc.MarshalJSON(genesisState)
|
||||
genDoc.AppState, err = f.cdc.MarshalJSON(genesisState)
|
||||
require.NoError(t, genDoc.SaveAs(genFile))
|
||||
|
||||
proc := f.GDStart()
|
||||
@ -758,28 +722,18 @@ func TestKavaCLISubmitCommunityPoolSpendProposal(t *testing.T) {
|
||||
"title": "Community Pool Spend",
|
||||
"description": "Spend from community pool",
|
||||
"recipient": "%s",
|
||||
"amount": [
|
||||
{
|
||||
"denom": "%s",
|
||||
"amount": "1"
|
||||
}
|
||||
],
|
||||
"deposit": [
|
||||
{
|
||||
"denom": "%s",
|
||||
"amount": "%s"
|
||||
}
|
||||
]
|
||||
"amount": "1%s",
|
||||
"deposit": "%s%s"
|
||||
}
|
||||
`, fooAddr, sdk.DefaultBondDenom, sdk.DefaultBondDenom, proposalTokens.String())
|
||||
`, fooAddr, sdk.DefaultBondDenom, proposalTokens.String(), sdk.DefaultBondDenom)
|
||||
proposalFile := WriteToNewTempFile(t, proposal)
|
||||
|
||||
// create the param change proposal
|
||||
f.TxGovSubmitCommunityPoolSpendProposal(keyFoo, proposalFile.Name(), sdk.NewCoin(denom, proposalTokens), "-y")
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
// ensure transaction tags can be queried
|
||||
txsPage := f.QueryTxs(1, 50, "message.action:submit_proposal", fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
// ensure transaction events can be queried
|
||||
txsPage := f.QueryTxs(1, 50, "message.action=submit_proposal", fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, txsPage.Txs, 1)
|
||||
|
||||
// ensure deposit was deducted
|
||||
@ -803,7 +757,11 @@ func TestKavaCLISubmitCommunityPoolSpendProposal(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIQueryTxPagination(t *testing.T) {
|
||||
func TestKvCLIQueryTxPagination(t *testing.T) {
|
||||
// Skip until https://github.com/tendermint/tendermint/issues/4432 has been
|
||||
// resolved and included in a release.
|
||||
t.SkipNow()
|
||||
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -824,36 +782,40 @@ func TestKavaCLIQueryTxPagination(t *testing.T) {
|
||||
}
|
||||
|
||||
// perPage = 15, 2 pages
|
||||
txsPage1 := f.QueryTxs(1, 15, fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
txsPage1 := f.QueryTxs(1, 15, fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, txsPage1.Txs, 15)
|
||||
require.Equal(t, txsPage1.Count, 15)
|
||||
txsPage2 := f.QueryTxs(2, 15, fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
txsPage2 := f.QueryTxs(2, 15, fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, txsPage2.Txs, 15)
|
||||
require.NotEqual(t, txsPage1.Txs, txsPage2.Txs)
|
||||
|
||||
// perPage = 16, 2 pages
|
||||
txsPage1 = f.QueryTxs(1, 16, fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
txsPage1 = f.QueryTxs(1, 16, fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, txsPage1.Txs, 16)
|
||||
txsPage2 = f.QueryTxs(2, 16, fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
txsPage2 = f.QueryTxs(2, 16, fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, txsPage2.Txs, 14)
|
||||
require.NotEqual(t, txsPage1.Txs, txsPage2.Txs)
|
||||
|
||||
// perPage = 50
|
||||
txsPageFull := f.QueryTxs(1, 50, fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
txsPageFull := f.QueryTxs(1, 50, fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
require.Len(t, txsPageFull.Txs, 30)
|
||||
require.Equal(t, txsPageFull.Txs, append(txsPage1.Txs, txsPage2.Txs...))
|
||||
|
||||
expected := txsPageFull.Txs
|
||||
got := append(txsPage1.Txs, txsPage2.Txs...)
|
||||
|
||||
require.Equal(t, expected, got)
|
||||
|
||||
// perPage = 0
|
||||
f.QueryTxsInvalid(errors.New("ERROR: page must greater than 0"), 0, 50, fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
f.QueryTxsInvalid(errors.New("ERROR: page must greater than 0"), 0, 50, fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
|
||||
// limit = 0
|
||||
f.QueryTxsInvalid(errors.New("ERROR: limit must greater than 0"), 1, 0, fmt.Sprintf("message.sender:%s", fooAddr))
|
||||
f.QueryTxsInvalid(errors.New("ERROR: limit must greater than 0"), 1, 0, fmt.Sprintf("message.sender=%s", fooAddr))
|
||||
|
||||
// Cleanup testing directories
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIValidateSignatures(t *testing.T) {
|
||||
func TestKvCLIValidateSignatures(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -874,9 +836,8 @@ func TestKavaCLIValidateSignatures(t *testing.T) {
|
||||
defer os.Remove(unsignedTxFile.Name())
|
||||
|
||||
// validate we can successfully sign
|
||||
success, stdout, stderr = f.TxSign(keyFoo, unsignedTxFile.Name())
|
||||
success, stdout, _ = f.TxSign(keyFoo, unsignedTxFile.Name())
|
||||
require.True(t, success)
|
||||
require.Empty(t, stderr)
|
||||
stdTx := f.unmarshalStdTx(t, stdout)
|
||||
require.Equal(t, len(stdTx.Msgs), 1)
|
||||
require.Equal(t, 1, len(stdTx.GetSignatures()))
|
||||
@ -903,7 +864,7 @@ func TestKavaCLIValidateSignatures(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLISendGenerateSignAndBroadcast(t *testing.T) {
|
||||
func TestKvCLISendGenerateSignAndBroadcast(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -951,6 +912,17 @@ func TestKavaCLISendGenerateSignAndBroadcast(t *testing.T) {
|
||||
require.Equal(t, fmt.Sprintf("Signers:\n 0: %v\n\nSignatures:\n\n", fooAddr.String()), stdout)
|
||||
|
||||
// Test sign
|
||||
|
||||
// Does not work in offline mode
|
||||
success, stdout, stderr = f.TxSign(keyFoo, unsignedTxFile.Name(), "--offline")
|
||||
require.Contains(t, stderr, "required flag(s) \"account-number\", \"sequence\" not set")
|
||||
require.False(t, success)
|
||||
|
||||
// But works offline if we set account number and sequence
|
||||
success, _, _ = f.TxSign(keyFoo, unsignedTxFile.Name(), "--offline", "--account-number", "1", "--sequence", "1")
|
||||
require.True(t, success)
|
||||
|
||||
// Sign transaction
|
||||
success, stdout, _ = f.TxSign(keyFoo, unsignedTxFile.Name())
|
||||
require.True(t, success)
|
||||
msg = f.unmarshalStdTx(t, stdout)
|
||||
@ -974,6 +946,13 @@ func TestKavaCLISendGenerateSignAndBroadcast(t *testing.T) {
|
||||
require.Equal(t, startTokens, fooAcc.GetCoins().AmountOf(denom))
|
||||
|
||||
// Test broadcast
|
||||
|
||||
// Does not work in offline mode
|
||||
success, _, stderr = f.TxBroadcast(signedTxFile.Name(), "--offline")
|
||||
require.Contains(t, stderr, "cannot broadcast tx during offline mode")
|
||||
require.False(t, success)
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
|
||||
success, stdout, _ = f.TxBroadcast(signedTxFile.Name())
|
||||
require.True(t, success)
|
||||
tests.WaitForNextNBlocksTM(1, f.Port)
|
||||
@ -987,7 +966,7 @@ func TestKavaCLISendGenerateSignAndBroadcast(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIMultisignInsufficientCosigners(t *testing.T) {
|
||||
func TestKvCLIMultisignInsufficientCosigners(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -1040,7 +1019,7 @@ func TestKavaCLIMultisignInsufficientCosigners(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIEncode(t *testing.T) {
|
||||
func TestKvCLIEncode(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -1048,8 +1027,6 @@ func TestKavaCLIEncode(t *testing.T) {
|
||||
proc := f.GDStart()
|
||||
defer proc.Stop(false)
|
||||
|
||||
cdc := app.MakeCodec()
|
||||
|
||||
// Build a testing transaction and write it to disk
|
||||
barAddr := f.KeyAddress(keyBar)
|
||||
keyAddr := f.KeyAddress(keyFoo)
|
||||
@ -1074,11 +1051,11 @@ func TestKavaCLIEncode(t *testing.T) {
|
||||
|
||||
// Check that the transaction decodes as epxceted
|
||||
var decodedTx auth.StdTx
|
||||
require.Nil(t, cdc.UnmarshalBinaryLengthPrefixed(decodedBytes, &decodedTx))
|
||||
require.Nil(t, f.cdc.UnmarshalBinaryBare(decodedBytes, &decodedTx))
|
||||
require.Equal(t, "deadbeef", decodedTx.Memo)
|
||||
}
|
||||
|
||||
func TestKavaCLIMultisignSortSignatures(t *testing.T) {
|
||||
func TestKvCLIMultisignSortSignatures(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -1143,7 +1120,7 @@ func TestKavaCLIMultisignSortSignatures(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIMultisign(t *testing.T) {
|
||||
func TestKvCLIMultisign(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
|
||||
@ -1189,6 +1166,14 @@ func TestKavaCLIMultisign(t *testing.T) {
|
||||
defer os.Remove(barSignatureFile.Name())
|
||||
|
||||
// Multisign
|
||||
|
||||
// Does not work in offline mode
|
||||
success, stdout, _ = f.TxMultisign(unsignedTxFile.Name(), keyFooBarBaz, []string{
|
||||
fooSignatureFile.Name(), barSignatureFile.Name()}, "--offline")
|
||||
require.Contains(t, "couldn't verify signature", stdout)
|
||||
require.False(t, success)
|
||||
|
||||
// Success multisign
|
||||
success, stdout, _ = f.TxMultisign(unsignedTxFile.Name(), keyFooBarBaz, []string{
|
||||
fooSignatureFile.Name(), barSignatureFile.Name()})
|
||||
require.True(t, success)
|
||||
@ -1209,7 +1194,7 @@ func TestKavaCLIMultisign(t *testing.T) {
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavaCLIConfig(t *testing.T) {
|
||||
func TestKvCLIConfig(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := InitFixtures(t)
|
||||
node := fmt.Sprintf("%s:%s", f.RPCAddr, f.Port)
|
||||
@ -1222,12 +1207,14 @@ func TestKavaCLIConfig(t *testing.T) {
|
||||
f.CLIConfig("chain-id", f.ChainID)
|
||||
f.CLIConfig("trace", "false")
|
||||
f.CLIConfig("indent", "true")
|
||||
f.CLIConfig("keyring-backend", "test")
|
||||
|
||||
config, err := ioutil.ReadFile(path.Join(f.KvcliHome, "config", "config.toml"))
|
||||
require.NoError(t, err)
|
||||
expectedConfig := fmt.Sprintf(`broadcast-mode = "block"
|
||||
chain-id = "%s"
|
||||
indent = true
|
||||
keyring-backend = "test"
|
||||
node = "%s"
|
||||
output = "text"
|
||||
trace = false
|
||||
@ -1238,7 +1225,7 @@ trust-node = true
|
||||
f.Cleanup()
|
||||
}
|
||||
|
||||
func TestKavadCollectGentxs(t *testing.T) {
|
||||
func TestKvdCollectGentxs(t *testing.T) {
|
||||
t.Parallel()
|
||||
var customMaxBytes, customMaxGas int64 = 99999999, 1234567
|
||||
f := NewFixtures(t)
|
||||
@ -1258,7 +1245,7 @@ func TestKavadCollectGentxs(t *testing.T) {
|
||||
f.CLIConfig("output", "json")
|
||||
|
||||
// Run init
|
||||
f.GDInit(keyFoo)
|
||||
f.KvInit(keyFoo)
|
||||
|
||||
// Customise genesis.json
|
||||
|
||||
@ -1286,7 +1273,7 @@ func TestKavadCollectGentxs(t *testing.T) {
|
||||
f.Cleanup(gentxDir)
|
||||
}
|
||||
|
||||
func TestKavadAddGenesisAccount(t *testing.T) {
|
||||
func TestKvdAddGenesisAccount(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := NewFixtures(t)
|
||||
|
||||
@ -1305,7 +1292,7 @@ func TestKavadAddGenesisAccount(t *testing.T) {
|
||||
f.CLIConfig("output", "json")
|
||||
|
||||
// Run init
|
||||
f.GDInit(keyFoo)
|
||||
f.KvInit(keyFoo)
|
||||
|
||||
// Add account to genesis.json
|
||||
bazCoins := sdk.Coins{
|
||||
@ -1317,9 +1304,7 @@ func TestKavadAddGenesisAccount(t *testing.T) {
|
||||
f.AddGenesisAccount(f.KeyAddress(keyBar), bazCoins)
|
||||
genesisState := f.GenesisState()
|
||||
|
||||
cdc := app.MakeCodec()
|
||||
|
||||
authGenState := auth.GetGenesisStateFromAppState(cdc, genesisState)
|
||||
authGenState := auth.GetGenesisStateFromAppState(f.cdc, genesisState)
|
||||
accounts := authGenState.Accounts
|
||||
|
||||
require.Equal(t, accounts[0].GetAddress(), f.KeyAddress(keyFoo))
|
||||
|
@ -162,8 +162,8 @@ func InitFixtures(t *testing.T) (f *Fixtures) {
|
||||
// ensure that CLI output is in JSON format
|
||||
f.CLIConfig("output", "json")
|
||||
|
||||
// NOTE: GDInit sets the ChainID
|
||||
f.GDInit(keyFoo)
|
||||
// NOTE: KvInit sets the ChainID
|
||||
f.KvInit(keyFoo)
|
||||
|
||||
f.CLIConfig("chain-id", f.ChainID)
|
||||
f.CLIConfig("broadcast-mode", "block")
|
||||
@ -208,9 +208,9 @@ func (f *Fixtures) UnsafeResetAll(flags ...string) {
|
||||
require.NoError(f.T, err)
|
||||
}
|
||||
|
||||
// GDInit is kavad init
|
||||
// NOTE: GDInit sets the ChainID for the Fixtures instance
|
||||
func (f *Fixtures) GDInit(moniker string, flags ...string) {
|
||||
// KvInit is kavad init
|
||||
// NOTE: KvInit sets the ChainID for the Fixtures instance
|
||||
func (f *Fixtures) KvInit(moniker string, flags ...string) {
|
||||
cmd := fmt.Sprintf("%s init -o --home=%s %s", f.KvdBinary, f.KvdHome, moniker)
|
||||
_, stderr := tests.ExecuteT(f.T, addFlags(cmd, flags), clientkeys.DefaultKeyPass)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user