Browse Source

Remove Txtable

docs
Aditya Kulkarni 5 years ago
parent
commit
b89062cd53
  1. 24
      cmd/ingest/main.go
  2. 64
      storage/sqlite3.go

24
cmd/ingest/main.go

@ -265,28 +265,4 @@ func handleBlock(db *sql.DB, block *parser.Block) {
entry.Info("new block")
}
for index, tx := range block.Transactions() {
txHash := hex.EncodeToString(tx.GetEncodableHash())
err = storage.StoreTransaction(
db,
block.GetHeight(),
blockHash,
index,
txHash,
tx.Bytes(),
)
entry = log.WithFields(logrus.Fields{
"block_height": block.GetHeight(),
"block_hash": hex.EncodeToString(block.GetDisplayHash()),
"tx_index": index,
"tx_size": len(tx.Bytes()),
"sapling": tx.HasSaplingTransactions(),
"error": err,
})
if err != nil {
entry.Error("storing tx")
} else {
entry.Debug("storing tx")
}
}
}

64
storage/sqlite3.go

@ -35,22 +35,6 @@ func CreateTables(conn *sql.DB) error {
);
`
_, err = conn.Exec(blockTable)
if err != nil {
return err
}
txTable := `
CREATE TABLE IF NOT EXISTS transactions (
block_height INTEGER,
block_hash TEXT,
tx_index INTEGER,
tx_hash TEXT,
tx_bytes BLOB,
FOREIGN KEY (block_height) REFERENCES blocks (block_height),
FOREIGN KEY (block_hash) REFERENCES blocks (block_hash)
);
`
_, err = conn.Exec(txTable)
return err
}
@ -178,51 +162,3 @@ func setCurrentHeight(tx *sql.Tx, height int) error {
}
return nil
}
func StoreTransaction(db *sql.DB, blockHeight int, blockHash string, txIndex int, txHash string, txBytes []byte) error {
insertTx := "INSERT INTO transactions (block_height, block_hash, tx_index, tx_hash, tx_bytes) VALUES (?,?,?,?,?)"
_, err := db.Exec(insertTx, blockHeight, blockHash, txIndex, txHash, txBytes)
if err != nil {
return errors.Wrap(err, fmt.Sprintf("storing tx %x", txHash))
}
return nil
}
// GetTxByHash retrieves a full transaction by its little-endian hash.
func GetTxByHash(ctx context.Context, db *sql.DB, txHash string) ([]byte, int, error) {
var txBytes []byte // avoid a copy with *RawBytes
var height int
query := "SELECT tx_bytes, block_height from transactions WHERE tx_hash = ?"
err := db.QueryRowContext(ctx, query, txHash).Scan(&txBytes, &height)
if err != nil {
return nil, 0, errors.Wrap(err, fmt.Sprintf("getting tx with hash %s", txHash))
}
return txBytes, height, nil
}
// GetTxByHeightAndIndex retrieves a full transaction by its parent block height and index
func GetTxByHeightAndIndex(ctx context.Context, db *sql.DB, blockHeight, txIndex int) ([]byte, int, error) {
var txBytes []byte // avoid a copy with *RawBytes
var height int
query := "SELECT tx_bytes, block_height from transactions WHERE (block_height = ? AND tx_index = ?)"
err := db.QueryRowContext(ctx, query, blockHeight, txIndex).Scan(&txBytes, &height)
if err != nil {
return nil, 0, errors.Wrap(err, fmt.Sprintf("getting tx (%d, %d)", blockHeight, txIndex))
}
return txBytes, height, nil
}
// GetTxByHashAndIndex retrieves a full transaction by its parent block hash and index
func GetTxByHashAndIndex(ctx context.Context, db *sql.DB, blockHash string, txIndex int) ([]byte, int, error) {
var txBytes []byte // avoid a copy with *RawBytes
var height int
query := "SELECT tx_bytes, block_height from transactions WHERE (block_hash = ? AND tx_index = ?)"
err := db.QueryRowContext(ctx, query, blockHash, txIndex).Scan(&txBytes, &height)
if err != nil {
return nil, 0, errors.Wrap(err, fmt.Sprintf("getting tx (%x, %d)", blockHash, txIndex))
}
return txBytes, height, nil
}

Loading…
Cancel
Save