account

package
v0.19.0 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2018 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GlobalPermissionsAddress = crypto.Address(binary.Zero160)

Functions

This section is empty.

Types

type Account

type Account interface {
	Addressable
	// The value held by this account in terms of the chain-native token
	Balance() uint64
	// The EVM byte code held by this account (or equivalently, this contract)
	Code() Bytecode
	// The sequence number of this account, incremented each time a mutation of the
	// Account is persisted to the blockchain state
	Sequence() uint64
	// The hash of all the values in this accounts storage (typically the root of some subtree
	// in the merkle tree of global storage state)
	StorageRoot() []byte
	// The permission flags and roles for this account
	Permissions() ptypes.AccountPermissions
	// Obtain a deterministic serialisation of this account
	// (i.e. update order and Go runtime independent)
	Encode() ([]byte, error)
	// String representation of the account
	String() string
}

The default immutable interface to an account

func AsAccount added in v0.18.0

func AsAccount(account Account) Account

Returns an immutable account by copying from account

func Decode added in v0.18.0

func Decode(accBytes []byte) (Account, error)

type Addressable added in v0.18.0

type Addressable interface {
	// Get the 20 byte EVM address of this account
	Address() crypto.Address
	// Public key from which the Address is derived
	PublicKey() crypto.PublicKey
}

type AddressableSigner added in v0.18.0

type AddressableSigner interface {
	Addressable
	crypto.Signer
}

func SigningAccounts added in v0.18.0

func SigningAccounts(concretePrivateAccounts []*ConcretePrivateAccount) []AddressableSigner

Convert slice of ConcretePrivateAccounts to slice of SigningAccounts

type Bytecode added in v0.18.0

type Bytecode []byte

func BytecodeFromHex added in v0.18.0

func BytecodeFromHex(hexString string) (Bytecode, error)

func NewBytecode added in v0.18.0

func NewBytecode(bytelikes ...interface{}) (Bytecode, error)

Builds new bytecode using the Splice helper to map byte-like and byte-slice-like types to a flat bytecode slice

func (Bytecode) Bytes added in v0.18.0

func (bc Bytecode) Bytes() []byte

func (Bytecode) MarshalJSON added in v0.18.0

func (bc Bytecode) MarshalJSON() ([]byte, error)

func (Bytecode) MarshalText added in v0.18.0

func (bc Bytecode) MarshalText() ([]byte, error)

func (Bytecode) String added in v0.18.0

func (bc Bytecode) String() string

func (Bytecode) Tokens added in v0.18.0

func (bc Bytecode) Tokens() ([]string, error)

Tokenises the bytecode into opcodes and values

func (*Bytecode) UnmarshalJSON added in v0.18.0

func (bc *Bytecode) UnmarshalJSON(data []byte) error

func (*Bytecode) UnmarshalText added in v0.18.0

func (bc *Bytecode) UnmarshalText(text []byte) error

type ConcreteAccount added in v0.18.0

type ConcreteAccount struct {
	Address     crypto.Address
	PublicKey   crypto.PublicKey
	Sequence    uint64
	Balance     uint64
	Code        Bytecode
	StorageRoot []byte
	Permissions ptypes.AccountPermissions
}

ConcreteAccount is the canonical serialisation and bash-in-place object for an Account

func AsConcreteAccount added in v0.18.0

func AsConcreteAccount(account Account) *ConcreteAccount

Returns a mutable, serialisable ConcreteAccount by copying from account

func DecodeConcrete added in v0.18.0

func DecodeConcrete(accBytes []byte) (*ConcreteAccount, error)

func NewConcreteAccount added in v0.18.0

func NewConcreteAccount(pubKey crypto.PublicKey) ConcreteAccount

func NewConcreteAccountFromSecret added in v0.18.0

func NewConcreteAccountFromSecret(secret string) ConcreteAccount

func (ConcreteAccount) Account added in v0.18.0

func (acc ConcreteAccount) Account() Account

Return as immutable Account

func (*ConcreteAccount) Copy added in v0.18.0

func (acc *ConcreteAccount) Copy() *ConcreteAccount

func (*ConcreteAccount) Encode added in v0.18.0

func (acc *ConcreteAccount) Encode() ([]byte, error)

func (ConcreteAccount) MutableAccount added in v0.18.0

func (acc ConcreteAccount) MutableAccount() MutableAccount

Return as mutable MutableAccount

func (*ConcreteAccount) String added in v0.18.0

func (acc *ConcreteAccount) String() string

type ConcretePrivateAccount added in v0.18.0

type ConcretePrivateAccount struct {
	Address    crypto.Address
	PublicKey  crypto.PublicKey
	PrivateKey crypto.PrivateKey
}

func AsConcretePrivateAccount added in v0.18.0

func AsConcretePrivateAccount(privateAccount PrivateAccount) *ConcretePrivateAccount

func (ConcretePrivateAccount) PrivateAccount added in v0.18.0

func (pa ConcretePrivateAccount) PrivateAccount() PrivateAccount

func (ConcretePrivateAccount) Sign added in v0.18.0

func (pa ConcretePrivateAccount) Sign(msg []byte) (crypto.Signature, error)

func (*ConcretePrivateAccount) String added in v0.18.0

func (pa *ConcretePrivateAccount) String() string

type ConcreteValidator added in v0.18.0

type ConcreteValidator struct {
	Address   crypto.Address
	PublicKey crypto.PublicKey
	Power     uint64
}

Neither abci_types or tm_types has quite the representation we want

func AsConcreteValidator added in v0.18.0

func AsConcreteValidator(validator Validator) *ConcreteValidator

func (*ConcreteValidator) Copy added in v0.18.0

func (*ConcreteValidator) String added in v0.18.0

func (cv *ConcreteValidator) String() string

func (ConcreteValidator) Validator added in v0.18.0

func (cv ConcreteValidator) Validator() Validator

type MutableAccount added in v0.18.0

type MutableAccount interface {
	Account
	// Set public key (needed for lazy initialisation), should also set the dependent address
	SetPublicKey(pubKey crypto.PublicKey) MutableAccount
	// Subtract amount from account balance (will panic if amount is greater than balance)
	SubtractFromBalance(amount uint64) (MutableAccount, error)
	// Add amount to balance (will panic if amount plus balance is a uint64 overflow)
	AddToBalance(amount uint64) (MutableAccount, error)
	// Set EVM byte code associated with account
	SetCode(code []byte) MutableAccount
	// Increment Sequence number by 1 (capturing the current Sequence number as the index for any pending mutations)
	IncSequence() MutableAccount
	// Set the storage root hash
	SetStorageRoot(storageRoot []byte) MutableAccount
	// Set account permissions
	SetPermissions(permissions ptypes.AccountPermissions) MutableAccount
	// Get a pointer this account's AccountPermissions in order to mutate them
	MutablePermissions() *ptypes.AccountPermissions
	// Create a complete copy of this MutableAccount that is itself mutable
	Copy() MutableAccount
}

func AsMutableAccount added in v0.18.0

func AsMutableAccount(account Account) MutableAccount

Returns a MutableAccount by copying from account

func FromAddressable added in v0.18.0

func FromAddressable(addressable Addressable) MutableAccount

Creates an otherwise zeroed Account from an Addressable and returns it as MutableAccount

type PrivateAccount added in v0.18.0

type PrivateAccount interface {
	AddressableSigner
	PrivateKey() crypto.PrivateKey
}

func GeneratePrivateAccount added in v0.18.0

func GeneratePrivateAccount() (PrivateAccount, error)

Generates a new account with private key.

func GeneratePrivateAccountFromPrivateKeyBytes added in v0.18.0

func GeneratePrivateAccountFromPrivateKeyBytes(privKeyBytes []byte) (PrivateAccount, error)

func GeneratePrivateAccountFromSecret added in v0.18.0

func GeneratePrivateAccountFromSecret(secret string) PrivateAccount

Generates a new account with private key from SHA256 hash of a secret

type Validator added in v0.18.0

type Validator interface {
	Addressable
	// The validator's voting power
	Power() uint64
}

func AsValidator added in v0.18.0

func AsValidator(account Account) Validator

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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