aboutsummaryrefslogtreecommitdiffstats
path: root/core/genesis.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-12-23 20:48:44 +0800
committerobscuren <geffobscura@gmail.com>2014-12-23 20:48:44 +0800
commit4cd79d8ddd7608d60344b13fe4bda7315429d1d9 (patch)
tree0d1abaa9ef5c302c1ef51e8e8dbd94e9e696f28a /core/genesis.go
parent4b52cd512d3c54451e680fcc6c3d67d059065bec (diff)
downloadgo-tangerine-4cd79d8ddd7608d60344b13fe4bda7315429d1d9.tar
go-tangerine-4cd79d8ddd7608d60344b13fe4bda7315429d1d9.tar.gz
go-tangerine-4cd79d8ddd7608d60344b13fe4bda7315429d1d9.tar.bz2
go-tangerine-4cd79d8ddd7608d60344b13fe4bda7315429d1d9.tar.lz
go-tangerine-4cd79d8ddd7608d60344b13fe4bda7315429d1d9.tar.xz
go-tangerine-4cd79d8ddd7608d60344b13fe4bda7315429d1d9.tar.zst
go-tangerine-4cd79d8ddd7608d60344b13fe4bda7315429d1d9.zip
Refactored block & Transaction
* Includes new rlp decoder
Diffstat (limited to 'core/genesis.go')
-rw-r--r--core/genesis.go65
1 files changed, 33 insertions, 32 deletions
diff --git a/core/genesis.go b/core/genesis.go
index 707154759..51afa314e 100644
--- a/core/genesis.go
+++ b/core/genesis.go
@@ -3,8 +3,10 @@ package core
import (
"math/big"
+ "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/state"
)
/*
@@ -17,36 +19,35 @@ var ZeroHash512 = make([]byte, 64)
var EmptyShaList = crypto.Sha3(ethutil.Encode([]interface{}{}))
var EmptyListRoot = crypto.Sha3(ethutil.Encode(""))
-var GenesisHeader = []interface{}{
- // Previous hash (none)
- ZeroHash256,
- // Empty uncles
- EmptyShaList,
- // Coinbase
- ZeroHash160,
- // Root state
- EmptyShaList,
- // tx root
- EmptyListRoot,
- // receipt root
- EmptyListRoot,
- // bloom
- ZeroHash512,
- // Difficulty
- //ethutil.BigPow(2, 22),
- big.NewInt(131072),
- // Number
- ethutil.Big0,
- // Block upper gas bound
- big.NewInt(1000000),
- // Block gas used
- ethutil.Big0,
- // Time
- ethutil.Big0,
- // Extra
- nil,
- // Nonce
- crypto.Sha3(big.NewInt(42).Bytes()),
-}
+func GenesisBlock() *types.Block {
+ genesis := types.NewBlock(ZeroHash256, ZeroHash160, EmptyListRoot, big.NewInt(131072), crypto.Sha3(big.NewInt(42).Bytes()), "")
+ genesis.Header().Number = ethutil.Big0
+ genesis.Header().GasLimit = big.NewInt(1000000)
+ genesis.Header().GasUsed = ethutil.Big0
+ genesis.Header().Time = 0
+
+ genesis.SetUncles([]*types.Header{})
+ genesis.SetTransactions(types.Transactions{})
+ genesis.SetReceipts(types.Receipts{})
-var Genesis = []interface{}{GenesisHeader, []interface{}{}, []interface{}{}}
+ statedb := state.New(genesis.Trie())
+ for _, addr := range []string{
+ "51ba59315b3a95761d0863b05ccc7a7f54703d99",
+ "e4157b34ea9615cfbde6b4fda419828124b70c78",
+ "b9c015918bdaba24b4ff057a92a3873d6eb201be",
+ "6c386a4b26f73c802f34673f7248bb118f97424a",
+ "cd2a3d9f938e13cd947ec05abc7fe734df8dd826",
+ "2ef47100e0787b915105fd5e3f4ff6752079d5cb",
+ "e6716f9544a56c530d868e4bfbacb172315bdead",
+ "1a26338f0d905e295fccb71fa9ea849ffa12aaf4",
+ } {
+ codedAddr := ethutil.Hex2Bytes(addr)
+ account := statedb.GetAccount(codedAddr)
+ account.SetBalance(ethutil.Big("1606938044258990275541962092341162602522202993782792835301376")) //ethutil.BigPow(2, 200)
+ statedb.UpdateStateObject(account)
+ }
+ statedb.Sync()
+ genesis.Header().Root = statedb.Root()
+
+ return genesis
+}