42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
|
package subnet
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
|
||
|
morphsubnet "github.com/nspcc-dev/neofs-node/pkg/morph/client/subnet"
|
||
|
)
|
||
|
|
||
|
// Validator is an utility that verifies node subnet
|
||
|
// allowance.
|
||
|
//
|
||
|
// For correct operation, Validator must be created
|
||
|
// using the constructor (New). After successful creation,
|
||
|
// the Validator is immediately ready to work through API.
|
||
|
type Validator struct {
|
||
|
subnetClient *morphsubnet.Client
|
||
|
}
|
||
|
|
||
|
// Prm groups the required parameters of the Validator's constructor.
|
||
|
//
|
||
|
// All values must comply with the requirements imposed on them.
|
||
|
// Passing incorrect parameter values will result in constructor
|
||
|
// failure (error or panic depending on the implementation).
|
||
|
type Prm struct {
|
||
|
SubnetClient *morphsubnet.Client
|
||
|
}
|
||
|
|
||
|
// New creates a new instance of the Validator.
|
||
|
//
|
||
|
// The created Validator does not require additional
|
||
|
// initialization and is completely ready for work.
|
||
|
func New(prm Prm) (*Validator, error) {
|
||
|
switch {
|
||
|
case prm.SubnetClient == nil:
|
||
|
return nil, errors.New("ir/nodeValidator: subnet client is not set")
|
||
|
}
|
||
|
|
||
|
return &Validator{
|
||
|
subnetClient: prm.SubnetClient,
|
||
|
}, nil
|
||
|
}
|