Skip to content

Commit

Permalink
fix: using contect withtimeout on wallet client
Browse files Browse the repository at this point in the history
  • Loading branch information
kehiy committed Jul 2, 2024
1 parent 12a0853 commit c0dc374
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 26 deletions.
34 changes: 9 additions & 25 deletions wallet/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,19 @@ import (
// It is used to get information such as account balance or transaction data from the server.
type grpcClient struct {
ctx context.Context
cancel context.CancelFunc
servers []string
conn *grpc.ClientConn
blockchainClient pactus.BlockchainClient
transactionClient pactus.TransactionClient
}

func newGrpcClient() *grpcClient {
ctx := context.WithoutCancel(context.Background())
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)

return &grpcClient{
ctx: ctx,
cancel: cancel,
conn: nil,
blockchainClient: nil,
transactionClient: nil,
Expand Down Expand Up @@ -78,10 +80,7 @@ func (c *grpcClient) getBlockchainInfo() (*pactus.GetBlockchainInfoResponse, err
return nil, err
}

ctx, cancel := context.WithTimeout(c.ctx, time.Second*5)
defer cancel()

info, err := c.blockchainClient.GetBlockchainInfo(ctx,
info, err := c.blockchainClient.GetBlockchainInfo(c.ctx,
&pactus.GetBlockchainInfoRequest{})
if err != nil {
return nil, err
Expand All @@ -95,10 +94,7 @@ func (c *grpcClient) getAccount(addrStr string) (*pactus.AccountInfo, error) {
return nil, err
}

ctx, cancel := context.WithTimeout(c.ctx, time.Second*5)
defer cancel()

res, err := c.blockchainClient.GetAccount(ctx,
res, err := c.blockchainClient.GetAccount(c.ctx,
&pactus.GetAccountRequest{Address: addrStr})
if err != nil {
return nil, err
Expand All @@ -112,10 +108,7 @@ func (c *grpcClient) getValidator(addrStr string) (*pactus.ValidatorInfo, error)
return nil, err
}

ctx, cancel := context.WithTimeout(c.ctx, time.Second*5)
defer cancel()

res, err := c.blockchainClient.GetValidator(ctx,
res, err := c.blockchainClient.GetValidator(c.ctx,
&pactus.GetValidatorRequest{Address: addrStr})
if err != nil {
return nil, err
Expand All @@ -129,14 +122,11 @@ func (c *grpcClient) sendTx(trx *tx.Tx) (tx.ID, error) {
return hash.UndefHash, err
}

ctx, cancel := context.WithTimeout(c.ctx, time.Second*5)
defer cancel()

data, err := trx.Bytes()
if err != nil {
return hash.UndefHash, err
}
res, err := c.transactionClient.BroadcastTransaction(ctx,
res, err := c.transactionClient.BroadcastTransaction(c.ctx,
&pactus.BroadcastTransactionRequest{SignedRawTransaction: hex.EncodeToString(data)})
if err != nil {
return hash.UndefHash, err
Expand All @@ -151,10 +141,7 @@ func (c *grpcClient) getTransaction(id tx.ID) (*pactus.GetTransactionResponse, e
return nil, err
}

ctx, cancel := context.WithTimeout(c.ctx, time.Second*5)
defer cancel()

res, err := c.transactionClient.GetTransaction(ctx,
res, err := c.transactionClient.GetTransaction(c.ctx,
&pactus.GetTransactionRequest{
Id: id.String(),
Verbosity: pactus.TransactionVerbosity_TRANSACTION_INFO,
Expand All @@ -171,10 +158,7 @@ func (c *grpcClient) getFee(amt amount.Amount, payloadType payload.Type) (amount
return 0, err
}

ctx, cancel := context.WithTimeout(c.ctx, time.Second*5)
defer cancel()

res, err := c.transactionClient.CalculateFee(ctx,
res, err := c.transactionClient.CalculateFee(c.ctx,
&pactus.CalculateFeeRequest{
Amount: amt.ToNanoPAC(),
PayloadType: pactus.PayloadType(payloadType),
Expand Down
2 changes: 1 addition & 1 deletion www/grpc/wallet.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func (s *walletServer) UnloadWallet(_ context.Context,
func (s *walletServer) GetTotalBalance(_ context.Context,
req *pactus.GetTotalBalanceRequest,
) (*pactus.GetTotalBalanceResponse, error) {
balance, err := s.walletManager.TotalBalance(req.WalletName) //nolint
balance, err := s.walletManager.TotalBalance(req.WalletName)
if err != nil {
return nil, err
}
Expand Down

0 comments on commit c0dc374

Please sign in to comment.