mirror of
https://github.com/alexgo-io/DefiLlama-Adapters.git
synced 2026-01-12 16:53:02 +08:00
Fix relaychain tvl
Remove doublecounting in metis Remove native token from bridge tvl
This commit is contained in:
@@ -1,49 +1,50 @@
|
||||
const sdk = require("@defillama/sdk");
|
||||
const {getChainTransform} = require('../helper/portedTokens');
|
||||
const { getChainTransform } = require('../helper/portedTokens');
|
||||
const { sumTokens } = require('../helper/unwrapLPs')
|
||||
|
||||
const usdtEth = "0xdAC17F958D2ee523a2206206994597C13D831ec7";
|
||||
const daiEth = "0x6b175474e89094c44da98b954eedeac495271d0f";
|
||||
const wbtcEth ="0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599";
|
||||
const wbtcEth = "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599";
|
||||
const usdcEth = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
|
||||
const wethEth = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
|
||||
const relayEth = "0x5D843Fa9495d23dE997C394296ac7B4D721E841c";
|
||||
const xcasEth="0x7659CE147D0e714454073a5dd7003544234b6Aa0";
|
||||
const trueUSDEth="0x0000000000085d4780B73119b644AE5ecd22b376";
|
||||
const zeroEth="0xF0939011a9bb95c3B791f0cb546377Ed2693a574";
|
||||
const xcasEth = "0x7659CE147D0e714454073a5dd7003544234b6Aa0";
|
||||
const trueUSDEth = "0x0000000000085d4780B73119b644AE5ecd22b376";
|
||||
const zeroEth = "0xF0939011a9bb95c3B791f0cb546377Ed2693a574";
|
||||
|
||||
const usdtBsc = "0x55d398326f99059fF775485246999027B3197955";
|
||||
const daiBsc = "0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3";
|
||||
const usdcBsc = "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d";
|
||||
const busdBsc="0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56";
|
||||
const ethBsc="0x2170Ed0880ac9A755fd29B2688956BD959F933F8";
|
||||
const busdBsc = "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56";
|
||||
const ethBsc = "0x2170Ed0880ac9A755fd29B2688956BD959F933F8";
|
||||
const wbnbBsc = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
|
||||
const relayBsc = "0xE338D4250A4d959F88Ff8789EaaE8c32700BD175";
|
||||
|
||||
|
||||
const daiAvax= "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70";
|
||||
const wavax ="0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7";
|
||||
const wbtcAvax="0x50b7545627a5162F82A992c33b87aDc75187B218";
|
||||
const usdcAvax="0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664";
|
||||
const usdtAvax ="0xc7198437980c041c805A1EDcbA50c1Ce5db95118";
|
||||
const daiAvax = "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70";
|
||||
const wavax = "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7";
|
||||
const wbtcAvax = "0x50b7545627a5162F82A992c33b87aDc75187B218";
|
||||
const usdcAvax = "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664";
|
||||
const usdtAvax = "0xc7198437980c041c805A1EDcbA50c1Ce5db95118";
|
||||
|
||||
|
||||
|
||||
const wHeco ="0x5545153CCFcA01fbd7Dd11C0b23ba694D9509A6F";
|
||||
const wbtcHeco="0x66a79D23E58475D2738179Ca52cd0b41d73f0BEa";
|
||||
const ethHeco="0x64FF637fB478863B7468bc97D30a5bF3A428a1fD";
|
||||
const usdcHeco="0x9362Bbef4B8313A8Aa9f0c9808B80577Aa26B73B";
|
||||
const daiHeco="0x3D760a45D0887DFD89A2F5385a236B29Cb46ED2a";
|
||||
const husdHeco="0x0298c2b32eaE4da002a15f36fdf7615BEa3DA047";
|
||||
const wHeco = "0x5545153CCFcA01fbd7Dd11C0b23ba694D9509A6F";
|
||||
const wbtcHeco = "0x66a79D23E58475D2738179Ca52cd0b41d73f0BEa";
|
||||
const ethHeco = "0x64FF637fB478863B7468bc97D30a5bF3A428a1fD";
|
||||
const usdcHeco = "0x9362Bbef4B8313A8Aa9f0c9808B80577Aa26B73B";
|
||||
const daiHeco = "0x3D760a45D0887DFD89A2F5385a236B29Cb46ED2a";
|
||||
const husdHeco = "0x0298c2b32eaE4da002a15f36fdf7615BEa3DA047";
|
||||
|
||||
|
||||
|
||||
const miMatic ="0xa3Fa99A148fA48D14Ed51d610c367C61876997F1";
|
||||
const wmatic ="0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270";
|
||||
const wethMatic ="0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619";
|
||||
const wbtcMatic="0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6";
|
||||
const usdcMatic="0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174";
|
||||
const daiMatic="0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063";
|
||||
const usdtMatic="0xc2132D05D31c914a87C6611C10748AEb04B58e8F";
|
||||
const miMatic = "0xa3Fa99A148fA48D14Ed51d610c367C61876997F1";
|
||||
const wmatic = "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270";
|
||||
const wethMatic = "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619";
|
||||
const wbtcMatic = "0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6";
|
||||
const usdcMatic = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174";
|
||||
const daiMatic = "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063";
|
||||
const usdtMatic = "0xc2132D05D31c914a87C6611C10748AEb04B58e8F";
|
||||
|
||||
|
||||
const usdtMoonriver = "0xB44a9B6905aF7c801311e8F4E76932ee959c663C";
|
||||
@@ -55,15 +56,15 @@ const relayMoonriver = "0xAd7F1844696652ddA7959a49063BfFccafafEfe7";
|
||||
const wMOVR = "0x98878B06940aE243284CA214f92Bb71a2b032B8A";
|
||||
|
||||
|
||||
const usdtFantom = "0x1B27A9dE6a775F98aaA5B90B62a4e2A0B84DbDd9";
|
||||
const usdtFantom = "0x1B27A9dE6a775F98aaA5B90B62a4e2A0B84DbDd9";
|
||||
const relayFantom = "0x338003E074DabFec661E1901bdB397aF9Cab6A76";
|
||||
const daiFantom = "0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e";
|
||||
const usdcFantom = "0x04068DA6C83AFCFA0e13ba15A6696662335D5B75";
|
||||
const wFantom="0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83";
|
||||
const btcFantom="0x321162Cd933E2Be498Cd2267a90534A804051b11";
|
||||
const wFantom = "0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83";
|
||||
const btcFantom = "0x321162Cd933E2Be498Cd2267a90534A804051b11";
|
||||
|
||||
|
||||
const usdtHarmony = "0x224e64ec1bdce3870a6a6c777edd450454068fec";
|
||||
const usdtHarmony = "0x224e64ec1bdce3870a6a6c777edd450454068fec";
|
||||
const relayHarmony = "0x0e4d3a20b757cea2a0910129991b9d42cc2be188";
|
||||
const daiHarmony = "0xEf977d2f931C1978Db5F6747666fa1eACB0d0339";
|
||||
const usdcHarmony = "0x985458e523db3d53125813ed68c274899e9dfab4";
|
||||
@@ -73,7 +74,7 @@ const woneOne = "0xcf664087a5bb0237a0bad6742852ec6c8d69a27a";
|
||||
|
||||
|
||||
const wsdnShiden = "0x1a6a12953d5439e8965d94d3d8452464fbd53e30";
|
||||
const usdtShiden = "0x818ec0A7Fe18Ff94269904fCED6AE3DaE6d6dC0b";
|
||||
const usdtShiden = "0x818ec0A7Fe18Ff94269904fCED6AE3DaE6d6dC0b";
|
||||
const usdcShiden = "0xfA9343C3897324496A05fC75abeD6bAC29f8A40f";
|
||||
const busdShiden = "0x65e66a61d0a8f1e686c2d6083ad611a10d84d97a";
|
||||
|
||||
@@ -81,15 +82,15 @@ const busdShiden = "0x65e66a61d0a8f1e686c2d6083ad611a10d84d97a";
|
||||
|
||||
|
||||
const usdcMetis = "0xea32a96608495e54156ae48931a7c20f0dcc1a21";
|
||||
const usdtMetis = "0xbb06dca3ae6887fabf931640f67cab3e3a16f4dc";
|
||||
const usdtMetis = "0xbb06dca3ae6887fabf931640f67cab3e3a16f4dc";
|
||||
const relayMetis = "0xfe282Af5f9eB59C30A3f78789EEfFA704188bdD4";
|
||||
const maticMetis="0x4b9D2923D875edF43980BF5dddDEde3Fb20fC742";
|
||||
const mimMetis="0x44Dd7C98885cD3086E723B8554a90c9cC4089C4C";
|
||||
const ftmMetis="0x6aB6d61428fde76768D7b45D8BFeec19c6eF91A8"
|
||||
const metis="0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000";
|
||||
const wbtcMetis="0xa5B55ab1dAF0F8e1EFc0eB1931a957fd89B918f4";
|
||||
const avaxMetis="0xE253E0CeA0CDD43d9628567d097052B33F98D611";
|
||||
const daiMetis="0x4651B38e7ec14BB3db731369BFE5B08F2466Bd0A";
|
||||
const maticMetis = "0x4b9D2923D875edF43980BF5dddDEde3Fb20fC742";
|
||||
const mimMetis = "0x44Dd7C98885cD3086E723B8554a90c9cC4089C4C";
|
||||
const ftmMetis = "0x6aB6d61428fde76768D7b45D8BFeec19c6eF91A8"
|
||||
const metis = "0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000";
|
||||
const wbtcMetis = "0xa5B55ab1dAF0F8e1EFc0eB1931a957fd89B918f4";
|
||||
const avaxMetis = "0xE253E0CeA0CDD43d9628567d097052B33F98D611";
|
||||
const daiMetis = "0x4651B38e7ec14BB3db731369BFE5B08F2466Bd0A";
|
||||
|
||||
|
||||
|
||||
@@ -100,7 +101,7 @@ const wbtcCronos = "0x062e66477faf219f25d27dced647bf57c3107d52";
|
||||
const wethCronos = "0xe44fd7fcb2b1581822d0c862b68222998a0c299a";
|
||||
const relayCronos = "0x9C29650a1B273A031A35F3121914aae882B144A4";
|
||||
const busdCronos = "0x6aB6d61428fde76768D7b45D8BFeec19c6eF91A8";
|
||||
const wCronos= "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23";
|
||||
const wCronos = "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23";
|
||||
|
||||
|
||||
|
||||
@@ -109,18 +110,18 @@ const wCronos= "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23";
|
||||
const usdtIoTex = "0x6fbCdc1169B5130C59E72E51Ed68A84841C98cd1";
|
||||
const daiIoTex = "0x1CbAd85Aa66Ff3C12dc84C5881886EEB29C1bb9b";
|
||||
const usdcIoTex = "0x3B2bf2b523f54C4E454F08Aa286D03115aFF326c";
|
||||
const busdIoTex= "0xacee9b11cd4b3f57e58880277ac72c8c41abe4e4";
|
||||
const wIotex="0xa00744882684c3e4747faefd68d283ea44099d03";
|
||||
const busdIoTex = "0xacee9b11cd4b3f57e58880277ac72c8c41abe4e4";
|
||||
const wIotex = "0xa00744882684c3e4747faefd68d283ea44099d03";
|
||||
|
||||
|
||||
|
||||
|
||||
const ethAddr = "0xF687e1481d85F8b9F4D1f4D4C15348CeF8E5a762";
|
||||
const eth1Addr="0xc4DC891d5B5171f789829D6050D5eB64c447e0FE";
|
||||
const eth1Addr = "0xc4DC891d5B5171f789829D6050D5eB64c447e0FE";
|
||||
const bscAddr = "0x3Ea1f65cf49297eA6d265291a2b09D0f2AE649D6";
|
||||
const avaxAddr ="0x43BEddB3199F2a635C85FfC4f1af228198D268Ab";
|
||||
const hecoAddr ="0xA21D529B86ef6B71C0caaE4669726755876a0Dc0";
|
||||
const polyAddr ="0x3Ea1f65cf49297eA6d265291a2b09D0f2AE649D6";
|
||||
const avaxAddr = "0x43BEddB3199F2a635C85FfC4f1af228198D268Ab";
|
||||
const hecoAddr = "0xA21D529B86ef6B71C0caaE4669726755876a0Dc0";
|
||||
const polyAddr = "0x3Ea1f65cf49297eA6d265291a2b09D0f2AE649D6";
|
||||
const moonriverAddr = "0x3e3f619940d9a20DbcF3F7c0c7958f4A67Fac688";
|
||||
const ftmAddr = "0x502B4683D213C68507fc6d19417df0bB7995b23B";
|
||||
const sdnAddr = "0x074412fae37D4C3de9964980352faD07aacDd674";
|
||||
@@ -130,306 +131,183 @@ const metisAddr = "0x640b3408EaC140297136677aC0cFF13a8c82C5Ed";
|
||||
const cronosAddr = "0x3f1B059d94551c9300176ceB55FD23aF0e4E2E29";
|
||||
|
||||
|
||||
let ethTokenAddress =[usdtEth,daiEth,wbtcEth,usdcEth,wethEth,relayEth,xcasEth,trueUSDEth,zeroEth];
|
||||
let bscTokenAddress=[usdtBsc,daiBsc,usdcBsc,busdBsc,ethBsc,wbnbBsc,relayBsc];
|
||||
let avaxTokenAddress=[daiAvax,wavax,wbtcAvax,usdcAvax,usdtAvax];
|
||||
let hecoTokenAddress=[wHeco,wbtcHeco,ethHeco,usdcHeco,daiHeco,husdHeco];
|
||||
let maticTokenAddress=[miMatic,wmatic,wethMatic,wbtcMatic,usdcMatic,daiMatic,usdtMatic];
|
||||
let moonTokenAddress=[usdtMoonriver,daiMoonriver,usdcMoonriver,wbtcMoonriver,wethMoonriver,relayMoonriver,wMOVR];
|
||||
let fantomTokenAddress=[usdcFantom,usdtFantom,relayFantom,daiFantom,wFantom,btcFantom];
|
||||
let harmonyTokenAddress=[usdtHarmony,relayHarmony,daiHarmony,usdcHarmony,busdHarmony,woneOne];
|
||||
let shidenTokenAddress=[wsdnShiden,usdtShiden,usdcShiden,busdShiden];
|
||||
let metisTokenAddress=[usdcMetis,usdtMetis,metis,maticMetis,ftmMetis,mimMetis];
|
||||
let metisTotalSupply=[wbtcMetis,daiMetis,avaxMetis,relayMetis,ftmMetis,maticMetis];
|
||||
let cronosTokenAddress=[usdtCronos,daiCronos,usdcCronos,wbtcCronos,wethCronos,relayCronos,busdCronos,wCronos];
|
||||
let iotexTokenAddress=[usdtIoTex,daiIoTex,usdcIoTex,busdIoTex,wIotex]
|
||||
let ethTokenAddress = [usdtEth, daiEth, wbtcEth, usdcEth, wethEth, xcasEth, trueUSDEth, zeroEth];
|
||||
let bscTokenAddress = [usdtBsc, daiBsc, usdcBsc, busdBsc, ethBsc, wbnbBsc];
|
||||
let avaxTokenAddress = [daiAvax, wavax, wbtcAvax, usdcAvax, usdtAvax];
|
||||
let hecoTokenAddress = [wHeco, wbtcHeco, ethHeco, usdcHeco, daiHeco, husdHeco];
|
||||
let maticTokenAddress = [miMatic, wmatic, wethMatic, wbtcMatic, usdcMatic, daiMatic, usdtMatic];
|
||||
let moonTokenAddress = [usdtMoonriver, daiMoonriver, usdcMoonriver, wbtcMoonriver, wethMoonriver, wMOVR];
|
||||
let fantomTokenAddress = [usdcFantom, usdtFantom, daiFantom, wFantom, btcFantom];
|
||||
let harmonyTokenAddress = [usdtHarmony, daiHarmony, usdcHarmony, busdHarmony, woneOne];
|
||||
let shidenTokenAddress = [wsdnShiden, usdtShiden, usdcShiden, busdShiden];
|
||||
let metisTokenAddress = [usdcMetis, usdtMetis, metis, maticMetis, ftmMetis, mimMetis];
|
||||
let metisTotalSupply = [wbtcMetis, daiMetis, avaxMetis, ftmMetis, maticMetis];
|
||||
let cronosTokenAddress = [usdtCronos, daiCronos, usdcCronos, wbtcCronos, wethCronos, busdCronos, wCronos];
|
||||
let iotexTokenAddress = [usdtIoTex, daiIoTex, usdcIoTex, busdIoTex, wIotex]
|
||||
|
||||
|
||||
async function ethTvl(timestamp, ethBlock) {
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
|
||||
for(var i=0;i<ethTokenAddress.length;i++){
|
||||
tokenBalance = (
|
||||
await sdk.api.abi.call({
|
||||
target: ethTokenAddress[i],
|
||||
abi: 'erc20:balanceOf',
|
||||
params: ethAddr,
|
||||
block: ethBlock,
|
||||
})
|
||||
).output;
|
||||
await sdk.util.sumSingleBalance(balances, "ethereum:"+ethTokenAddress[i], tokenBalance)
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
const toa = []
|
||||
ethTokenAddress.forEach(t => {
|
||||
toa.push([t, ethAddr])
|
||||
toa.push([t, eth1Addr])
|
||||
})
|
||||
|
||||
tokenBalance = (
|
||||
await sdk.api.abi.call({
|
||||
target: ethTokenAddress[i],
|
||||
abi: 'erc20:balanceOf',
|
||||
params: eth1Addr,
|
||||
block: ethBlock,
|
||||
})
|
||||
).output;
|
||||
await sdk.util.sumSingleBalance(balances, "ethereum:"+ethTokenAddress[i], tokenBalance)
|
||||
}
|
||||
tokenBalance = (await sdk.api.eth.getBalance({ target: eth1Addr })).output;
|
||||
await sdk.util.sumSingleBalance(balances, "ethereum:" + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", tokenBalance)
|
||||
|
||||
tokenBalance=(await sdk.api.eth.getBalance({target:eth1Addr})).output;
|
||||
await sdk.util.sumSingleBalance(balances, "ethereum:"+"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", tokenBalance)
|
||||
|
||||
return balances
|
||||
};
|
||||
return sumTokens(balances, toa, ethBlock)
|
||||
};
|
||||
|
||||
|
||||
async function bscTvl(timestamp, ethBlock, chainBlocks) {
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
const chain = 'bsc'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
bscTokenAddress.forEach(t => {
|
||||
toa.push([t, bscAddr])
|
||||
})
|
||||
|
||||
for(var i=0;i<bscTokenAddress.length;i++ ){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: bscTokenAddress[i],
|
||||
chain: 'bsc',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: bscAddr,
|
||||
block: chainBlocks['bsc'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "bsc:"+bscTokenAddress[i], tokenBalance)
|
||||
|
||||
}
|
||||
|
||||
return balances
|
||||
};
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
};
|
||||
|
||||
async function avaxTvl(timestamp, ethBlock, chainBlocks) {
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
const chain = 'avax'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
avaxTokenAddress.forEach(t => {
|
||||
toa.push([t, avaxAddr])
|
||||
})
|
||||
|
||||
for(var i=0;i<avaxTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: avaxTokenAddress[i],
|
||||
chain: 'avax',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: avaxAddr,
|
||||
block: chainBlocks['avax'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "avax:"+avaxTokenAddress[i], tokenBalance)
|
||||
}
|
||||
return balances
|
||||
};
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
};
|
||||
|
||||
async function hecoTvl(timestamp, ethBlock, chainBlocks) {
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
for(var i=0;i<hecoTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: hecoTokenAddress[i],
|
||||
chain: 'heco',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: hecoAddr,
|
||||
block: chainBlocks['heco'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "heco:"+hecoTokenAddress[i], tokenBalance)
|
||||
}
|
||||
|
||||
const chain = 'heco'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
hecoTokenAddress.forEach(t => {
|
||||
toa.push([t, hecoAddr])
|
||||
})
|
||||
|
||||
return balances
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
};
|
||||
|
||||
async function polygonTvl(timestamp, ethBlock, chainBlocks) {
|
||||
|
||||
const chain = 'polygon'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
maticTokenAddress.forEach(t => {
|
||||
toa.push([t, polyAddr])
|
||||
})
|
||||
|
||||
for(var i=0;i<maticTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: maticTokenAddress[i],
|
||||
chain: 'polygon',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: polyAddr,
|
||||
block: chainBlocks['polygon'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "polygon:"+maticTokenAddress[i], tokenBalance)
|
||||
}
|
||||
|
||||
return balances
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
};
|
||||
|
||||
async function fantomTvl(unixTimestamp, ethBlock, chainBlocks) {
|
||||
|
||||
const balances = {}
|
||||
const chain = 'fantom'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
fantomTokenAddress.forEach(t => {
|
||||
toa.push([t, ftmAddr])
|
||||
})
|
||||
|
||||
for(var i=0;i<fantomTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: fantomTokenAddress[i],
|
||||
chain: 'fantom',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: ftmAddr,
|
||||
block: chainBlocks['fantom'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "fantom:"+fantomTokenAddress[i], tokenBalance)
|
||||
}
|
||||
|
||||
return balances
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
}
|
||||
|
||||
async function harmonyTvl(unixTimestamp, ethBlock, chainBlocks) {
|
||||
const block = chainBlocks["harmony"]
|
||||
const chain = 'harmony'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
harmonyTokenAddress.forEach(t => {
|
||||
toa.push([t, harmonyAddr])
|
||||
})
|
||||
|
||||
const balances = {}
|
||||
|
||||
for(var i=0;i<harmonyTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: harmonyTokenAddress[i],
|
||||
chain: 'harmony',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: harmonyAddr,
|
||||
block: chainBlocks['harmony'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "harmony:"+harmonyTokenAddress[i], tokenBalance)
|
||||
}
|
||||
|
||||
return balances
|
||||
}
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
}
|
||||
|
||||
async function metisTvl(unixTimestamp, ethBlock, chainBlocks) {
|
||||
const block = chainBlocks["metis"]
|
||||
const chain = 'metis'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
metisTokenAddress.forEach(t => {
|
||||
toa.push([t, metisAddr])
|
||||
})
|
||||
|
||||
const balances = {}
|
||||
|
||||
for(var i=0;i<metisTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: metisTokenAddress[i],
|
||||
chain: 'metis',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: metisAddr,
|
||||
block: chainBlocks['metis'],
|
||||
})
|
||||
).output;
|
||||
|
||||
sdk.util.sumSingleBalance(balances, "metis:"+metisTokenAddress[i], tokenBalance)
|
||||
}
|
||||
|
||||
|
||||
const transformMetisAddress = await getChainTransform('metis');
|
||||
for(var i=0;i<metisTotalSupply.length;i++){
|
||||
var tokenBalance1= (
|
||||
await sdk.api.abi.call({
|
||||
target: metisTotalSupply[i],
|
||||
chain: 'metis',
|
||||
abi: 'erc20:totalSupply',
|
||||
block: chainBlocks['metis'],
|
||||
})
|
||||
).output;
|
||||
const tokenAddress = transformMetisAddress(metisTotalSupply[i]);
|
||||
sdk.util.sumSingleBalance(balances,tokenAddress, tokenBalance1)
|
||||
}
|
||||
return balances
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
}
|
||||
|
||||
async function cronosTvl(timestamp, ethBlock, chainBlocks) {
|
||||
const chain = 'cronos'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
cronosTokenAddress.forEach(t => {
|
||||
toa.push([t, cronosAddr])
|
||||
})
|
||||
|
||||
for(var i=0;i<cronosTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: cronosTokenAddress[i],
|
||||
chain: 'cronos',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: cronosAddr,
|
||||
block: chainBlocks['cronos'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "cronos:"+cronosTokenAddress[i], tokenBalance)
|
||||
}
|
||||
|
||||
return balances
|
||||
}
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
}
|
||||
|
||||
async function ioTexTvl(timestamp, ethBlock, chainBlocks) {
|
||||
const chain = 'iotex'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
iotexTokenAddress.forEach(t => {
|
||||
toa.push([t, iotexAddr])
|
||||
})
|
||||
|
||||
for(var i=0;i<iotexTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: iotexTokenAddress[i],
|
||||
chain: 'iotex',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: iotexAddr,
|
||||
block: chainBlocks['iotex'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "iotex:"+iotexTokenAddress[i], tokenBalance)
|
||||
}
|
||||
|
||||
return balances
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
}
|
||||
|
||||
async function moonriverTvl(timestamp, ethBlock, chainBlocks) {
|
||||
let balances = {};
|
||||
let tokenBalance;
|
||||
|
||||
for(var i=0;i<moonTokenAddress.length;i++){
|
||||
tokenBalance= (
|
||||
await sdk.api.abi.call({
|
||||
target: moonTokenAddress[i],
|
||||
chain: 'moonriver',
|
||||
abi: 'erc20:balanceOf',
|
||||
params: moonriverAddr,
|
||||
block: chainBlocks['moonriver'],
|
||||
})
|
||||
).output;
|
||||
sdk.util.sumSingleBalance(balances, "moonriver:"+moonTokenAddress[i], tokenBalance)
|
||||
}
|
||||
return balances
|
||||
async function moonriverTvl(timestamp, ethBlock, chainBlocks) {
|
||||
const chain = 'moonriver'
|
||||
const toa = []
|
||||
let balances = {};
|
||||
moonTokenAddress.forEach(t => {
|
||||
toa.push([t, moonriverAddr])
|
||||
})
|
||||
|
||||
return sumTokens(balances, toa, chainBlocks[chain], chain)
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = {
|
||||
ethereum: {
|
||||
tvl:ethTvl,
|
||||
tvl: ethTvl,
|
||||
},
|
||||
bsc: {
|
||||
tvl:bscTvl,
|
||||
tvl: bscTvl,
|
||||
},
|
||||
avax:{
|
||||
tvl:avaxTvl,
|
||||
avax: {
|
||||
tvl: avaxTvl,
|
||||
},
|
||||
heco:{
|
||||
tvl:hecoTvl,
|
||||
heco: {
|
||||
tvl: hecoTvl,
|
||||
},
|
||||
polygon:{
|
||||
tvl:polygonTvl,
|
||||
},
|
||||
fantom:{
|
||||
tvl:fantomTvl,
|
||||
},
|
||||
harmony :{
|
||||
tvl:harmonyTvl,
|
||||
polygon: {
|
||||
tvl: polygonTvl,
|
||||
},
|
||||
metis :{
|
||||
tvl:metisTvl,
|
||||
fantom: {
|
||||
tvl: fantomTvl,
|
||||
},
|
||||
cronos :{
|
||||
tvl:cronosTvl,
|
||||
harmony: {
|
||||
tvl: harmonyTvl,
|
||||
},
|
||||
iotex:{
|
||||
tvl:ioTexTvl,
|
||||
metis: {
|
||||
tvl: metisTvl,
|
||||
},
|
||||
moonriver:{
|
||||
tvl:moonriverTvl,
|
||||
cronos: {
|
||||
tvl: cronosTvl,
|
||||
},
|
||||
iotex: {
|
||||
tvl: ioTexTvl,
|
||||
},
|
||||
moonriver: {
|
||||
tvl: moonriverTvl,
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user