mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-07 03:16:45 +01:00
Replace all []*Foo by []Foo in sql db return values
- Implement SlicePtrsToSlice and use it in all `meddler.QueryAll` sql db functions to always return []Foo instead of []*Foo
This commit is contained in:
@@ -106,14 +106,14 @@ func (hdb *HistoryDB) GetBlock(blockNum int64) (*common.Block, error) {
|
||||
}
|
||||
|
||||
// GetBlocks retrieve blocks from the DB, given a range of block numbers defined by from and to
|
||||
func (hdb *HistoryDB) GetBlocks(from, to int64) ([]*common.Block, error) {
|
||||
func (hdb *HistoryDB) GetBlocks(from, to int64) ([]common.Block, error) {
|
||||
var blocks []*common.Block
|
||||
err := meddler.QueryAll(
|
||||
hdb.db, &blocks,
|
||||
"SELECT * FROM block WHERE $1 <= eth_block_num AND eth_block_num < $2;",
|
||||
from, to,
|
||||
)
|
||||
return blocks, err
|
||||
return db.SlicePtrsToSlice(blocks).([]common.Block), err
|
||||
}
|
||||
|
||||
// GetLastBlock retrieve the block with the highest block number from the DB
|
||||
@@ -155,14 +155,14 @@ func (hdb *HistoryDB) addBatches(d meddler.DB, batches []common.Batch) error {
|
||||
}
|
||||
|
||||
// GetBatches retrieve batches from the DB, given a range of batch numbers defined by from and to
|
||||
func (hdb *HistoryDB) GetBatches(from, to common.BatchNum) ([]*common.Batch, error) {
|
||||
func (hdb *HistoryDB) GetBatches(from, to common.BatchNum) ([]common.Batch, error) {
|
||||
var batches []*common.Batch
|
||||
err := meddler.QueryAll(
|
||||
hdb.db, &batches,
|
||||
"SELECT * FROM batch WHERE $1 <= batch_num AND batch_num < $2;",
|
||||
from, to,
|
||||
)
|
||||
return batches, err
|
||||
return db.SlicePtrsToSlice(batches).([]common.Batch), err
|
||||
}
|
||||
|
||||
// GetLastBatchNum returns the BatchNum of the latest forged batch
|
||||
@@ -215,13 +215,13 @@ func (hdb *HistoryDB) addBids(d meddler.DB, bids []common.Bid) error {
|
||||
}
|
||||
|
||||
// GetBids return the bids
|
||||
func (hdb *HistoryDB) GetBids() ([]*common.Bid, error) {
|
||||
func (hdb *HistoryDB) GetBids() ([]common.Bid, error) {
|
||||
var bids []*common.Bid
|
||||
err := meddler.QueryAll(
|
||||
hdb.db, &bids,
|
||||
"SELECT * FROM bid;",
|
||||
)
|
||||
return bids, err
|
||||
return db.SlicePtrsToSlice(bids).([]common.Bid), err
|
||||
}
|
||||
|
||||
// AddCoordinators insert Coordinators into the DB
|
||||
@@ -283,13 +283,13 @@ func (hdb *HistoryDB) UpdateTokenValue(tokenSymbol string, value float64) error
|
||||
}
|
||||
|
||||
// GetTokens returns a list of tokens from the DB
|
||||
func (hdb *HistoryDB) GetTokens() ([]*common.Token, error) {
|
||||
func (hdb *HistoryDB) GetTokens() ([]common.Token, error) {
|
||||
var tokens []*common.Token
|
||||
err := meddler.QueryAll(
|
||||
hdb.db, &tokens,
|
||||
"SELECT * FROM token ORDER BY token_id;",
|
||||
)
|
||||
return tokens, err
|
||||
return db.SlicePtrsToSlice(tokens).([]common.Token), err
|
||||
}
|
||||
|
||||
// GetTokenSymbols returns all the token symbols from the DB
|
||||
@@ -329,13 +329,13 @@ func (hdb *HistoryDB) addAccounts(d meddler.DB, accounts []common.Account) error
|
||||
}
|
||||
|
||||
// GetAccounts returns a list of accounts from the DB
|
||||
func (hdb *HistoryDB) GetAccounts() ([]*common.Account, error) {
|
||||
func (hdb *HistoryDB) GetAccounts() ([]common.Account, error) {
|
||||
var accs []*common.Account
|
||||
err := meddler.QueryAll(
|
||||
hdb.db, &accs,
|
||||
"SELECT * FROM account ORDER BY idx;",
|
||||
)
|
||||
return accs, err
|
||||
return db.SlicePtrsToSlice(accs).([]common.Account), err
|
||||
}
|
||||
|
||||
// AddL1Txs inserts L1 txs to the DB. USD and LoadAmountUSD will be set automatically before storing the tx.
|
||||
@@ -398,14 +398,14 @@ func (hdb *HistoryDB) addTxs(d meddler.DB, txs []common.Tx) error {
|
||||
}
|
||||
|
||||
// GetTxs returns a list of txs from the DB
|
||||
func (hdb *HistoryDB) GetTxs() ([]*common.Tx, error) {
|
||||
func (hdb *HistoryDB) GetTxs() ([]common.Tx, error) {
|
||||
var txs []*common.Tx
|
||||
err := meddler.QueryAll(
|
||||
hdb.db, &txs,
|
||||
`SELECT * FROM tx
|
||||
ORDER BY (batch_num, position) ASC`,
|
||||
)
|
||||
return txs, err
|
||||
return db.SlicePtrsToSlice(txs).([]common.Tx), err
|
||||
}
|
||||
|
||||
// GetHistoryTxs returns a list of txs from the DB using the HistoryTx struct
|
||||
@@ -413,7 +413,7 @@ func (hdb *HistoryDB) GetHistoryTxs(
|
||||
ethAddr *ethCommon.Address, bjj *babyjub.PublicKey,
|
||||
tokenID, idx, batchNum *uint, txType *common.TxType,
|
||||
offset, limit *uint, last bool,
|
||||
) ([]*HistoryTx, int, error) {
|
||||
) ([]HistoryTx, int, error) {
|
||||
if ethAddr != nil && bjj != nil {
|
||||
return nil, 0, errors.New("ethAddr and bjj are incompatible")
|
||||
}
|
||||
@@ -495,14 +495,15 @@ func (hdb *HistoryDB) GetHistoryTxs(
|
||||
queryStr += fmt.Sprintf("LIMIT %d;", *limit)
|
||||
query = hdb.db.Rebind(queryStr)
|
||||
// log.Debug(query)
|
||||
txs := []*HistoryTx{}
|
||||
if err := meddler.QueryAll(hdb.db, &txs, query, args...); err != nil {
|
||||
txsPtrs := []*HistoryTx{}
|
||||
if err := meddler.QueryAll(hdb.db, &txsPtrs, query, args...); err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
txs := db.SlicePtrsToSlice(txsPtrs).([]HistoryTx)
|
||||
if len(txs) == 0 {
|
||||
return nil, 0, sql.ErrNoRows
|
||||
} else if last {
|
||||
tmp := []*HistoryTx{}
|
||||
tmp := []HistoryTx{}
|
||||
for i := len(txs) - 1; i >= 0; i-- {
|
||||
tmp = append(tmp, txs[i])
|
||||
}
|
||||
|
||||
@@ -60,8 +60,8 @@ func TestBlocks(t *testing.T) {
|
||||
assert.Equal(t, len(blocks), len(fetchedBlocks))
|
||||
// Compare generated vs getted blocks
|
||||
assert.NoError(t, err)
|
||||
for i, fetchedBlock := range fetchedBlocks {
|
||||
assertEqualBlock(t, &blocks[i], fetchedBlock)
|
||||
for i := range fetchedBlocks {
|
||||
assertEqualBlock(t, &blocks[i], &fetchedBlocks[i])
|
||||
}
|
||||
// Get blocks from the DB one by one
|
||||
for i := fromBlock; i < toBlock; i++ {
|
||||
@@ -100,7 +100,7 @@ func TestBatches(t *testing.T) {
|
||||
fetchedBatches, err := historyDB.GetBatches(0, common.BatchNum(nBatches))
|
||||
assert.NoError(t, err)
|
||||
for i, fetchedBatch := range fetchedBatches {
|
||||
assert.Equal(t, batches[i], *fetchedBatch)
|
||||
assert.Equal(t, batches[i], fetchedBatch)
|
||||
}
|
||||
// Test GetLastBatchNum
|
||||
fetchedLastBatchNum, err := historyDB.GetLastBatchNum()
|
||||
@@ -132,7 +132,7 @@ func TestBids(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
// Compare fetched bids vs generated bids
|
||||
for i, bid := range fetchedBids {
|
||||
assert.Equal(t, bids[i], *bid)
|
||||
assert.Equal(t, bids[i], bid)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ func TestAccounts(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
// Compare fetched accounts vs generated accounts
|
||||
for i, acc := range fetchedAccs {
|
||||
assert.Equal(t, accs[i], *acc)
|
||||
assert.Equal(t, accs[i], acc)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user