forked from TrueCloudLab/frostfs-node
Add Inner Ring code
This commit is contained in:
parent
dadfd90dcd
commit
b7b5079934
400 changed files with 11420 additions and 8690 deletions
37
pkg/morph/client/netmap/wrapper/add_peer.go
Normal file
37
pkg/morph/client/netmap/wrapper/add_peer.go
Normal file
|
@ -0,0 +1,37 @@
|
|||
package wrapper
|
||||
|
||||
import (
|
||||
"github.com/nspcc-dev/neofs-node/pkg/core/netmap"
|
||||
contract "github.com/nspcc-dev/neofs-node/pkg/morph/client/netmap"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// AddPeer registers peer in NeoFS network through
|
||||
// Netmap contract call.
|
||||
func (w *Wrapper) AddPeer(nodeInfo netmap.Info) error {
|
||||
// prepare invocation arguments
|
||||
args := contract.AddPeerArgs{}
|
||||
|
||||
info := contract.PeerInfo{}
|
||||
info.SetPublicKey(nodeInfo.PublicKey())
|
||||
info.SetAddress([]byte(nodeInfo.Address()))
|
||||
|
||||
opts := nodeInfo.Options()
|
||||
binOpts := make([][]byte, 0, len(opts))
|
||||
|
||||
for i := range opts {
|
||||
binOpts = append(binOpts, []byte(opts[i]))
|
||||
}
|
||||
|
||||
info.SetOptions(binOpts)
|
||||
|
||||
args.SetInfo(info)
|
||||
|
||||
// invoke smart contract call
|
||||
//
|
||||
// Note: errors.Wrap returns nil on nil error arg.
|
||||
return errors.Wrap(
|
||||
w.client.AddPeer(args),
|
||||
"could not invoke smart contract",
|
||||
)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue