mirror of
https://gitlab.com/pulsechaincom/go-pulse.git
synced 2025-01-15 23:08:19 +00:00
Updated Public Block and Transaction objects with more information
This commit is contained in:
parent
24a6d87c3f
commit
aefcb83419
@ -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
|
||||||
@ -19,8 +23,17 @@ func NewPBlock(block *ethchain.Block) *PBlock {
|
|||||||
if block == nil {
|
if block == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
var ptxs []PTx
|
||||||
|
for _, tx := range block.Transactions() {
|
||||||
|
ptxs = append(ptxs, *NewPTx(tx))
|
||||||
|
}
|
||||||
|
|
||||||
return &PBlock{ref: block, Number: int(block.Number.Uint64()), Hash: ethutil.Hex(block.Hash())}
|
b, 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(b), Time: block.Time}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *PBlock) ToString() string {
|
func (self *PBlock) ToString() string {
|
||||||
@ -43,16 +56,23 @@ 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())
|
||||||
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: hex.EncodeToString(tx.Data), Sender: sender}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *PTx) ToString() string {
|
func (self *PTx) ToString() string {
|
||||||
|
Loading…
Reference in New Issue
Block a user