From f0ecde1d5af51878f1279643a84d3cb7ccea71af Mon Sep 17 00:00:00 2001 From: picardcapt1212 Date: Thu, 4 Apr 2024 18:57:51 +0900 Subject: [PATCH] adding mvlstaking provider --- .../providers/bsc/mvlstaking/data.json | 7 ++++ src/factory/providers/bsc/mvlstaking/index.ts | 40 +++++++++++++++++++ .../providers/ethereum/mvlstaking/data.json | 7 ++++ .../providers/ethereum/mvlstaking/index.ts | 38 ++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 src/factory/providers/bsc/mvlstaking/data.json create mode 100644 src/factory/providers/bsc/mvlstaking/index.ts create mode 100644 src/factory/providers/ethereum/mvlstaking/data.json create mode 100644 src/factory/providers/ethereum/mvlstaking/index.ts diff --git a/src/factory/providers/bsc/mvlstaking/data.json b/src/factory/providers/bsc/mvlstaking/data.json new file mode 100644 index 00000000..53ff296c --- /dev/null +++ b/src/factory/providers/bsc/mvlstaking/data.json @@ -0,0 +1,7 @@ +{ + "address": "0x5f588EfAf8eB57e3837486e834fC5a4E07768D98", + "name": "MVL", + "symbol": "mvl", + "decimals": 18, + "logo": "https://assets.coingecko.com/coins/images/3476/large/CoinGecko.png?1711620384" +} \ No newline at end of file diff --git a/src/factory/providers/bsc/mvlstaking/index.ts b/src/factory/providers/bsc/mvlstaking/index.ts new file mode 100644 index 00000000..1c375603 --- /dev/null +++ b/src/factory/providers/bsc/mvlstaking/index.ts @@ -0,0 +1,40 @@ +import util from '../../../../util/blockchainUtil'; +import formatter from '../../../../util/formatter'; +import { ITvlParams, ITvlReturn } from '../../../../interfaces/ITvl'; + +const START_BLOCK = 23522674; +const STAKING_ADDRESSES = [ + '0x0A3AC95445F3e02cC80267f02B9669ed75b71043', + '0xC948622856a40Efd50d74BA6e3624FE7100A95Ef', + '0x121E257f4A6fa763012eF0b6b6f68905F6D4b721', + '0xc81632E77Ea7262137EA815DC8BA7a47A5a01ab1', + '0x5a54EC1e6DA36f19a806A9168fD4270fEf697354', +]; + +const TOKEN_ADDRESSES = [ + '0x5f588EfAf8eB57e3837486e834fC5a4E07768D98', + '0xE01eDA650632986B2E5B8167F629D7C7c759D4FD', +]; + +async function tvl(params: ITvlParams): Promise> { + const { block, chain, web3 } = params; + if (block < START_BLOCK) { + return {}; + } + + const proxyBalance = await util.getTokenBalancesOfEachHolder( + STAKING_ADDRESSES, + TOKEN_ADDRESSES, + block, + chain, + web3, + ); + + // console.log('proxyBalanceproxyBalance', proxyBalance); + const balances = {}; + formatter.sumMultiBalanceOf(balances, proxyBalance); + formatter.convertBalancesToFixed(balances); + return { balances }; +} + +export { tvl }; diff --git a/src/factory/providers/ethereum/mvlstaking/data.json b/src/factory/providers/ethereum/mvlstaking/data.json new file mode 100644 index 00000000..eb60dcb5 --- /dev/null +++ b/src/factory/providers/ethereum/mvlstaking/data.json @@ -0,0 +1,7 @@ +{ + "address": "0xa849eaae994fb86afa73382e9bd88c2b6b18dc71", + "name": "MVL", + "symbol": "mvl", + "decimals": 18, + "logo": "https://assets.coingecko.com/coins/images/3476/large/CoinGecko.png?1711620384" +} \ No newline at end of file diff --git a/src/factory/providers/ethereum/mvlstaking/index.ts b/src/factory/providers/ethereum/mvlstaking/index.ts new file mode 100644 index 00000000..7efd0b5b --- /dev/null +++ b/src/factory/providers/ethereum/mvlstaking/index.ts @@ -0,0 +1,38 @@ +import util from '../../../../util/blockchainUtil'; +import formatter from '../../../../util/formatter'; +import { ITvlParams, ITvlReturn } from '../../../../interfaces/ITvl'; + +const START_BLOCK = 16681417; +const STAKING_ADDRESSES = [ + '0x34fDA56b5c9Aa52DF9fa51b01666683b7b1434d6', + '0xC0496C7B9D7150A81bD6fF1d015e95668BD4abeD', + '0x92Ec27935cE7b523cc70C2fFaf0728F1Fa6425dF', + '0x1BdFAa7aFAa454F491b5de40d24d681F0F3Adb1A', +]; +const TOKEN_ADDRESSES = [ + '0xA849EaaE994fb86Afa73382e9Bd88c2B6b18Dc71', + '0x3c8ad34155b83ddb7f43119a19503d34ed2b5c7a', +]; + +async function tvl(params: ITvlParams): Promise> { + const { block, chain, web3 } = params; + if (block < START_BLOCK) { + return {}; + } + + const proxyBalance = await util.getTokenBalancesOfEachHolder( + STAKING_ADDRESSES, + TOKEN_ADDRESSES, + block, + chain, + web3, + ); + + // console.log('proxyBalanceproxyBalance', proxyBalance); + const balances = {}; + formatter.sumMultiBalanceOf(balances, proxyBalance); + formatter.convertBalancesToFixed(balances); + return { balances }; +} + +export { tvl };