diff --git a/lib/bitcoind-rpc/transactions.js b/lib/bitcoind-rpc/transactions.js index 27efc0d..1aec6ac 100644 --- a/lib/bitcoind-rpc/transactions.js +++ b/lib/bitcoind-rpc/transactions.js @@ -23,18 +23,9 @@ class Transactions { */ constructor() { // Caches - this.txCache = LRU({ - // Maximum number of transactions to store - max: 10000, - // Function used to compute length of item - length: (n, key) => 1, - // Maximum age for items in the cache. Items do not expire - maxAge: Infinity - }) - this.prevCache = LRU({ // Maximum number of transactions to store - max: 100000, + max: 20000, // Function used to compute length of item length: (n, key) => 1, // Maximum age for items in the cache. Items do not expire @@ -85,19 +76,9 @@ class Transactions { * @returns {Promise} */ async getTransaction(txid, fees) { - const keyCache = `${txid}-${fees ? '1' : '0'}` - - // Return transaction from cache when possible - if (this.txCache.has(keyCache)) - return this.txCache.get(keyCache) - try { const tx = await this.rpcClient.getrawtransaction(txid, true) - const ret = await this._prepareTxResult(tx) - // Store the result in cache - if (ret.block && ret.block.hash) - this.txCache.set(txid, ret) - return ret + return this._prepareTxResult(tx, fees) } catch(e) { Logger.error(e, 'Bitcoind RPC : Transaction.getTransaction()') return Promise.reject(errors.generic.GEN) @@ -197,10 +178,7 @@ class Transactions { ptx = this.prevCache.get(inTxid) } else { ptx = await this.rpcClient.getrawtransaction(inTxid, true) - if (ptx.blockhash && ptx.confirmations && ptx.blocktime) { - ptx.height = rpcLatestBlock.height - ptx.confirmations + 1 - this.prevCache.set(inTxid, ptx) - } + this.prevCache.set(inTxid, ptx) } const outpoint = ptx.vout[txin.outpoint.vout]