Skip to content

Commit 4f955fa

Browse files
DainaTsurug1nt0ki
andauthored
Update contract address and add new chains (DefiLlama#9833)
* Update contract address and add new chains * code refactor --------- Co-authored-by: g1nt0ki <[email protected]>
1 parent f5eb2e6 commit 4f955fa

File tree

2 files changed

+51
-66
lines changed

2 files changed

+51
-66
lines changed

projects/xWinFinance/Helper.js

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,6 @@ const token = {
22
XWIN: '0xd88ca08d8eec1e9e09562213ae83a7853ebb5d28'
33
};
44

5-
const Strategies = {
6-
xSCA: "0x0a652784DF3f8Abde85dAEeee77D1EA97f5c5B24",
7-
xDCA: "0x482ae949E4a70953fCa090717b68359b73b8602a",
8-
xWinBBMA: "0x5EFaaBc34a3ba66f1fD02F056AC457AeBaF57D55",
9-
xWinIRT: "0x5A8a66DF53DF88844c60829967b88d00eD208E08",
10-
xCAKE_V: "0x1d2430bBfe86432E36A7C7286E99f78546F23De9",
11-
xETH_V: "0x0C34Aa4e36983aB6ec11bC557A3B8cF79A7a9Ae7",
12-
xUSDC_V: "0xcBca44d60c5A2b3c56ACfB51aFC66Ea04b8a2742",
13-
xBUSD_V: "0xf4979C043df6f7d5dA929DeAB11b220A82886395",
14-
xBTC_V: "0x7A0dEc70473602Cd0EF3Dc3d909b6Dc3FA42116C",
15-
xUSDT_V: "0x8B7fcACB99124F009c8470FDa6f5fcF60277BDB2",
16-
xADA_V: "0x605926F795FD9B4c3A8B1A2db33cBE01c66bA83f",
17-
xBTC_O: "0x69764856e82180150f5366be610E40c2f812d7D6",
18-
xUSDT_O: "0xCEbd365e4BFd8589Fd6BDe21898DB35a8095f956",
19-
};
20-
21-
const PublicVault = {
22-
fDEFI: "0x61d5722290F8755b2f31D260064658D6Ad837F37",
23-
fMIV: "0x0A0817454710102F2bcB2215D616cBe3aFf495e5",
24-
fxDollar: "0xFa4d4B4243dDA1F5f4d09269f61D57d02470635C",
25-
fBTCETH: "0x284b4aDD0C9669f635EA64418C216821c45D0B48",
26-
fvUSDT: "0xE949d266E8740470a15DFB1F40A795b5a2b63f02",
27-
fCombo: "0x4d4F948C8E9Ec3d1cE1B80d598f57F8c75c64e4a",
28-
fTACombo: "0xaaFF5eFe1376474a520FFe9129d8Aa8d7422AAbe",
29-
};
30-
31-
const PrivateVault = {
32-
Vault1: "0xa74c70d0bf531171360e603e6441faeb71b117d1",
33-
Vault2: "0x834672c33291fd6932c1786e0c5fd4a3b921dc00",
34-
Vault3: "0xc1908cf72426c0d6c48a4930bef681bb6621c106",
35-
Vault4: "0x774c1ba3c31af51e4596fcaf9f90eaf167aee34c",
36-
Vault5: "0x69f69df395c05202ec935999d072fa390defc31f",
37-
Vault6: "0xb3c713a845378484f66e3f2ad608e3438675ff7c",
38-
Vault7: "0xc5782a89ad76fe0b68cd67dcc4b294fcb5307415",
39-
Vault8: "0xbddd3ff6f5902171faebb34e9ee084341c94a1e6",
40-
Vault9: "0xe6eff8492c6832c1da6f76d3cc3288951021a7b5",
41-
Vault10: "0x42289b0356470bdc0a93d6710f0bcf8bc0868f96",
42-
Vault11: "0x90aadea5b2f10c4c53139fe4cf8005ffe5ed8d47",
43-
Vault12: "0xbff5506a0c604cbf231646838f2f29118210e236",
44-
Vault13: "0xeb23a52115e5ac9ed9085a1c0b25ec29529eef3b",
45-
};
46-
475
const farms = {
486
MasterChefAddress: "0xD09774e3d5Dc02fa969896c53D3Cbb5bC8900A60",
497
BuddyChefAddress: "0x4B87a60fC5a94e5ac886867977e29c9711C2E903",
@@ -63,10 +21,7 @@ const abi = {
6321
};
6422

6523
module.exports = {
66-
Strategies,
67-
PublicVault,
68-
PrivateVault,
6924
farms,
7025
abi,
7126
token,
72-
};
27+
}

projects/xWinFinance/index.js

Lines changed: 50 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,57 @@
11
const { sumTokens2, sumTokensExport, } = require('../helper/unwrapLPs')
2-
const Helper = require("./Helper.js");
3-
const { farms: { MasterChefAddress, LockStakingAddress }, abi, token: { XWIN } } = require('./Helper.js');
4-
5-
async function tvl(api) {
6-
const vaults = [
7-
...Object.values(Helper.Strategies),
8-
...Object.values(Helper.PublicVault),
9-
...Object.values(Helper.PrivateVault),
10-
]
11-
const bals = await api.multiCall({ abi: 'uint256:getVaultValues', calls: vaults})
12-
const tokens = await api.multiCall({ abi: 'address:baseToken', calls: vaults})
13-
api.addTokens(tokens, bals)
2+
const { getConfig } = require('../helper/cache')
3+
const { farms: { MasterChefAddress, LockStakingAddress }, abi, token: { XWIN } } = require('./Helper.js');
4+
5+
const PrivateURL = "https://us-central1-xwinfinance-main.cloudfunctions.net/getPrivateVaults"
6+
7+
const config = {
8+
bsc: {
9+
portfolioURL: "https://s3.ap-northeast-1.amazonaws.com/download.xwin.finance/v2-config/bsc/xwinfundv2.json",
10+
strategyUrl: 'https://s3.ap-northeast-1.amazonaws.com/download.xwin.finance/v2-config/bsc/xwinstrategies.json',
11+
privateKey: 'BNB',
12+
},
13+
arbitrum: {
14+
portfolioURL: "https://s3.ap-northeast-1.amazonaws.com/download.xwin.finance/v2-config/arb/xwinfundv2.json",
15+
strategyUrl: "https://s3.ap-northeast-1.amazonaws.com/download.xwin.finance/v2-config/arb/xwinstrategies.json",
16+
privateKey: 'ARB',
17+
},
18+
polygon: {
19+
strategyUrl: "https://s3.ap-northeast-1.amazonaws.com/download.xwin.finance/v2-config/polygon/xwinstrategies.json",
20+
privateKey: 'Polygon',
21+
},
1422
}
1523

24+
Object.keys(config).forEach(chain => {
25+
const { portfolioURL, strategyUrl, privateKey, } = config[chain]
26+
module.exports[chain] = {
27+
tvl: async (api) => {
28+
const vaults = (await getConfig('xWinFinance/vaults/' + api.chain, strategyUrl)).map(i => i.contractaddress)
29+
const privateVaults = await getConfig('xWinFinance/privateVaults', PrivateURL)
30+
31+
vaults.push(...privateVaults[privateKey])
32+
if (portfolioURL) {
33+
const portfolioVaults = await getConfig('xWinFinance/portfolioVaults/' + api.chain, portfolioURL)
34+
vaults.push(...portfolioVaults.map(i => i.contractaddress))
35+
}
36+
37+
const bals = await api.multiCall({ abi: 'uint256:getVaultValues', calls: vaults })
38+
const tokens = await api.multiCall({ abi: 'address:baseToken', calls: vaults })
39+
const decimals = await api.multiCall({ abi: 'erc20:decimals', calls: tokens })
40+
41+
42+
//Get Vault Values returns 18 decimals even if the base token is not
43+
//For loop that removes the extra zeros if the base token is not 18 decimals.
44+
bals.forEach((bal, i) => bals[i] = bal / 10 ** (18 - decimals[i]))
45+
46+
api.addTokens(tokens, bals)
47+
}
48+
}
49+
})
50+
1651
async function pool2(api) {
17-
const data = await api.fetchList({ lengthAbi: abi.poolLength, itemAbi: abi.poolInfoMaster, target: MasterChefAddress, })
52+
const data = await api.fetchList({ lengthAbi: abi.poolLength, itemAbi: abi.poolInfoMaster, target: MasterChefAddress, })
1853
return sumTokens2({ api, owner: MasterChefAddress, tokens: data.map(i => i[0]), resolveLP: true, blacklistedTokens: [XWIN, LockStakingAddress] })
1954
}
2055

21-
module.exports = {
22-
bsc: {
23-
tvl,
24-
pool2,
25-
staking: sumTokensExport({ owners: [MasterChefAddress, LockStakingAddress], tokens: [XWIN]})
26-
},
27-
};
56+
module.exports.bsc.pool2 = pool2
57+
module.exports.bsc.staking = sumTokensExport({ owners: [MasterChefAddress, LockStakingAddress], tokens: [XWIN] })

0 commit comments

Comments
 (0)