mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-10-31 23:08:32 +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" | ||||
| ) | ||||
| 
 | ||||
| type TxBody struct { | ||||
| type txBody struct { | ||||
| 	TxBase64 string `json:"txbase64"` | ||||
| } | ||||
| 
 | ||||
| @ -18,7 +18,7 @@ type TxBody struct { | ||||
| func DecodeTxRequestHandlerFn(cliCtx context.CLIContext, cdc *wire.Codec) http.HandlerFunc { | ||||
| 	return func(w http.ResponseWriter, r *http.Request) { | ||||
| 		// get the input base64 string
 | ||||
| 		var m TxBody | ||||
| 		var m txBody | ||||
| 		decoder := json.NewDecoder(r.Body) | ||||
| 		err := decoder.Decode(&m) | ||||
| 		if err != nil { | ||||
|  | ||||
| @ -27,7 +27,6 @@ import ( | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| 	"github.com/cosmos/cosmos-sdk/wire" | ||||
| 	"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/stake" | ||||
| 	"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()) | ||||
| } | ||||
| 
 | ||||
| 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) { | ||||
| 	name, password := "test", "1234567890" | ||||
| 	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") | ||||
| } | ||||
| 
 | ||||
| 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) { | ||||
| 	_, password := "test", "1234567890" | ||||
| 	addr, _ := CreateAddr(t, "test", password, GetKeyBase(t)) | ||||
| @ -571,96 +447,6 @@ func TestUnrevoke(t *testing.T) { | ||||
| 	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
 | ||||
| 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 | ||||
| } | ||||
| 
 | ||||
| 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 { | ||||
| 	res, body := Request(t, port, "GET", fmt.Sprintf("/slashing/signing_info/%s", validatorPubKey), nil) | ||||
| 	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) | ||||
| 	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
	 rhuairahrighairigh
						rhuairahrighairigh