Documentation ¶
Index ¶
- Constants
- Variables
- func NewBloomIndexer(db core.Chain, size, confirms uint64) *core.ChainIndexer
- type BloomIndexer
- type DetailedBlockSignerInfo
- type ExecutionResult
- type GasPriceConfig
- type Harmony
- func (hmy *Harmony) BlockByNumber(ctx context.Context, blockNum rpc.BlockNumber) (*types.Block, error)
- func (hmy *Harmony) BlockByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Block, error)
- func (hmy *Harmony) BloomStatus() (uint64, uint64)
- func (hmy *Harmony) ChainConfig() *params.ChainConfig
- func (hmy *Harmony) ChainDb() ethdb.Database
- func (hmy *Harmony) ComputeStateDB(block *types.Block, reexec uint64) (*state.DB, error)
- func (hmy *Harmony) ComputeTxEnv(block *types.Block, txIndex int, reexec uint64) (core.Message, vm.Context, *state.DB, error)
- func (hmy *Harmony) ComputeTxEnvEachBlockWithoutApply(block *types.Block, reexec uint64, ...) error
- func (hmy *Harmony) CurrentBlock() *types.Block
- func (hmy *Harmony) EventMux() *event.TypeMux
- func (hmy *Harmony) GetAccountNonce(ctx context.Context, address common.Address, blockNum rpc.BlockNumber) (uint64, error)
- func (hmy *Harmony) GetAllValidatorAddresses() []common.Address
- func (hmy *Harmony) GetBalance(ctx context.Context, address common.Address, ...) (*big.Int, error)
- func (hmy *Harmony) GetBlock(ctx context.Context, hash common.Hash) (*types.Block, error)
- func (hmy *Harmony) GetBlockSigners(ctx context.Context, blockNum rpc.BlockNumber) (shard.SlotList, *internal_bls.Mask, error)
- func (hmy *Harmony) GetCurrentBadBlocks() []core.BadBlock
- func (hmy *Harmony) GetCurrentStakingErrorSink() types.TransactionErrorReports
- func (hmy *Harmony) GetCurrentTransactionErrorSink() types.TransactionErrorReports
- func (hmy *Harmony) GetCurrentUtilityMetrics() (*network.UtilityMetric, error)
- func (hmy *Harmony) GetDelegationLockingPeriodInEpoch(epoch *big.Int) int
- func (hmy *Harmony) GetDelegationsByDelegator(delegator common.Address) ([]common.Address, []*staking.Delegation)
- func (hmy *Harmony) GetDelegationsByDelegatorByBlock(delegator common.Address, block *types.Block) ([]common.Address, []*staking.Delegation)
- func (hmy *Harmony) GetDelegationsByValidator(validator common.Address) []staking.Delegation
- func (hmy *Harmony) GetDelegationsByValidatorAtBlock(validator common.Address, block *types.Block) []staking.Delegation
- func (hmy *Harmony) GetDetailedBlockSignerInfo(ctx context.Context, blk *types.Block) (*DetailedBlockSignerInfo, error)
- func (hmy *Harmony) GetEVM(ctx context.Context, msg core.Message, state *state.DB, header *block.Header) (*vm.EVM, error)
- func (hmy *Harmony) GetElectedValidatorAddresses() []common.Address
- func (hmy *Harmony) GetLastCrossLinks() ([]*types.CrossLink, error)
- func (hmy *Harmony) GetLatestChainHeaders() *block.HeaderPair
- func (hmy *Harmony) GetLeaderAddress(coinbaseAddr common.Address, epoch *big.Int) string
- func (hmy *Harmony) GetLogs(ctx context.Context, blockHash common.Hash, isEth bool) ([][]*types.Log, error)
- func (hmy *Harmony) GetMedianRawStakeSnapshot() (*committee.CompletedEPoSRound, error)
- func (hmy *Harmony) GetNodeMetadata() commonRPC.NodeMetadata
- func (hmy *Harmony) GetPeerInfo() commonRPC.NodePeerInfo
- func (hmy *Harmony) GetPendingCXReceipts() []*types.CXReceiptsProof
- func (hmy *Harmony) GetPoolNonce(ctx context.Context, addr common.Address) (uint64, error)
- func (hmy *Harmony) GetPoolStats() (pendingCount, queuedCount int)
- func (hmy *Harmony) GetPoolTransaction(hash common.Hash) types.PoolTransaction
- func (hmy *Harmony) GetPoolTransactions() (types.PoolTransactions, error)
- func (hmy *Harmony) GetPreStakingBlockRewards(ctx context.Context, blk *types.Block) (PreStakingBlockRewards, error)
- func (hmy *Harmony) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error)
- func (hmy *Harmony) GetShardState() (*shard.State, error)
- func (hmy *Harmony) GetStakingTransactionsCount(address, txType string) (uint64, error)
- func (hmy *Harmony) GetStakingTransactionsHistory(address, txType, order string) ([]common.Hash, error)
- func (hmy *Harmony) GetSuperCommittees() (*quorum.Transition, error)
- func (hmy *Harmony) GetTotalStakingSnapshot() *big.Int
- func (hmy *Harmony) GetTransactionsCount(address, txType string) (uint64, error)
- func (hmy *Harmony) GetTransactionsHistory(address, txType, order string) ([]common.Hash, error)
- func (hmy *Harmony) GetUndelegationPayouts(ctx context.Context, epoch *big.Int) (*UndelegationPayouts, error)
- func (hmy *Harmony) GetValidatorInformation(addr common.Address, block *types.Block) (*staking.ValidatorRPCEnhanced, error)
- func (hmy *Harmony) GetValidatorSelfDelegation(addr common.Address) *big.Int
- func (hmy *Harmony) GetValidators(epoch *big.Int) (*shard.Committee, error)
- func (hmy *Harmony) GetValidatorsStakeByBlockNumber(block *types.Block) (map[string]*big.Int, error)
- func (hmy *Harmony) HeaderByHash(ctx context.Context, blockHash common.Hash) (*block.Header, error)
- func (hmy *Harmony) HeaderByNumber(ctx context.Context, blockNum rpc.BlockNumber) (*block.Header, error)
- func (hmy *Harmony) IsCommitteeSelectionBlock(header *block.Header) bool
- func (hmy *Harmony) IsLeader() bool
- func (hmy *Harmony) IsNoEarlyUnlockEpoch(epoch *big.Int) bool
- func (hmy *Harmony) IsPreStakingEpoch(epoch *big.Int) bool
- func (hmy *Harmony) IsStakingEpoch(epoch *big.Int) bool
- func (hmy *Harmony) ProtocolVersion() int
- func (hmy *Harmony) ResendCx(ctx context.Context, txID common.Hash) (uint64, bool)
- func (hmy *Harmony) SendStakingTx(ctx context.Context, signedStakingTx *staking.StakingTransaction) error
- func (hmy *Harmony) SendTx(ctx context.Context, signedTx *types.Transaction) error
- func (hmy *Harmony) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession)
- func (hmy *Harmony) SingleFlightForgetKey(key string)
- func (hmy *Harmony) SingleFlightRequest(key string, fn func() (interface{}, error)) (interface{}, error)
- func (hmy *Harmony) StateAndHeaderByNumber(ctx context.Context, blockNum rpc.BlockNumber) (*state.DB, *block.Header, error)
- func (hmy *Harmony) StateAndHeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*state.DB, *block.Header, error)
- func (hmy *Harmony) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription
- func (hmy *Harmony) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription
- func (hmy *Harmony) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription
- func (hmy *Harmony) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription
- func (hmy *Harmony) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription
- func (hmy *Harmony) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription
- func (hmy *Harmony) SuggestPrice(ctx context.Context) (*big.Int, error)
- func (hmy *Harmony) TraceBlock(ctx context.Context, block *types.Block, config *TraceConfig) ([]*TxTraceResult, error)
- func (hmy *Harmony) TraceChain(ctx context.Context, start, end *types.Block, config *TraceConfig) (*rpc.Subscription, error)
- func (hmy *Harmony) TraceTx(ctx context.Context, message core.Message, vmctx vm.Context, statedb *state.DB, ...) (interface{}, error)
- type NodeAPI
- type Oracle
- type OracleBackend
- type PreStakingBlockRewards
- type StdTraceConfig
- type StructLogRes
- type TraceConfig
- type TxTraceResult
- type UndelegationPayouts
Constants ¶
const ( // BloomBitsBlocks is the number of blocks a single bloom bit section vector // contains on the server side. BloomBitsBlocks uint64 = 4096 )
Variables ¶
var DefaultMaxPrice = big.NewInt(500e9) // 500 gwei is the max suggested limit
var ( // ErrFinalizedTransaction is returned if the transaction to be submitted is already on-chain ErrFinalizedTransaction = errors.New("transaction already finalized") )
Functions ¶
func NewBloomIndexer ¶
func NewBloomIndexer(db core.Chain, size, confirms uint64) *core.ChainIndexer
NewBloomIndexer returns a chain indexer that generates bloom bits data for the canonical chain for fast logs filtering.
Types ¶
type BloomIndexer ¶
type BloomIndexer struct {
// contains filtered or unexported fields
}
BloomIndexer implements a core.ChainIndexer, building up a rotated bloom bits index for the Ethereum header bloom filters, permitting blazing fast filtering.
func (*BloomIndexer) Commit ¶
func (b *BloomIndexer) Commit() error
Commit implements core.ChainIndexerBackend, finalizing the bloom section and writing it out into the database.
type DetailedBlockSignerInfo ¶
type DetailedBlockSignerInfo struct { // Signers are all the signers for the block Signers shard.SlotList // Committee when the block was signed. Committee shard.SlotList BlockHash common.Hash }
DetailedBlockSignerInfo contains all of the block singing information
type ExecutionResult ¶
type ExecutionResult struct { Gas uint64 `json:"gas"` Failed bool `json:"failed"` ReturnValue string `json:"returnValue"` StructLogs []StructLogRes `json:"structLogs"` }
ExecutionResult groups all structured logs emitted by the EVM while replaying a transaction in debug mode as well as transaction execution status, the amount of gas used and the return value Taken from go-ethereum/internal/ethapi/api.go
type GasPriceConfig ¶
type Harmony ¶
type Harmony struct { // Channel for shutting down the service ShutdownChan chan bool // Channel for shutting down the Harmony BloomRequests chan chan *bloombits.Retrieval // Channel receiving bloom data retrieval requests BlockChain core.BlockChain BeaconChain core.BlockChain TxPool *core.TxPool CxPool *core.CxPool // CxPool is used to store the blockHashes of blocks containing cx receipts to be sent // DB interfaces BloomIndexer *core.ChainIndexer // Bloom indexer operating during block imports NodeAPI NodeAPI // ChainID is used to identify which network we are using ChainID uint64 // EthCompatibleChainID is used to identify the Ethereum compatible chain ID EthChainID uint64 // RPCGasCap is the global gas cap for eth-call variants. RPCGasCap *big.Int `toml:",omitempty"` ShardID uint32 // contains filtered or unexported fields }
Harmony implements the Harmony full node service.
func New ¶
New creates a new Harmony object (including the initialisation of the common Harmony object)
func (*Harmony) BlockByNumber ¶
func (hmy *Harmony) BlockByNumber(ctx context.Context, blockNum rpc.BlockNumber) (*types.Block, error)
BlockByNumber ...
func (*Harmony) BlockByNumberOrHash ¶
func (*Harmony) BloomStatus ¶
BloomStatus ... TODO: this is not implemented or verified yet for harmony.
func (*Harmony) ComputeStateDB ¶
ComputeStateDB retrieves the state database associated with a certain block. If no state is locally available for the given block, a number of blocks are attempted to be reexecuted to generate the desired state.
func (*Harmony) ComputeTxEnv ¶
func (hmy *Harmony) ComputeTxEnv(block *types.Block, txIndex int, reexec uint64) (core.Message, vm.Context, *state.DB, error)
ComputeTxEnv returns the execution environment of a certain transaction.
func (*Harmony) ComputeTxEnvEachBlockWithoutApply ¶
func (hmy *Harmony) ComputeTxEnvEachBlockWithoutApply(block *types.Block, reexec uint64, cb func(int, *types.Transaction, core.Message, vm.Context, *state.DB) bool) error
ComputeTxEnvEachBlockWithoutApply returns the execution environment of a certain transaction.
func (*Harmony) GetAccountNonce ¶
func (hmy *Harmony) GetAccountNonce( ctx context.Context, address common.Address, blockNum rpc.BlockNumber) (uint64, error)
GetAccountNonce returns the nonce value of the given address for the given block number
func (*Harmony) GetAllValidatorAddresses ¶
GetAllValidatorAddresses returns the up to date validator candidates for next epoch
func (*Harmony) GetBalance ¶
func (hmy *Harmony) GetBalance(ctx context.Context, address common.Address, blockNrOrHash rpc.BlockNumberOrHash) (*big.Int, error)
GetBalance returns balance of an given address.
func (*Harmony) GetBlockSigners ¶
func (hmy *Harmony) GetBlockSigners( ctx context.Context, blockNum rpc.BlockNumber, ) (shard.SlotList, *internal_bls.Mask, error)
GetBlockSigners ..
func (*Harmony) GetCurrentBadBlocks ¶
GetCurrentBadBlocks ..
func (*Harmony) GetCurrentStakingErrorSink ¶
func (hmy *Harmony) GetCurrentStakingErrorSink() types.TransactionErrorReports
GetCurrentStakingErrorSink ..
func (*Harmony) GetCurrentTransactionErrorSink ¶
func (hmy *Harmony) GetCurrentTransactionErrorSink() types.TransactionErrorReports
GetCurrentTransactionErrorSink ..
func (*Harmony) GetCurrentUtilityMetrics ¶
func (hmy *Harmony) GetCurrentUtilityMetrics() (*network.UtilityMetric, error)
GetCurrentUtilityMetrics ..
func (*Harmony) GetDelegationLockingPeriodInEpoch ¶
GetDelegationLockingPeriodInEpoch ...
func (*Harmony) GetDelegationsByDelegator ¶
func (hmy *Harmony) GetDelegationsByDelegator( delegator common.Address, ) ([]common.Address, []*staking.Delegation)
GetDelegationsByDelegator returns all delegation information of a delegator
func (*Harmony) GetDelegationsByDelegatorByBlock ¶
func (hmy *Harmony) GetDelegationsByDelegatorByBlock( delegator common.Address, block *types.Block, ) ([]common.Address, []*staking.Delegation)
GetDelegationsByDelegatorByBlock returns all delegation information of a delegator
func (*Harmony) GetDelegationsByValidator ¶
func (hmy *Harmony) GetDelegationsByValidator(validator common.Address) []staking.Delegation
GetDelegationsByValidator returns all delegation information of a validator
func (*Harmony) GetDelegationsByValidatorAtBlock ¶
func (hmy *Harmony) GetDelegationsByValidatorAtBlock( validator common.Address, block *types.Block, ) []staking.Delegation
GetDelegationsByValidatorAtBlock returns all delegation information of a validator at the given block
func (*Harmony) GetDetailedBlockSignerInfo ¶
func (hmy *Harmony) GetDetailedBlockSignerInfo( ctx context.Context, blk *types.Block, ) (*DetailedBlockSignerInfo, error)
GetDetailedBlockSignerInfo fetches the block signer information for any non-genesis block
func (*Harmony) GetEVM ¶
func (hmy *Harmony) GetEVM(ctx context.Context, msg core.Message, state *state.DB, header *block.Header) (*vm.EVM, error)
GetEVM returns a new EVM entity
func (*Harmony) GetElectedValidatorAddresses ¶
GetElectedValidatorAddresses returns the address of elected validators for current epoch
func (*Harmony) GetLastCrossLinks ¶
GetLastCrossLinks ..
func (*Harmony) GetLatestChainHeaders ¶
func (hmy *Harmony) GetLatestChainHeaders() *block.HeaderPair
GetLatestChainHeaders ..
func (*Harmony) GetLeaderAddress ¶
GetLeaderAddress returns the one address of the leader, given the coinbaseAddr. Note that the coinbaseAddr is overloaded with the BLS pub key hash in staking era.
func (*Harmony) GetLogs ¶
func (hmy *Harmony) GetLogs(ctx context.Context, blockHash common.Hash, isEth bool) ([][]*types.Log, error)
GetLogs ...
func (*Harmony) GetMedianRawStakeSnapshot ¶
func (hmy *Harmony) GetMedianRawStakeSnapshot() ( *committee.CompletedEPoSRound, error, )
GetMedianRawStakeSnapshot ..
func (*Harmony) GetNodeMetadata ¶
func (hmy *Harmony) GetNodeMetadata() commonRPC.NodeMetadata
GetNodeMetadata ..
func (*Harmony) GetPeerInfo ¶
func (hmy *Harmony) GetPeerInfo() commonRPC.NodePeerInfo
GetPeerInfo returns the peer info to the node, including blocked peer, connected peer, number of peers
func (*Harmony) GetPendingCXReceipts ¶
func (hmy *Harmony) GetPendingCXReceipts() []*types.CXReceiptsProof
GetPendingCXReceipts ..
func (*Harmony) GetPoolNonce ¶
GetPoolNonce ...
func (*Harmony) GetPoolStats ¶
GetPoolStats returns the number of pending and queued transactions
func (*Harmony) GetPoolTransaction ¶
func (hmy *Harmony) GetPoolTransaction(hash common.Hash) types.PoolTransaction
GetPoolTransaction ...
func (*Harmony) GetPoolTransactions ¶
func (hmy *Harmony) GetPoolTransactions() (types.PoolTransactions, error)
GetPoolTransactions returns pool transactions.
func (*Harmony) GetPreStakingBlockRewards ¶
func (hmy *Harmony) GetPreStakingBlockRewards( ctx context.Context, blk *types.Block, ) (PreStakingBlockRewards, error)
GetPreStakingBlockRewards for the given block number. Calculated rewards are done exactly like chain.AccumulateRewardsAndCountSigs.
func (*Harmony) GetReceipts ¶
GetReceipts ...
func (*Harmony) GetShardState ¶
GetShardState ...
func (*Harmony) GetStakingTransactionsCount ¶
GetStakingTransactionsCount returns the number of staking transactions of address.
func (*Harmony) GetStakingTransactionsHistory ¶
func (hmy *Harmony) GetStakingTransactionsHistory(address, txType, order string) ([]common.Hash, error)
GetStakingTransactionsHistory returns list of staking transactions hashes of address.
func (*Harmony) GetSuperCommittees ¶
func (hmy *Harmony) GetSuperCommittees() (*quorum.Transition, error)
GetSuperCommittees ..
func (*Harmony) GetTotalStakingSnapshot ¶
GetTotalStakingSnapshot ..
func (*Harmony) GetTransactionsCount ¶
GetTransactionsCount returns the number of regular transactions of address.
func (*Harmony) GetTransactionsHistory ¶
GetTransactionsHistory returns list of transactions hashes of address.
func (*Harmony) GetUndelegationPayouts ¶
func (hmy *Harmony) GetUndelegationPayouts( ctx context.Context, epoch *big.Int, ) (*UndelegationPayouts, error)
GetUndelegationPayouts returns the undelegation payouts for each delegator
Due to in-memory caching, it is possible to get undelegation payouts for a state / epoch that has been pruned but have it be lost (and unable to recompute) after the node restarts. This not a problem if a full (archival) DB is used.
func (*Harmony) GetValidatorInformation ¶
func (hmy *Harmony) GetValidatorInformation( addr common.Address, block *types.Block, ) (*staking.ValidatorRPCEnhanced, error)
GetValidatorInformation returns the information of validator
func (*Harmony) GetValidatorSelfDelegation ¶
GetValidatorSelfDelegation returns the amount of staking after applying all delegated stakes
func (*Harmony) GetValidators ¶
GetValidators returns validators for a particular epoch.
func (*Harmony) GetValidatorsStakeByBlockNumber ¶ added in v0.1.8
func (*Harmony) HeaderByHash ¶
HeaderByHash ...
func (*Harmony) HeaderByNumber ¶
func (hmy *Harmony) HeaderByNumber(ctx context.Context, blockNum rpc.BlockNumber) (*block.Header, error)
HeaderByNumber ...
func (*Harmony) IsCommitteeSelectionBlock ¶
IsCommitteeSelectionBlock checks if the given block is the committee selection block
func (*Harmony) IsNoEarlyUnlockEpoch ¶
IsNoEarlyUnlockEpoch ...
func (*Harmony) IsPreStakingEpoch ¶
IsPreStakingEpoch ...
func (*Harmony) IsStakingEpoch ¶
IsStakingEpoch ...
func (*Harmony) ResendCx ¶
ResendCx retrieve blockHash from txID and add blockHash to CxPool for resending Note that cross shard txn is only for regular txns, not for staking txns, so the input txn hash is expected to be regular txn hash
func (*Harmony) SendStakingTx ¶
func (hmy *Harmony) SendStakingTx(ctx context.Context, signedStakingTx *staking.StakingTransaction) error
SendStakingTx adds a staking transaction
func (*Harmony) ServiceFilter ¶
func (hmy *Harmony) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession)
ServiceFilter ...
func (*Harmony) SingleFlightForgetKey ¶
SingleFlightForgetKey ...
func (*Harmony) SingleFlightRequest ¶
func (hmy *Harmony) SingleFlightRequest( key string, fn func() (interface{}, error), ) (interface{}, error)
SingleFlightRequest ..
func (*Harmony) StateAndHeaderByNumber ¶
func (hmy *Harmony) StateAndHeaderByNumber(ctx context.Context, blockNum rpc.BlockNumber) (*state.DB, *block.Header, error)
StateAndHeaderByNumber ...
func (*Harmony) StateAndHeaderByNumberOrHash ¶
func (*Harmony) SubscribeChainEvent ¶
func (hmy *Harmony) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription
SubscribeChainEvent subscribes chain event. TODO: this is not implemented or verified yet for harmony.
func (*Harmony) SubscribeChainHeadEvent ¶
func (hmy *Harmony) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription
SubscribeChainHeadEvent subcribes chain head event. TODO: this is not implemented or verified yet for harmony.
func (*Harmony) SubscribeChainSideEvent ¶
func (hmy *Harmony) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription
SubscribeChainSideEvent subcribes chain side event. TODO: this is not implemented or verified yet for harmony.
func (*Harmony) SubscribeLogsEvent ¶
func (hmy *Harmony) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription
SubscribeLogsEvent subcribes log event. TODO: this is not implemented or verified yet for harmony.
func (*Harmony) SubscribeNewTxsEvent ¶
func (hmy *Harmony) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription
SubscribeNewTxsEvent subscribes new tx event. TODO: this is not implemented or verified yet for harmony.
func (*Harmony) SubscribeRemovedLogsEvent ¶
func (hmy *Harmony) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription
SubscribeRemovedLogsEvent subcribes removed logs event. TODO: this is not implemented or verified yet for harmony.
func (*Harmony) SuggestPrice ¶
func (*Harmony) TraceBlock ¶
func (hmy *Harmony) TraceBlock(ctx context.Context, block *types.Block, config *TraceConfig) ([]*TxTraceResult, error)
TraceBlock configures a new tracer according to the provided configuration, and executes all the transactions contained within. The return value will be one item per transaction, dependent on the requested tracer.
func (*Harmony) TraceChain ¶
func (hmy *Harmony) TraceChain(ctx context.Context, start, end *types.Block, config *TraceConfig) (*rpc.Subscription, error)
TraceChain configures a new tracer according to the provided configuration, and executes all the transactions contained within. The return value will be one item per transaction, dependent on the requested tracer.
func (*Harmony) TraceTx ¶
func (hmy *Harmony) TraceTx(ctx context.Context, message core.Message, vmctx vm.Context, statedb *state.DB, config *TraceConfig) (interface{}, error)
TraceTx configures a new tracer according to the provided configuration, and executes the given message in the provided environment. The return value will be tracer dependent. NOTE: Only support default StructLogger tracer
type NodeAPI ¶
type NodeAPI interface { AddPendingStakingTransaction(*staking.StakingTransaction) error AddPendingTransaction(newTx *types.Transaction) error Blockchain() core.BlockChain Beaconchain() core.BlockChain GetTransactionsHistory(address, txType, order string) ([]common.Hash, error) GetStakingTransactionsHistory(address, txType, order string) ([]common.Hash, error) GetTransactionsCount(address, txType string) (uint64, error) GetStakingTransactionsCount(address, txType string) (uint64, error) GetTraceResultByHash(hash common.Hash) (json.RawMessage, error) IsCurrentlyLeader() bool IsOutOfSync(shardID uint32) bool SyncStatus(shardID uint32) (bool, uint64, uint64) SyncPeers() map[string]int ReportStakingErrorSink() types.TransactionErrorReports ReportPlainErrorSink() types.TransactionErrorReports PendingCXReceipts() []*types.CXReceiptsProof GetNodeBootTime() int64 PeerConnectivity() (int, int, int) ListPeer(topic string) []peer.ID ListTopic() []string ListBlockedPeer() []peer.ID GetConsensusInternal() commonRPC.ConsensusInternal IsBackup() bool SetNodeBackupMode(isBackup bool) bool // debug API GetConsensusMode() string GetConsensusPhase() string GetConsensusViewChangingID() uint64 GetConsensusCurViewID() uint64 GetConfig() commonRPC.Config ShutDown() GetLastSigningPower() (float64, error) }
NodeAPI is the list of functions from node used to call rpc apis.
type Oracle ¶
type Oracle struct {
// contains filtered or unexported fields
}
Oracle recommends gas prices based on the content of recent blocks. Suitable for both light and full clients.
func NewOracle ¶
func NewOracle(backend *Harmony, params GasPriceConfig) *Oracle
NewOracle returns a new gasprice oracle which can recommend suitable gasprice for newly created transaction.
type OracleBackend ¶
type OracleBackend interface { HeaderByNumber(ctx context.Context, number rpc.BlockNumber) (*block.Header, error) BlockByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Block, error) ChainConfig() *params.ChainConfig }
OracleBackend includes all necessary background APIs for oracle.
type PreStakingBlockRewards ¶
PreStakingBlockRewards are the rewards for a block in the pre-staking era (epoch < staking epoch).
type StdTraceConfig ¶
StdTraceConfig holds extra parameters to standard-json trace functions.
type StructLogRes ¶
type StructLogRes struct { Pc uint64 `json:"pc"` Op string `json:"op"` CallerAddress common.Address `json:"callerAddress"` ContractAddress common.Address `json:"contractAddress"` Gas uint64 `json:"gas"` GasCost uint64 `json:"gasCost"` Depth int `json:"depth"` Error error `json:"error,omitempty"` Stack []string `json:"stack,omitempty"` AfterStack []string `json:"afterStack,omitempty"` Memory []string `json:"memory,omitempty"` Storage map[string]string `json:"storage,omitempty"` // contains filtered or unexported fields }
StructLogRes stores a structured log emitted by the EVM while replaying a transaction in debug mode
func FormatLogs ¶
func FormatLogs(logs []*vm.StructLog, conf *TraceConfig) []StructLogRes
FormatLogs formats EVM returned structured logs for json output
func (*StructLogRes) FormatAfterStack ¶
func (r *StructLogRes) FormatAfterStack() []string
func (*StructLogRes) FormatMemory ¶
func (r *StructLogRes) FormatMemory() []string
func (*StructLogRes) FormatStack ¶
func (r *StructLogRes) FormatStack() []string
func (*StructLogRes) FormatStorage ¶
func (r *StructLogRes) FormatStorage() map[string]string
func (*StructLogRes) GetOperatorEvent ¶
func (r *StructLogRes) GetOperatorEvent(key string) string
type TraceConfig ¶
TraceConfig holds extra parameters to trace functions.
type TxTraceResult ¶
type TxTraceResult struct { Result interface{} `json:"result,omitempty"` // Trace results produced by the tracer Error string `json:"error,omitempty"` // Trace failure produced by the tracer }
TxTraceResult is the result of a single transaction trace.
type UndelegationPayouts ¶
UndelegationPayouts ..
func NewUndelegationPayouts ¶
func NewUndelegationPayouts() *UndelegationPayouts
func (*UndelegationPayouts) SetPayoutByDelegatorAddrAndValidatorAddr ¶
func (u *UndelegationPayouts) SetPayoutByDelegatorAddrAndValidatorAddr( delegator, validator common.Address, amount *big.Int, )
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package tracers is a collection of JavaScript transaction tracers.
|
Package tracers is a collection of JavaScript transaction tracers. |
internal/tracers
Package tracers contains the actual JavaScript tracer assets.
|
Package tracers contains the actual JavaScript tracer assets. |