From 14a298455b1a429e4dd728a96e5c89fbb87e70ce Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 26 Sep 2023 16:07:36 +0300 Subject: [PATCH] nns: add ResolveFSContract example By @cthulhu-rider, thanks. Signed-off-by: Roman Khimov --- rpc/nns/example_test.go | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 rpc/nns/example_test.go diff --git a/rpc/nns/example_test.go b/rpc/nns/example_test.go new file mode 100644 index 00000000..a803666e --- /dev/null +++ b/rpc/nns/example_test.go @@ -0,0 +1,51 @@ +package nns_test + +import ( + "context" + "fmt" + "log" + + "github.com/nspcc-dev/neo-go/pkg/rpcclient" + "github.com/nspcc-dev/neo-go/pkg/rpcclient/invoker" + "github.com/nspcc-dev/neofs-contract/rpc/nns" +) + +// Resolve addresses of NeoFS smart contracts deployed in a particular +// NeoFS sidechain by their NNS domain names. +func ExampleContractReader_ResolveFSContract() { + const sidechainRPCEndpoint = "https://rpc1.morph.fs.neo.org:40341" + + c, err := rpcclient.New(context.Background(), sidechainRPCEndpoint, rpcclient.Options{}) + if err != nil { + log.Fatal(err) + } + + err = c.Init() + if err != nil { + log.Fatal(err) + } + + nnsAddress, err := nns.InferHash(c) + if err != nil { + log.Fatal(err) + } + + nnsContract := nns.NewReader(invoker.New(c, nil), nnsAddress) + + for _, name := range []string{ + nns.NameAudit, + nns.NameBalance, + nns.NameContainer, + nns.NameNeoFSID, + nns.NameNetmap, + nns.NameProxy, + nns.NameReputation, + } { + addr, err := nnsContract.ResolveFSContract(name) + if err != nil { + log.Fatal(err) + } + + fmt.Printf("%s: %s\n", name, addr) + } +}