status-go/protocol/requests/set_community_shard.go

31 lines
747 B
Go
Raw Normal View History

package requests
import (
"errors"
"github.com/status-im/status-go/eth-node/types"
2023-11-15 15:58:15 +00:00
"github.com/status-im/status-go/protocol/common/shard"
)
type SetCommunityShard struct {
CommunityID types.HexBytes `json:"communityId"`
2023-11-15 15:58:15 +00:00
Shard *shard.Shard `json:"shard,omitempty"`
PrivateKey *types.HexBytes `json:"privateKey,omitempty"`
}
func (s *SetCommunityShard) Validate() error {
if s == nil {
return errors.New("invalid request")
}
if s.Shard != nil {
// TODO: for now only MainStatusShard(16) is accepted
2023-11-15 15:58:15 +00:00
if s.Shard.Cluster != shard.MainStatusShardCluster {
return errors.New("invalid shard cluster")
}
if s.Shard.Index > 1023 {
return errors.New("invalid shard index. Only 0-1023 is allowed")
}
}
return nil
}