aboutsummaryrefslogtreecommitdiffstats
path: root/indexer/blockhain.go
diff options
context:
space:
mode:
authorMeng-Ying Yang <garfield@dexon.org>2018-12-29 20:56:27 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:55 +0800
commit9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da (patch)
tree416ce96c05d8c2c4540018910188a18f586c85b5 /indexer/blockhain.go
parent46a59106b73e122c6df984faee18a2f12591840e (diff)
downloaddexon-9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da.tar
dexon-9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da.tar.gz
dexon-9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da.tar.bz2
dexon-9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da.tar.lz
dexon-9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da.tar.xz
dexon-9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da.tar.zst
dexon-9440dfb1aae9d4fd068af8d4c11b5aba8d53c7da.zip
indexer: ReadOnlyBlockChain returns related configs (#110)
For restoring mock componenets (such as: VM, Backend, ...etc), blockchain related configs should be exposed.
Diffstat (limited to 'indexer/blockhain.go')
-rw-r--r--indexer/blockhain.go85
1 files changed, 0 insertions, 85 deletions
diff --git a/indexer/blockhain.go b/indexer/blockhain.go
deleted file mode 100644
index bf9a180ce..000000000
--- a/indexer/blockhain.go
+++ /dev/null
@@ -1,85 +0,0 @@
-package indexer
-
-import (
- "math/big"
-
- coreCommon "github.com/dexon-foundation/dexon-consensus/common"
- coreTypes "github.com/dexon-foundation/dexon-consensus/core/types"
-
- "github.com/dexon-foundation/dexon/common"
- "github.com/dexon-foundation/dexon/core"
- "github.com/dexon-foundation/dexon/core/state"
- "github.com/dexon-foundation/dexon/core/types"
- "github.com/dexon-foundation/dexon/event"
- "github.com/dexon-foundation/dexon/rlp"
-)
-
-// ReadOnlyBlockChain defines safe reading blockchain interface by removing write
-// methods of core.BlockChain struct.
-type ReadOnlyBlockChain interface {
- BadBlocks() []*types.Block
- CurrentBlock() *types.Block
- CurrentFastBlock() *types.Block
- CurrentHeader() *types.Header
- GasLimit() uint64
- Genesis() *types.Block
- GetAncestor(common.Hash, uint64, uint64, *uint64) (common.Hash, uint64)
- GetAddressInfo(uint32, common.Address) (
- info struct {
- Nonce uint64
- Cost *big.Int
- Counter uint64
- })
- GetBlock(common.Hash, uint64) *types.Block
- GetBlockByHash(common.Hash) *types.Block
- GetBlockByNumber(uint64) *types.Block
- GetBlockHashesFromHash(common.Hash, uint64) []common.Hash
- GetBlocksFromHash(common.Hash, int) (blocks []*types.Block)
- GetBody(common.Hash) *types.Body
- GetBodyRLP(common.Hash) rlp.RawValue
- GetChainLastConfirmedHeight(uint32) uint64
- GetConfirmedBlockByHash(uint32, coreCommon.Hash) (*coreTypes.Block, types.Transactions)
- GetCostInConfirmedBlocks(uint32, common.Address) (*big.Int, bool)
- GetGovStateByHash(common.Hash) (*types.GovState, error)
- GetGovStateByNumber(uint64) (*types.GovState, error)
- GetHeader(common.Hash, uint64) *types.Header
- GetHeaderByHash(common.Hash) *types.Header
- GetHeaderByNumber(number uint64) *types.Header
- GetLastNonceInConfirmedBlocks(uint32, common.Address) (uint64, bool)
- GetPending() (*types.Block, *state.StateDB)
- GetPendingBlockByNumber(uint64) *types.Block
- GetPendingHeight() uint64
- GetReceiptsByHash(common.Hash) types.Receipts
- GetRoundHeight(uint64) (uint64, bool)
- GetTd(common.Hash, uint64) *big.Int
- GetTdByHash(common.Hash) *big.Int
- GetUnclesInChain(*types.Block, int) []*types.Header
- HasBlock(common.Hash, uint64) bool
- HasBlockAndState(common.Hash, uint64) bool
- HasHeader(common.Hash, uint64) bool
- HasState(common.Hash) bool
- PendingBlock() *types.Block
- State() (*state.StateDB, error)
- StateAt(root common.Hash) (*state.StateDB, error)
- SubscribeBlockConfirmedEvent(chan<- core.BlockConfirmedEvent) event.Subscription
- SubscribeChainEvent(chan<- core.ChainEvent) event.Subscription
- SubscribeChainHeadEvent(chan<- core.ChainHeadEvent) event.Subscription
- SubscribeChainSideEvent(chan<- core.ChainSideEvent) event.Subscription
- SubscribeLogsEvent(chan<- []*types.Log) event.Subscription
- SubscribeRemovedLogsEvent(chan<- core.RemovedLogsEvent) event.Subscription
-}
-
-// access protection
-type ro interface {
- ReadOnlyBlockChain
-}
-
-// ROBlockChain struct for safe read.
-type ROBlockChain struct {
- ro
-}
-
-// NewROBlockChain converts original block chain to readonly interface.
-func NewROBlockChain(bc *core.BlockChain) ReadOnlyBlockChain {
- return &ROBlockChain{ro: bc}
-}