Skip to content

Commit

Permalink
track mira.ly
Browse files Browse the repository at this point in the history
  • Loading branch information
g1nt0ki committed Oct 18, 2024
1 parent f1d66fd commit a5fed0a
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 0 deletions.
34 changes: 34 additions & 0 deletions projects/helper/chain/fuel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

const { GraphQLClient, } = require('graphql-request')
const { transformBalances } = require('../portedTokens')
const client = new GraphQLClient('https://mainnet.fuel.network/v1/graphql')

async function sumTokens({ api, owner, owners, token, tokens = [], tokensAndOwners = [] }) {
if (token)
tokens = [token]
if (owner)
owners = [owner]
if (owners)
tokensAndOwners = tokens.map(token => owners.map(owner => [token, owner])).flat()

tokensAndOwners = getUniqueToA(tokensAndOwners)

const query = tokensAndOwners.map(([token, owner], i) => `q${i}: contractBalance(
contract: "${owner}" asset: "${token}"
) { contract assetId amount}`).join('\n');

const results = await client.request(`{${query}}`)
Object.values(results).forEach(i => api.add(i.assetId, i.amount))
return transformBalances('fuel', api.getBalances())

function getUniqueToA(toa) {
toa = toa.map(i => i.join('-').toLowerCase())
toa = new Set(toa)
return [...toa].map(i => i.split('-'))
}
}


module.exports = {
sumTokens,
}
1 change: 1 addition & 0 deletions projects/helper/chains.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@
"fsc",
"ftn",
"functionx",
"fuel",
"fuse",
"fusion",
"genesys",
Expand Down
10 changes: 10 additions & 0 deletions projects/helper/tokenMapping.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,16 @@ const fixBalancesTokens = {
bitkub: {
[ADDRESSES.bitkub.KKUB]: { coingeckoId: 'bitkub-coin', decimals: 18 },
},
fuel: {
// https://docs.fuel.network/docs/verified-addresses/assets/
'0x286c479da40dc953bddc3bb4c453b608bba2e0ac483b077bd475174115395e6b': { coingeckoId: 'usd-coin', decimals: 6 },
'0xf8f8b6283d7fa5b672b530cbb84fcccb4ff8dc40f8176ef4544ddb1f1952ad07': { coingeckoId: 'ethereum', decimals: 9 },
'0xa0265fb5c32f6e8db3197af3c7eb05c48ae373605b8165b6f4a51c5b0ba4812e': { coingeckoId: 'tether', decimals: 6 },
'0x9e46f919fbf978f3cad7cd34cca982d5613af63ff8aab6c379e4faa179552958': { coingeckoId: 'savings-dai', decimals: 9 },
'0xaf3111a248ff7a3238cdeea845bb2d43cf3835f1f6b8c9d28360728b55b9ce5b': { coingeckoId: 'manta-mbtc', decimals: 9 },
'0xafd219f513317b1750783c6581f55530d6cf189a5863fd18bd1b3ffcec1714b4': { coingeckoId: 'manta-meth', decimals: 9 },
'0x91b3559edb2619cde8ffb2aa7b3c3be97efd794ea46700db7092abeee62281b0': { coingeckoId: 'renzo-restaked-eth', decimals: 9 },
}
}

ibcChains.forEach(chain => fixBalancesTokens[chain] = { ...ibcMappings, ...(fixBalancesTokens[chain] || {}) })
Expand Down
20 changes: 20 additions & 0 deletions projects/mira-ly/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const { sumTokens } = require("../helper/chain/fuel")
const { configPost } = require('../helper/cache')

async function tvl(api) {
const contractId = '0x2e40f2b244b98ed6b8204b3de0156c6961f98525c8162f80162fcf53eebd90e7'
const { pools } = await configPost('mira-ly', 'https://prod.api.mira.ly/pools', { "volume_hours": 24, "apr_days": 1 })
const tokens = pools.map(i => i.id.split('_').slice(0, 2)).flat()
// const provider = await fuels.Provider.create('https://mainnet.fuel.network/v1/graphql')
// const contract = new fuels.Contract(contractId, abi, provider)
// const { value } = await contract.functions.total_assets().get()
// console.log(contract.functions, +value)
return sumTokens({ api, owner: contractId, tokens })
}

module.exports = {
fuel: { tvl },
timetravel: false,
}

// https://github.com/mira-amm/mira-v1-ts/blob/main/sway_abis/contracts/mira_amm_contract/release/mira_amm_contract-abi.json

0 comments on commit a5fed0a

Please sign in to comment.