core, tests: get_hash fix

Make sure that we're fetching the hash from the current chain and not
the canonical chain.
This commit is contained in:
Jeffrey Wilcke
2015-10-21 02:31:46 +02:00
parent 796952a49a
commit 80f26086ee
3 changed files with 10 additions and 10 deletions

View File

@ -39,7 +39,7 @@ type Environment interface {
// The block number this VM is invoken on
BlockNumber() *big.Int
// The n'th hash ago from this block number
GetHash(n uint64) common.Hash
GetHash(uint64) common.Hash
// The handler's address
Coinbase() common.Address
// The current time (block time)

View File

@ -59,8 +59,10 @@ func (self *VMEnv) SetDepth(i int) { self.depth = i }
func (self *VMEnv) VmType() vm.Type { return self.typ }
func (self *VMEnv) SetVmType(t vm.Type) { self.typ = t }
func (self *VMEnv) GetHash(n uint64) common.Hash {
if block := self.chain.GetBlockByNumber(n); block != nil {
return block.Hash()
for block := self.chain.GetBlock(self.header.ParentHash); block != nil; block = self.chain.GetBlock(block.ParentHash()) {
if block.NumberU64() == n {
return block.Hash()
}
}
return common.Hash{}