xeth

package
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2015 License: GPL-3.0 Imports: 25 Imported by: 0

Documentation

Overview

Package xeth is the interface to all Ethereum functionality.

Index

Constants

View Source
const (
	UnknownFilterTy = iota
	BlockFilterTy
	TransactionFilterTy
	LogFilterTy
)

byte will be inferred

Variables

This section is empty.

Functions

func DefaultGas

func DefaultGas() *big.Int

Types

type Block

type Block struct {
	Size         string       `json:"size"`
	Number       int          `json:"number"`
	Hash         string       `json:"hash"`
	Transactions *common.List `json:"transactions"`
	Uncles       *common.List `json:"uncles"`
	Time         *big.Int     `json:"time"`
	Coinbase     string       `json:"coinbase"`
	Name         string       `json:"name"`
	GasLimit     string       `json:"gasLimit"`
	GasUsed      string       `json:"gasUsed"`
	PrevHash     string       `json:"prevHash"`
	Bloom        string       `json:"bloom"`
	Raw          string       `json:"raw"`
	// contains filtered or unexported fields
}

Block interface exposed to QML

func NewBlock

func NewBlock(block *types.Block) *Block

Creates a new QML Block from a chain block

func (*Block) GetTransaction

func (self *Block) GetTransaction(hash string) *Transaction

func (*Block) ToString

func (self *Block) ToString() string

type Frontend

type Frontend interface {
	// AskPassword is called when a new account is created or updated
	AskPassword() (string, bool)

	// UnlockAccount is called when a transaction needs to be signed
	// but the key corresponding to the transaction's sender is
	// locked.
	//
	// It should unlock the account with the given address and return
	// true if unlocking succeeded.
	UnlockAccount(address []byte) bool

	// This is called for all transactions inititated through
	// Transact. It should prompt the user to confirm the transaction
	// and return true if the transaction was acknowledged.
	//
	// ConfirmTransaction is not used for Call transactions
	// because they cannot change any state.
	ConfirmTransaction(tx string) bool
}

Frontend should be implemented by users of XEth. Its methods are called whenever XEth makes a decision that requires user input.

type KeyVal

type KeyVal struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type Object

type Object struct {
	*state.StateObject
}

func NewObject

func NewObject(state *state.StateObject) *Object

func (*Object) Storage

func (self *Object) Storage() (storage map[string]string)

func (*Object) StorageString

func (self *Object) StorageString(str string) []byte

func (*Object) StorageValue

func (self *Object) StorageValue(addr *common.Value) []byte

type PReceipt

type PReceipt struct {
	CreatedContract bool   `json:"createdContract"`
	Address         string `json:"address"`
	Hash            string `json:"hash"`
	Sender          string `json:"sender"`
}

func NewPReciept

func NewPReciept(contractCreation bool, creationAddress, hash, address []byte) *PReceipt

type Peer

type Peer struct {
	Ip      string `json:"ip"`
	Version string `json:"version"`
	Caps    string `json:"caps"`
	// contains filtered or unexported fields
}

func NewPeer

func NewPeer(peer *p2p.Peer) *Peer

type Receipt

type Receipt struct {
	CreatedContract bool   `json:"createdContract"`
	Address         string `json:"address"`
	Hash            string `json:"hash"`
	Sender          string `json:"sender"`
}

func NewReciept

func NewReciept(contractCreation bool, creationAddress, hash, address []byte) *Receipt

type State

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

func NewState

func NewState(xeth *XEth, statedb *state.StateDB) *State

func (*State) Get

func (self *State) Get(addr string) *Object

func (*State) SafeGet

func (self *State) SafeGet(addr string) *Object

func (*State) State

func (self *State) State() *state.StateDB

type Transaction

type Transaction struct {
	Value           string `json:"value"`
	Gas             string `json:"gas"`
	GasPrice        string `json:"gasPrice"`
	Hash            string `json:"hash"`
	Address         string `json:"address"`
	Sender          string `json:"sender"`
	RawData         string `json:"rawData"`
	Data            string `json:"data"`
	Contract        bool   `json:"isContract"`
	CreatesContract bool   `json:"createsContract"`
	Confirmations   int    `json:"confirmations"`
	// contains filtered or unexported fields
}

func NewTx

func NewTx(tx *types.Transaction) *Transaction

func (*Transaction) ToString

func (self *Transaction) ToString() string

type Whisper

type Whisper struct {
	*whisper.Whisper
}

Whisper represents the API wrapper around the internal whisper implementation.

func NewWhisper

func NewWhisper(w *whisper.Whisper) *Whisper

NewWhisper wraps an internal whisper client into an external API version.

func (*Whisper) HasIdentity

func (self *Whisper) HasIdentity(key string) bool

HasIdentity checks if the the whisper node is configured with the private key of the specified public pair.

func (*Whisper) Messages

func (self *Whisper) Messages(id int) []WhisperMessage

Messages retrieves all the currently pooled messages matching a filter id.

func (*Whisper) NewIdentity

func (self *Whisper) NewIdentity() string

NewIdentity generates a new cryptographic identity for the client, and injects it into the known identities for message decryption.

func (*Whisper) Post

func (self *Whisper) Post(payload string, to, from string, topics []string, priority, ttl uint32) error

Post injects a message into the whisper network for distribution.

func (*Whisper) Watch

func (self *Whisper) Watch(to, from string, topics [][]string, fn func(WhisperMessage)) int

Watch installs a new message handler to run in case a matching packet arrives from the whisper network.

type WhisperMessage

type WhisperMessage struct {
	Payload string `json:"payload"`
	To      string `json:"to"`
	From    string `json:"from"`
	Sent    int64  `json:"sent"`
	TTL     int64  `json:"ttl"`
	Hash    string `json:"hash"`
	// contains filtered or unexported fields
}

WhisperMessage is the external API representation of a whisper.Message.

func NewWhisperMessage

func NewWhisperMessage(message *whisper.Message) WhisperMessage

NewWhisperMessage converts an internal message into an API version.

type XEth

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

func New

func New(ethereum *eth.Ethereum, frontend Frontend) *XEth

New creates an XEth that uses the given frontend. If a nil Frontend is provided, a default frontend which confirms all transactions will be used.

func NewTest

func NewTest(eth *eth.Ethereum, frontend Frontend) *XEth

func (*XEth) Accounts

func (self *XEth) Accounts() []string

func (*XEth) AllLogs

func (self *XEth) AllLogs(earliest, latest int64, skip, max int, address []string, topics [][]string) vm.Logs

func (*XEth) AtStateNum

func (self *XEth) AtStateNum(num int64) *XEth

func (*XEth) BalanceAt

func (self *XEth) BalanceAt(addr string) string

func (*XEth) Block

func (self *XEth) Block(v interface{}) *Block

func (*XEth) BlockByHash

func (self *XEth) BlockByHash(strHash string) *Block

func (*XEth) BlockByNumber

func (self *XEth) BlockByNumber(num int64) *Block

func (*XEth) BlockFilterChanged

func (self *XEth) BlockFilterChanged(id int) []common.Hash

func (*XEth) Call

func (self *XEth) Call(fromStr, toStr, valueStr, gasStr, gasPriceStr, dataStr string) (string, string, error)

func (*XEth) ClientVersion

func (self *XEth) ClientVersion() string

func (*XEth) CodeAt

func (self *XEth) CodeAt(address string) string

func (*XEth) CodeAtBytes

func (self *XEth) CodeAtBytes(address string) []byte

func (*XEth) Coinbase

func (self *XEth) Coinbase() string

func (*XEth) ConfirmTransaction

func (self *XEth) ConfirmTransaction(tx string) bool

func (*XEth) CurrentBlock

func (self *XEth) CurrentBlock() *types.Block

func (*XEth) DbGet

func (self *XEth) DbGet(key []byte) ([]byte, error)

retrieve DApp value from extra database

func (*XEth) DbPut

func (self *XEth) DbPut(key, val []byte) bool

store DApp value in extra database

func (*XEth) DefaultGasPrice

func (self *XEth) DefaultGasPrice() *big.Int

func (*XEth) EachStorage

func (self *XEth) EachStorage(addr string) string

func (*XEth) EthBlockByHash

func (self *XEth) EthBlockByHash(strHash string) *types.Block

func (*XEth) EthBlockByNumber

func (self *XEth) EthBlockByNumber(num int64) *types.Block

func (*XEth) EthTransactionByHash

func (self *XEth) EthTransactionByHash(hash string) (tx *types.Transaction, blhash common.Hash, blnum *big.Int, txi uint64)

func (*XEth) EthVersion

func (self *XEth) EthVersion() string

func (*XEth) FromAscii

func (self *XEth) FromAscii(str string) string

func (*XEth) FromNumber

func (self *XEth) FromNumber(str string) string

func (*XEth) Frontend added in v1.1.0

func (self *XEth) Frontend() Frontend

func (*XEth) GasLimit

func (self *XEth) GasLimit() *big.Int

func (*XEth) GetBlockReceipts

func (self *XEth) GetBlockReceipts(bhash common.Hash) types.Receipts

func (*XEth) GetFilterType

func (self *XEth) GetFilterType(id int) byte

func (*XEth) GetTxReceipt

func (self *XEth) GetTxReceipt(txhash common.Hash) *types.Receipt

func (*XEth) HashRate

func (self *XEth) HashRate() int64

func (*XEth) IsContract

func (self *XEth) IsContract(address string) bool

func (*XEth) IsListening

func (self *XEth) IsListening() bool

func (*XEth) IsMining

func (self *XEth) IsMining() bool

func (*XEth) LogFilterChanged

func (self *XEth) LogFilterChanged(id int) vm.Logs

func (*XEth) Logs

func (self *XEth) Logs(id int) vm.Logs

func (*XEth) NetworkVersion

func (self *XEth) NetworkVersion() string

func (*XEth) NewBlockFilter

func (self *XEth) NewBlockFilter() int

func (*XEth) NewLogFilter

func (self *XEth) NewLogFilter(earliest, latest int64, skip, max int, address []string, topics [][]string) int

func (*XEth) NewTransactionFilter

func (self *XEth) NewTransactionFilter() int

func (*XEth) NewWhisperFilter

func (p *XEth) NewWhisperFilter(to, from string, topics [][]string) int

NewWhisperFilter creates and registers a new message filter to watch for inbound whisper messages. All parameters at this point are assumed to be HEX encoded.

func (*XEth) NumberToHuman

func (self *XEth) NumberToHuman(balance string) string

func (*XEth) PeerCount

func (self *XEth) PeerCount() int

func (*XEth) PushTx

func (self *XEth) PushTx(encodedTx string) (string, error)

func (*XEth) RemoteMining

func (self *XEth) RemoteMining() *miner.RemoteAgent

func (*XEth) SetMining

func (self *XEth) SetMining(shouldmine bool, threads int) bool

func (*XEth) SetSolc

func (self *XEth) SetSolc(solcPath string) (*compiler.Solidity, error)

set in js console via admin interface or wrapper from cli flags

func (*XEth) Sign

func (self *XEth) Sign(fromStr, hashStr string, didUnlock bool) (string, error)

func (*XEth) Solc

func (self *XEth) Solc() (*compiler.Solidity, error)

accessor for solidity compiler. memoized if available, retried on-demand if not

func (*XEth) State

func (self *XEth) State() *State

func (*XEth) Stop added in v1.3.1

func (self *XEth) Stop()

Stop releases any resources associated with self. It may not be called more than once.

func (*XEth) StorageAt

func (self *XEth) StorageAt(addr, storageAddr string) string

func (*XEth) Td added in v1.2.2

func (self *XEth) Td(hash common.Hash) *big.Int

func (*XEth) ToAscii

func (self *XEth) ToAscii(str string) string

func (*XEth) Transact

func (self *XEth) Transact(fromStr, toStr, nonceStr, valueStr, gasStr, gasPriceStr, codeStr string) (string, error)

func (*XEth) TransactionFilterChanged

func (self *XEth) TransactionFilterChanged(id int) []common.Hash

func (*XEth) TxCountAt

func (self *XEth) TxCountAt(address string) int

func (*XEth) UninstallFilter

func (self *XEth) UninstallFilter(id int) bool

func (*XEth) UninstallWhisperFilter

func (p *XEth) UninstallWhisperFilter(id int) bool

UninstallWhisperFilter disables and removes an existing filter.

func (*XEth) UpdateState

func (self *XEth) UpdateState() (wait chan *big.Int)

subscribes to new head block events and waits until blockchain height is greater n at any time given the current head, waits for the next chain event sets the state to the current head loop is async and quit by closing the channel used in tests and JS console debug module to control advancing private chain manually Note: this is not threadsafe, only called in JS single process and tests

func (*XEth) Whisper

func (self *XEth) Whisper() *Whisper

func (*XEth) WhisperMessages

func (self *XEth) WhisperMessages(id int) []WhisperMessage

WhisperMessages retrieves all the known messages that match a specific filter.

func (*XEth) WhisperMessagesChanged

func (self *XEth) WhisperMessagesChanged(id int) []WhisperMessage

WhisperMessagesChanged retrieves all the new messages matched by a filter since the last retrieval

func (*XEth) WhisperVersion

func (self *XEth) WhisperVersion() string

func (*XEth) WithState

func (self *XEth) WithState(statedb *state.StateDB) *XEth

Jump to

Keyboard shortcuts

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