import { IdentifiableLiquidityPool, IdentifiableLiquidityPoolShard, } from '@saturnbtcio/pool-serde-sdk'; import { AddressTxsUtxo } from '@saturnbtcio/psbt'; import { MempoolInfoMap } from '../providers/bitcoin.provider'; export const getTxIdFromShard = (shard: IdentifiableLiquidityPoolShard) => shard.utxo.split(':')[0]; export const getMempoolEntryFromShard = ( shard: IdentifiableLiquidityPoolShard, mempoolInfo: MempoolInfoMap, ) => { const txId = getTxIdFromShard(shard); let mempoolEntry = mempoolInfo.get(txId); if (mempoolEntry) { return mempoolEntry; } return undefined; }; export const getTxIdsFromPool = (pool: IdentifiableLiquidityPool) => { return Array.from( new Set(pool.shards.map((shard) => getTxIdFromShard(shard))), ); }; export const getTxIdsFromUtxos = (utxos: Array) => { const txIds: string[] = []; for (const utxo of utxos) { if (utxo.status.confirmed || txIds.includes(utxo.txid)) { continue; } txIds.push(utxo.txid); } return txIds; };