mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 18:02:24 +00:00
Merge pull request #22 from ShyftNetwork/writeGenesis
WriteBlock and GetBlock Function Modification
This commit is contained in:
commit
5c59ac75a1
3 changed files with 85 additions and 24 deletions
|
|
@ -1,6 +1,11 @@
|
|||
CREATE TABLE IF NOT EXISTS blocks (
|
||||
hash text primary key,
|
||||
coinbase text,
|
||||
gasUsed numeric,
|
||||
gasLimit numeric,
|
||||
txCount numeric,
|
||||
uncleCount numeric,
|
||||
age timestamp,
|
||||
number bigint
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import (
|
|||
"math/big"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
|
||||
|
||||
"time"
|
||||
"strconv"
|
||||
"database/sql"
|
||||
|
||||
"log"
|
||||
|
|
@ -20,6 +20,11 @@ type SBlock struct {
|
|||
Hash string
|
||||
Coinbase string
|
||||
Number string
|
||||
GasUsed string
|
||||
GasLimit string
|
||||
TxCount string
|
||||
UncleCount string
|
||||
Age string
|
||||
}
|
||||
|
||||
//blockRes struct
|
||||
|
|
@ -87,8 +92,19 @@ type SendAndReceive struct {
|
|||
func WriteBlock(sqldb *sql.DB, block *types.Block) error {
|
||||
coinbase := block.Header().Coinbase.String()
|
||||
number := block.Header().Number.String()
|
||||
sqlStatement := `INSERT INTO blocks(hash, coinbase, number) VALUES(($1), ($2), ($3)) RETURNING number`
|
||||
qerr := sqldb.QueryRow(sqlStatement, block.Header().Hash().Hex(), coinbase, number).Scan(&number)
|
||||
gasUsed := block.Header().GasUsed
|
||||
gasLimit := block.Header().GasLimit
|
||||
txCount := block.Transactions().Len()
|
||||
uncleCount := len(block.Uncles())
|
||||
|
||||
i, err := strconv.ParseInt(block.Time().String(), 10, 64)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
age := time.Unix(i, 0)
|
||||
|
||||
sqlStatement := `INSERT INTO blocks(hash, coinbase, number, gasUsed, gasLimit, txCount, uncleCount, age) VALUES(($1), ($2), ($3), ($4), ($5), ($6), ($7), ($8)) RETURNING number`
|
||||
qerr := sqldb.QueryRow(sqlStatement, block.Header().Hash().Hex(), coinbase, number, gasUsed, gasLimit, txCount, uncleCount, age).Scan(&number)
|
||||
if qerr != nil {
|
||||
panic(qerr)
|
||||
}
|
||||
|
|
@ -126,7 +142,7 @@ func WriteTransactions(sqldb *sql.DB, tx *types.Transaction, blockHash common.Ha
|
|||
gas := txData.Gas
|
||||
data := txData.Data
|
||||
to := txData.To
|
||||
if(to == nil){
|
||||
if (to == nil){
|
||||
var retNonce string
|
||||
sqlStatement := `INSERT INTO txs(txhash, from_addr, blockhash, amount, gasprice, gas, nonce, data) VALUES(($1), ($2), ($3), ($4), ($5), ($6), ($7), ($8)) RETURNING nonce`
|
||||
qerr := sqldb.QueryRow(sqlStatement, txHash, from, blockHasher, amount, gasPrice, gas, nonce, data).Scan(&retNonce)
|
||||
|
|
@ -317,7 +333,12 @@ func GetAllBlocks(sqldb *sql.DB) string {
|
|||
SELECT
|
||||
number,
|
||||
hash,
|
||||
coinbase
|
||||
coinbase,
|
||||
gasused,
|
||||
gaslimit,
|
||||
txcount,
|
||||
unclecount,
|
||||
age
|
||||
FROM blocks`)
|
||||
if err != nil {
|
||||
fmt.Println("err")
|
||||
|
|
@ -328,16 +349,32 @@ func GetAllBlocks(sqldb *sql.DB) string {
|
|||
var num string
|
||||
var hash string
|
||||
var coinbase string
|
||||
var gasUsed string
|
||||
var gasLimit string
|
||||
var txCount string
|
||||
var uncleCount string
|
||||
var age string
|
||||
|
||||
err = rows.Scan(
|
||||
&num,
|
||||
&hash,
|
||||
&coinbase,
|
||||
&gasUsed,
|
||||
&gasLimit,
|
||||
&txCount,
|
||||
&uncleCount,
|
||||
&age,
|
||||
)
|
||||
|
||||
arr.Blocks = append(arr.Blocks, SBlock{
|
||||
Hash: hash,
|
||||
Number: num,
|
||||
Coinbase: coinbase,
|
||||
GasUsed: gasUsed,
|
||||
GasLimit: gasLimit,
|
||||
TxCount: txCount,
|
||||
UncleCount: uncleCount,
|
||||
Age: age,
|
||||
})
|
||||
|
||||
blocks, _ := json.Marshal(arr.Blocks)
|
||||
|
|
@ -355,12 +392,31 @@ func GetBlock(sqldb *sql.DB) string {
|
|||
var num string
|
||||
var hash string
|
||||
var coinbase string
|
||||
row.Scan(&num, &hash, &coinbase)
|
||||
var gasUsed string
|
||||
var gasLimit string
|
||||
var txCount string
|
||||
var uncleCount string
|
||||
var age string
|
||||
|
||||
row.Scan(
|
||||
&num,
|
||||
&hash,
|
||||
&coinbase,
|
||||
&gasUsed,
|
||||
&gasLimit,
|
||||
&txCount,
|
||||
&uncleCount,
|
||||
&age,)
|
||||
|
||||
block := SBlock{
|
||||
Hash: hash,
|
||||
Number: num,
|
||||
Coinbase: coinbase,
|
||||
GasUsed: gasUsed,
|
||||
GasLimit: gasLimit,
|
||||
TxCount: txCount,
|
||||
UncleCount: uncleCount,
|
||||
Age: age,
|
||||
}
|
||||
json, _ := json.Marshal(block)
|
||||
return string(json)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ var firstAccount = web3.eth.accounts[0]
|
|||
var secondAccount = web3.eth.accounts[1]
|
||||
var thirdAccount = web3.eth.accounts[2]
|
||||
|
||||
for (var i = 0; i < 1; i++) {
|
||||
for (var i = 0; i < 10; i++) {
|
||||
console.log('\t\t' + (i + 1) + ' - Transactions')
|
||||
web3.eth.sendTransaction({
|
||||
from: web3.eth.accounts[1],
|
||||
|
|
@ -11,19 +11,19 @@ for (var i = 0; i < 1; i++) {
|
|||
gas: 50000,
|
||||
gasPrice: 20
|
||||
});
|
||||
// web3.eth.sendTransaction({
|
||||
// from: web3.eth.accounts[1],
|
||||
// to: web3.eth.accounts[2],
|
||||
// value: 291,
|
||||
// gas: 50000,
|
||||
// gasPrice: 20
|
||||
// });
|
||||
//
|
||||
// web3.eth.sendTransaction({
|
||||
// from: web3.eth.accounts[0],
|
||||
// to: web3.eth.accounts[1],
|
||||
// value: 53039,
|
||||
// gas: 50000,
|
||||
// gasPrice: 20
|
||||
// });
|
||||
web3.eth.sendTransaction({
|
||||
from: web3.eth.accounts[0],
|
||||
to: web3.eth.accounts[2],
|
||||
value: 291,
|
||||
gas: 50000,
|
||||
gasPrice: 20
|
||||
});
|
||||
|
||||
web3.eth.sendTransaction({
|
||||
from: web3.eth.accounts[0],
|
||||
to: web3.eth.accounts[1],
|
||||
value: 53039,
|
||||
gas: 50000,
|
||||
gasPrice: 20
|
||||
});
|
||||
}
|
||||
Loading…
Reference in a new issue