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 }