INNER CODE UNIT · JavaScript
exp
pamgarcia1993/robinhood-lp-bot · legacy/bot.js:40
const exp = (n) => cfg.explorer + "/tx/" + n;
async function onCA(addr) {
await send(`🔎 <b>Cari pool</b> di Robinhood Chain\n<code>${addr}</code>`);
let meta, pools;
try { meta = await CH.tokenMeta(addr); pools = await CH.findPools(addr); }
catch (e) { return send(`❌ Gagal baca token/pool: ${String(e.message).slice(0, 80)}`); }
if (!pools.length) return send(`⚠️ Tidak ada pool ${meta.symbol}/WETH yang punya likuiditas. Belum bisa LP.`);
pending.set(chatId, { token: addr, meta, pools });
const rows = pools.map((p, i) => [{ text: `${i + 1}. fee ${(p.fee / 10000).toFixed(2)}% · WETH ${p.wethInPool.toFixed(3)}`, callback_data: `pool:${i}` }]);
await send(`Ketemu <b>${pools.length}</b> pool ${meta.symbol}/WETH. Pilih:`, { reply_markup: { inline_keyboard: rows } });
}
const GAS_RESERVE = 0.0004; // ETH native disisain buat gas (~4-5 tx; gas Robinhood ~0.0001/tx)
// Usable = WETH (udah wrap) + ETH native yang bisa di-wrap (dikurang cadangan gas)
function usableEth(b) {
return Number(b.weth) + Math.max(0, Number(b.eth) - GAS_RESERVE);