Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions cmd/geth/blocktestcmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ func runBlockTest(ctx *cli.Context) {
if err != nil {
utils.Fatalf("%v", err)
}
defer ethereum.Stop()
if rpc {
fmt.Println("Block Test post state validated, starting RPC interface.")
startEth(ctx, ethereum)
Expand All @@ -106,32 +105,27 @@ func runOneBlockTest(ctx *cli.Context, test *tests.BlockTest) (*eth.Ethereum, er
cfg.MaxPeers = 0 // disable network
cfg.Shh = false // disable whisper
cfg.NAT = nil // disable port mapping

ethereum, err := eth.New(cfg)
if err != nil {
return nil, err
}

// import the genesis block
ethereum.ResetWithGenesisBlock(test.Genesis)

// import pre accounts
_, err = test.InsertPreState(ethereum)
if err != nil {
return ethereum, fmt.Errorf("InsertPreState: %v", err)
}

cm := ethereum.ChainManager()

validBlocks, err := test.TryBlocksInsert(cm)
if err != nil {
return ethereum, fmt.Errorf("Block Test load error: %v", err)
}

newDB := cm.State()
if err := test.ValidatePostState(newDB); err != nil {
return ethereum, fmt.Errorf("post state validation failed: %v", err)
}

return ethereum, test.ValidateImportedHeaders(cm, validBlocks)
}
1 change: 1 addition & 0 deletions core/chain_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ func (bc *ChainManager) ResetWithGenesisBlock(genesis *types.Block) {
if err := WriteBlock(bc.chainDb, genesis); err != nil {
glog.Fatalf("failed to write genesis block: %v", err)
}
bc.genesisBlock = genesis
bc.insert(bc.genesisBlock)
bc.currentBlock = bc.genesisBlock
bc.setTotalDifficulty(genesis.Difficulty())
Expand Down
48 changes: 23 additions & 25 deletions rpc/api/eth.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,22 +210,19 @@ func (self *ethApi) GetTransactionCount(req *shared.Request) (interface{}, error
}

count := self.xeth.AtStateNum(args.BlockNumber).TxCountAt(args.Address)
return newHexNum(big.NewInt(int64(count)).Bytes()), nil
return fmt.Sprintf("%#x", count), nil
}

func (self *ethApi) GetBlockTransactionCountByHash(req *shared.Request) (interface{}, error) {
args := new(HashArgs)
if err := self.codec.Decode(req.Params, &args); err != nil {
return nil, shared.NewDecodeParamError(err.Error())
}

raw := self.xeth.EthBlockByHash(args.Hash)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false)
block := self.xeth.EthBlockByHash(args.Hash)
if block == nil {
return nil, nil
} else {
return newHexNum(big.NewInt(int64(len(block.Transactions))).Bytes()), nil
}
return fmt.Sprintf("%#x", len(block.Transactions())), nil
}

func (self *ethApi) GetBlockTransactionCountByNumber(req *shared.Request) (interface{}, error) {
Expand All @@ -234,13 +231,11 @@ func (self *ethApi) GetBlockTransactionCountByNumber(req *shared.Request) (inter
return nil, shared.NewDecodeParamError(err.Error())
}

raw := self.xeth.EthBlockByNumber(args.BlockNumber)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false)
block := self.xeth.EthBlockByNumber(args.BlockNumber)
if block == nil {
return nil, nil
} else {
return newHexNum(big.NewInt(int64(len(block.Transactions))).Bytes()), nil
}
return fmt.Sprintf("%#x", len(block.Transactions())), nil
}

func (self *ethApi) GetUncleCountByBlockHash(req *shared.Request) (interface{}, error) {
Expand All @@ -249,12 +244,11 @@ func (self *ethApi) GetUncleCountByBlockHash(req *shared.Request) (interface{},
return nil, shared.NewDecodeParamError(err.Error())
}

raw := self.xeth.EthBlockByHash(args.Hash)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false)
block := self.xeth.EthBlockByHash(args.Hash)
if block == nil {
return nil, nil
}
return newHexNum(big.NewInt(int64(len(block.Uncles))).Bytes()), nil
return fmt.Sprintf("%#x", len(block.Uncles())), nil
}

func (self *ethApi) GetUncleCountByBlockNumber(req *shared.Request) (interface{}, error) {
Expand All @@ -263,12 +257,11 @@ func (self *ethApi) GetUncleCountByBlockNumber(req *shared.Request) (interface{}
return nil, shared.NewDecodeParamError(err.Error())
}

raw := self.xeth.EthBlockByNumber(args.BlockNumber)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false)
block := self.xeth.EthBlockByNumber(args.BlockNumber)
if block == nil {
return nil, nil
}
return newHexNum(big.NewInt(int64(len(block.Uncles))).Bytes()), nil
return fmt.Sprintf("%#x", len(block.Uncles())), nil
}

func (self *ethApi) GetData(req *shared.Request) (interface{}, error) {
Expand Down Expand Up @@ -377,8 +370,10 @@ func (self *ethApi) GetBlockByHash(req *shared.Request) (interface{}, error) {
if err := self.codec.Decode(req.Params, &args); err != nil {
return nil, shared.NewDecodeParamError(err.Error())
}

block := self.xeth.EthBlockByHash(args.BlockHash)
if block == nil {
return nil, nil
}
return NewBlockRes(block, self.xeth.Td(block.Hash()), args.IncludeTxs), nil
}

Expand All @@ -389,6 +384,9 @@ func (self *ethApi) GetBlockByNumber(req *shared.Request) (interface{}, error) {
}

block := self.xeth.EthBlockByNumber(args.BlockNumber)
if block == nil {
return nil, nil
}
return NewBlockRes(block, self.xeth.Td(block.Hash()), args.IncludeTxs), nil
}

Expand Down Expand Up @@ -419,10 +417,10 @@ func (self *ethApi) GetTransactionByBlockHashAndIndex(req *shared.Request) (inte
}

raw := self.xeth.EthBlockByHash(args.Hash)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true)
if block == nil {
if raw == nil {
return nil, nil
}
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true)
if args.Index >= int64(len(block.Transactions)) || args.Index < 0 {
return nil, nil
} else {
Expand All @@ -437,10 +435,10 @@ func (self *ethApi) GetTransactionByBlockNumberAndIndex(req *shared.Request) (in
}

raw := self.xeth.EthBlockByNumber(args.BlockNumber)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true)
if block == nil {
if raw == nil {
return nil, nil
}
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true)
if args.Index >= int64(len(block.Transactions)) || args.Index < 0 {
// return NewValidationError("Index", "does not exist")
return nil, nil
Expand All @@ -455,10 +453,10 @@ func (self *ethApi) GetUncleByBlockHashAndIndex(req *shared.Request) (interface{
}

raw := self.xeth.EthBlockByHash(args.Hash)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false)
if block == nil {
if raw == nil {
return nil, nil
}
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false)
if args.Index >= int64(len(block.Uncles)) || args.Index < 0 {
// return NewValidationError("Index", "does not exist")
return nil, nil
Expand All @@ -473,10 +471,10 @@ func (self *ethApi) GetUncleByBlockNumberAndIndex(req *shared.Request) (interfac
}

raw := self.xeth.EthBlockByNumber(args.BlockNumber)
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true)
if block == nil {
if raw == nil {
return nil, nil
}
block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true)
if args.Index >= int64(len(block.Uncles)) || args.Index < 0 {
return nil, nil
} else {
Expand Down