forked from TrueCloudLab/frostfs-node
[#2063] morph/client: Support new hash format in morph nns client
Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
This commit is contained in:
parent
584f465eee
commit
b9a24e99dc
3 changed files with 18 additions and 1 deletions
|
@ -8,6 +8,7 @@ Changelog for NeoFS Node
|
||||||
- Shard can now change mode when encountering background disk errors (#2035)
|
- Shard can now change mode when encountering background disk errors (#2035)
|
||||||
- Background workers and object service now use separate client caches (#2048)
|
- Background workers and object service now use separate client caches (#2048)
|
||||||
- `replicator.pool_size` config field to tune replicator pool size (#2049)
|
- `replicator.pool_size` config field to tune replicator pool size (#2049)
|
||||||
|
- Fix NNS hash parsing in morph client (#2063)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- `object lock` command reads CID and OID the same way other commands do (#1971)
|
- `object lock` command reads CID and OID the same way other commands do (#1971)
|
||||||
|
|
|
@ -261,6 +261,8 @@ func parseNNSResolveResult(res stackitem.Item) (util.Uint160, error) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We support several formats for hash encoding, this logic should be maintained in sync
|
||||||
|
// with nnsResolve from pkg/morph/client/nns.go
|
||||||
h, err := util.Uint160DecodeStringLE(string(bs))
|
h, err := util.Uint160DecodeStringLE(string(bs))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return h, nil
|
return h, nil
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
||||||
"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/address"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/rpcclient"
|
"github.com/nspcc-dev/neo-go/pkg/rpcclient"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
|
@ -149,7 +150,20 @@ func nnsResolve(c *rpcclient.WSClient, nnsHash util.Uint160, domain string) (uti
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return util.Uint160{}, fmt.Errorf("malformed response: %w", err)
|
return util.Uint160{}, fmt.Errorf("malformed response: %w", err)
|
||||||
}
|
}
|
||||||
return util.Uint160DecodeStringLE(string(bs))
|
|
||||||
|
// We support several formats for hash encoding, this logic should be maintained in sync
|
||||||
|
// with parseNNSResolveResult from cmd/neofs-adm/internal/modules/morph/initialize_nns.go
|
||||||
|
h, err := util.Uint160DecodeStringLE(string(bs))
|
||||||
|
if err == nil {
|
||||||
|
return h, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
h, err = address.StringToUint160(string(bs))
|
||||||
|
if err == nil {
|
||||||
|
return h, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return util.Uint160{}, errors.New("no valid hashes are found")
|
||||||
}
|
}
|
||||||
|
|
||||||
func exists(c *rpcclient.WSClient, nnsHash util.Uint160, domain string) (bool, error) {
|
func exists(c *rpcclient.WSClient, nnsHash util.Uint160, domain string) (bool, error) {
|
||||||
|
|
Loading…
Reference in a new issue