diff --git a/cmd/neofs-cli/modules/container.go b/cmd/neofs-cli/modules/container.go index 188ecffa3c..b86e27e94d 100644 --- a/cmd/neofs-cli/modules/container.go +++ b/cmd/neofs-cli/modules/container.go @@ -138,7 +138,7 @@ It will be stored in sidechain when inner ring will accepts it.`, cnr.SetPlacementPolicy(placementPolicy) cnr.SetBasicACL(basicACL) cnr.SetAttributes(attributes) - cnr.SetNonce(nonce[:]) + cnr.SetNonceUUID(nonce) id, err := cli.PutContainer(ctx, cnr, client.WithTTL(getTTL())) if err != nil { @@ -674,9 +674,11 @@ func prettyPrintContainer(cnr *container.Container, jsonEncoding bool) { fmt.Printf("attribute: %s=%s\n", attribute.Key(), attribute.Value()) } - nonce, err := uuid.FromBytes(cnr.Nonce()) + nonce, err := cnr.NonceUUID() if err == nil { fmt.Println("nonce:", nonce) + } else { + fmt.Println("invalid nonce:", err) } fmt.Println("placement policy:") diff --git a/go.mod b/go.mod index 62b586c356..231f163d81 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/multiformats/go-multihash v0.0.13 // indirect github.com/nspcc-dev/hrw v1.0.9 github.com/nspcc-dev/neo-go v0.91.1-pre.0.20201030072836-71216865717b - github.com/nspcc-dev/neofs-api-go v1.21.1 + github.com/nspcc-dev/neofs-api-go v1.21.2-0.20201224095453-c4f7be19ea14 github.com/nspcc-dev/neofs-crypto v0.3.0 github.com/nspcc-dev/tzhash v1.4.0 github.com/panjf2000/ants/v2 v2.3.0 diff --git a/go.sum b/go.sum index 4bd103f2a9..9c267e879a 100644 Binary files a/go.sum and b/go.sum differ diff --git a/pkg/core/container/fmt.go b/pkg/core/container/fmt.go index 7540493318..03de5e43af 100644 --- a/pkg/core/container/fmt.go +++ b/pkg/core/container/fmt.go @@ -1,7 +1,6 @@ package container import ( - "github.com/google/uuid" "github.com/nspcc-dev/neofs-api-go/pkg" "github.com/nspcc-dev/neofs-api-go/pkg/container" "github.com/nspcc-dev/neofs-api-go/pkg/owner" @@ -27,7 +26,7 @@ func CheckFormat(c *container.Container) error { return errors.Errorf("incorrect owner identifier: expected length %d != %d", owner.NEO3WalletSize, ln) } - if _, err := uuid.FromBytes(c.Nonce()); err != nil { + if _, err := c.NonceUUID(); err != nil { return errors.Wrap(err, "incorrect nonce") } diff --git a/pkg/core/container/fmt_test.go b/pkg/core/container/fmt_test.go index 61e568f9e0..34581182ab 100644 --- a/pkg/core/container/fmt_test.go +++ b/pkg/core/container/fmt_test.go @@ -31,16 +31,14 @@ func TestCheckFormat(t *testing.T) { c.SetOwnerID(owner.NewIDFromNeo3Wallet(wallet)) - c.SetNonce(nil) + // set incorrect nonce + cV2 := c.ToV2() + cV2.SetNonce([]byte{1, 2, 3}) + c = container.NewContainerFromV2(cV2) require.Error(t, CheckFormat(c)) - uid, err := uuid.NewRandom() - require.NoError(t, err) - - nonce, _ := uid.MarshalBinary() - - c.SetNonce(nonce) + c.SetNonceUUID(uuid.New()) require.NoError(t, CheckFormat(c)) } diff --git a/pkg/services/container/morph/executor.go b/pkg/services/container/morph/executor.go index 47ea3092e5..675dda8542 100644 --- a/pkg/services/container/morph/executor.go +++ b/pkg/services/container/morph/executor.go @@ -8,7 +8,6 @@ import ( "github.com/nspcc-dev/neofs-api-go/pkg/owner" "github.com/nspcc-dev/neofs-api-go/v2/container" "github.com/nspcc-dev/neofs-api-go/v2/refs" - containerCore "github.com/nspcc-dev/neofs-node/pkg/core/container" containerMorph "github.com/nspcc-dev/neofs-node/pkg/morph/client/container" "github.com/nspcc-dev/neofs-node/pkg/morph/client/container/wrapper" containerSvc "github.com/nspcc-dev/neofs-node/pkg/services/container" @@ -32,13 +31,13 @@ func NewExecutor(client *containerMorph.Client) containerSvc.ServiceExecutor { } func (s *morphExecutor) Put(ctx context.Context, body *container.PutRequestBody) (*container.PutResponseBody, error) { - cnr := containerSDK.NewContainerFromV2(body.GetContainer()) - sig := body.GetSignature() - - if err := containerCore.CheckFormat(cnr); err != nil { - return nil, errors.Wrapf(err, "incorrect container format") + cnr, err := containerSDK.NewVerifiedFromV2(body.GetContainer()) + if err != nil { + return nil, errors.Wrap(err, "invalid format of the container structure") } + sig := body.GetSignature() + cid, err := s.wrapper.Put(cnr, sig.GetKey(), sig.GetSign()) if err != nil { return nil, err