From 2f58f274227cf362b701ddc5687d61c38af42450 Mon Sep 17 00:00:00 2001 From: Adolf998 <154962952+Adolf998@users.noreply.github.com> Date: Fri, 31 Oct 2025 18:53:31 +0800 Subject: [PATCH] add BounceBit Prime (#16840) Co-authored-by: durian --- projects/bouncebit-prime/index.js | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 projects/bouncebit-prime/index.js diff --git a/projects/bouncebit-prime/index.js b/projects/bouncebit-prime/index.js new file mode 100644 index 000000000..78bb13565 --- /dev/null +++ b/projects/bouncebit-prime/index.js @@ -0,0 +1,46 @@ +const { sumTokens } = require('../helper/sumTokens'); +const ADDRESSES = require('../helper/coreAssets.json') + +const BounceBitGatewayPrime = '0x6f776d791612a22A70e206602cfF96185695C580' + +const DEPOSIT_ABI = + "function totalLocked(address token) view returns (uint256)"; + +const supportedTokens = { + ethereum: [ADDRESSES.ethereum.USDT, ADDRESSES.ethereum.USDC], + bsc: [ADDRESSES.bsc.USDT, ADDRESSES.bsc.USDC] +} + +async function tvl(api) { + const chain = api.chain + + if (supportedTokens[chain]) { + const calls = supportedTokens[chain].map(address => ({ + target: BounceBitGatewayPrime, + params: [address] + })) + + const lockedAmounts = await api.multiCall({ + abi: DEPOSIT_ABI, + calls + }) + + supportedTokens[chain].forEach((address, i) => { + api.add(address, lockedAmounts[i]) + }) + + return sumTokens({ + api + }) + } +} + +module.exports = { + methodology: "Deposit tokens via BounceBit Prime counts as TVL", + ethereum: { + tvl, + }, + bsc: { + tvl, + } +};