implemented fromIdx and toIdx in transaction-pool request

This commit is contained in:
Mikelle
2021-03-30 12:10:13 +03:00
parent b565c9da1a
commit 22ffd93292
6 changed files with 52 additions and 11 deletions

View File

@@ -129,7 +129,7 @@ func (l2db *L2DB) GetTxAPI(txID common.TxID) (*PoolTxAPI, error) {
}
// GetPoolTxs return Txs from the pool
func (l2db *L2DB) GetPoolTxs(idx *common.Idx, state *common.PoolL2TxState) ([]*PoolTxAPI, error) {
func (l2db *L2DB) GetPoolTxs(fromIdx, toIdx *common.Idx, state *common.PoolL2TxState) ([]*PoolTxAPI, error) {
cancel, err := l2db.apiConnCon.Acquire()
defer cancel()
if err != nil {
@@ -145,7 +145,8 @@ func (l2db *L2DB) GetPoolTxs(idx *common.Idx, state *common.PoolL2TxState) ([]*P
args = append(args, state)
nextIsAnd = true
}
if idx != nil {
if fromIdx != nil && toIdx != nil {
if nextIsAnd {
queryStr += "AND ("
} else {
@@ -153,8 +154,24 @@ func (l2db *L2DB) GetPoolTxs(idx *common.Idx, state *common.PoolL2TxState) ([]*P
}
queryStr += "tx_pool.from_idx = ? "
queryStr += "OR tx_pool.to_idx = ?) "
args = append(args, idx)
args = append(args, idx)
args = append(args, fromIdx)
args = append(args, toIdx)
} else if fromIdx != nil {
if nextIsAnd {
queryStr += "AND "
} else {
queryStr += "WHERE "
}
queryStr += "tx_pool.from_idx = ?"
args = append(args, fromIdx)
} else if toIdx != nil {
if nextIsAnd {
queryStr += "AND "
} else {
queryStr += "WHERE "
}
queryStr += "tx_pool.to_idx = ?"
args = append(args, toIdx)
}
queryStr += "AND NOT external_delete;"
query := l2db.dbRead.Rebind(queryStr)

View File

@@ -328,7 +328,7 @@ func TestL2DB_GetPoolTxs(t *testing.T) {
pendingTxs = append(pendingTxs, &poolL2Txs[i])
}
}
fetchedTxs, err := l2DBWithACC.GetPoolTxs(&idx, &state)
fetchedTxs, err := l2DBWithACC.GetPoolTxs(&idx, &idx, &state)
require.NoError(t, err)
assert.Equal(t, len(pendingTxs), len(fetchedTxs))
}