|
1 | 1 | const ADDRESSES = require('../helper/coreAssets.json')
|
2 |
| -const sdk = require('@defillama/sdk') |
3 | 2 | const { getConfig } = require('../helper/cache')
|
4 | 3 | const { sumTokensExport } = require('../helper/sumTokens')
|
5 | 4 | const { sumTokens2 } = require('../helper/unwrapLPs')
|
@@ -40,72 +39,52 @@ const farms = {
|
40 | 39 |
|
41 | 40 | let tokenData
|
42 | 41 |
|
43 |
| -function chainTvls(chain) { |
44 |
| - return async (timestamp, ethBlock, {[chain]: block}) => { |
45 |
| - const vault = vaults[chain] |
46 |
| - let targetChain = chain |
47 |
| - if (chain === 'ethereum') targetChain = 'eth' |
48 |
| - if (chain === 'polygon') targetChain = 'matic' |
| 42 | +async function tvl(timestamp, ethBlock, _1, { api }) { |
| 43 | + const chain = api.chain |
49 | 44 |
|
50 |
| - const tokenListURL = 'https://bridge.orbitchain.io/open/v1/api/monitor/rawTokenList' |
51 |
| - tokenData = tokenData || getConfig('orbit-bridge', tokenListURL) |
52 |
| - const data = await tokenData |
| 45 | + if (chain === 'meta') return {} // rpc issues with meta |
53 | 46 |
|
54 |
| - let tokenList = data.origins.filter(x => x.chain === targetChain && !x.is_nft).map(x => x.address) |
55 |
| - tokenList.push(nullAddress) |
56 |
| - const balances = await sumTokens2({ owner: vault, tokens: tokenList, chain, block, blacklistedTokens: [ |
| 47 | + const vault = vaults[chain] |
| 48 | + let targetChain = chain |
| 49 | + if (chain === 'ethereum') targetChain = 'eth' |
| 50 | + if (chain === 'polygon') targetChain = 'matic' |
| 51 | + |
| 52 | + const tokenListURL = 'https://bridge.orbitchain.io/open/v1/api/monitor/rawTokenList' |
| 53 | + tokenData = tokenData || getConfig('orbit-bridge', tokenListURL) |
| 54 | + const data = await tokenData |
| 55 | + |
| 56 | + let tokenList = data.origins.filter(x => x.chain === targetChain && !x.is_nft).map(x => x.address) |
| 57 | + tokenList.push(nullAddress) |
| 58 | + await sumTokens2({ |
| 59 | + api, |
| 60 | + owner: vault, tokens: tokenList, blacklistedTokens: [ |
57 | 61 | '0x662b67d00a13faf93254714dd601f5ed49ef2f51' // ORC, blacklist project's own token
|
58 | 62 | // reason for skipping, most of the tvl comes from this transaction which is about 25% of ORU supply on ETH
|
59 | 63 | // https://etherscan.io/tx/0x0a556fcef2a867421ec3941251ad3c10ae1402a23ddd9ad4b1097b686ced89f7
|
60 |
| - ] }) |
| 64 | + ] |
| 65 | + }) |
61 | 66 |
|
62 |
| - if (farms[chain]) { |
63 |
| - const calls = farms[chain].map(i => ({ params: i })) |
64 |
| - const { output: farmData } = await sdk.api.abi.multiCall({ |
65 |
| - target: vault, |
66 |
| - abi: ABI.farms, |
67 |
| - calls, chain, block, |
68 |
| - }) |
69 |
| - const { output: farmBalance } = await sdk.api.abi.multiCall({ |
70 |
| - abi: ABI.wantLockedTotal, |
71 |
| - calls: farmData.map(i => ({ target: i.output})), |
72 |
| - chain, block, |
73 |
| - }) |
74 |
| - farmBalance.forEach((data, i) => sdk.util.sumSingleBalance(balances, chain + ':' + farms[chain][i], data.output)) |
75 |
| - } |
76 |
| - return balances |
| 67 | + if (farms[chain]) { |
| 68 | + const calls = farms[chain] |
| 69 | + const farmData = await api.multiCall({ target: vault, abi: ABI.farms, calls, }) |
| 70 | + const farmBalance = await api.multiCall({ abi: ABI.wantLockedTotal, calls: farmData, }) |
| 71 | + api.add(farms[chain], farmBalance) |
77 | 72 | }
|
78 | 73 | }
|
79 | 74 |
|
80 | 75 | module.exports = {
|
81 | 76 | methodology: 'Tokens locked in Orbit Bridge contract are counted as TVL',
|
82 | 77 | timetravel: false,
|
83 |
| - bsc: { |
84 |
| - tvl: chainTvls('bsc') |
85 |
| - }, |
86 |
| - celo: { |
87 |
| - tvl: chainTvls('celo') |
88 |
| - }, |
89 |
| - heco: { |
90 |
| - tvl: chainTvls('heco') |
91 |
| - }, |
92 |
| - ethereum: { |
93 |
| - tvl: chainTvls('ethereum') |
94 |
| - }, |
95 |
| - klaytn: { |
96 |
| - tvl: chainTvls('klaytn') |
97 |
| - }, |
98 |
| - polygon: { |
99 |
| - tvl: chainTvls('polygon') |
100 |
| - }, |
101 |
| - meta: { |
102 |
| - tvl: chainTvls('meta') |
103 |
| - }, |
104 |
| - wemix: { |
105 |
| - tvl: chainTvls('wemix') |
106 |
| - }, |
| 78 | + bsc: { tvl }, |
| 79 | + celo: { tvl }, |
| 80 | + heco: { tvl }, |
| 81 | + ethereum: { tvl }, |
| 82 | + klaytn: { tvl }, |
| 83 | + polygon: { tvl }, |
| 84 | + meta: { tvl }, |
| 85 | + wemix: { tvl }, |
107 | 86 | ripple: {
|
108 |
| - tvl: sumTokensExport({ chain: 'ripple', owner: 'rLcxBUrZESqHnruY4fX7GQthRjDCDSAWia'}) |
| 87 | + tvl: sumTokensExport({ chain: 'ripple', owner: 'rLcxBUrZESqHnruY4fX7GQthRjDCDSAWia' }) |
109 | 88 | },
|
110 | 89 | ton: {
|
111 | 90 | tvl: tonExport({ owner: "EQAtkbV8ysI75e7faO8Ihu0mFtmsg-osj7gmrTg_mljVRccy", tokens: [ADDRESSES.null], onlyWhitelistedTokens: true }),
|
|
0 commit comments