forked from TrueCloudLab/frostfs-node
[#2075] morph/client: Ignore error if a transaction already exists
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
This commit is contained in:
parent
b9a24e99dc
commit
02049ca5b2
2 changed files with 14 additions and 1 deletions
|
@ -35,6 +35,7 @@ Changelog for NeoFS Node
|
||||||
- Concurrent mode changes in the metabase and blobstor (#2057)
|
- Concurrent mode changes in the metabase and blobstor (#2057)
|
||||||
- Panic in IR when performing HEAD requests (#2069)
|
- Panic in IR when performing HEAD requests (#2069)
|
||||||
- Write-cache flush duplication (#2074)
|
- Write-cache flush duplication (#2074)
|
||||||
|
- Ignore error if a transaction already exists in a morph client (#2075)
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
### Updated
|
### Updated
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"github.com/nspcc-dev/neo-go/pkg/crypto/hash"
|
"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/crypto/keys"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/encoding/fixedn"
|
"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"
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||||
sc "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"
|
"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)),
|
big.NewInt(int64(amount)),
|
||||||
[]interface{}{c.acc.PrivateKey().GetScriptHash(), till})
|
[]interface{}{c.acc.PrivateKey().GetScriptHash(), till})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if !errors.Is(err, neorpc.ErrAlreadyExists) {
|
||||||
return util.Uint256{}, fmt.Errorf("can't make notary deposit: %w", err)
|
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",
|
c.logger.Debug("notary deposit invoke",
|
||||||
zap.Int64("amount", int64(amount)),
|
zap.Int64("amount", int64(amount)),
|
||||||
zap.Int64("expire_at", till),
|
zap.Int64("expire_at", till),
|
||||||
|
|
Loading…
Reference in a new issue