Skip to content

Commit 2d1d14f

Browse files
committed
code refactor
1 parent 7fbeb8e commit 2d1d14f

File tree

1 file changed

+22
-40
lines changed

1 file changed

+22
-40
lines changed

projects/abacus/index.js

Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,24 @@
1-
const { staking } = require("../helper/staking");
1+
const wildCreditABI = require('../wildcredit/abi.json');
22

3-
// Abacus contracts
4-
// arbitrum
5-
const abcRAM = '0x9EfCFc5b49390FC3fb9B58607D2e89445Bb380BF';
6-
const abcRAMStake = '0xBD8a830f4Ae6B2355E12E9714FeDB5aE9d71c81D';
3+
const config = {
4+
arbitrum: { strategy: '0xB4E291f443f51D80186dd3EE0Af7F4a4E6e90804', veToken: '0xAAA343032aA79eE9a6897Dab03bef967c3289a06', token: '0xAAA6C1E32C55A7Bfa8066A6FAE9b42650F262418' },
5+
avax: { strategy: '0xedEd6a22bf714d4B19b7e7bC1CA0BCF88956751c', veToken: '0xAAAEa1fB9f3DE3F70E89f37B69Ab11B47eb9Ce6F', token: '0xaaab9d12a30504559b0c5a9a5977fee4a6081c6b' },
6+
bsc: { strategy: '0x37e46C030e0d843b39F692c9108E54945F4CCCf7', veToken: '0xfBBF371C9B0B994EebFcC977CEf603F7f31c070D', token: '0xF4C8E32EaDEC4BFe97E0F595AdD0f4450a863a11' },
7+
polygon: { strategy: '0x32dAc1B8AD93b53F549D6555e01c35dCC50b6229', veToken: '0xB419cE2ea99f356BaE0caC47282B9409E38200fa', token: '0xBFA35599c7AEbb0dAcE9b5aa3ca5f2a79624D8Eb' },
8+
mantle: { strategy: '0xCaAF554900E33ae5DBc66ae9f8ADc3049B7D31dB', veToken: '0xAAAEa1fB9f3DE3F70E89f37B69Ab11B47eb9Ce6F', token: '0xC1E0C8C30F251A07a894609616580ad2CEb547F2' },
9+
}
710

8-
// avalanche
9-
const abcPHAR = '0xd5d0A9b3f2C264b955Ae7161cfA6D38A7aEa60a7';
10-
const abcPHARStake = '0x541AdD99620d1294900851dCa2eca06a5c797c3e';
11-
12-
// mantle
13-
const abcCLEO = '0xCffbE0E73c750731EdB38C14Bc81A39dAc91819d';
14-
const abcCLEOStake = '0x498126eDEA7FBb4626585ebc98a8230B8fFa1cC9';
15-
16-
// bsc
17-
const liveTHE = '0xCdC3A010A3473c0C4b2cB03D8489D6BA387B83CD';
18-
const liveTHEStake = '0xD8C61EDe8CD9EE7B93855c3f110191e95eDF2979';
19-
20-
// polygon
21-
const liveRETRO = '0xCaAF554900E33ae5DBc66ae9f8ADc3049B7D31dB';
22-
const liveRETROStake = '0x1de28CB80428C265e7f40A05066B68c31e8d7D0e';
23-
24-
module.exports = {
25-
misrepresentedTokens: true,
26-
arbitrum: {
27-
tvl: staking(abcRAMStake, abcRAM, "arbitrum"),
28-
},
29-
avax: {
30-
tvl: staking(abcPHARStake, abcPHAR, "avax"),
31-
},
32-
mantle: {
33-
tvl: staking(abcCLEOStake, abcCLEO, "mantle"),
34-
},
35-
bsc: {
36-
tvl: staking(liveTHEStake, liveTHE, "bsc"),
37-
},
38-
polygon: {
39-
tvl: staking(liveRETROStake, liveRETRO, "polygon"),
40-
},
41-
methodology: "Counts tokens staked in the Abacus staking contracts across multiple chains",
42-
};
11+
Object.keys(config).forEach(chain => {
12+
const { strategy, veToken, token, } = config[chain]
13+
module.exports[chain] = {
14+
tvl: async (api) => {
15+
const nftPositions = await api.call({ abi: 'erc20:balanceOf', target: veToken, params: strategy })
16+
const positionIds = await api.multiCall({
17+
abi: wildCreditABI.tokenOfOwnerByIndex, target: veToken,
18+
calls: Array(Number(nftPositions)).fill(0).map((_, index) => ({ params: [strategy, index] }))
19+
})
20+
const locked = await api.multiCall({ abi: 'function locked(uint256) view returns (uint256 amount, uint256 end)', calls: positionIds, target: veToken })
21+
locked.forEach(i => api.add(token, i.amount))
22+
}
23+
}
24+
})

0 commit comments

Comments
 (0)