@ -26,7 +26,6 @@ import (
"github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/pow"
"github.com/ethereum/go-ethereum/pow"
)
)
@ -35,16 +34,8 @@ import (
* /
* /
// MakeChainConfig returns a new ChainConfig with the ethereum default chain settings.
// MakeChainConfig returns a new ChainConfig with the ethereum default chain settings.
func MakeChainConfig ( testnet bool ) * ChainConfig {
func MakeChainConfig ( ) * ChainConfig {
homesteadBlock := params . MainNetHomesteadBlock
return & ChainConfig { HomesteadBlock : big . NewInt ( 0 ) }
// set a different default homestead block for the testnet
if testnet {
homesteadBlock = params . TestNetHomesteadBlock
}
return & ChainConfig {
HomesteadBlock : homesteadBlock ,
}
}
}
// FakePow is a non-validating proof of work implementation.
// FakePow is a non-validating proof of work implementation.
@ -110,7 +101,7 @@ func (b *BlockGen) AddTx(tx *types.Transaction) {
b . SetCoinbase ( common . Address { } )
b . SetCoinbase ( common . Address { } )
}
}
b . statedb . StartRecord ( tx . Hash ( ) , common . Hash { } , len ( b . txs ) )
b . statedb . StartRecord ( tx . Hash ( ) , common . Hash { } , len ( b . txs ) )
receipt , _ , _ , err := ApplyTransaction ( MakeChainConfig ( true ) , nil , b . gasPool , b . statedb , b . header , tx , b . header . GasUsed , vm . Config { } )
receipt , _ , _ , err := ApplyTransaction ( MakeChainConfig ( ) , nil , b . gasPool , b . statedb , b . header , tx , b . header . GasUsed , vm . Config { } )
if err != nil {
if err != nil {
panic ( err )
panic ( err )
}
}
@ -167,7 +158,7 @@ func (b *BlockGen) OffsetTime(seconds int64) {
if b . header . Time . Cmp ( b . parent . Header ( ) . Time ) <= 0 {
if b . header . Time . Cmp ( b . parent . Header ( ) . Time ) <= 0 {
panic ( "block time out of range" )
panic ( "block time out of range" )
}
}
b . header . Difficulty = CalcDifficulty ( MakeChainConfig ( true ) , b . header . Time . Uint64 ( ) , b . parent . Time ( ) . Uint64 ( ) , b . parent . Number ( ) , b . parent . Difficulty ( ) )
b . header . Difficulty = CalcDifficulty ( MakeChainConfig ( ) , b . header . Time . Uint64 ( ) , b . parent . Time ( ) . Uint64 ( ) , b . parent . Number ( ) , b . parent . Difficulty ( ) )
}
}
// GenerateChain creates a chain of n blocks. The first block's
// GenerateChain creates a chain of n blocks. The first block's
@ -222,7 +213,7 @@ func makeHeader(parent *types.Block, state *state.StateDB) *types.Header {
Root : state . IntermediateRoot ( ) ,
Root : state . IntermediateRoot ( ) ,
ParentHash : parent . Hash ( ) ,
ParentHash : parent . Hash ( ) ,
Coinbase : parent . Coinbase ( ) ,
Coinbase : parent . Coinbase ( ) ,
Difficulty : CalcDifficulty ( MakeChainConfig ( true ) , time . Uint64 ( ) , new ( big . Int ) . Sub ( time , big . NewInt ( 10 ) ) . Uint64 ( ) , parent . Number ( ) , parent . Difficulty ( ) ) ,
Difficulty : CalcDifficulty ( MakeChainConfig ( ) , time . Uint64 ( ) , new ( big . Int ) . Sub ( time , big . NewInt ( 10 ) ) . Uint64 ( ) , parent . Number ( ) , parent . Difficulty ( ) ) ,
GasLimit : CalcGasLimit ( parent ) ,
GasLimit : CalcGasLimit ( parent ) ,
GasUsed : new ( big . Int ) ,
GasUsed : new ( big . Int ) ,
Number : new ( big . Int ) . Add ( parent . Number ( ) , common . Big1 ) ,
Number : new ( big . Int ) . Add ( parent . Number ( ) , common . Big1 ) ,
@ -241,7 +232,7 @@ func newCanonical(n int, full bool) (ethdb.Database, *BlockChain, error) {
// Initialize a fresh chain with only a genesis block
// Initialize a fresh chain with only a genesis block
genesis , _ := WriteTestNetGenesisBlock ( db )
genesis , _ := WriteTestNetGenesisBlock ( db )
blockchain , _ := NewBlockChain ( db , MakeChainConfig ( false ) , FakePow { } , evmux )
blockchain , _ := NewBlockChain ( db , MakeChainConfig ( ) , FakePow { } , evmux )
// Create and inject the requested chain
// Create and inject the requested chain
if n == 0 {
if n == 0 {
return db , blockchain , nil
return db , blockchain , nil