func HandleV2FactoidSubmit(state interfaces.IState, params interface{}) (interface{}, *primitives.JSONError) { t := new(TransactionRequest) err := MapToObject(params, t) if err != nil { return nil, NewInvalidParamsError() } msg := new(messages.FactoidTransaction) p, err := hex.DecodeString(t.Transaction) if err != nil { return nil, NewUnableToDecodeTransactionError() } _, err = msg.UnmarshalTransData(p) if err != nil { return nil, NewUnableToDecodeTransactionError() } state.IncFCTSubmits() state.APIQueue() <- msg resp := new(FactoidSubmitResponse) resp.Message = "Successfully submitted the transaction" resp.TxID = msg.Transaction.GetSigHash().String() return resp, nil }
func HandleFactoidSubmit(ctx *web.Context) { state := ctx.Server.Env["state"].(interfaces.IState) type x struct{ Transaction string } t := new(x) var p []byte var err error if p, err = ioutil.ReadAll(ctx.Request.Body); err != nil { wsLog.Error(err) returnMsg(ctx, "Unable to read the request", false) return } else { if err := json.Unmarshal(p, t); err != nil { returnMsg(ctx, "Unable to Unmarshal the request", false) return } } msg := new(messages.FactoidTransaction) if p, err = hex.DecodeString(t.Transaction); err != nil { returnMsg(ctx, "Unable to decode the transaction", false) return } _, err = msg.UnmarshalTransData(p) if err != nil { returnMsg(ctx, err.Error(), false) return } err = state.GetFactoidState().Validate(1, msg.Transaction) if err != nil { returnMsg(ctx, err.Error(), false) return } state.InMsgQueue() <- msg returnMsg(ctx, "Successfully submitted the transaction", true) }