validators

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2018 License: Apache-2.0 Imports: 11 Imported by: 16

Documentation

Overview

Package validators is a generated protocol buffer package.

It is generated from these files:

x/validators/codec.proto

It has these top-level messages:

Validator
PubKey
SetValidators
Accounts

Index

Constants

View Source
const (
	CodeEmptyDiff uint32 = 40
	CodeWrongType        = 41
)

ABCI Response Codes x/update_validators reserves 40 ~ 49.

View Source
const (
	// BucketName contains address that are allowed to update validators
	BucketName = "uvalid"
	// Key is used to store account data
	Key = "accounts"
)

Variables

View Source
var (
	ErrInvalidLengthCodec = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowCodec   = fmt.Errorf("proto: integer overflow")
)

Functions

func AccountsWith

func AccountsWith(acct WeaveAccounts) orm.Object

func ErrEmptyDiff

func ErrEmptyDiff() error

func ErrWrongType

func ErrWrongType(t interface{}) error

func HasPermission

func HasPermission(accts WeaveAccounts, checkAddress CheckAddress) bool

func NewAccounts

func NewAccounts() orm.Object

NewWallet creates an empty wallet with this address serves as an object for the bucket

func NewBucket

func NewBucket() orm.Bucket

func RegisterQuery

func RegisterQuery(qr weave.QueryRouter)

RegisterQuery will register this bucket as "/validators"

func RegisterRoutes

func RegisterRoutes(r weave.Registry, auth x.Authenticator,
	control Controller)

RegisterRoutes will instantiate and register all handlers in this package

Types

type Accounts

type Accounts struct {
	Addresses [][]byte `protobuf:"bytes,1,rep,name=addresses" json:"addresses,omitempty"`
}

Accounts is a list of accounts allowed to update validators

func AsAccounts

func AsAccounts(a WeaveAccounts) *Accounts

func GetAccounts

func GetAccounts(bucket orm.Bucket, kv weave.KVStore) (*Accounts, error)

func (*Accounts) Copy

func (m *Accounts) Copy() orm.CloneableData

Copy makes new accounts object with the same addresses

func (*Accounts) Descriptor

func (*Accounts) Descriptor() ([]byte, []int)

func (*Accounts) GetAddresses

func (m *Accounts) GetAddresses() [][]byte

func (*Accounts) Marshal

func (m *Accounts) Marshal() (dAtA []byte, err error)

func (*Accounts) MarshalTo

func (m *Accounts) MarshalTo(dAtA []byte) (int, error)

func (*Accounts) ProtoMessage

func (*Accounts) ProtoMessage()

func (*Accounts) Reset

func (m *Accounts) Reset()

func (*Accounts) Size

func (m *Accounts) Size() (n int)

func (*Accounts) String

func (m *Accounts) String() string

func (*Accounts) Unmarshal

func (m *Accounts) Unmarshal(dAtA []byte) error

func (*Accounts) Validate

func (m *Accounts) Validate() error

type AuthCheckAddress

type AuthCheckAddress = func(auth x.Authenticator, ctx weave.Context) CheckAddress

type BaseController

type BaseController struct {
	// contains filtered or unexported fields
}

BaseController is a simple implementation of controller wallet must return something that supports AsSet

func NewController

func NewController(bucket orm.Bucket) BaseController

NewController returns a basic controller implementation

func (BaseController) CanUpdateValidators

func (c BaseController) CanUpdateValidators(store weave.KVStore, checkAddress CheckAddress, diff []abci.Validator) ([]abci.Validator, error)

type CheckAddress

type CheckAddress func(address weave.Address) bool

type Controller

type Controller interface {
	CanUpdateValidators(store weave.KVStore, checkAddress CheckAddress, diff []abci.Validator) ([]abci.Validator, error)
}

Controller is the functionality needed by cash.Handler and cash.Decorator. BaseController should work plenty fine, but you can add other logic if so desired

type Initializer

type Initializer struct{}

Initializer fulfils the InitStater interface to load data from the genesis file

func (Initializer) FromGenesis

func (Initializer) FromGenesis(opts weave.Options, kv weave.KVStore) error

FromGenesis will parse initial account info from genesis and save it to the database

type PubKey

type PubKey struct {
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
}

func (PubKey) AsABCI

func (m PubKey) AsABCI() abci.PubKey

func (*PubKey) Descriptor

func (*PubKey) Descriptor() ([]byte, []int)

func (*PubKey) GetData

func (m *PubKey) GetData() []byte

func (*PubKey) GetType

func (m *PubKey) GetType() string

func (*PubKey) Marshal

func (m *PubKey) Marshal() (dAtA []byte, err error)

func (*PubKey) MarshalTo

func (m *PubKey) MarshalTo(dAtA []byte) (int, error)

func (*PubKey) ProtoMessage

func (*PubKey) ProtoMessage()

func (*PubKey) Reset

func (m *PubKey) Reset()

func (*PubKey) Size

func (m *PubKey) Size() (n int)

func (*PubKey) String

func (m *PubKey) String() string

func (*PubKey) Unmarshal

func (m *PubKey) Unmarshal(dAtA []byte) error

type SetValidators

type SetValidators struct {
	Validators []*Validator `protobuf:"bytes,1,rep,name=validators" json:"validators,omitempty"`
}

This message is designed to update validator power

func (*SetValidators) AsABCI

func (m *SetValidators) AsABCI() []abci.Validator

func (*SetValidators) Descriptor

func (*SetValidators) Descriptor() ([]byte, []int)

func (*SetValidators) GetValidators

func (m *SetValidators) GetValidators() []*Validator

func (*SetValidators) Marshal

func (m *SetValidators) Marshal() (dAtA []byte, err error)

func (*SetValidators) MarshalTo

func (m *SetValidators) MarshalTo(dAtA []byte) (int, error)

func (*SetValidators) Path

func (*SetValidators) Path() string

Path returns the routing path for this message

func (*SetValidators) ProtoMessage

func (*SetValidators) ProtoMessage()

func (*SetValidators) Reset

func (m *SetValidators) Reset()

func (*SetValidators) Size

func (m *SetValidators) Size() (n int)

func (*SetValidators) String

func (m *SetValidators) String() string

func (*SetValidators) Unmarshal

func (m *SetValidators) Unmarshal(dAtA []byte) error

type UpdateHandler

type UpdateHandler struct {
	// contains filtered or unexported fields
}

UpdateHandler will handle sending coins

func NewUpdateHandler

func NewUpdateHandler(auth x.Authenticator, control Controller, checkAddr AuthCheckAddress) UpdateHandler

NewUpdateHandler creates a handler for SendMsg

func (UpdateHandler) Check

func (h UpdateHandler) Check(ctx weave.Context, store weave.KVStore,
	tx weave.Tx) (weave.CheckResult, error)

Check verifies all the preconditions

func (UpdateHandler) Deliver

func (h UpdateHandler) Deliver(ctx weave.Context, store weave.KVStore,
	tx weave.Tx) (weave.DeliverResult, error)

Deliver provides the diff given everything is okay with permissions and such Check did the same job already, so we can assume stuff goes okay

type Validator

type Validator struct {
	Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	PubKey  PubKey `protobuf:"bytes,2,opt,name=pub_key,json=pubKey" json:"pub_key"`
	Power   int64  `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"`
}

Validator

func (Validator) AsABCI

func (m Validator) AsABCI() abci.Validator

func (*Validator) Descriptor

func (*Validator) Descriptor() ([]byte, []int)

func (*Validator) GetAddress

func (m *Validator) GetAddress() []byte

func (*Validator) GetPower

func (m *Validator) GetPower() int64

func (*Validator) GetPubKey

func (m *Validator) GetPubKey() PubKey

func (*Validator) Marshal

func (m *Validator) Marshal() (dAtA []byte, err error)

func (*Validator) MarshalTo

func (m *Validator) MarshalTo(dAtA []byte) (int, error)

func (*Validator) ProtoMessage

func (*Validator) ProtoMessage()

func (*Validator) Reset

func (m *Validator) Reset()

func (*Validator) Size

func (m *Validator) Size() (n int)

func (*Validator) String

func (m *Validator) String() string

func (*Validator) Unmarshal

func (m *Validator) Unmarshal(dAtA []byte) error

type WeaveAccounts

type WeaveAccounts struct {
	Addresses []weave.Address `json:"addresses"`
}

WeaveAccounts is used to parse the json from genesis file use weave.Address, so address in hex, not base64

func AsWeaveAccounts

func AsWeaveAccounts(a *Accounts) WeaveAccounts

func (WeaveAccounts) Validate

func (wa WeaveAccounts) Validate() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL