From 4d7bc49a23ab9416603390434a6c876df7ed6aae Mon Sep 17 00:00:00 2001 From: Ilja von Hoessle Date: Tue, 16 Apr 2024 08:37:58 +0200 Subject: [PATCH] refactor(client): Remove shared mutex from client package, in favor of a mutex in the Client struct. --- client/client.go | 4 +++- client/transaction.go | 7 ++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/client/client.go b/client/client.go index a160855..06e7a2b 100644 --- a/client/client.go +++ b/client/client.go @@ -21,9 +21,9 @@ import ( "github.com/stellar/go/keypair" "github.com/stellar/go/xdr" "log" - pchannel "perun.network/go-perun/channel" pwallet "perun.network/go-perun/wallet" + "sync" "perun.network/perun-stellar-backend/event" "perun.network/perun-stellar-backend/wire" @@ -36,6 +36,7 @@ var ErrCouldNotDecodeTxMeta = errors.New("could not decode tx output") type Client struct { hzClient *horizonclient.Client keyHolder keyHolder + mtx sync.Mutex } type keyHolder struct { kp *keypair.Full @@ -45,6 +46,7 @@ func New(kp *keypair.Full) *Client { return &Client{ hzClient: NewHorizonClient(), keyHolder: newKeyHolder(kp), + mtx: sync.Mutex{}, } } diff --git a/client/transaction.go b/client/transaction.go index 2069501..eb1e27e 100644 --- a/client/transaction.go +++ b/client/transaction.go @@ -10,12 +10,9 @@ import ( "github.com/stellar/go/txnbuild" "github.com/stellar/go/xdr" "strconv" - "sync" "time" ) -var sharedMtx sync.Mutex - const sorobanRPCPort = 8000 func (s *Client) CreateSignedTxFromParams(txParams txnbuild.TransactionParams) (*txnbuild.Transaction, error) { @@ -50,8 +47,8 @@ func CreateSignedTransactionWithParams(signers []*keypair.Full, txParams txnbuil } func (c *Client) InvokeAndProcessHostFunction(fname string, callTxArgs xdr.ScVec, contractAddr xdr.ScAddress) (xdr.TransactionMeta, error) { - sharedMtx.Lock() - defer sharedMtx.Unlock() + c.mtx.Lock() + defer c.mtx.Unlock() fnameXdr := xdr.ScSymbol(fname) hzAcc, err := c.GetHorizonAccount() if err != nil {