Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop

This commit is contained in:
obscuren 2014-05-27 13:32:37 +02:00
commit 006c757a03
1 changed files with 31 additions and 8 deletions

View File

@ -2,16 +2,20 @@ package ethpub
import ( import (
"encoding/hex" "encoding/hex"
"encoding/json"
"github.com/ethereum/eth-go/ethchain" "github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethutil" "github.com/ethereum/eth-go/ethutil"
_ "log"
"strings" "strings"
) )
// Block interface exposed to QML // Block interface exposed to QML
type PBlock struct { type PBlock struct {
ref *ethchain.Block ref *ethchain.Block
Number int `json:"number"` Number int `json:"number"`
Hash string `json:"hash"` Hash string `json:"hash"`
Transactions string `json:"transactions"`
Time int64 `json:"time"`
} }
// Creates a new QML Block from a chain block // Creates a new QML Block from a chain block
@ -20,7 +24,17 @@ func NewPBlock(block *ethchain.Block) *PBlock {
return nil return nil
} }
return &PBlock{ref: block, Number: int(block.Number.Uint64()), Hash: ethutil.Hex(block.Hash())} var ptxs []PTx
for _, tx := range block.Transactions() {
ptxs = append(ptxs, *NewPTx(tx))
}
txJson, err := json.Marshal(ptxs)
if err != nil {
return nil
}
return &PBlock{ref: block, Number: int(block.Number.Uint64()), Hash: ethutil.Hex(block.Hash()), Transactions: string(txJson), Time: block.Time}
} }
func (self *PBlock) ToString() string { func (self *PBlock) ToString() string {
@ -43,16 +57,25 @@ func (self *PBlock) GetTransaction(hash string) *PTx {
type PTx struct { type PTx struct {
ref *ethchain.Transaction ref *ethchain.Transaction
Value, Hash, Address string Value string `json:"value"`
Contract bool Gas string `json:"gas"`
GasPrice string `json:"gasPrice"`
Hash string `json:"hash"`
Address string `json:"address"`
Sender string `json:"sender"`
Data string `json:"data"`
Contract bool `json:"isContract"`
} }
func NewPTx(tx *ethchain.Transaction) *PTx { func NewPTx(tx *ethchain.Transaction) *PTx {
hash := hex.EncodeToString(tx.Hash()) hash := hex.EncodeToString(tx.Hash())
sender := hex.EncodeToString(tx.Recipient) receiver := hex.EncodeToString(tx.Recipient)
sender := hex.EncodeToString(tx.Sender())
data := strings.Join(ethchain.Disassemble(tx.Data), "\n")
isContract := len(tx.Data) > 0 isContract := len(tx.Data) > 0
return &PTx{ref: tx, Hash: hash, Value: ethutil.CurrencyToString(tx.Value), Address: sender, Contract: isContract} return &PTx{ref: tx, Hash: hash, Value: ethutil.CurrencyToString(tx.Value), Address: receiver, Contract: isContract, Gas: tx.Gas.String(), GasPrice: tx.GasPrice.String(), Data: data, Sender: sender}
} }
func (self *PTx) ToString() string { func (self *PTx) ToString() string {