cranberry
1package tx
2
3import (
4"context"
5
6"gitverse.ru/IvanTimofeev/cranberry/internal/errors"
7pbapi "gitverse.ru/IvanTimofeev/cranberry/pkg/grpc"
8"gitverse.ru/IvanTimofeev/cranberry/pkg/utility"
9)
10
11func (tsh *CranberryServiceHandler) SendTx(ctx context.Context, request *pbapi.SendTxRequest) (*pbapi.SendTxResponse, error) {
12txHash := utility.TxToHash(request.Tx)
13txc := &pbapi.TxContainer{
14Hash: txHash,
15Tx: request.Tx,
16Signature: request.Signature,
17PubKey: request.PubKey,
18}
19verified, err := tsh.validatorService.ValidateTx(txc)
20if err != nil {
21return nil, err
22}
23if !verified {
24return nil, errors.TxInvalidError(txHash)
25}
26err = tsh.poolService.PutTxToPool(txc)
27if err != nil {
28return nil, err
29}
30
31return &pbapi.SendTxResponse{}, nil
32}
33