From 83aceb1ec18989c60b5e91544f132a4effbd9e22 Mon Sep 17 00:00:00 2001 From: XBANKING <126655346+xbankingorg@users.noreply.github.com> Date: Mon, 27 Jan 2025 00:52:22 +0700 Subject: [PATCH 1/2] true tvl xbanking on solana chain true tvl xbanking on solana chain --- projects/xbanking/index.js | 61 ++++++++++++-------------------------- 1 file changed, 19 insertions(+), 42 deletions(-) diff --git a/projects/xbanking/index.js b/projects/xbanking/index.js index 62521da57b..2bf2f38157 100644 --- a/projects/xbanking/index.js +++ b/projects/xbanking/index.js @@ -1,53 +1,30 @@ -const sdk = require("@defillama/sdk"); -const abi = require("./abi.json"); -const contracts = require("./contracts.json"); -const { pool2 } = require("../helper/pool2"); -const vaults = [ - contracts.ftmVault, - contracts.ethVault, - contracts.avaxVault, - contracts.tombVault, -] +const { sumTokens2 } = require('../helper/solana') const tokens = [ - contracts.FTM, - contracts.WETH, - contracts.AVAX, - contracts.TOMB, + 'So11111111111111111111111111111111111111112', + '4k3Dyjzvzp8e4P7SNLLA8vZFaep2XDbD2W37D5u7yCK', + 'Es9vMFrzaCERZhC8LCyD9F5Zszdnwf4Gpfn3xFn1i1kA', + 'So11111111111111111111111111111111111111112', + '2uAuGwYH22SJJtaTqMJ2AGEL2rBdiRKkuak2QCCSaFCA' ] -async function tvl(api) { - const _tokens = [...tokens] - const owners = [...vaults, ...vaults] - vaults.forEach(v => _tokens.push(contracts.Collateral)) - return api.sumTokens({ tokensAndOwners2: [_tokens, owners] }) -} - -async function borrowed(api) { - const vaults0 = vaults.slice(0, 2); - const vaults1 = vaults.slice(2); - const tokens0 = tokens.slice(0, 2); - const tokens1 = tokens.slice(2); - const balances = await api.multiCall({ abi: abi.see_s1ftm_circ, calls: vaults0 }) - const balances1 = await api.multiCall({ abi: abi.see_s1tomb_circ, calls: vaults1 }) - api.addTokens(tokens0, balances) - api.addTokens(tokens1, balances1) +const owners = [ + 'EjqH5TsEp7Ks1BdVKoLjsNwDsYARzpGDEvhw7srYvs5w', + '5MfcrehHKskxjiYTTqcKubtqmrMJuyNParmeQYgNLdkA', +] - const chainApi = new sdk.ChainApi({ chain: api.chain, block: api.block }) - chainApi.sumTokens({ tokensAndOwners2: [tokens, vaults] }) - Object.entries(chainApi.getBalances()).forEach(([token, balance]) => { - api.add(token, balance * -1, { skipChain: true }) +async function tvl() { + return sumTokens2({ + tokens, + owners, }) - return api.getBalances() } module.exports = { - fantom: { + timetravel: false, + misrepresentedTokens: true, + methodology: "xbanking tvl", + solana: { tvl, - borrowed, - pool2: pool2( - [contracts.pool2, contracts.pool2], - [contracts.daiPool2, contracts.ftmPool2], - ) - } + }, } From 7e112402f7f4973481125b96545f5c3121fe2116 Mon Sep 17 00:00:00 2001 From: XBANKING <126655346+xbankingorg@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:24:30 +0700 Subject: [PATCH 2/2] tvl calculator of xbanking chains tvl calculator of xbanking chains --- projects/xbanking/index.js | 59 ++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/projects/xbanking/index.js b/projects/xbanking/index.js index 2bf2f38157..8e5f94a127 100644 --- a/projects/xbanking/index.js +++ b/projects/xbanking/index.js @@ -1,30 +1,45 @@ -const { sumTokens2 } = require('../helper/solana') +const utils = require('../helper/utils'); +let _response; -const tokens = [ - 'So11111111111111111111111111111111111111112', - '4k3Dyjzvzp8e4P7SNLLA8vZFaep2XDbD2W37D5u7yCK', - 'Es9vMFrzaCERZhC8LCyD9F5Zszdnwf4Gpfn3xFn1i1kA', - 'So11111111111111111111111111111111111111112', - '2uAuGwYH22SJJtaTqMJ2AGEL2rBdiRKkuak2QCCSaFCA' -] +function fetchChain(chainId, staking) { + return async () => { + if (!_response) { + _response = utils.fetchURL('https://api.xbanking.org/v2/platform/tvl'); + } + const response = await _response; + let tvl = 0; -const owners = [ - 'EjqH5TsEp7Ks1BdVKoLjsNwDsYARzpGDEvhw7srYvs5w', - '5MfcrehHKskxjiYTTqcKubtqmrMJuyNParmeQYgNLdkA', -] + const chainName = Object.keys(response).find(key => key.toLowerCase() === chainId.toLowerCase()); + + if (chainName) { + tvl = Number(response[chainName]); + } -async function tvl() { - return sumTokens2({ - tokens, - owners, - }) + if (tvl === 0) { + throw new Error(`chain ${chainId} tvl is 0`); + } + return tvl; + }; } +const chains = { + ethereum: 'ethereum', + avax: 'avax', + arbitrum: 'arbitrum', + binance: 'binance', + solana: 'solana', + bitcoin: 'bitcoin', + ton: 'ton', + aptos: 'aptos', + sui: 'sui' +}; + module.exports = { timetravel: false, misrepresentedTokens: true, - methodology: "xbanking tvl", - solana: { - tvl, - }, -} + doublecounted: true, + ...Object.fromEntries(Object.entries(chains).map(chain => [chain[0], { + tvl: fetchChain(chain[1], false), + staking: fetchChain(chain[1], true), + }])) +};