package morph import ( "fmt" commonCmd "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/internal/common" "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/util" "github.com/spf13/cobra" "github.com/spf13/viper" ) func getFrostfsIDAdmin(v *viper.Viper) (util.Uint160, bool, error) { admin := v.GetString(frostfsIDAdminConfigKey) if admin == "" { return util.Uint160{}, false, nil } h, err := address.StringToUint160(admin) if err == nil { return h, true, nil } h, err = util.Uint160DecodeStringLE(admin) if err == nil { return h, true, nil } pk, err := keys.NewPublicKeyFromString(admin) if err == nil { return pk.GetScriptHash(), true, nil } return util.Uint160{}, true, fmt.Errorf("frostfsid: admin is invalid: '%s'", admin) } func getFrostfsIDSubjectKey(cmd *cobra.Command) *keys.PublicKey { subjKeyHex, _ := cmd.Flags().GetString(subjectKeyFlag) subjKey, err := keys.NewPublicKeyFromString(subjKeyHex) commonCmd.ExitOnErr(cmd, "invalid subject key: %w", err) return subjKey } //func decodeFrostfsIDNamespaces(resStack []stackitem.Item) ([]string, error) { // var res []string // // if len(resStack) == 0 { // return res, nil // } // // if len(resStack) > 0 { // nodes, err := decodeNodeList(resStack[0]) // if err != nil { // return nil, err // } // // nm.SetNodes(nodes) // } // //}