Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Changelog for NeoFS Node
- SN tries new NEP-11 methods `tokens` and `tokensOf` of Container contract (#3701)
- SN now listens to NEP-11 `transfer` events of Container contract (#3701)
- CLI supports `CONTAINER_AWAIT_TIMEOUT` status now (#3711)
- Containers can now be locked for deletion via `__NEOFS__LOCK_UNTIL` attribute (#3708)
- SN can respond with `CONTAINER_LOCKED` status now (#3708)

### Fixed
- IR panics at graceful shutdown (#3706)
Expand All @@ -23,7 +25,7 @@ Changelog for NeoFS Node
### Removed

### Updated
- `github.com/nspcc-dev/neofs-contract` module to `v0.25.2-0.20251124180339-40ec608b4893` (#3670)
- `github.com/nspcc-dev/neofs-contract` module to `v0.25.2-0.20251205135906-a62baeafe648` (#3670, #3708)
- `github.com/nspcc-dev/neofs-sdk-go` module to `v1.0.0-rc.16.0.20251203135706-86667929fbb8` (#3711)

### Updating from v0.50.2
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ require (
github.com/nspcc-dev/locode-db v0.8.1
github.com/nspcc-dev/neo-go v0.114.0
github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240827150555-5ce597aa14ea
github.com/nspcc-dev/neofs-contract v0.25.2-0.20251124180339-40ec608b4893
github.com/nspcc-dev/neofs-contract v0.25.2-0.20251205135906-a62baeafe648
github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.16.0.20251203135706-86667929fbb8
github.com/nspcc-dev/tzhash v1.8.3
github.com/panjf2000/ants/v2 v2.11.3
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,8 @@ github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20251112080609-3c8e29c66609 h1:9j
github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20251112080609-3c8e29c66609/go.mod h1:X2spkE8hK/l08CYulOF19fpK5n3p2xO0L1GnJFIywQg=
github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240827150555-5ce597aa14ea h1:mK0EMGLvunXcFyq7fBURS/CsN4MH+4nlYiqn6pTwWAU=
github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240827150555-5ce597aa14ea/go.mod h1:YzhD4EZmC9Z/PNyd7ysC7WXgIgURc9uCG1UWDeV027Y=
github.com/nspcc-dev/neofs-contract v0.25.2-0.20251124180339-40ec608b4893 h1:sh25Y5GMLL9ixlcJdbktHkFUY3nyK9DeLY5EBaEQDwQ=
github.com/nspcc-dev/neofs-contract v0.25.2-0.20251124180339-40ec608b4893/go.mod h1:CYX51uP2pNBCK7Q0ygD1LNsoFSHbB2F5luaBrluFkUo=
github.com/nspcc-dev/neofs-contract v0.25.2-0.20251205135906-a62baeafe648 h1:+XeIIHNq/6I6RFGCNmk+DfOrhY+9l4oX0gr1KjFr9ts=
github.com/nspcc-dev/neofs-contract v0.25.2-0.20251205135906-a62baeafe648/go.mod h1:CYX51uP2pNBCK7Q0ygD1LNsoFSHbB2F5luaBrluFkUo=
github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.16.0.20251203135706-86667929fbb8 h1:oasL8SD11yOmW0a/GqMmm4/0sb86hMOYMi7HC20PIb0=
github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.16.0.20251203135706-86667929fbb8/go.mod h1:IrM1JG/klBtecZEApIf8USgLonNcarv32R1O0dj4kQI=
github.com/nspcc-dev/rfc6979 v0.2.4 h1:NBgsdCjhLpEPJZqmC9rciMZDcSY297po2smeaRjw57k=
Expand Down
1 change: 1 addition & 0 deletions pkg/innerring/processors/container/process_container.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ var allowedSystemAttributes = map[string]struct{}{
sysAttrPrefix + "NAME": {},
sysAttrPrefix + "ZONE": {},
sysAttrPrefix + "DISABLE_HOMOMORPHIC_HASHING": {},
sysAttrPrefix + "LOCK_UNTIL": {},
sysAttrChainMeta: {},
}

Expand Down
11 changes: 11 additions & 0 deletions pkg/morph/client/container/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@ package container
import (
"context"
"fmt"
"strings"

containerrpc "github.com/nspcc-dev/neofs-contract/rpc/container"
fschaincontracts "github.com/nspcc-dev/neofs-node/pkg/morph/contracts"
apistatus "github.com/nspcc-dev/neofs-sdk-go/client/status"
)

// DeletePrm groups parameters of Delete client operation.
Expand Down Expand Up @@ -42,6 +45,8 @@ func (d *DeletePrm) SetToken(token []byte) {
//
// Returns any error encountered that caused
// the removal to interrupt.
//
// Returns [apistatus.ContainerLocked] if container is locked.
func (c *Client) Delete(ctx context.Context, p DeletePrm) error {
if len(p.signature) == 0 {
return errNilArgument
Expand All @@ -56,10 +61,16 @@ func (c *Client) Delete(ctx context.Context, p DeletePrm) error {
p.cnr, p.signature, p.key, p.token,
})
if err != nil {
if e := err.Error(); strings.Contains(e, containerrpc.ErrorLocked) {
return apistatus.NewContainerLocked(e)
}
return fmt.Errorf("could not invoke method (%s): %w", deleteMethod, err)
}
return nil
}
if e := err.Error(); strings.Contains(e, containerrpc.ErrorLocked) {
return apistatus.NewContainerLocked(e)
}
return fmt.Errorf("could not invoke method (%s): %w", fschaincontracts.RemoveContainerMethod, err)
}
return nil
Expand Down
Loading