github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/evm/client/rest/query.go (about) 1 package rest 2 3 import ( 4 "fmt" 5 "net/http" 6 7 ethcommon "github.com/ethereum/go-ethereum/common" 8 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context" 9 clientCtx "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context" 10 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/rest" 11 comm "github.com/fibonacci-chain/fbc/x/common" 12 "github.com/fibonacci-chain/fbc/x/evm/client/utils" 13 evmtypes "github.com/fibonacci-chain/fbc/x/evm/types" 14 "github.com/gorilla/mux" 15 ) 16 17 func registerQueryRoutes(cliCtx clientCtx.CLIContext, r *mux.Router) { 18 r.HandleFunc("/evm/system/contract/address", QueryManageSysContractAddressFn(cliCtx)).Methods("GET") 19 } 20 21 // QueryManageSysContractAddressFn defines evm contract method blocked list handler 22 func QueryManageSysContractAddressFn(cliCtx context.CLIContext) http.HandlerFunc { 23 return func(w http.ResponseWriter, r *http.Request) { 24 path := fmt.Sprintf("custom/%s/%s", evmtypes.ModuleName, evmtypes.QuerySysContractAddress) 25 cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, cliCtx, r) 26 if !ok { 27 return 28 } 29 addr, _, err := cliCtx.QueryWithData(path, nil) 30 if err != nil { 31 sdkErr := comm.ParseSDKError(err.Error()) 32 comm.HandleErrorMsg(w, cliCtx, sdkErr.Code, sdkErr.Message) 33 return 34 } 35 36 ethAddr := ethcommon.BytesToAddress(addr).Hex() 37 result := utils.ResponseSysContractAddress{Address: ethAddr} 38 39 rest.PostProcessResponseBare(w, cliCtx, result) 40 } 41 }