aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-05-27 19:32:37 +0800
committerobscuren <geffobscura@gmail.com>2014-05-27 19:32:37 +0800
commit006c757a039eb5ad1b86363d2b87786f5354021e (patch)
tree2fc90d2baeaa0cf7ad84a030b52dcf2b39d95f87
parent4eb1771e67ee2c66d5fb86c2b5961d84e40f7dd0 (diff)
parentc1b09d639cc922c7aa322ac56cc4f400d76431b4 (diff)
downloadgo-tangerine-006c757a039eb5ad1b86363d2b87786f5354021e.tar.gz
go-tangerine-006c757a039eb5ad1b86363d2b87786f5354021e.tar.zst
go-tangerine-006c757a039eb5ad1b86363d2b87786f5354021e.zip
Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop
-rw-r--r--ethpub/types.go39
1 files changed, 31 insertions, 8 deletions
diff --git a/ethpub/types.go b/ethpub/types.go
index e8a2164a7..348ae3f25 100644
--- a/ethpub/types.go
+++ b/ethpub/types.go
@@ -2,16 +2,20 @@ package ethpub
import (
"encoding/hex"
+ "encoding/json"
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethutil"
+ _ "log"
"strings"
)
// Block interface exposed to QML
type PBlock struct {
- ref *ethchain.Block
- Number int `json:"number"`
- Hash string `json:"hash"`
+ ref *ethchain.Block
+ Number int `json:"number"`
+ Hash string `json:"hash"`
+ Transactions string `json:"transactions"`
+ Time int64 `json:"time"`
}
// Creates a new QML Block from a chain block
@@ -20,7 +24,17 @@ func NewPBlock(block *ethchain.Block) *PBlock {
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 {
@@ -43,16 +57,25 @@ func (self *PBlock) GetTransaction(hash string) *PTx {
type PTx struct {
ref *ethchain.Transaction
- Value, Hash, Address string
- Contract bool
+ Value string `json:"value"`
+ 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 {
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
- 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 {