internal Tx endpoint successfully fetching internal tx data

This commit is contained in:
Dustin Brickwood 2018-08-13 12:05:31 -04:00
parent 32f7862540
commit 68f829f12a
6 changed files with 70 additions and 59 deletions

View file

@ -372,7 +372,7 @@ func InsertTx(sqldb *sql.DB, txData stypes.ShyftTxEntryPretty) {
//InsertInternalTx writes internal tx to Postgres Db //InsertInternalTx writes internal tx to Postgres Db
func InsertInternalTx(sqldb *sql.DB, i stypes.InteralWrite) { func InsertInternalTx(sqldb *sql.DB, i stypes.InteralWrite) {
var returnValue string var returnValue string
sqlStatement := `INSERT INTO internaltxs(type, txhash, from_addr, to_addr, amount, gas, gasUsed, time, input, output) VALUES(($1), ($2), ($3), ($4), ($5), ($6), ($7), ($8), ($9), ($10)) RETURNING txHash` sqlStatement := `INSERT INTO internaltxs(action, txhash, from_addr, to_addr, amount, gas, gasUsed, time, input, output) VALUES(($1), ($2), ($3), ($4), ($5), ($6), ($7), ($8), ($9), ($10)) RETURNING txHash`
qerr := sqldb.QueryRow(sqlStatement, i.Action, strings.ToLower(i.Hash), strings.ToLower(i.From), strings.ToLower(i.To), i.Value, i.Gas, i.GasUsed, i.Time, i.Input, i.Output).Scan(&returnValue) qerr := sqldb.QueryRow(sqlStatement, i.Action, strings.ToLower(i.Hash), strings.ToLower(i.From), strings.ToLower(i.To), i.Value, i.Gas, i.GasUsed, i.Time, i.Input, i.Output).Scan(&returnValue)
if qerr != nil { if qerr != nil {
fmt.Println(qerr) fmt.Println(qerr)

View file

@ -429,18 +429,27 @@ func SGetAllInternalTransactions(sqldb *sql.DB) string {
//GetInternalTransaction fn returns single tx //GetInternalTransaction fn returns single tx
func SGetInternalTransaction(sqldb *sql.DB, txHash string) string { func SGetInternalTransaction(sqldb *sql.DB, txHash string) string {
var arr stypes.InternalArray
var internaltx string
sqlStatement := `SELECT * FROM internaltxs WHERE txhash=$1;` sqlStatement := `SELECT * FROM internaltxs WHERE txhash=$1;`
row := sqldb.QueryRow(sqlStatement, txHash) rows, err := sqldb.Query(sqlStatement, txHash)
if err != nil {
fmt.Println("err")
}
defer rows.Close()
for rows.Next() {
var txhash, action, to_addr, from_addr, amount, input, output string var txhash, action, to_addr, from_addr, amount, input, output string
var id int var id int
var gas, gasUsed uint64 var gas, gasUsed uint64
var age string var age string
row.Scan( err = rows.Scan(
&id, &txhash, &action, &to_addr, &from_addr, &amount, &gas, &gasUsed, &age, &input, &output, &id, &txhash, &action, &to_addr, &from_addr, &amount, &gas, &gasUsed, &age, &input, &output,
) )
internaltx := stypes.InteralWrite{ arr.InternalEntry = append(arr.InternalEntry, stypes.InteralWrite{
ID: id, ID: id,
Hash: txhash, Hash: txhash,
Action: action, Action: action,
@ -452,8 +461,11 @@ func SGetInternalTransaction(sqldb *sql.DB, txHash string) string {
Time: age, Time: age,
Input: input, Input: input,
Output: output, Output: output,
} })
json, _ := json.Marshal(internaltx)
return string(json) tx, _ := json.Marshal(arr.InternalEntry)
newtx := string(tx)
internaltx = newtx
}
return internaltx
} }

View file

@ -2,7 +2,6 @@ package eth
import ( import (
"context" "context"
"fmt"
"github.com/ShyftNetwork/go-empyrean/common" "github.com/ShyftNetwork/go-empyrean/common"
"github.com/ShyftNetwork/go-empyrean/params" "github.com/ShyftNetwork/go-empyrean/params"

View file

@ -1,5 +1,4 @@
\connect \connect shyftdb;
shyftdb;
DROP TABLE internalTxs; DROP TABLE internalTxs;
DROP TABLE txs; DROP TABLE txs;
DROP TABLE blocks; DROP TABLE blocks;

View file

@ -195,36 +195,37 @@ func GetRecentBlock(w http.ResponseWriter, r *http.Request) {
} }
//GetInternalTransactions gets internal txs //GetInternalTransactions gets internal txs
func GetInternalTransactions(w http.ResponseWriter, r *http.Request) { func GetInternalTransactionsByHash(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r) sqldb, err := core.DBConnection()
address := vars["address"]
// mostRecentBlock := core.SGetRecentBlock(sqldb) vars := mux.Vars(r)
// if err != nil { txHash := vars["txHash"]
// http.Error(w, err.Error(), 500)
// return internalTxs := core.SGetInternalTransaction(sqldb, txHash)
// } if err != nil {
http.Error(w, err.Error(), 500)
return
}
w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.Header().Set("Content-Type", "application/json; charset=UTF-8")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
fmt.Fprintln(w, "Get InternalTransactions", address) fmt.Fprintln(w, internalTxs)
} }
//GetInternalTransactionsHash gets internal txs hash //GetInternalTransactionsHash gets internal txs hash
func GetInternalTransactionsHash(w http.ResponseWriter, r *http.Request) { func GetInternalTransactions(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r) sqldb, err := core.DBConnection()
transactionHash := vars["transaction_hash"]
//mostRecentBlock := core.SGetRecentBlock(sqldb) internalTxs := core.SGetAllInternalTransactions(sqldb)
// if err != nil { if err != nil {
// http.Error(w, err.Error(), 500) http.Error(w, err.Error(), 500)
// return return
// } }
w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.Header().Set("Content-Type", "application/json; charset=UTF-8")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
fmt.Fprintln(w, "Get Internal Transaction Hash", transactionHash) fmt.Fprintln(w, internalTxs)
} }
func BroadcastTx(w http.ResponseWriter, r *http.Request) { func BroadcastTx(w http.ResponseWriter, r *http.Request) {

View file

@ -78,14 +78,14 @@ var routes = Routes{
Route{ Route{
"GetInternalTransactions", "GetInternalTransactions",
"GET", "GET",
"/api/get_internal_transactions/{address}", "/api/get_internal_transactions/",
GetInternalTransactions, GetInternalTransactions,
}, },
Route{ Route{
"GetInternalTransactionsHash", "GetInternalTransactionsByHash",
"GET", "GET",
"/api/get_internal_transactions_hash/{transactions_hash}", "/api/get_internal_transactions/{txHash}",
GetInternalTransactionsHash, GetInternalTransactionsByHash,
}, },
Route{ Route{
"BroadcastTx", "BroadcastTx",