github.com/pokt-network/tendermint@v0.32.11-0.20230426215212-59310158d3e9/abci/tests/server/client.go (about)

     1  package testsuite
     2  
     3  import (
     4  	"bytes"
     5  	"errors"
     6  	"fmt"
     7  
     8  	abcicli "github.com/tendermint/tendermint/abci/client"
     9  	"github.com/tendermint/tendermint/abci/types"
    10  	tmrand "github.com/tendermint/tendermint/libs/rand"
    11  )
    12  
    13  func InitChain(client abcicli.Client) error {
    14  	total := 10
    15  	vals := make([]types.ValidatorUpdate, total)
    16  	for i := 0; i < total; i++ {
    17  		pubkey := tmrand.Bytes(33)
    18  		power := tmrand.Int()
    19  		vals[i] = types.Ed25519ValidatorUpdate(pubkey, int64(power))
    20  	}
    21  	_, err := client.InitChainSync(types.RequestInitChain{
    22  		Validators: vals,
    23  	})
    24  	if err != nil {
    25  		fmt.Printf("Failed test: InitChain - %v\n", err)
    26  		return err
    27  	}
    28  	fmt.Println("Passed test: InitChain")
    29  	return nil
    30  }
    31  
    32  func SetOption(client abcicli.Client, key, value string) error {
    33  	_, err := client.SetOptionSync(types.RequestSetOption{Key: key, Value: value})
    34  	if err != nil {
    35  		fmt.Println("Failed test: SetOption")
    36  		fmt.Printf("error while setting %v=%v: \nerror: %v\n", key, value, err)
    37  		return err
    38  	}
    39  	fmt.Println("Passed test: SetOption")
    40  	return nil
    41  }
    42  
    43  func Commit(client abcicli.Client, hashExp []byte) error {
    44  	res, err := client.CommitSync()
    45  	data := res.Data
    46  	if err != nil {
    47  		fmt.Println("Failed test: Commit")
    48  		fmt.Printf("error while committing: %v\n", err)
    49  		return err
    50  	}
    51  	if !bytes.Equal(data, hashExp) {
    52  		fmt.Println("Failed test: Commit")
    53  		fmt.Printf("Commit hash was unexpected. Got %X expected %X\n", data, hashExp)
    54  		return errors.New("commitTx failed")
    55  	}
    56  	fmt.Println("Passed test: Commit")
    57  	return nil
    58  }
    59  
    60  func DeliverTx(client abcicli.Client, txBytes []byte, codeExp uint32, dataExp []byte) error {
    61  	res, _ := client.DeliverTxSync(types.RequestDeliverTx{Tx: txBytes})
    62  	code, data, log := res.Code, res.Data, res.Log
    63  	if code != codeExp {
    64  		fmt.Println("Failed test: DeliverTx")
    65  		fmt.Printf("DeliverTx response code was unexpected. Got %v expected %v. Log: %v\n",
    66  			code, codeExp, log)
    67  		return errors.New("deliverTx error")
    68  	}
    69  	if !bytes.Equal(data, dataExp) {
    70  		fmt.Println("Failed test: DeliverTx")
    71  		fmt.Printf("DeliverTx response data was unexpected. Got %X expected %X\n",
    72  			data, dataExp)
    73  		return errors.New("deliverTx error")
    74  	}
    75  	fmt.Println("Passed test: DeliverTx")
    76  	return nil
    77  }
    78  
    79  func CheckTx(client abcicli.Client, txBytes []byte, codeExp uint32, dataExp []byte) error {
    80  	res, _ := client.CheckTxSync(types.RequestCheckTx{Tx: txBytes})
    81  	code, data, log := res.Code, res.Data, res.Log
    82  	if code != codeExp {
    83  		fmt.Println("Failed test: CheckTx")
    84  		fmt.Printf("CheckTx response code was unexpected. Got %v expected %v. Log: %v\n",
    85  			code, codeExp, log)
    86  		return errors.New("checkTx")
    87  	}
    88  	if !bytes.Equal(data, dataExp) {
    89  		fmt.Println("Failed test: CheckTx")
    90  		fmt.Printf("CheckTx response data was unexpected. Got %X expected %X\n",
    91  			data, dataExp)
    92  		return errors.New("checkTx")
    93  	}
    94  	fmt.Println("Passed test: CheckTx")
    95  	return nil
    96  }