From 761e82fecd2ec8ac89b1318a7bbe7b85628a12e6 Mon Sep 17 00:00:00 2001
From: Pavel Karpy <carpawell@nspcc.ru>
Date: Tue, 22 Nov 2022 20:21:10 +0300
Subject: [PATCH] [#2079] cli: Do not panic in `object hash`

Sign RPC requests with the provided key.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
---
 CHANGELOG.md                         | 1 +
 cmd/neofs-cli/modules/object/hash.go | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 90799cb01..f6ef4566a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -42,6 +42,7 @@ Changelog for NeoFS Node
 - Ignore error if a transaction already exists in a morph client (#2075)
 - ObjectID signature output in the CLI (#2104)
 - Pack arguments of `setPrice` invocation during contract update (#2078)
+- `neofs-cli object hash` panic (#2079)
 
 ### Removed
 - `-g` option from `neofs-cli control ...` and `neofs-cli container create` commands (#2089)
diff --git a/cmd/neofs-cli/modules/object/hash.go b/cmd/neofs-cli/modules/object/hash.go
index bcf9a6239..2430443c7 100644
--- a/cmd/neofs-cli/modules/object/hash.go
+++ b/cmd/neofs-cli/modules/object/hash.go
@@ -64,11 +64,13 @@ func getObjectHash(cmd *cobra.Command, _ []string) {
 	common.ExitOnErr(cmd, "could not decode salt: %w", err)
 
 	pk := key.GetOrGenerate(cmd)
+	cli := internalclient.GetSDKClientByFlag(cmd, pk, commonflags.RPC)
 
 	tz := typ == hashTz
 	fullHash := len(ranges) == 0
 	if fullHash {
 		var headPrm internalclient.HeadObjectPrm
+		headPrm.SetClient(cli)
 		Prepare(cmd, &headPrm)
 		headPrm.SetAddress(objAddr)
 
@@ -94,8 +96,6 @@ func getObjectHash(cmd *cobra.Command, _ []string) {
 		return
 	}
 
-	cli := internalclient.GetSDKClientByFlag(cmd, pk, commonflags.RPC)
-
 	var hashPrm internalclient.HashPayloadRangesPrm
 	hashPrm.SetClient(cli)
 	Prepare(cmd, &hashPrm)