* Refactor CliContext as Context
* Fix lint issues
* Fix goimports
* Fix gov tests
* Resolved ci-lint issues
* Add changelog
* Rename cliCtx to clientCtx
* Fix mocks and routes
* Add changelog
* Update changelog
* Apply suggestions from code review
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
* merge client/rpc/ro{ot,utes}.go
* Update docs
* client/rpc: remove redundant client/rpc.RegisterRPCRoutes
* regenerate mocks
* Update ADRs
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
package rest
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/types/rest"
|
|
"github.com/cosmos/cosmos-sdk/x/genutil/types"
|
|
)
|
|
|
|
// QueryGenesisTxs writes the genesis transactions to the response if no error
|
|
// occurs.
|
|
func QueryGenesisTxs(clientCtx client.Context, w http.ResponseWriter) {
|
|
resultGenesis, err := clientCtx.Client.Genesis()
|
|
if err != nil {
|
|
rest.WriteErrorResponse(
|
|
w, http.StatusInternalServerError,
|
|
fmt.Sprintf("failed to retrieve genesis from client: %s", err),
|
|
)
|
|
return
|
|
}
|
|
|
|
appState, err := types.GenesisStateFromGenDoc(clientCtx.Codec, *resultGenesis.Genesis)
|
|
if err != nil {
|
|
rest.WriteErrorResponse(
|
|
w, http.StatusInternalServerError,
|
|
fmt.Sprintf("failed to decode genesis doc: %s", err),
|
|
)
|
|
return
|
|
}
|
|
|
|
genState := types.GetGenesisStateFromAppState(clientCtx.Codec, appState)
|
|
genTxs := make([]sdk.Tx, len(genState.GenTxs))
|
|
for i, tx := range genState.GenTxs {
|
|
err := clientCtx.Codec.UnmarshalJSON(tx, &genTxs[i])
|
|
if err != nil {
|
|
rest.WriteErrorResponse(
|
|
w, http.StatusInternalServerError,
|
|
fmt.Sprintf("failed to decode genesis transaction: %s", err),
|
|
)
|
|
return
|
|
}
|
|
}
|
|
|
|
rest.PostProcessResponseBare(w, clientCtx, genTxs)
|
|
}
|