github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/genutil/client/rest/query.go (about)

     1  package rest
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  
     7  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context"
     8  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     9  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/rest"
    10  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/genutil/types"
    11  )
    12  
    13  // QueryGenesisTxs writes the genesis transactions to the response if no error
    14  // occurs.
    15  func QueryGenesisTxs(cliCtx context.CLIContext, w http.ResponseWriter) {
    16  	resultGenesis, err := cliCtx.Client.Genesis()
    17  	if err != nil {
    18  		rest.WriteErrorResponse(
    19  			w, http.StatusInternalServerError,
    20  			fmt.Sprintf("failed to retrieve genesis from client: %s", err),
    21  		)
    22  		return
    23  	}
    24  
    25  	appState, err := types.GenesisStateFromGenDoc(cliCtx.Codec, *resultGenesis.Genesis)
    26  	if err != nil {
    27  		rest.WriteErrorResponse(
    28  			w, http.StatusInternalServerError,
    29  			fmt.Sprintf("failed to decode genesis doc: %s", err),
    30  		)
    31  		return
    32  	}
    33  
    34  	genState := types.GetGenesisStateFromAppState(cliCtx.Codec, appState)
    35  	genTxs := make([]sdk.Tx, len(genState.GenTxs))
    36  	for i, tx := range genState.GenTxs {
    37  		err := cliCtx.Codec.UnmarshalJSON(tx, &genTxs[i])
    38  		if err != nil {
    39  			rest.WriteErrorResponse(
    40  				w, http.StatusInternalServerError,
    41  				fmt.Sprintf("failed to decode genesis transaction: %s", err),
    42  			)
    43  			return
    44  		}
    45  	}
    46  
    47  	rest.PostProcessResponseBare(w, cliCtx, genTxs)
    48  }