From 942980609fb8a36873689bd3bd0a15488f327d56 Mon Sep 17 00:00:00 2001 From: obscuren Date: Wed, 18 Mar 2015 11:44:25 +0100 Subject: [PATCH] conversions --- core/types/common.go | 4 ++++ tests/blocktest.go | 9 ++++----- xeth/state.go | 6 +++--- xeth/types.go | 38 +++++++++++++++++++------------------- 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/core/types/common.go b/core/types/common.go index cb57ef053d..ace9c2c4b4 100644 --- a/core/types/common.go +++ b/core/types/common.go @@ -35,3 +35,7 @@ func (b *Bloom) SetBytes(d []byte) { func (b Bloom) Big() *big.Int { return common.Bytes2Big(b[:]) } + +func (b Bloom) Bytes() []byte { + return b[:] +} diff --git a/tests/blocktest.go b/tests/blocktest.go index e4d0010896..44b459c8d6 100644 --- a/tests/blocktest.go +++ b/tests/blocktest.go @@ -13,7 +13,6 @@ import ( "strings" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/state" @@ -99,7 +98,7 @@ func LoadBlockTests(file string) (map[string]*BlockTest, error) { // InsertPreState populates the given database with the genesis // accounts defined by the test. func (t *BlockTest) InsertPreState(db common.Database) error { - statedb := state.New(nil, db) + statedb := state.New(common.Hash{}, db) for addrString, acct := range t.preAccounts { // XXX: is is worth it checking for errors here? //addr, _ := hex.DecodeString(addrString) @@ -120,7 +119,7 @@ func (t *BlockTest) InsertPreState(db common.Database) error { // sync trie to disk statedb.Sync() - if !bytes.Equal(t.Genesis.Root().Bytes(), statedb.Root()) { + if t.Genesis.Root() != statedb.Root() { return errors.New("computed state root does not match genesis block") } return nil @@ -212,12 +211,12 @@ func mustConvertAddress(in string) common.Address { return common.BytesToAddress(out) } -func mustConvertBloom(in string) core.Bloom { +func mustConvertBloom(in string) types.Bloom { out, err := hex.DecodeString(strings.TrimPrefix(in, "0x")) if err != nil { panic(fmt.Errorf("invalid hex: %q", in)) } - return core.BytesToBloom(out) + return types.BytesToBloom(out) } func mustConvertBigInt10(in string) *big.Int { diff --git a/xeth/state.go b/xeth/state.go index 7d9ceab1b6..f645a9cacf 100644 --- a/xeth/state.go +++ b/xeth/state.go @@ -19,7 +19,7 @@ func (self *State) State() *state.StateDB { } func (self *State) Get(addr string) *Object { - return &Object{self.state.GetStateObject(common.FromHex(addr))} + return &Object{self.state.GetStateObject(common.HexToAddress(addr))} } func (self *State) SafeGet(addr string) *Object { @@ -27,9 +27,9 @@ func (self *State) SafeGet(addr string) *Object { } func (self *State) safeGet(addr string) *state.StateObject { - object := self.state.GetStateObject(common.FromHex(addr)) + object := self.state.GetStateObject(common.HexToAddress(addr)) if object == nil { - object = state.NewStateObject(common.FromHex(addr), self.xeth.eth.StateDb()) + object = state.NewStateObject(common.HexToAddress(addr), self.xeth.eth.StateDb()) } return object diff --git a/xeth/types.go b/xeth/types.go index e15305481c..d6d2a11f78 100644 --- a/xeth/types.go +++ b/xeth/types.go @@ -5,10 +5,10 @@ import ( "fmt" "strings" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/state" @@ -59,19 +59,19 @@ func (self *Object) Storage() (storage map[string]string) { type Block struct { //Transactions string `json:"transactions"` ref *types.Block - Size string `json:"size"` - Number int `json:"number"` - Hash string `json:"hash"` + Size string `json:"size"` + Number int `json:"number"` + Hash string `json:"hash"` Transactions *common.List `json:"transactions"` Uncles *common.List `json:"uncles"` - Time int64 `json:"time"` - Coinbase string `json:"coinbase"` - Name string `json:"name"` - GasLimit string `json:"gasLimit"` - GasUsed string `json:"gasUsed"` - PrevHash string `json:"prevHash"` - Bloom string `json:"bloom"` - Raw string `json:"raw"` + Time int64 `json:"time"` + Coinbase string `json:"coinbase"` + Name string `json:"name"` + GasLimit string `json:"gasLimit"` + GasUsed string `json:"gasUsed"` + PrevHash string `json:"prevHash"` + Bloom string `json:"bloom"` + Raw string `json:"raw"` } // Creates a new QML Block from a chain block @@ -95,12 +95,12 @@ func NewBlock(block *types.Block) *Block { return &Block{ ref: block, Size: block.Size().String(), Number: int(block.NumberU64()), GasUsed: block.GasUsed().String(), - GasLimit: block.GasLimit().String(), Hash: toHex(block.Hash()), + GasLimit: block.GasLimit().String(), Hash: toHex(block.Hash().Bytes()), Transactions: txlist, Uncles: ulist, Time: block.Time(), - Coinbase: toHex(block.Coinbase()), - PrevHash: toHex(block.ParentHash()), - Bloom: toHex(block.Bloom()), + Coinbase: toHex(block.Coinbase().Bytes()), + PrevHash: toHex(block.ParentHash().Bytes()), + Bloom: toHex(block.Bloom().Bytes()), Raw: block.String(), } } @@ -114,7 +114,7 @@ func (self *Block) ToString() string { } func (self *Block) GetTransaction(hash string) *Transaction { - tx := self.ref.Transaction(common.FromHex(hash)) + tx := self.ref.Transaction(common.HexToHash(hash)) if tx == nil { return nil } @@ -139,8 +139,8 @@ type Transaction struct { } func NewTx(tx *types.Transaction) *Transaction { - hash := toHex(tx.Hash()) - receiver := toHex(tx.To()) + hash := tx.Hash().Hex() + receiver := tx.To().Hex() if len(receiver) == 0 { receiver = toHex(core.AddressFromMessage(tx)) }