fixed existing endpoints

This commit is contained in:
Dustin Brickwood 2018-05-11 17:07:00 -04:00
parent 1e2df20db6
commit 00b02b0524
3 changed files with 55 additions and 30 deletions

View file

@ -100,13 +100,15 @@ func GetAllAccounts(w http.ResponseWriter, r *http.Request) {
//GetBlock returns block json //GetBlock returns block json
func GetBlock(w http.ResponseWriter, r *http.Request) { func GetBlock(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
blockNumber := vars["blockNumber"]
connStr := "user=postgres dbname=shyftdb sslmode=disable" connStr := "user=postgres dbname=shyftdb sslmode=disable"
blockExplorerDb, err := sql.Open("postgres", connStr) blockExplorerDb, err := sql.Open("postgres", connStr)
if err != nil { if err != nil {
return return
} }
getBlockResponse := shyftdb.GetBlock(blockExplorerDb) getBlockResponse := shyftdb.GetBlock(blockExplorerDb, blockNumber)
if err != nil { if err != nil {
http.Error(w, err.Error(), 500) http.Error(w, err.Error(), 500)

View file

@ -36,7 +36,7 @@ var routes = Routes{
Route{ Route{
"GetBlock", "GetBlock",
"GET", "GET",
"/api/get_block", "/api/get_block/{blockNumber}",
GetBlock, GetBlock,
}, },
Route{ Route{

View file

@ -70,9 +70,11 @@ type ShyftTxEntryPretty struct {
To string To string
From string From string
BlockHash string BlockHash string
BlockNumber string
Amount uint64 Amount uint64
GasPrice uint64 GasPrice uint64
Gas uint64 Gas uint64
Cost uint64
Nonce uint64 Nonce uint64
Data []byte Data []byte
} }
@ -355,14 +357,14 @@ func GetAllBlocks(sqldb *sql.DB) string {
var blockArr string var blockArr string
rows, err := sqldb.Query(` rows, err := sqldb.Query(`
SELECT SELECT
number,
hash, hash,
coinbase, coinbase,
gasused, gasused,
gaslimit, gaslimit,
txcount, txcount,
unclecount, unclecount,
age age,
number
FROM blocks`) FROM blocks`)
if err != nil { if err != nil {
fmt.Println("err") fmt.Println("err")
@ -370,7 +372,6 @@ func GetAllBlocks(sqldb *sql.DB) string {
defer rows.Close() defer rows.Close()
for rows.Next() { for rows.Next() {
var num string
var hash string var hash string
var coinbase string var coinbase string
var gasUsed string var gasUsed string
@ -378,9 +379,9 @@ func GetAllBlocks(sqldb *sql.DB) string {
var txCount string var txCount string
var uncleCount string var uncleCount string
var age string var age string
var num string
err = rows.Scan( err = rows.Scan(
&num,
&hash, &hash,
&coinbase, &coinbase,
&gasUsed, &gasUsed,
@ -388,17 +389,18 @@ func GetAllBlocks(sqldb *sql.DB) string {
&txCount, &txCount,
&uncleCount, &uncleCount,
&age, &age,
&num,
) )
arr.Blocks = append(arr.Blocks, SBlock{ arr.Blocks = append(arr.Blocks, SBlock{
Hash: hash, Hash: hash,
Number: num,
Coinbase: coinbase, Coinbase: coinbase,
GasUsed: gasUsed, GasUsed: gasUsed,
GasLimit: gasLimit, GasLimit: gasLimit,
TxCount: txCount, TxCount: txCount,
UncleCount: uncleCount, UncleCount: uncleCount,
Age: age, Age: age,
Number: num,
}) })
blocks, _ := json.Marshal(arr.Blocks) blocks, _ := json.Marshal(arr.Blocks)
@ -410,10 +412,9 @@ func GetAllBlocks(sqldb *sql.DB) string {
//GetBlock queries to send single block info //GetBlock queries to send single block info
//TODO provide blockHash arg passed from handler.go //TODO provide blockHash arg passed from handler.go
func GetBlock(sqldb *sql.DB) string { func GetBlock(sqldb *sql.DB, blockNumber string) string {
sqlStatement := `SELECT * FROM blocks WHERE number=$1;` sqlStatement := `SELECT * FROM blocks WHERE number=$1;`
row := sqldb.QueryRow(sqlStatement, 3) row := sqldb.QueryRow(sqlStatement, blockNumber)
var num string
var hash string var hash string
var coinbase string var coinbase string
var gasUsed string var gasUsed string
@ -421,26 +422,26 @@ func GetBlock(sqldb *sql.DB) string {
var txCount string var txCount string
var uncleCount string var uncleCount string
var age string var age string
var num string
row.Scan( row.Scan(
&num,
&hash, &hash,
&coinbase, &coinbase,
&gasUsed, &gasUsed,
&gasLimit, &gasLimit,
&txCount, &txCount,
&uncleCount, &uncleCount,
&age,) &age,
&num,)
block := SBlock{ block := SBlock{
Hash: hash, Hash: hash,
Number: num,
Coinbase: coinbase, Coinbase: coinbase,
GasUsed: gasUsed, GasUsed: gasUsed,
GasLimit: gasLimit, GasLimit: gasLimit,
TxCount: txCount, TxCount: txCount,
UncleCount: uncleCount, UncleCount: uncleCount,
Age: age, Age: age,
Number: num,
} }
json, _ := json.Marshal(block) json, _ := json.Marshal(block)
return string(json) return string(json)
@ -456,9 +457,11 @@ func GetAllTransactions(sqldb *sql.DB) string {
to_addr, to_addr,
from_addr, from_addr,
blockhash, blockhash,
blocknumber,
amount, amount,
gasprice, gasprice,
gas, gas,
txfee,
nonce nonce
FROM txs`) FROM txs`)
if err != nil { if err != nil {
@ -470,18 +473,22 @@ func GetAllTransactions(sqldb *sql.DB) string {
var to_addr string var to_addr string
var from_addr string var from_addr string
var blockhash string var blockhash string
var blocknumber string
var amount uint64 var amount uint64
var gasprice uint64 var gasprice uint64
var gas uint64 var gas uint64
var txfee uint64
var nonce uint64 var nonce uint64
err = rows.Scan( err = rows.Scan(
&txhash, &txhash,
&to_addr, &to_addr,
&from_addr, &from_addr,
&blockhash, &blockhash,
&blocknumber,
&amount, &amount,
&gasprice, &gasprice,
&gas, &gas,
&txfee,
&nonce, &nonce,
) )
@ -490,9 +497,11 @@ func GetAllTransactions(sqldb *sql.DB) string {
To: to_addr, To: to_addr,
From: from_addr, From: from_addr,
BlockHash: blockhash, BlockHash: blockhash,
BlockNumber: blocknumber,
Amount: amount, Amount: amount,
GasPrice: gasprice, GasPrice: gasprice,
Gas: gas, Gas: gas,
Cost: txfee,
Nonce: nonce, Nonce: nonce,
}) })
@ -507,33 +516,47 @@ func GetAllTransactions(sqldb *sql.DB) string {
func GetTransaction(sqldb *sql.DB) string { func GetTransaction(sqldb *sql.DB) string {
sqlStatement := `SELECT sqlStatement := `SELECT
txhash, txhash,
to_addr, to_addr,
from_addr, from_addr,
blockhash, blockhash,
amount, blocknumber,
gasprice, amount,
gas, gasprice,
nonce gas,
txfee,
nonce
FROM txs WHERE nonce=$1;` FROM txs WHERE nonce=$1;`
row := sqldb.QueryRow(sqlStatement, 1) row := sqldb.QueryRow(sqlStatement, 1)
var txhash string var txhash string
var to_addr string var to_addr string
var from_addr string var from_addr string
var blockhash string var blockhash string
var amount uint64 var blocknumber string
var gasprice uint64 var amount uint64
var gas uint64 var gasprice uint64
var nonce uint64 var gas uint64
row.Scan(&txhash, &to_addr, &from_addr, &blockhash, &amount, &gasprice, &gas, &nonce) var txfee uint64
var nonce uint64
row.Scan(&txhash,
&to_addr,
&from_addr,
&blockhash,
&amount,
&gasprice,
&gas,
&txfee,
&nonce)
tx := ShyftTxEntryPretty{ tx := ShyftTxEntryPretty{
TxHash: txhash, TxHash: txhash,
To: to_addr, To: to_addr,
From: from_addr, From: from_addr,
BlockHash: blockhash, BlockHash: blockhash,
BlockNumber: blocknumber,
Amount: amount, Amount: amount,
GasPrice: gasprice, GasPrice: gasprice,
Gas: gas, Gas: gas,
Cost: txfee,
Nonce: nonce, Nonce: nonce,
} }
json, _ := json.Marshal(tx) json, _ := json.Marshal(tx)