burrow: github.com/hyperledger/burrow/acm Index | Files | Directories

package acm

import "github.com/hyperledger/burrow/acm"

The acm package contains code relating to accounts and account state the abbreviation probably derives from 'ACcount Management'

Index

Package Files

account.go acm.go acm.pb.go bytecode.go private_account.go

Variables

var (
    ErrInvalidLengthAcm        = fmt.Errorf("proto: negative length found during unmarshaling")
    ErrIntOverflowAcm          = fmt.Errorf("proto: integer overflow")
    ErrUnexpectedEndOfGroupAcm = fmt.Errorf("proto: unexpected end of group")
)
var GlobalPermissionsAddress = crypto.Address(binary.Zero160)

type Account Uses

type Account struct {
    Address   github_com_hyperledger_burrow_crypto.Address `protobuf:"bytes,1,opt,name=Address,proto3,customtype=github.com/hyperledger/burrow/crypto.Address" json:"Address"`
    PublicKey crypto.PublicKey                             `protobuf:"bytes,2,opt,name=PublicKey,proto3" json:"PublicKey"`
    // Sequence counts the number of transactions that have been accepted from this account
    Sequence uint64 `protobuf:"varint,3,opt,name=Sequence,proto3" json:"Sequence,omitempty"`
    // The account's current native token balance
    Balance uint64 `protobuf:"varint,4,opt,name=Balance,proto3" json:"Balance,omitempty"`
    // We expect exactly one of EVMCode, WASMCode, and NativeName to be non-empty
    // EVM bytecode
    EVMCode     Bytecode                      `protobuf:"bytes,5,opt,name=EVMCode,proto3,customtype=Bytecode" json:"EVMCode"`
    Permissions permission.AccountPermissions `protobuf:"bytes,6,opt,name=Permissions,proto3" json:"Permissions"`
    // WASM bytecode
    WASMCode Bytecode `protobuf:"bytes,7,opt,name=WASMCode,proto3,customtype=Bytecode" json:",omitempty"`
    // Fully qualified (`<contract name>.<function name>`) name of native contract this for which this account object
    // is a sentinel value. Which is to say this account object is a pointer to compiled code and does not contain
    // the contract logic in its entirety
    NativeName string `protobuf:"bytes,11,opt,name=NativeName,proto3" json:",omitempty"`
    // The sha3 hash of the code associated with the account
    CodeHash github_com_hyperledger_burrow_binary.HexBytes `protobuf:"bytes,8,opt,name=CodeHash,proto3,customtype=github.com/hyperledger/burrow/binary.HexBytes" json:"-"`
    // Pointer to the Metadata associated with this account
    ContractMeta []*ContractMeta `protobuf:"bytes,9,rep,name=ContractMeta,proto3" json:"ContractMeta,omitempty"`
    // The metadata is stored in the deployed account. When the deployed account creates new account
    // (from Solidity/EVM), they point to the original deployed account where the metadata is stored.
    // This original account is called the forebear.
    Forebear             *github_com_hyperledger_burrow_crypto.Address `protobuf:"bytes,10,opt,name=Forebear,proto3,customtype=github.com/hyperledger/burrow/crypto.Address" json:"Forebear,omitempty"`
    XXX_NoUnkeyedLiteral struct{}                                      `json:"-"`
    XXX_unrecognized     []byte                                        `json:"-"`
    XXX_sizecache        int32                                         `json:"-"`
}

func FromAddressable Uses

func FromAddressable(addressable crypto.Addressable) *Account

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

func NewAccount Uses

func NewAccount(pubKey crypto.PublicKey) *Account

func NewAccountFromSecret Uses

func NewAccountFromSecret(secret string) *Account

func (*Account) AddToBalance Uses

func (acc *Account) AddToBalance(amount uint64) error

func (*Account) Code Uses

func (acc *Account) Code() []byte

Return bytes of any code-type value that is set. EVM, WASM, or native name

func (*Account) Copy Uses

func (acc *Account) Copy() *Account

Copies all mutable parts of account

func (*Account) Descriptor Uses

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

func (*Account) Equal Uses

func (acc *Account) Equal(accOther *Account) bool

func (*Account) Get Uses

func (acc *Account) Get(key string) (interface{}, bool)

func (*Account) GetAddress Uses

func (acc *Account) GetAddress() crypto.Address

func (*Account) GetBalance Uses

func (m *Account) GetBalance() uint64

func (*Account) GetContractMeta Uses

func (m *Account) GetContractMeta() []*ContractMeta

func (*Account) GetNativeName Uses

func (m *Account) GetNativeName() string

func (*Account) GetPermissions Uses

func (m *Account) GetPermissions() permission.AccountPermissions

func (*Account) GetPublicKey Uses

func (m *Account) GetPublicKey() crypto.PublicKey

func (*Account) GetSequence Uses

func (m *Account) GetSequence() uint64

func (*Account) Marshal Uses

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

func (*Account) MarshalTo Uses

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

func (*Account) MarshalToSizedBuffer Uses

func (m *Account) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Account) ProtoMessage Uses

func (*Account) ProtoMessage()

func (*Account) Reset Uses

func (m *Account) Reset()

func (*Account) Size Uses

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

func (Account) String Uses

func (acc Account) String() string

func (*Account) SubtractFromBalance Uses

func (acc *Account) SubtractFromBalance(amount uint64) error

func (*Account) Unmarshal Uses

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

func (*Account) XXX_DiscardUnknown Uses

func (m *Account) XXX_DiscardUnknown()

func (*Account) XXX_Marshal Uses

func (m *Account) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Account) XXX_Merge Uses

func (m *Account) XXX_Merge(src proto.Message)

func (*Account) XXX_MessageName Uses

func (*Account) XXX_MessageName() string

func (*Account) XXX_Size Uses

func (m *Account) XXX_Size() int

func (*Account) XXX_Unmarshal Uses

func (m *Account) XXX_Unmarshal(b []byte) error

type AddressableSigner Uses

type AddressableSigner interface {
    crypto.Addressable
    crypto.Signer
}

func SigningAccounts Uses

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

Convert slice of ConcretePrivateAccounts to slice of SigningAccounts

type Bytecode Uses

type Bytecode []byte

func BytecodeFromHex Uses

func BytecodeFromHex(hexString string) (Bytecode, error)

func NewBytecode Uses

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 Uses

func (bc Bytecode) Bytes() []byte

func (Bytecode) Marshal Uses

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

Protobuf support

func (Bytecode) MarshalJSON Uses

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

func (Bytecode) MarshalText Uses

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

func (Bytecode) MarshalTo Uses

func (bc Bytecode) MarshalTo(data []byte) (int, error)

func (Bytecode) MustTokens Uses

func (bc Bytecode) MustTokens() []string

func (Bytecode) Size Uses

func (bc Bytecode) Size() int

func (Bytecode) String Uses

func (bc Bytecode) String() string

func (Bytecode) Tokens Uses

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

Tokenises the bytecode into opcodes and values

func (*Bytecode) Unmarshal Uses

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

func (*Bytecode) UnmarshalJSON Uses

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

func (*Bytecode) UnmarshalText Uses

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

type ConcretePrivateAccount Uses

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

func (ConcretePrivateAccount) PrivateAccount Uses

func (cpa ConcretePrivateAccount) PrivateAccount() *PrivateAccount

func (*ConcretePrivateAccount) String Uses

func (cpa *ConcretePrivateAccount) String() string

type ContractMeta Uses

type ContractMeta struct {
    CodeHash     github_com_hyperledger_burrow_binary.HexBytes `protobuf:"bytes,1,opt,name=CodeHash,proto3,customtype=github.com/hyperledger/burrow/binary.HexBytes" json:"CodeHash"`
    MetadataHash github_com_hyperledger_burrow_binary.HexBytes `protobuf:"bytes,2,opt,name=MetadataHash,proto3,customtype=github.com/hyperledger/burrow/binary.HexBytes" json:"MetadataHash"`
    // In the dump format we would like the ABI rather than its hash
    Metadata             string   `protobuf:"bytes,3,opt,name=Metadata,proto3" json:"Metadata,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*ContractMeta) Descriptor Uses

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

func (*ContractMeta) GetMetadata Uses

func (m *ContractMeta) GetMetadata() string

func (*ContractMeta) Marshal Uses

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

func (*ContractMeta) MarshalTo Uses

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

func (*ContractMeta) MarshalToSizedBuffer Uses

func (m *ContractMeta) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ContractMeta) ProtoMessage Uses

func (*ContractMeta) ProtoMessage()

func (*ContractMeta) Reset Uses

func (m *ContractMeta) Reset()

func (*ContractMeta) Size Uses

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

func (*ContractMeta) String Uses

func (m *ContractMeta) String() string

func (*ContractMeta) Unmarshal Uses

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

func (*ContractMeta) XXX_DiscardUnknown Uses

func (m *ContractMeta) XXX_DiscardUnknown()

func (*ContractMeta) XXX_Marshal Uses

func (m *ContractMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ContractMeta) XXX_Merge Uses

func (m *ContractMeta) XXX_Merge(src proto.Message)

func (*ContractMeta) XXX_MessageName Uses

func (*ContractMeta) XXX_MessageName() string

func (*ContractMeta) XXX_Size Uses

func (m *ContractMeta) XXX_Size() int

func (*ContractMeta) XXX_Unmarshal Uses

func (m *ContractMeta) XXX_Unmarshal(b []byte) error

type PrivateAccount Uses

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

func GenerateEthereumAccountFromSecret Uses

func GenerateEthereumAccountFromSecret(secret string) *PrivateAccount

func GeneratePrivateAccount Uses

func GeneratePrivateAccount(ct crypto.CurveType) (*PrivateAccount, error)

Generates a new account with private key.

func GeneratePrivateAccountFromSecret Uses

func GeneratePrivateAccountFromSecret(secret string) *PrivateAccount

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

func PrivateAccountFromPrivateKey Uses

func PrivateAccountFromPrivateKey(privateKey crypto.PrivateKey) *PrivateAccount

func (*PrivateAccount) ConcretePrivateAccount Uses

func (pa *PrivateAccount) ConcretePrivateAccount() *ConcretePrivateAccount

func (*PrivateAccount) GetAddress Uses

func (pa *PrivateAccount) GetAddress() crypto.Address

func (*PrivateAccount) GetPublicKey Uses

func (pa *PrivateAccount) GetPublicKey() crypto.PublicKey

func (PrivateAccount) MarshalJSON Uses

func (pa PrivateAccount) MarshalJSON() ([]byte, error)

func (*PrivateAccount) PrivateKey Uses

func (pa *PrivateAccount) PrivateKey() crypto.PrivateKey

func (*PrivateAccount) Sign Uses

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

func (*PrivateAccount) String Uses

func (pa *PrivateAccount) String() string

func (*PrivateAccount) UnmarshalJSON Uses

func (pa *PrivateAccount) UnmarshalJSON(bytes []byte) error

Directories

PathSynopsis
acmstate
balance
validator

Package acm imports 18 packages (graph) and is imported by 86 packages. Updated 2020-05-01. Refresh now. Tools for package owners.