mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-26 16:25:21 +00:00
modify tests
This commit is contained in:
parent
a7659e2519
commit
61d29b84ed
@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TxBody struct {
|
type txBody struct {
|
||||||
TxBase64 string `json:"txbase64"`
|
TxBase64 string `json:"txbase64"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ type TxBody struct {
|
|||||||
func DecodeTxRequestHandlerFn(cliCtx context.CLIContext, cdc *wire.Codec) http.HandlerFunc {
|
func DecodeTxRequestHandlerFn(cliCtx context.CLIContext, cdc *wire.Codec) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
// get the input base64 string
|
// get the input base64 string
|
||||||
var m TxBody
|
var m txBody
|
||||||
decoder := json.NewDecoder(r.Body)
|
decoder := json.NewDecoder(r.Body)
|
||||||
err := decoder.Decode(&m)
|
err := decoder.Decode(&m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -27,7 +27,6 @@ import (
|
|||||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
"github.com/cosmos/cosmos-sdk/wire"
|
"github.com/cosmos/cosmos-sdk/wire"
|
||||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||||
"github.com/cosmos/cosmos-sdk/x/gov"
|
|
||||||
"github.com/cosmos/cosmos-sdk/x/slashing"
|
"github.com/cosmos/cosmos-sdk/x/slashing"
|
||||||
"github.com/cosmos/cosmos-sdk/x/stake"
|
"github.com/cosmos/cosmos-sdk/x/stake"
|
||||||
"github.com/cosmos/cosmos-sdk/x/stake/client/rest"
|
"github.com/cosmos/cosmos-sdk/x/stake/client/rest"
|
||||||
@ -267,35 +266,6 @@ func TestCoinSend(t *testing.T) {
|
|||||||
require.Equal(t, int64(1), mycoins.Amount.Int64())
|
require.Equal(t, int64(1), mycoins.Amount.Int64())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestIBCTransfer(t *testing.T) {
|
|
||||||
name, password := "test", "1234567890"
|
|
||||||
addr, seed := CreateAddr(t, "test", password, GetKeyBase(t))
|
|
||||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
|
||||||
defer cleanup()
|
|
||||||
|
|
||||||
acc := getAccount(t, port, addr)
|
|
||||||
initialBalance := acc.GetCoins()
|
|
||||||
|
|
||||||
// create TX
|
|
||||||
resultTx := doIBCTransfer(t, port, seed, name, password, addr)
|
|
||||||
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// check if tx was committed
|
|
||||||
require.Equal(t, uint32(0), resultTx.CheckTx.Code)
|
|
||||||
require.Equal(t, uint32(0), resultTx.DeliverTx.Code)
|
|
||||||
|
|
||||||
// query sender
|
|
||||||
acc = getAccount(t, port, addr)
|
|
||||||
coins := acc.GetCoins()
|
|
||||||
mycoins := coins[0]
|
|
||||||
|
|
||||||
require.Equal(t, "steak", mycoins.Denom)
|
|
||||||
require.Equal(t, initialBalance[0].Amount.SubRaw(1), mycoins.Amount)
|
|
||||||
|
|
||||||
// TODO: query ibc egress packet state
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestTxs(t *testing.T) {
|
func TestTxs(t *testing.T) {
|
||||||
name, password := "test", "1234567890"
|
name, password := "test", "1234567890"
|
||||||
addr, seed := CreateAddr(t, "test", password, GetKeyBase(t))
|
addr, seed := CreateAddr(t, "test", password, GetKeyBase(t))
|
||||||
@ -461,100 +431,6 @@ func TestBonding(t *testing.T) {
|
|||||||
assert.Len(t, txs, 1, "All unbonding txs found")
|
assert.Len(t, txs, 1, "All unbonding txs found")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSubmitProposal(t *testing.T) {
|
|
||||||
name, password := "test", "1234567890"
|
|
||||||
addr, seed := CreateAddr(t, "test", password, GetKeyBase(t))
|
|
||||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
|
||||||
defer cleanup()
|
|
||||||
|
|
||||||
// create SubmitProposal TX
|
|
||||||
resultTx := doSubmitProposal(t, port, seed, name, password, addr)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// check if tx was committed
|
|
||||||
require.Equal(t, uint32(0), resultTx.CheckTx.Code)
|
|
||||||
require.Equal(t, uint32(0), resultTx.DeliverTx.Code)
|
|
||||||
|
|
||||||
var proposalID int64
|
|
||||||
cdc.UnmarshalBinaryBare(resultTx.DeliverTx.GetData(), &proposalID)
|
|
||||||
|
|
||||||
// query proposal
|
|
||||||
proposal := getProposal(t, port, proposalID)
|
|
||||||
require.Equal(t, "Test", proposal.GetTitle())
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeposit(t *testing.T) {
|
|
||||||
name, password := "test", "1234567890"
|
|
||||||
addr, seed := CreateAddr(t, "test", password, GetKeyBase(t))
|
|
||||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
|
||||||
defer cleanup()
|
|
||||||
|
|
||||||
// create SubmitProposal TX
|
|
||||||
resultTx := doSubmitProposal(t, port, seed, name, password, addr)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// check if tx was committed
|
|
||||||
require.Equal(t, uint32(0), resultTx.CheckTx.Code)
|
|
||||||
require.Equal(t, uint32(0), resultTx.DeliverTx.Code)
|
|
||||||
|
|
||||||
var proposalID int64
|
|
||||||
cdc.UnmarshalBinaryBare(resultTx.DeliverTx.GetData(), &proposalID)
|
|
||||||
|
|
||||||
// query proposal
|
|
||||||
proposal := getProposal(t, port, proposalID)
|
|
||||||
require.Equal(t, "Test", proposal.GetTitle())
|
|
||||||
|
|
||||||
// create SubmitProposal TX
|
|
||||||
resultTx = doDeposit(t, port, seed, name, password, addr, proposalID)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// query proposal
|
|
||||||
proposal = getProposal(t, port, proposalID)
|
|
||||||
require.True(t, proposal.GetTotalDeposit().IsEqual(sdk.Coins{sdk.NewInt64Coin("steak", 10)}))
|
|
||||||
|
|
||||||
// query deposit
|
|
||||||
deposit := getDeposit(t, port, proposalID, addr)
|
|
||||||
require.True(t, deposit.Amount.IsEqual(sdk.Coins{sdk.NewInt64Coin("steak", 10)}))
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestVote(t *testing.T) {
|
|
||||||
name, password := "test", "1234567890"
|
|
||||||
addr, seed := CreateAddr(t, "test", password, GetKeyBase(t))
|
|
||||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
|
||||||
defer cleanup()
|
|
||||||
|
|
||||||
// create SubmitProposal TX
|
|
||||||
resultTx := doSubmitProposal(t, port, seed, name, password, addr)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// check if tx was committed
|
|
||||||
require.Equal(t, uint32(0), resultTx.CheckTx.Code)
|
|
||||||
require.Equal(t, uint32(0), resultTx.DeliverTx.Code)
|
|
||||||
|
|
||||||
var proposalID int64
|
|
||||||
cdc.UnmarshalBinaryBare(resultTx.DeliverTx.GetData(), &proposalID)
|
|
||||||
|
|
||||||
// query proposal
|
|
||||||
proposal := getProposal(t, port, proposalID)
|
|
||||||
require.Equal(t, "Test", proposal.GetTitle())
|
|
||||||
|
|
||||||
// create SubmitProposal TX
|
|
||||||
resultTx = doDeposit(t, port, seed, name, password, addr, proposalID)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// query proposal
|
|
||||||
proposal = getProposal(t, port, proposalID)
|
|
||||||
require.Equal(t, gov.StatusVotingPeriod, proposal.GetStatus())
|
|
||||||
|
|
||||||
// create SubmitProposal TX
|
|
||||||
resultTx = doVote(t, port, seed, name, password, addr, proposalID)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
vote := getVote(t, port, proposalID, addr)
|
|
||||||
require.Equal(t, proposalID, vote.ProposalID)
|
|
||||||
require.Equal(t, gov.OptionYes, vote.Option)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestUnrevoke(t *testing.T) {
|
func TestUnrevoke(t *testing.T) {
|
||||||
_, password := "test", "1234567890"
|
_, password := "test", "1234567890"
|
||||||
addr, _ := CreateAddr(t, "test", password, GetKeyBase(t))
|
addr, _ := CreateAddr(t, "test", password, GetKeyBase(t))
|
||||||
@ -571,96 +447,6 @@ func TestUnrevoke(t *testing.T) {
|
|||||||
require.Equal(t, true, signingInfo.SignedBlocksCounter > 0)
|
require.Equal(t, true, signingInfo.SignedBlocksCounter > 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestProposalsQuery(t *testing.T) {
|
|
||||||
name, password1 := "test", "1234567890"
|
|
||||||
name2, password2 := "test2", "1234567890"
|
|
||||||
addr, seed := CreateAddr(t, "test", password1, GetKeyBase(t))
|
|
||||||
addr2, seed2 := CreateAddr(t, "test2", password2, GetKeyBase(t))
|
|
||||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr, addr2})
|
|
||||||
defer cleanup()
|
|
||||||
|
|
||||||
// Addr1 proposes (and deposits) proposals #1 and #2
|
|
||||||
resultTx := doSubmitProposal(t, port, seed, name, password1, addr)
|
|
||||||
var proposalID1 int64
|
|
||||||
cdc.UnmarshalBinaryBare(resultTx.DeliverTx.GetData(), &proposalID1)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
resultTx = doSubmitProposal(t, port, seed, name, password1, addr)
|
|
||||||
var proposalID2 int64
|
|
||||||
cdc.UnmarshalBinaryBare(resultTx.DeliverTx.GetData(), &proposalID2)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// Addr2 proposes (and deposits) proposals #3
|
|
||||||
resultTx = doSubmitProposal(t, port, seed2, name2, password2, addr2)
|
|
||||||
var proposalID3 int64
|
|
||||||
cdc.UnmarshalBinaryBare(resultTx.DeliverTx.GetData(), &proposalID3)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// Addr2 deposits on proposals #2 & #3
|
|
||||||
resultTx = doDeposit(t, port, seed2, name2, password2, addr2, proposalID2)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
resultTx = doDeposit(t, port, seed2, name2, password2, addr2, proposalID3)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// Only proposals #1 should be in Deposit Period
|
|
||||||
proposals := getProposalsFilterStatus(t, port, gov.StatusDepositPeriod)
|
|
||||||
require.Len(t, proposals, 1)
|
|
||||||
require.Equal(t, proposalID1, proposals[0].GetProposalID())
|
|
||||||
// Only proposals #2 and #3 should be in Voting Period
|
|
||||||
proposals = getProposalsFilterStatus(t, port, gov.StatusVotingPeriod)
|
|
||||||
require.Len(t, proposals, 2)
|
|
||||||
require.Equal(t, proposalID2, proposals[0].GetProposalID())
|
|
||||||
require.Equal(t, proposalID3, proposals[1].GetProposalID())
|
|
||||||
|
|
||||||
// Addr1 votes on proposals #2 & #3
|
|
||||||
resultTx = doVote(t, port, seed, name, password1, addr, proposalID2)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
resultTx = doVote(t, port, seed, name, password1, addr, proposalID3)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// Addr2 votes on proposal #3
|
|
||||||
resultTx = doVote(t, port, seed2, name2, password2, addr2, proposalID3)
|
|
||||||
tests.WaitForHeight(resultTx.Height+1, port)
|
|
||||||
|
|
||||||
// Test query all proposals
|
|
||||||
proposals = getProposalsAll(t, port)
|
|
||||||
require.Equal(t, proposalID1, (proposals[0]).GetProposalID())
|
|
||||||
require.Equal(t, proposalID2, (proposals[1]).GetProposalID())
|
|
||||||
require.Equal(t, proposalID3, (proposals[2]).GetProposalID())
|
|
||||||
|
|
||||||
// Test query deposited by addr1
|
|
||||||
proposals = getProposalsFilterDepositer(t, port, addr)
|
|
||||||
require.Equal(t, proposalID1, (proposals[0]).GetProposalID())
|
|
||||||
|
|
||||||
// Test query deposited by addr2
|
|
||||||
proposals = getProposalsFilterDepositer(t, port, addr2)
|
|
||||||
require.Equal(t, proposalID2, (proposals[0]).GetProposalID())
|
|
||||||
require.Equal(t, proposalID3, (proposals[1]).GetProposalID())
|
|
||||||
|
|
||||||
// Test query voted by addr1
|
|
||||||
proposals = getProposalsFilterVoter(t, port, addr)
|
|
||||||
require.Equal(t, proposalID2, (proposals[0]).GetProposalID())
|
|
||||||
require.Equal(t, proposalID3, (proposals[1]).GetProposalID())
|
|
||||||
|
|
||||||
// Test query voted by addr2
|
|
||||||
proposals = getProposalsFilterVoter(t, port, addr2)
|
|
||||||
require.Equal(t, proposalID3, (proposals[0]).GetProposalID())
|
|
||||||
|
|
||||||
// Test query voted and deposited by addr1
|
|
||||||
proposals = getProposalsFilterVoterDepositer(t, port, addr, addr)
|
|
||||||
require.Equal(t, proposalID2, (proposals[0]).GetProposalID())
|
|
||||||
|
|
||||||
// Test query votes on Proposal 2
|
|
||||||
votes := getVotes(t, port, proposalID2)
|
|
||||||
require.Len(t, votes, 1)
|
|
||||||
require.Equal(t, addr, votes[0].Voter)
|
|
||||||
|
|
||||||
// Test query votes on Proposal 3
|
|
||||||
votes = getVotes(t, port, proposalID3)
|
|
||||||
require.Len(t, votes, 2)
|
|
||||||
require.True(t, addr.String() == votes[0].Voter.String() || addr.String() == votes[1].Voter.String())
|
|
||||||
require.True(t, addr2.String() == votes[0].Voter.String() || addr2.String() == votes[1].Voter.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
//_____________________________________________________________________________
|
//_____________________________________________________________________________
|
||||||
// get the account to get the sequence
|
// get the account to get the sequence
|
||||||
func getAccount(t *testing.T, port string, addr sdk.AccAddress) auth.Account {
|
func getAccount(t *testing.T, port string, addr sdk.AccAddress) auth.Account {
|
||||||
@ -708,45 +494,6 @@ func doSend(t *testing.T, port, seed, name, password string, addr sdk.AccAddress
|
|||||||
return receiveAddr, resultTx
|
return receiveAddr, resultTx
|
||||||
}
|
}
|
||||||
|
|
||||||
func doIBCTransfer(t *testing.T, port, seed, name, password string, addr sdk.AccAddress) (resultTx ctypes.ResultBroadcastTxCommit) {
|
|
||||||
// create receive address
|
|
||||||
kb := client.MockKeyBase()
|
|
||||||
receiveInfo, _, err := kb.CreateMnemonic("receive_address", cryptoKeys.English, "1234567890", cryptoKeys.SigningAlgo("secp256k1"))
|
|
||||||
require.Nil(t, err)
|
|
||||||
receiveAddr := sdk.AccAddress(receiveInfo.GetPubKey().Address())
|
|
||||||
|
|
||||||
chainID := viper.GetString(client.FlagChainID)
|
|
||||||
|
|
||||||
// get the account to get the sequence
|
|
||||||
acc := getAccount(t, port, addr)
|
|
||||||
accnum := acc.GetAccountNumber()
|
|
||||||
sequence := acc.GetSequence()
|
|
||||||
|
|
||||||
// send
|
|
||||||
jsonStr := []byte(fmt.Sprintf(`{
|
|
||||||
"name":"%s",
|
|
||||||
"password": "%s",
|
|
||||||
"account_number":"%d",
|
|
||||||
"sequence": "%d",
|
|
||||||
"gas": "100000",
|
|
||||||
"src_chain_id": "%s",
|
|
||||||
"amount":[
|
|
||||||
{
|
|
||||||
"denom": "%s",
|
|
||||||
"amount": "1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}`, name, password, accnum, sequence, chainID, "steak"))
|
|
||||||
|
|
||||||
res, body := Request(t, port, "POST", fmt.Sprintf("/ibc/testchain/%s/send", receiveAddr), jsonStr)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
err = cdc.UnmarshalJSON([]byte(body), &resultTx)
|
|
||||||
require.Nil(t, err)
|
|
||||||
|
|
||||||
return resultTx
|
|
||||||
}
|
|
||||||
|
|
||||||
func getSigningInfo(t *testing.T, port string, validatorPubKey string) slashing.ValidatorSigningInfo {
|
func getSigningInfo(t *testing.T, port string, validatorPubKey string) slashing.ValidatorSigningInfo {
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/slashing/signing_info/%s", validatorPubKey), nil)
|
res, body := Request(t, port, "GET", fmt.Sprintf("/slashing/signing_info/%s", validatorPubKey), nil)
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||||
@ -946,188 +693,3 @@ func getValidator(t *testing.T, port string, validatorAddr sdk.AccAddress) stake
|
|||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
return validator
|
return validator
|
||||||
}
|
}
|
||||||
|
|
||||||
// ============= Governance Module ================
|
|
||||||
|
|
||||||
func getProposal(t *testing.T, port string, proposalID int64) gov.Proposal {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d", proposalID), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
var proposal gov.Proposal
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &proposal)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return proposal
|
|
||||||
}
|
|
||||||
|
|
||||||
func getDeposit(t *testing.T, port string, proposalID int64, depositerAddr sdk.AccAddress) gov.Deposit {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d/deposits/%s", proposalID, depositerAddr), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
var deposit gov.Deposit
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &deposit)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return deposit
|
|
||||||
}
|
|
||||||
|
|
||||||
func getVote(t *testing.T, port string, proposalID int64, voterAddr sdk.AccAddress) gov.Vote {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d/votes/%s", proposalID, voterAddr), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
var vote gov.Vote
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &vote)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return vote
|
|
||||||
}
|
|
||||||
|
|
||||||
func getVotes(t *testing.T, port string, proposalID int64) []gov.Vote {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d/votes", proposalID), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
var votes []gov.Vote
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &votes)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return votes
|
|
||||||
}
|
|
||||||
|
|
||||||
func getProposalsAll(t *testing.T, port string) []gov.Proposal {
|
|
||||||
res, body := Request(t, port, "GET", "/gov/proposals", nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var proposals []gov.Proposal
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &proposals)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return proposals
|
|
||||||
}
|
|
||||||
|
|
||||||
func getProposalsFilterDepositer(t *testing.T, port string, depositerAddr sdk.AccAddress) []gov.Proposal {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?depositer=%s", depositerAddr), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var proposals []gov.Proposal
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &proposals)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return proposals
|
|
||||||
}
|
|
||||||
|
|
||||||
func getProposalsFilterVoter(t *testing.T, port string, voterAddr sdk.AccAddress) []gov.Proposal {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?voter=%s", voterAddr), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var proposals []gov.Proposal
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &proposals)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return proposals
|
|
||||||
}
|
|
||||||
|
|
||||||
func getProposalsFilterVoterDepositer(t *testing.T, port string, voterAddr, depositerAddr sdk.AccAddress) []gov.Proposal {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?depositer=%s&voter=%s", depositerAddr, voterAddr), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var proposals []gov.Proposal
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &proposals)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return proposals
|
|
||||||
}
|
|
||||||
|
|
||||||
func getProposalsFilterStatus(t *testing.T, port string, status gov.ProposalStatus) []gov.Proposal {
|
|
||||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?status=%s", status), nil)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var proposals []gov.Proposal
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &proposals)
|
|
||||||
require.Nil(t, err)
|
|
||||||
return proposals
|
|
||||||
}
|
|
||||||
|
|
||||||
func doSubmitProposal(t *testing.T, port, seed, name, password string, proposerAddr sdk.AccAddress) (resultTx ctypes.ResultBroadcastTxCommit) {
|
|
||||||
// get the account to get the sequence
|
|
||||||
acc := getAccount(t, port, proposerAddr)
|
|
||||||
accnum := acc.GetAccountNumber()
|
|
||||||
sequence := acc.GetSequence()
|
|
||||||
|
|
||||||
chainID := viper.GetString(client.FlagChainID)
|
|
||||||
|
|
||||||
// submitproposal
|
|
||||||
jsonStr := []byte(fmt.Sprintf(`{
|
|
||||||
"title": "Test",
|
|
||||||
"description": "test",
|
|
||||||
"proposal_type": "Text",
|
|
||||||
"proposer": "%s",
|
|
||||||
"initial_deposit": [{ "denom": "steak", "amount": "5" }],
|
|
||||||
"base_req": {
|
|
||||||
"name": "%s",
|
|
||||||
"password": "%s",
|
|
||||||
"chain_id": "%s",
|
|
||||||
"account_number":"%d",
|
|
||||||
"sequence":"%d",
|
|
||||||
"gas":"100000"
|
|
||||||
}
|
|
||||||
}`, proposerAddr, name, password, chainID, accnum, sequence))
|
|
||||||
res, body := Request(t, port, "POST", "/gov/proposals", jsonStr)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var results ctypes.ResultBroadcastTxCommit
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &results)
|
|
||||||
require.Nil(t, err)
|
|
||||||
|
|
||||||
return results
|
|
||||||
}
|
|
||||||
|
|
||||||
func doDeposit(t *testing.T, port, seed, name, password string, proposerAddr sdk.AccAddress, proposalID int64) (resultTx ctypes.ResultBroadcastTxCommit) {
|
|
||||||
// get the account to get the sequence
|
|
||||||
acc := getAccount(t, port, proposerAddr)
|
|
||||||
accnum := acc.GetAccountNumber()
|
|
||||||
sequence := acc.GetSequence()
|
|
||||||
|
|
||||||
chainID := viper.GetString(client.FlagChainID)
|
|
||||||
|
|
||||||
// deposit on proposal
|
|
||||||
jsonStr := []byte(fmt.Sprintf(`{
|
|
||||||
"depositer": "%s",
|
|
||||||
"amount": [{ "denom": "steak", "amount": "5" }],
|
|
||||||
"base_req": {
|
|
||||||
"name": "%s",
|
|
||||||
"password": "%s",
|
|
||||||
"chain_id": "%s",
|
|
||||||
"account_number":"%d",
|
|
||||||
"sequence": "%d",
|
|
||||||
"gas":"100000"
|
|
||||||
}
|
|
||||||
}`, proposerAddr, name, password, chainID, accnum, sequence))
|
|
||||||
res, body := Request(t, port, "POST", fmt.Sprintf("/gov/proposals/%d/deposits", proposalID), jsonStr)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var results ctypes.ResultBroadcastTxCommit
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &results)
|
|
||||||
require.Nil(t, err)
|
|
||||||
|
|
||||||
return results
|
|
||||||
}
|
|
||||||
|
|
||||||
func doVote(t *testing.T, port, seed, name, password string, proposerAddr sdk.AccAddress, proposalID int64) (resultTx ctypes.ResultBroadcastTxCommit) {
|
|
||||||
// get the account to get the sequence
|
|
||||||
acc := getAccount(t, port, proposerAddr)
|
|
||||||
accnum := acc.GetAccountNumber()
|
|
||||||
sequence := acc.GetSequence()
|
|
||||||
|
|
||||||
chainID := viper.GetString(client.FlagChainID)
|
|
||||||
|
|
||||||
// vote on proposal
|
|
||||||
jsonStr := []byte(fmt.Sprintf(`{
|
|
||||||
"voter": "%s",
|
|
||||||
"option": "Yes",
|
|
||||||
"base_req": {
|
|
||||||
"name": "%s",
|
|
||||||
"password": "%s",
|
|
||||||
"chain_id": "%s",
|
|
||||||
"account_number": "%d",
|
|
||||||
"sequence": "%d",
|
|
||||||
"gas":"100000"
|
|
||||||
}
|
|
||||||
}`, proposerAddr, name, password, chainID, accnum, sequence))
|
|
||||||
res, body := Request(t, port, "POST", fmt.Sprintf("/gov/proposals/%d/votes", proposalID), jsonStr)
|
|
||||||
fmt.Println(res)
|
|
||||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
|
||||||
|
|
||||||
var results ctypes.ResultBroadcastTxCommit
|
|
||||||
err := cdc.UnmarshalJSON([]byte(body), &results)
|
|
||||||
require.Nil(t, err)
|
|
||||||
|
|
||||||
return results
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user