@@ -38,40 +38,41 @@ type BlockChain struct {
3838 ChainEvents []core.ChainEvent
3939 Receipts map [common.Hash ]types.Receipts
4040 TDByHash map [common.Hash ]* big.Int
41+ TDByNum map [uint64 ]* big.Int
4142}
4243
4344// SetBlocksForHashes mock method
44- func (blockChain * BlockChain ) SetBlocksForHashes (blocks map [common.Hash ]* types.Block ) {
45- if blockChain .blocksToReturnByHash == nil {
46- blockChain .blocksToReturnByHash = make (map [common.Hash ]* types.Block )
45+ func (bc * BlockChain ) SetBlocksForHashes (blocks map [common.Hash ]* types.Block ) {
46+ if bc .blocksToReturnByHash == nil {
47+ bc .blocksToReturnByHash = make (map [common.Hash ]* types.Block )
4748 }
48- blockChain .blocksToReturnByHash = blocks
49+ bc .blocksToReturnByHash = blocks
4950}
5051
5152// GetBlockByHash mock method
52- func (blockChain * BlockChain ) GetBlockByHash (hash common.Hash ) * types.Block {
53- blockChain .HashesLookedUp = append (blockChain .HashesLookedUp , hash )
53+ func (bc * BlockChain ) GetBlockByHash (hash common.Hash ) * types.Block {
54+ bc .HashesLookedUp = append (bc .HashesLookedUp , hash )
5455
5556 var block * types.Block
56- if len (blockChain .blocksToReturnByHash ) > 0 {
57- block = blockChain .blocksToReturnByHash [hash ]
57+ if len (bc .blocksToReturnByHash ) > 0 {
58+ block = bc .blocksToReturnByHash [hash ]
5859 }
5960
6061 return block
6162}
6263
6364// SetChainEvents mock method
64- func (blockChain * BlockChain ) SetChainEvents (chainEvents []core.ChainEvent ) {
65- blockChain .ChainEvents = chainEvents
65+ func (bc * BlockChain ) SetChainEvents (chainEvents []core.ChainEvent ) {
66+ bc .ChainEvents = chainEvents
6667}
6768
6869// SubscribeChainEvent mock method
69- func (blockChain * BlockChain ) SubscribeChainEvent (ch chan <- core.ChainEvent ) event.Subscription {
70+ func (bc * BlockChain ) SubscribeChainEvent (ch chan <- core.ChainEvent ) event.Subscription {
7071 subErr := errors .New ("subscription error" )
7172
7273 var eventCounter int
7374 subscription := event .NewSubscription (func (quit <- chan struct {}) error {
74- for _ , chainEvent := range blockChain .ChainEvents {
75+ for _ , chainEvent := range bc .ChainEvents {
7576 if eventCounter > 1 {
7677 time .Sleep (250 * time .Millisecond )
7778 return subErr
@@ -90,45 +91,57 @@ func (blockChain *BlockChain) SubscribeChainEvent(ch chan<- core.ChainEvent) eve
9091}
9192
9293// SetReceiptsForHash test method
93- func (blockChain * BlockChain ) SetReceiptsForHash (hash common.Hash , receipts types.Receipts ) {
94- if blockChain .Receipts == nil {
95- blockChain .Receipts = make (map [common.Hash ]types.Receipts )
94+ func (bc * BlockChain ) SetReceiptsForHash (hash common.Hash , receipts types.Receipts ) {
95+ if bc .Receipts == nil {
96+ bc .Receipts = make (map [common.Hash ]types.Receipts )
9697 }
97- blockChain .Receipts [hash ] = receipts
98+ bc .Receipts [hash ] = receipts
9899}
99100
100101// GetReceiptsByHash mock method
101- func (blockChain * BlockChain ) GetReceiptsByHash (hash common.Hash ) types.Receipts {
102- return blockChain .Receipts [hash ]
102+ func (bc * BlockChain ) GetReceiptsByHash (hash common.Hash ) types.Receipts {
103+ return bc .Receipts [hash ]
103104}
104105
105106// SetBlockForNumber test method
106- func (blockChain * BlockChain ) SetBlockForNumber (block * types.Block , number uint64 ) {
107- if blockChain .blocksToReturnByNumber == nil {
108- blockChain .blocksToReturnByNumber = make (map [uint64 ]* types.Block )
107+ func (bc * BlockChain ) SetBlockForNumber (block * types.Block , number uint64 ) {
108+ if bc .blocksToReturnByNumber == nil {
109+ bc .blocksToReturnByNumber = make (map [uint64 ]* types.Block )
109110 }
110- blockChain .blocksToReturnByNumber [number ] = block
111+ bc .blocksToReturnByNumber [number ] = block
111112}
112113
113114// GetBlockByNumber mock method
114- func (blockChain * BlockChain ) GetBlockByNumber (number uint64 ) * types.Block {
115- return blockChain .blocksToReturnByNumber [number ]
115+ func (bc * BlockChain ) GetBlockByNumber (number uint64 ) * types.Block {
116+ return bc .blocksToReturnByNumber [number ]
116117}
117118
118- // GetTdByHash mock method
119- func (blockChain * BlockChain ) GetTdByHash (hash common.Hash ) * big.Int {
120- return blockChain .TDByHash [hash ]
119+ // GetTd mock method
120+ func (bc * BlockChain ) GetTd (hash common.Hash , blockNum uint64 ) * big.Int {
121+ if td , ok := bc .TDByHash [hash ]; ok {
122+ return td
123+ }
124+
125+ if td , ok := bc .TDByNum [blockNum ]; ok {
126+ return td
127+ }
128+ return nil
121129}
122130
123- func (blockChain * BlockChain ) SetTdByHash (hash common.Hash , td * big.Int ) {
124- if blockChain .TDByHash == nil {
125- blockChain .TDByHash = make (map [common.Hash ]* big.Int )
131+ func (bc * BlockChain ) SetTd (hash common.Hash , blockNum uint64 , td * big.Int ) {
132+ if bc .TDByHash == nil {
133+ bc .TDByHash = make (map [common.Hash ]* big.Int )
134+ }
135+ bc .TDByHash [hash ] = td
136+
137+ if bc .TDByNum == nil {
138+ bc .TDByNum = make (map [uint64 ]* big.Int )
126139 }
127- blockChain . TDByHash [ hash ] = td
140+ bc . TDByNum [ blockNum ] = td
128141}
129142
130- func (blockChain * BlockChain ) UnlockTrie (root common.Hash ) {}
143+ func (bc * BlockChain ) UnlockTrie (root common.Hash ) {}
131144
132- func (BlockChain * BlockChain ) StateCache () state.Database {
145+ func (bc * BlockChain ) StateCache () state.Database {
133146 return nil
134147}
0 commit comments