forked from TrueCloudLab/frostfs-node
[#2075] morph/client: Ignore error if a transaction already exists
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>fyrchik/simplify-services
parent
71853348b9
commit
816c74d185
|
@ -37,6 +37,7 @@ Changelog for NeoFS Node
|
|||
- Concurrent mode changes in the metabase and blobstor (#2057)
|
||||
- Panic in IR when performing HEAD requests (#2069)
|
||||
- Write-cache flush duplication (#2074)
|
||||
- Ignore error if a transaction already exists in a morph client (#2075)
|
||||
|
||||
### Removed
|
||||
### Updated
|
||||
|
|
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/nspcc-dev/neo-go/pkg/crypto/hash"
|
||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||
"github.com/nspcc-dev/neo-go/pkg/encoding/fixedn"
|
||||
"github.com/nspcc-dev/neo-go/pkg/neorpc"
|
||||
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||
sc "github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||
|
@ -175,9 +176,20 @@ func (c *Client) DepositNotary(amount fixedn.Fixed8, delta uint32) (res util.Uin
|
|||
big.NewInt(int64(amount)),
|
||||
[]interface{}{c.acc.PrivateKey().GetScriptHash(), till})
|
||||
if err != nil {
|
||||
if !errors.Is(err, neorpc.ErrAlreadyExists) {
|
||||
return util.Uint256{}, fmt.Errorf("can't make notary deposit: %w", err)
|
||||
}
|
||||
|
||||
// Transaction is already in mempool waiting to be processed.
|
||||
// This is an expected situation if we restart the service.
|
||||
c.logger.Debug("notary deposit has already been made",
|
||||
zap.Int64("amount", int64(amount)),
|
||||
zap.Int64("expire_at", till),
|
||||
zap.Uint32("vub", vub),
|
||||
zap.Error(err))
|
||||
return util.Uint256{}, nil
|
||||
}
|
||||
|
||||
c.logger.Debug("notary deposit invoke",
|
||||
zap.Int64("amount", int64(amount)),
|
||||
zap.Int64("expire_at", till),
|
||||
|
|
Loading…
Reference in New Issue