package coregrpc import ( "context" abci "git.cw.tr/mukan-network/mukan-consensus/abci/types" core "git.cw.tr/mukan-network/mukan-consensus/rpc/core" rpctypes "git.cw.tr/mukan-network/mukan-consensus/rpc/jsonrpc/types" ) type broadcastAPI struct { env *core.Environment } func (bapi *broadcastAPI) Ping(context.Context, *RequestPing) (*ResponsePing, error) { // kvstore so we can check if the server is up return &ResponsePing{}, nil } func (bapi *broadcastAPI) BroadcastTx(_ context.Context, req *RequestBroadcastTx) (*ResponseBroadcastTx, error) { // NOTE: there's no way to get client's remote address // see https://stackoverflow.com/questions/33684570/session-and-remote-ip-address-in-grpc-go res, err := bapi.env.BroadcastTxCommit(&rpctypes.Context{}, req.Tx) if err != nil { return nil, err } return &ResponseBroadcastTx{ CheckTx: &abci.ResponseCheckTx{ Code: res.CheckTx.Code, Data: res.CheckTx.Data, Log: res.CheckTx.Log, }, TxResult: &abci.ExecTxResult{ Code: res.TxResult.Code, Data: res.TxResult.Data, Log: res.TxResult.Log, }, }, nil }