forked from DefiLlama/DefiLlama-Adapters
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds Saber pools from json configuration
- Loading branch information
Showing
2 changed files
with
265 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,232 @@ | ||
[ | ||
{ | ||
"id": "usdc_usdt", | ||
"authority": "5C1k9yV7y4CjMnKv8eGYDgWND8P89Pdfj79Trk2qmfGo", | ||
"tokenA": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", | ||
"tokenB": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", | ||
"reserveA": "CfWX7o2TswwbxusJ4hCaPobu2jLCb1hfXuXJQjVq3jQF", | ||
"reserveB": "EnTrdMMpdhugeH6Ban6gYZWXughWxKtVGfCwFn78ZmY3", | ||
"tokenACoingecko": "usd-coin", | ||
"tokenBCoingecko": "tether" | ||
}, | ||
{ | ||
"id": "usdc_pai", | ||
"authority": "7W9KMACQT6UmjRPEUQKXyVf4NjZ9Ux4PHs1e1P5PxDtA", | ||
"tokenA": "Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS", | ||
"tokenB": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", | ||
"reserveA": "4DYwgJtxwuJdAjkj5RJSNH4e7U329V5cNp7d3a1nLrZv", | ||
"reserveB": "EXNW64GEf1ACC6xY9BtKRiunrs6GoJSXBdxWN2eTPmrF", | ||
"tokenACoingecko": "usdp", | ||
"tokenBCoingecko": "usd-coin" | ||
}, | ||
{ | ||
"id": "btc", | ||
"authority": "Fekck54VF2MdesR74trJteZbiKj1TD5AVQisXr8E7fjG", | ||
"tokenA": "CDJWUqTcYTVAKXAVXoQZFes5JUFc7owSeq7eMQcDSbo5", | ||
"tokenB": "SBTCB6pWqeDo6zGi9WVRMLCsKsN6JiR1RMUqvLtgSRv", | ||
"reserveA": "35yX27bmurdebhfAb8EPmjLETDiUaEUCn9zHaDPbakH2", | ||
"reserveB": "2CxECn1ZJFoESyUnQysQU8rRgT3iJ5GRs2Mdd6gZjx5g", | ||
"tokenACoingecko": "renbtc", | ||
"tokenBCoingecko": "bitcoin" | ||
}, | ||
{ | ||
"id": "pbtc", | ||
"authority": "2wszCpUdVDFrJcP79wpV3FdBmU38UC1YKuoSUBA5mhWu", | ||
"tokenA": "CDJWUqTcYTVAKXAVXoQZFes5JUFc7owSeq7eMQcDSbo5", | ||
"tokenB": "DYDWu4hE4MN3aH897xQ3sRTs5EAjJDmQsKLNhbpUiKun", | ||
"reserveA": "DvHVapj4g2Y1tJVSw2ubSPkPBsJPb8fW387ZWXwaKmZq", | ||
"reserveB": "DKjqWWgrtDRPKrnMWtZ4UiJk4sGQVCQgFjSo7BvfngvK", | ||
"tokenACoingecko": "renbtc", | ||
"tokenBCoingecko": "ptokens-btc" | ||
}, | ||
{ | ||
"id": "ust", | ||
"authority": "ASpJBf8HtyrNxaMqFNpjYCqi8SsJC5h56hd3HQUNk6M7", | ||
"tokenA": "JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1", | ||
"tokenB": "CXLBjMMcwkc17GfJtBos6rQCo1ypeH6eDbB82Kby4MRm", | ||
"reserveA": "D9yh4KAysxt9GLacVe4Wwh2XqghhcjTCSTV9HuM7TBJd", | ||
"reserveB": "HDYfJLpZKaMFb84jM4mRytn7XLR8UFZUnQpSfhJJaNEy", | ||
"tokenACoingecko": "usdc", | ||
"tokenBCoingecko": "terrausd" | ||
}, | ||
{ | ||
"id": "dai", | ||
"authority": "2hAy2ubWi3PWrgxSoamzonLy1bUL3BfoqW7u7791Qpj9", | ||
"tokenA": "FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1", | ||
"tokenB": "JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1", | ||
"reserveA": "A7VkMFrnCCyeZFUrQ3TzDr4xFep7PZtxvy3jJnBjLB2a", | ||
"reserveB": "PhfHJ2Yu99BsEjZrefhApqUnLUiExcECcUT1YLoNUUv", | ||
"tokenACoingecko": "dai", | ||
"tokenBCoingecko": "usdc" | ||
}, | ||
{ | ||
"id": "busd", | ||
"authority": "FDndRkBVpFoNBHY6Jhx7PgNpysvZjt3P2MZ95vmkSfWa", | ||
"tokenA": "AJ1W9A9N9dEMdVyoDiam2rV44gnBm2csrPDP7xqcapgX", | ||
"tokenB": "JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1", | ||
"reserveA": "5uerVwBnZQsuVhZ15igs7ZgmcqhHnYWbwoRtLyRqLvR", | ||
"reserveB": "9YWiQh5d4jCtgMdzcGLv9bWgnLaFtzvDDh2nnhJdzhBX", | ||
"tokenACoingecko": "binance-usd", | ||
"tokenBCoingecko": "usdc" | ||
}, | ||
{ | ||
"id": "luna", | ||
"authority": "4HP9xSxLcEK64zALBCP36GdfDLrMXorVk4X6DyLrBjbp", | ||
"tokenA": "2Xf2yAXJfg82sWwdLUo2x9mZXy6JCdszdMZkcF1Hf4KV", | ||
"tokenB": "KUANeD8EQvwpT1W7QZDtDqctLEh2FfSTy5pThE9CogT", | ||
"reserveA": "Au5zcSost9sXpH8AQQjULRXJ9QCJ3kdKehUr1zYzTr6G", | ||
"reserveB": "Gx1L7n1YhDWLNfUyCeZfzKvwHJSxhppnk4DS5cZLqyd", | ||
"tokenACoingecko": "wrapped-terra", | ||
"tokenBCoingecko": "luna" | ||
}, | ||
{ | ||
"id": "frax", | ||
"authority": "GUotxHmyJVsJYWYoL8Vo6SKQweNRUZMRQcoqDe5PswHt", | ||
"tokenA": "8L8pDf3jutdpdr4m3np68CL9ZroLActrqwxi6s9Ah5xU", | ||
"tokenB": "JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1", | ||
"reserveA": "7eEYpq6ShaJ9opZWMxitRFrdCHh6vfyHhGfoSvFht3N2", | ||
"reserveB": "H8VggnHmuwd1wvwpT8eg9cUJFEfZ7HAaeYjgXrSm7A2u", | ||
"tokenACoingecko": "frax", | ||
"tokenBCoingecko": "usdc" | ||
}, | ||
{ | ||
"id": "hbtc", | ||
"authority": "G4cRef4AxEjaSV32xqQzDmHqi3iz8112LQwx8oPbZhYb", | ||
"tokenA": "8pBc4v9GAwCBNWPB5XKA93APexMGAS4qMr37vNke9Ref", | ||
"tokenB": "FACTQhZBfRzC7A76antnpAoZtiwYmUfdAN8wz7e8rxC5", | ||
"reserveA": "GsizhiRtCs4QDKd2LnSQ9BpzvG8CqERMDtHZcQPDkFQB", | ||
"reserveB": "CRaJHfCry6JShmF4tMr6siR2D2QNNfcUrLawTqPVCTTJ", | ||
"tokenACoingecko": "huobi-btc", | ||
"tokenBCoingecko": "renbtc" | ||
}, | ||
{ | ||
"id": "husd", | ||
"authority": "ELnY6YAb1oSPGuARAV8rBJq44AXgT69GJhvWNfuabq9B", | ||
"tokenA": "BybpSTBoZHsmKnfxYG47GDhVPKrnEKX31CScShbrzUhX", | ||
"tokenB": "88881Hu2jGMfCs9tMu5Rr7Ah7WBNBuXqde4nR5ZmKYYy", | ||
"reserveA": "2mUxDu8NrhSKhQJMgKfYLxJqZzeEbmwhQdHeHMyohyuk", | ||
"reserveB": "AZCBmDBcFsA2jHHhfFJBTsWCHx9XnnKmGfFsue3ZVW1t", | ||
"tokenACoingecko": "husd", | ||
"tokenBCoingecko": "usdc" | ||
}, | ||
{ | ||
"id": "usdk", | ||
"authority": "5iGwpfXgTX2zqQuagzwLtMWEg1e8Rju7tkjYUbbHXvgj", | ||
"tokenA": "2kycGCD8tJbrjJJqWN2Qz5ysN9iB4Bth3Uic4mSB7uak", | ||
"tokenB": "JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1", | ||
"reserveA": "5RfXYWvxR9PUaedokXVxgJHDoD4xnLLauVtdJ27shPWG", | ||
"reserveB": "DJcFPaQjyW9Xkt7sXCbnEGj1yfykGYuLRUXFyS4LLZ5F", | ||
"tokenACoingecko": "usdk", | ||
"tokenBCoingecko": "usdc" | ||
}, | ||
{ | ||
"id": "ftt", | ||
"authority": "DGPFLHMzcfLeANN5m6gVoMFpo38KuU85tAGFHpLfn3gM", | ||
"tokenA": "GbBWwtYTMPis4VHb8MrBbdibPhn28TSrLB53KvUmb7Gi", | ||
"tokenB": "FTT9rBBrYwcHam4qLvkzzzhrsihYMbZ3k6wJbdoahxAt", | ||
"reserveA": "46xwHtnXoQR3wCHUbm2eCAbPYWbioDQ59Te1Db8M5DDL", | ||
"reserveB": "FC38fiikZwFvDt5zTjNtGfKd7LjaPz2uUAzLwKP5pRJY", | ||
"tokenACoingecko": "ftx-token", | ||
"tokenBCoingecko": "ftx-token" | ||
}, | ||
{ | ||
"id": "srm", | ||
"authority": "BdvYL4rH3CqJ6eX6d7iC4snNZZvJQXR67T8dHNTUeSmz", | ||
"tokenA": "2jXy799YnEcRXneFo2GEAB6SDRsAa767HpWmktRr1DaP", | ||
"tokenB": "SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt", | ||
"reserveA": "C5uYkVHiFduEFq8S3fr4pgUS24oYj1sjZ8WW2cb4j8SU", | ||
"reserveB": "3F5DPU5ScgHiFzePYUHZovvgh3uqmM5keNvbavx2ERqV", | ||
"tokenACoingecko": "serum", | ||
"tokenBCoingecko": "serum" | ||
}, | ||
{ | ||
"id": "ibbtc", | ||
"authority": "4PHvSwhw8Gz26UZfgSjDLx8JLpJnh2kpNCtssgGUKQFe", | ||
"tokenA": "66CgfJQoZkpkrEgC1z4vFJcSFc4V6T5HqbjSSNuqcNJz", | ||
"tokenB": "9999j2A8sXUtHtDoQdk528oVzhaKBsXyRGZ67FKGoi7H", | ||
"reserveA": "Fb2Zdo7hWjMmwMXn7589WbPbjVPxVUQgPgs5cAcStJm8", | ||
"reserveB": "AjVXZPzFEShWkGASQv5dBp9r4Xf6V1mvyHWfH5UWF9c3", | ||
"tokenACoingecko": "bitcoin", | ||
"tokenBCoingecko": "bitcoin" | ||
}, | ||
{ | ||
"id": "ibbtc_ren", | ||
"authority": "3rjYaVP4fkv4BVQsA7aaC7DZUdogkna7ACGaAhiuNYfi", | ||
"tokenA": "66CgfJQoZkpkrEgC1z4vFJcSFc4V6T5HqbjSSNuqcNJz", | ||
"tokenB": "FACTQhZBfRzC7A76antnpAoZtiwYmUfdAN8wz7e8rxC5", | ||
"reserveA": "CZ48nQQ6GK8Z7hGBPdxTtMzRBA8werj5iciVJnc3vz1S", | ||
"reserveB": "G3nLYyvP46npva5MEobZVJhcDNzJ4rrHgLGJMtvyad5c", | ||
"tokenACoingecko": "bitcoin", | ||
"tokenBCoingecko": "renbtc" | ||
}, | ||
{ | ||
"id": "msol_sol", | ||
"authority": "2Sj4MZvmLhud4uRmGHJvDxq612nmF4JJsU1R4ZjNNGMS", | ||
"tokenA": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So", | ||
"tokenB": "So11111111111111111111111111111111111111112", | ||
"reserveA": "9DgFSWkPDGijNKcLGbr3p5xoJbHsPgXUTr6QvGBJ5vGN", | ||
"reserveB": "2hNHZg7XBhuhHVZ3JDEi4buq2fPQwuWBdQ9xkH7t1GQX", | ||
"tokenACoingecko": "solana", | ||
"tokenBCoingecko": "solana" | ||
}, | ||
{ | ||
"id": "apusdt", | ||
"authority": "4S8xo3PeKfs3kY7ecS2amiffJZ4WXCAceDhUseE11q5E", | ||
"tokenA": "DNhZkUaxHXYvpxZ7LNnHtss8sQgdAfd1ZYS1fB7LKWUZ", | ||
"tokenB": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", | ||
"reserveA": "D6d156U1bPiJpDYRLextvDRccgFk7QzkQbJg42ceKEu5", | ||
"reserveB": "GNcM8U5g8RwTZffwwm3kSQqUNPSwv5d2fbN9sLxPJqt2", | ||
"tokenACoingecko": "tether", | ||
"tokenBCoingecko": "tether" | ||
}, | ||
{ | ||
"id": "apusdc", | ||
"authority": "8puxJXzTyPXRsQ9PH9niMeje9M83a2bzatTzHxBWjGoP", | ||
"tokenA": "eqKJTf1Do4MDPyKisMYqVaUFpkEFAs3riGF3ceDH2Ca", | ||
"tokenB": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", | ||
"reserveA": "4xkyD7AfGQDwsQMy9MosRRNGoVJ1zosNinesxg1TzHG7", | ||
"reserveB": "Cbm5gsQe3nSiCsFrvepVzMCD9xLK3ri9g3ypS2hdmVJ7", | ||
"tokenACoingecko": "usd-coin", | ||
"tokenBCoingecko": "usd-coin" | ||
}, | ||
{ | ||
"id": "mai", | ||
"authority": "41gN5ZP7inB3rgqQikVxWcfofyYsxH4zWQBRWyJrdZCy", | ||
"tokenA": "9mWRABuz2x6koTPCWiCPM49WUbcrNqGTHBV9T9k7y1o7", | ||
"tokenB": "JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1", | ||
"reserveA": "DhgiEgiNdqZdRdo195UUHnoEJUtefK8buko8nU97XJUZ", | ||
"reserveB": "2K2kkXsouBHtWVjtcgkyiXd8eP3oVBvq1bTJzcVdLLr2", | ||
"tokenACoingecko": "mimatic", | ||
"tokenBCoingecko": "usdc" | ||
}, | ||
{ | ||
"id": "psol", | ||
"authority": "6rxqyX1fD27oepCCnv2uy9uJWmXHjPTeQ5PaP99JZrKx", | ||
"tokenA": "9EaLkQrbjmbbuZG9Wdpo8qfNUEjHATJFSycEmw6f1rGX", | ||
"tokenB": "BdZPG9xWrG3uFrx2KrUW1jT4tZ9VKPDWknYihzoPRJS3", | ||
"reserveA": "3oyc6hpjYSJEquK6dSvG72NXyz3pqLZz5D8AC71pwgQb", | ||
"reserveB": "Di2vordgFJVZ1aj1aBpvzXtLfZgJsuLLXawGtVFwX6Rz", | ||
"tokenACoingecko": "solana", | ||
"tokenBCoingecko": "solana" | ||
}, | ||
{ | ||
"id": "prtsol", | ||
"authority": "EKwQt98muCQJq4ghRFausCbMvyLhExS5g8CxvAFHike1", | ||
"tokenA": "BdZPG9xWrG3uFrx2KrUW1jT4tZ9VKPDWknYihzoPRJS3", | ||
"tokenB": "So11111111111111111111111111111111111111112", | ||
"reserveA": "9ZDpBKPqMABtGfq66FbVribaArMvtk63xxy91onZAtDt", | ||
"reserveB": "DaTP4s6N7xxSPinbNZ3FB52EpRDRt87QShTuN3VPCW52", | ||
"tokenACoingecko": "solana", | ||
"tokenBCoingecko": "solana" | ||
}, | ||
{ | ||
"id": "stsol", | ||
"authority": "8eyi347MTDeH5F6eVv2qjPxVnU685FFZLDGcj5QWHZ6y", | ||
"tokenA": "7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj", | ||
"tokenB": "So11111111111111111111111111111111111111112", | ||
"reserveA": "4PgzyzLtds9bKZ2to9PMnKqJzKEUpjvNUaeN23phegax", | ||
"reserveB": "AtymwxoVN9peZo7EXTcDz9jKVc4vRmisJKKrNfe3ewBa", | ||
"tokenACoingecko": "solana", | ||
"tokenBCoingecko": "solana" | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,91 +1,39 @@ | ||
const {getTokenBalance} = require('./helper/solana') | ||
const { getTokenAccountBalance } = require("./helper/solana"); | ||
|
||
// The data here comes directly from | ||
// https://registry.saber.so/data/llama.mainnet.json | ||
const SABER_POOLS = require("./helper/saber-pools.json"); | ||
|
||
async function tvl() { | ||
const [usdcAmount, usdtAmount, paiAmount, usdcAmount_2, | ||
btcAmount, renBtcAmount, pbtcAmount, renBtcAmount_2, hbtcAmount, renBtcAmount_3, | ||
ustAmount, daiAmount, busdAmount, fraxAmount, usdkAmount, usdcAmount_3, | ||
wlunaAmount, renLunaAmount, husdAmount, usdcAmount_4, fttAmount, wfttAmount, wsrmAmount, srmAmount, | ||
ibBtcAmount, btcAmount_2, ibBtcAmount_2, | ||
msolAmount, solAmount, prtSolAmount, solAmount_2, prtSolAmount_2, pSolAmount, | ||
apusdtAmount, usdtAmount_2, maiAmount, | ||
apusdcAmount, usdcAmount_5] = await Promise.all([ | ||
//usdc-usdt | ||
getTokenBalance("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "5C1k9yV7y4CjMnKv8eGYDgWND8P89Pdfj79Trk2qmfGo"), | ||
getTokenBalance("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "5C1k9yV7y4CjMnKv8eGYDgWND8P89Pdfj79Trk2qmfGo"), | ||
//pai-usdc pool | ||
getTokenBalance("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS", "7W9KMACQT6UmjRPEUQKXyVf4NjZ9Ux4PHs1e1P5PxDtA"), | ||
getTokenBalance("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "7W9KMACQT6UmjRPEUQKXyVf4NjZ9Ux4PHs1e1P5PxDtA"), | ||
//BTC-renBTC & pBTC-renBTC & hBTC-renBTC pool | ||
getTokenBalance("SBTCB6pWqeDo6zGi9WVRMLCsKsN6JiR1RMUqvLtgSRv", "Fekck54VF2MdesR74trJteZbiKj1TD5AVQisXr8E7fjG"), | ||
getTokenBalance("CDJWUqTcYTVAKXAVXoQZFes5JUFc7owSeq7eMQcDSbo5", "Fekck54VF2MdesR74trJteZbiKj1TD5AVQisXr8E7fjG"), | ||
getTokenBalance("DYDWu4hE4MN3aH897xQ3sRTs5EAjJDmQsKLNhbpUiKun", "2wszCpUdVDFrJcP79wpV3FdBmU38UC1YKuoSUBA5mhWu"), | ||
getTokenBalance("CDJWUqTcYTVAKXAVXoQZFes5JUFc7owSeq7eMQcDSbo5", "2wszCpUdVDFrJcP79wpV3FdBmU38UC1YKuoSUBA5mhWu"), | ||
getTokenBalance("8pBc4v9GAwCBNWPB5XKA93APexMGAS4qMr37vNke9Ref", "G4cRef4AxEjaSV32xqQzDmHqi3iz8112LQwx8oPbZhYb"), | ||
getTokenBalance("CDJWUqTcYTVAKXAVXoQZFes5JUFc7owSeq7eMQcDSbo5", "D231Uoh24bXtUtWN51ZbFAFSBmGT3zuuEAHZNuCmtRjN"), | ||
//UST,wDAI,BUSD,FRAX, USDK and the USDC that corresponds | ||
getTokenBalance("CXLBjMMcwkc17GfJtBos6rQCo1ypeH6eDbB82Kby4MRm", "ASpJBf8HtyrNxaMqFNpjYCqi8SsJC5h56hd3HQUNk6M7"), | ||
getTokenBalance("FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1", "2hAy2ubWi3PWrgxSoamzonLy1bUL3BfoqW7u7791Qpj9"), | ||
getTokenBalance("AJ1W9A9N9dEMdVyoDiam2rV44gnBm2csrPDP7xqcapgX", "FDndRkBVpFoNBHY6Jhx7PgNpysvZjt3P2MZ95vmkSfWa"), | ||
getTokenBalance("8L8pDf3jutdpdr4m3np68CL9ZroLActrqwxi6s9Ah5xU", "GUotxHmyJVsJYWYoL8Vo6SKQweNRUZMRQcoqDe5PswHt"), | ||
getTokenBalance("2kycGCD8tJbrjJJqWN2Qz5ysN9iB4Bth3Uic4mSB7uak", "5iGwpfXgTX2zqQuagzwLtMWEg1e8Rju7tkjYUbbHXvgj"), | ||
getTokenBalance("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "AnKLLfpMcceM6YXtJ9nGxYekVXqfWy8WNsMZXoQTCVQk"), | ||
//wLUNA-renLUNA pool | ||
getTokenBalance("2Xf2yAXJfg82sWwdLUo2x9mZXy6JCdszdMZkcF1Hf4KV", "4HP9xSxLcEK64zALBCP36GdfDLrMXorVk4X6DyLrBjbp"), | ||
getTokenBalance("KUANeD8EQvwpT1W7QZDtDqctLEh2FfSTy5pThE9CogT", "4HP9xSxLcEK64zALBCP36GdfDLrMXorVk4X6DyLrBjbp"), | ||
//HUSD-USDC pool | ||
getTokenBalance("BybpSTBoZHsmKnfxYG47GDhVPKrnEKX31CScShbrzUhX", "ELnY6YAb1oSPGuARAV8rBJq44AXgT69GJhvWNfuabq9B"), | ||
getTokenBalance("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "G4gRGymKo7MGzGZup12JS39YVCvy8YMM6KY9AmcKi5iw"), | ||
//FTT-wFTT pool | ||
getTokenBalance("AGFEad2et2ZJif9jaGpdMixQqvW5i81aBdvKe7PHNfz3", "2ffwMLE4dxSv59eYXhfhfuS81kz6gzf6DZjdBxRHZz9A"), | ||
getTokenBalance("GbBWwtYTMPis4VHb8MrBbdibPhn28TSrLB53KvUmb7Gi", "DGPFLHMzcfLeANN5m6gVoMFpo38KuU85tAGFHpLfn3gM"), | ||
//SRM-wSRM pool | ||
getTokenBalance("2jXy799YnEcRXneFo2GEAB6SDRsAa767HpWmktRr1DaP", "BdvYL4rH3CqJ6eX6d7iC4snNZZvJQXR67T8dHNTUeSmz"), | ||
getTokenBalance("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt", "BdvYL4rH3CqJ6eX6d7iC4snNZZvJQXR67T8dHNTUeSmz"), | ||
//ibBTC-BTC pool & ibBTC from ibBTC-renBTC pool (the renBTC has same address as renBTC from hBTC-renBTC pool) | ||
getTokenBalance("66CgfJQoZkpkrEgC1z4vFJcSFc4V6T5HqbjSSNuqcNJz", "4PHvSwhw8Gz26UZfgSjDLx8JLpJnh2kpNCtssgGUKQFe"), | ||
getTokenBalance("9999j2A8sXUtHtDoQdk528oVzhaKBsXyRGZ67FKGoi7H", "4PHvSwhw8Gz26UZfgSjDLx8JLpJnh2kpNCtssgGUKQFe"), | ||
getTokenBalance("66CgfJQoZkpkrEgC1z4vFJcSFc4V6T5HqbjSSNuqcNJz", "3rjYaVP4fkv4BVQsA7aaC7DZUdogkna7ACGaAhiuNYfi"), | ||
// mSOL-SOL pool | ||
getTokenBalance("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So", "2Sj4MZvmLhud4uRmGHJvDxq612nmF4JJsU1R4ZjNNGMS"), | ||
getTokenBalance("So11111111111111111111111111111111111111112", "2Sj4MZvmLhud4uRmGHJvDxq612nmF4JJsU1R4ZjNNGMS"), | ||
// prtSOL-SOL pool | ||
getTokenBalance("BdZPG9xWrG3uFrx2KrUW1jT4tZ9VKPDWknYihzoPRJS3", "9ZDpBKPqMABtGfq66FbVribaArMvtk63xxy91onZAtDt"), // prtSolAmount | ||
getTokenBalance("So11111111111111111111111111111111111111112", "9ZDpBKPqMABtGfq66FbVribaArMvtk63xxy91onZAtDt"), // solAmount_2 | ||
// prtSol-pSOL | ||
getTokenBalance("BdZPG9xWrG3uFrx2KrUW1jT4tZ9VKPDWknYihzoPRJS3", "6rxqyX1fD27oepCCnv2uy9uJWmXHjPTeQ5PaP99JZrKx"), // prtSolAmount_2 | ||
getTokenBalance("9EaLkQrbjmbbuZG9Wdpo8qfNUEjHATJFSycEmw6f1rGX", "6rxqyX1fD27oepCCnv2uy9uJWmXHjPTeQ5PaP99JZrKx"), | ||
//apUSDT-USDT | ||
getTokenBalance("DNhZkUaxHXYvpxZ7LNnHtss8sQgdAfd1ZYS1fB7LKWUZ", "4S8xo3PeKfs3kY7ecS2amiffJZ4WXCAceDhUseE11q5E"), | ||
getTokenBalance("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "4S8xo3PeKfs3kY7ecS2amiffJZ4WXCAceDhUseE11q5E"), | ||
//MAI from Mai-USDC pool | ||
getTokenBalance("9mWRABuz2x6koTPCWiCPM49WUbcrNqGTHBV9T9k7y1o7","41gN5ZP7inB3rgqQikVxWcfofyYsxH4zWQBRWyJrdZCy"), | ||
//apusdc-USDC pool | ||
getTokenBalance("eqKJTf1Do4MDPyKisMYqVaUFpkEFAs3riGF3ceDH2Ca","8puxJXzTyPXRsQ9PH9niMeje9M83a2bzatTzHxBWjGoP"), | ||
getTokenBalance("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","8puxJXzTyPXRsQ9PH9niMeje9M83a2bzatTzHxBWjGoP"), | ||
]) | ||
const amounts = {}; | ||
|
||
const pools = await Promise.all( | ||
SABER_POOLS.map( | ||
({ reserveA, reserveB, tokenACoingecko, tokenBCoingecko }) => { | ||
return [ | ||
{ | ||
coingeckoID: tokenACoingecko, | ||
amount: await getTokenAccountBalance(reserveA), | ||
}, | ||
{ | ||
coingeckoID: tokenBCoingecko, | ||
amount: await getTokenAccountBalance(reserveB), | ||
}, | ||
]; | ||
} | ||
) | ||
); | ||
|
||
return pools.reduce((acc, pool) => { | ||
return { | ||
'bitcoin': btcAmount + ibBtcAmount + btcAmount_2 + ibBtcAmount_2, | ||
'usd-coin': usdcAmount + usdcAmount_2 + usdcAmount_3 + usdcAmount_4 + apusdcAmount + usdcAmount_5, | ||
'renbtc': renBtcAmount + renBtcAmount_2 + renBtcAmount_3, | ||
'terra-luna': wlunaAmount + renLunaAmount, | ||
'tether': usdtAmount + usdtAmount_2 + apusdtAmount, | ||
'terrausd': ustAmount, | ||
'dai': daiAmount, | ||
'busd': busdAmount, | ||
'frax': fraxAmount, | ||
'usdp': paiAmount, | ||
'ptokens-btc': pbtcAmount, | ||
'huobi-btc': hbtcAmount, | ||
'husd': husdAmount, | ||
'usdk': usdkAmount, | ||
'ftx-token': fttAmount + wfttAmount, | ||
'serum': wsrmAmount + srmAmount, | ||
'solana': msolAmount + solAmount + prtSolAmount + solAmount_2 + prtSolAmount_2 + pSolAmount, | ||
'mimatic': maiAmount, | ||
} | ||
...acc, | ||
[pool.coingeckoID]: (acc[pool.coingeckoID] ?? 0) + pool.amount, | ||
}; | ||
}); | ||
} | ||
|
||
module.exports = { | ||
tvl, | ||
methodology: 'To obtain the TVL of Saber we make on-chain calls using the function getTokenBalance() that uses the address of the token and the address of the contract where the tokens are found. TVL is calculated using the list of pool addresses found under the "Pools" button of the Saber App. These pools addresses are hard-coded. Making these calls returns the amount of tokens held in each contract. We then use Coingecko to get the price of each token in USD and export the sum of all tokens. "USDP" is used to price the stablecoin "PAI" since it has not been listed on Coingecko.', | ||
} | ||
tvl, | ||
methodology: | ||
'To obtain the TVL of Saber we make on-chain calls using the function getTokenBalance() that uses the address of the token and the address of the contract where the tokens are found. TVL is calculated using the list of pool addresses found under the "Pools" button of the Saber App. These pools addresses are hard-coded. Making these calls returns the amount of tokens held in each contract. We then use Coingecko to get the price of each token in USD and export the sum of all tokens. "USDP" is used to price the stablecoin "PAI" since it has not been listed on Coingecko.', | ||
}; |