|
1 |
| -const ADDRESSES = require('../helper/coreAssets.json') |
2 | 1 | const { sumTokens } = require('../helper/sumTokens');
|
3 |
| -const bitcoinAddressBook = require('../helper/bitcoin-book/index.js') |
| 2 | +const utils = require('../helper/utils'); |
| 3 | +const { getConfig } = require('../helper/cache'); |
| 4 | +const bitcoinBook = require('../helper/bitcoin-book'); |
4 | 5 |
|
5 | 6 | module.exports = {
|
6 | 7 | methodology: 'TVL for pumpBTC is calculated based on the total value of WBTC, FBTC, BTCB held in the contract that were utilized in the minting process of pumpBTC.',
|
7 | 8 | }
|
8 |
| -const config = { |
9 |
| - ethereum: { owners: ['0x1fCca65fb6Ae3b2758b9b2B394CB227eAE404e1E', '0x3d9bCcA8Bc7D438a4c5171435f41a0AF5d5E6083', '0xAC364d14020f1da0044699691a91f06ca6131Fe3', '0x1fCca65fb6Ae3b2758b9b2B394CB227eAE404e1E'], tokens: ['0xC96dE26018A54D51c097160568752c4E3BD6C364', ADDRESSES.ethereum.WBTC], }, |
10 |
| - bsc: { owners: ['0x2Ee808F769AB697C477E0aF8357315069b66bCBb', '0x80922aD2771c5Ea9C14bA5FF4a903EC6B0f7e7C9', '0x2b4B9047C9fEA54705218388bFC7Aa7bADA4BB5E', '0x8A0727B87fa1027c419c3aa2caf56C799d5Bd8c5'], tokens: [ADDRESSES.bsc.BTCB, '0xC96dE26018A54D51c097160568752c4E3BD6C364'], }, |
11 |
| - mantle: { owners: ['0xd6Ab15B2458B6EC3E94cE210174d860FdBdd6b96'], tokens: ['0xC96dE26018A54D51c097160568752c4E3BD6C364'], }, |
12 |
| - bitcoin: {}, |
13 |
| - base: { owners: ['0x1fCca65fb6Ae3b2758b9b2B394CB227eAE404e1E', '0x4913D495cBA3e1380218d2258126F22Ea5dE5f8B', '0xC7DA129335F8815d62fBd3ca7183A3b2791CdB5e', '0xca873913BBf124441857d32Bb23f723b68433465', '0xF1D06Be8dF2F7Ed4Cdc9ac05915EA2b618FFA3Fb'], tokens: ['0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf'], }, |
| 9 | + |
| 10 | +async function getStakingAddresses() { |
| 11 | + let res = await utils.fetchURL('https://dashboard.pumpbtc.xyz/api/dashboard/asset/tokenowners') |
| 12 | + |
| 13 | + const btcAddresses = res.data.data || {} |
| 14 | + //console.log('>>', btcAddresses.length) |
| 15 | + return btcAddresses |
| 16 | +} |
| 17 | + |
| 18 | +async function bitcoinTvl(api) { |
| 19 | + const owners = await bitcoinBook.pumpBTC() |
| 20 | + return sumTokens({ api, owners }) |
| 21 | +} |
| 22 | + |
| 23 | +async function otherTvl(api) { |
| 24 | + const addresses = await getConfig('pumpbtc/v2', undefined, { fetcher: getStakingAddresses }) |
| 25 | + |
| 26 | + if (!addresses[api.chain]) { |
| 27 | + return; |
| 28 | + } |
| 29 | + |
| 30 | + const { owners, tokens } = addresses[api.chain] |
| 31 | + return api.sumTokens({ owners, tokens }) |
14 | 32 | }
|
15 | 33 |
|
16 |
| -Object.keys(config).forEach(chain => { |
17 |
| - const { owners, tokens, } = config[chain] |
| 34 | +module.exports.isHeavyProtocol = true; |
18 | 35 |
|
19 |
| - if (chain === 'bitcoin') { |
| 36 | +['bitcoin', 'ethereum', 'bsc', 'mantle', 'base'].forEach(chain => { |
| 37 | + if (chain == 'bitcoin') { |
20 | 38 | module.exports[chain] = {
|
21 |
| - tvl: async (api) => { return sumTokens({ api, owners: await bitcoinAddressBook.pumpBTC() }) } |
| 39 | + tvl: bitcoinTvl, |
22 | 40 | }
|
23 | 41 | } else {
|
24 | 42 | module.exports[chain] = {
|
25 |
| - tvl: async (api) => api.sumTokens({ owners, tokens }) |
| 43 | + tvl: otherTvl |
26 | 44 | }
|
27 | 45 | }
|
28 | 46 | })
|
29 |
| - |
30 |
| -module.exports.isHeavyProtocol = true |
|
0 commit comments