@stake-dao/reader 0.4.89 → 0.4.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/abis/lockersMulticall.js +14 -0
- package/dist/esm/abis/lockersMulticall.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lockers/fetch/index.js +7 -1
- package/dist/esm/lockers/fetch/index.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js +1 -0
- package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/feeCalls.js +2 -2
- package/dist/esm/lockers/utils/callsForLockers/feeCalls.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/index.js +1 -1
- package/dist/esm/lockers/utils/callsForLockers/index.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/veCalls.js +8 -2
- package/dist/esm/lockers/utils/callsForLockers/veCalls.js.map +1 -1
- package/dist/esm/lockers/utils/getHttpCalls.js +8 -0
- package/dist/esm/lockers/utils/getHttpCalls.js.map +1 -1
- package/dist/esm/lockers/utils/index.js +6 -1
- package/dist/esm/lockers/utils/index.js.map +1 -1
- package/dist/esm/lockers/utils/substractFees.js +1 -0
- package/dist/esm/lockers/utils/substractFees.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/index.js +1 -3
- package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
- package/dist/esm/strategies/pendle/build.js +2 -2
- package/dist/esm/strategies/pendle/build.js.map +1 -1
- package/dist/esm/strategies/pendle/fetch.js +0 -3
- package/dist/esm/strategies/pendle/fetch.js.map +1 -1
- package/dist/esm/tokens.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/votemarket/fetchCampaigns/processRawCampaigns.js.map +1 -1
- package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lockers/fetch/index.d.ts +1 -0
- package/dist/types/lockers/fetch/index.d.ts.map +1 -1
- package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts.map +1 -1
- package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts +1 -1
- package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts.map +1 -1
- package/dist/types/lockers/utils/getHttpCalls.d.ts +5 -0
- package/dist/types/lockers/utils/getHttpCalls.d.ts.map +1 -1
- package/dist/types/lockers/utils/index.d.ts +5 -1
- package/dist/types/lockers/utils/index.d.ts.map +1 -1
- package/dist/types/lockers/utils/substractFees.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
- package/dist/types/strategies/pendle/fetch.d.ts +0 -1
- package/dist/types/strategies/pendle/fetch.d.ts.map +1 -1
- package/dist/types/votemarket/types.d.ts +1 -0
- package/dist/types/votemarket/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/abis/lockersMulticall.ts +14 -0
- package/src/index.ts +1 -0
- package/src/lockers/fetch/index.ts +7 -1
- package/src/lockers/utils/callsForLockers/depositorCalls.ts +1 -0
- package/src/lockers/utils/callsForLockers/feeCalls.ts +2 -2
- package/src/lockers/utils/callsForLockers/index.ts +1 -1
- package/src/lockers/utils/callsForLockers/veCalls.ts +13 -2
- package/src/lockers/utils/getHttpCalls.ts +8 -0
- package/src/lockers/utils/index.ts +6 -1
- package/src/lockers/utils/substractFees.ts +1 -0
- package/src/strategies/curve/fetch/index.ts +1 -3
- package/src/strategies/pendle/build.ts +2 -2
- package/src/strategies/pendle/fetch.ts +0 -3
- package/src/tokens.ts +1 -1
- package/src/votemarket/fetchCampaigns/processRawCampaigns.ts +2 -2
- package/src/votemarket/types.ts +1 -0
- package/dist/esm/strategies/curve/points.js +0 -13
- package/dist/esm/strategies/curve/points.js.map +0 -1
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js +0 -102
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js.map +0 -1
- package/dist/esm/strategies/pendle/points.js +0 -26
- package/dist/esm/strategies/pendle/points.js.map +0 -1
- package/dist/types/strategies/curve/points.d.ts +0 -40
- package/dist/types/strategies/curve/points.d.ts.map +0 -1
- package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts +0 -3
- package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts.map +0 -1
- package/dist/types/strategies/pendle/points.d.ts +0 -32
- package/dist/types/strategies/pendle/points.d.ts.map +0 -1
- package/src/strategies/curve/points.ts +0 -13
- package/src/strategies/pancakeswap/fetch/getPancakeNotDeployed.ts +0 -132
- package/src/strategies/pendle/points.ts +0 -26
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { ONE_YEAR, STRAT_FEES, contracts, tokenWithId } from '@stake-dao/constants';
|
|
2
|
-
import { decodeAbiParameters, encodeAbiParameters, formatUnits, parseAbiParameters, zeroAddress } from 'viem';
|
|
3
|
-
import { range } from 'lodash-es';
|
|
4
|
-
import { buildPancakeswapNotDeployedErc20Strats } from '../../../bytecodes/index.js';
|
|
5
|
-
import { bytes32ToString, concatBytecode } from '../../../index.js';
|
|
6
|
-
import { mergePrices } from '../../../prices.js';
|
|
7
|
-
import { batchJsonRpc, equalTlc, rpcCall } from '../../../utils.js';
|
|
8
|
-
import { PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE } from '../config.js';
|
|
9
|
-
export const getPancakeNotDeployed = async (rpc, chainId, basePrices, feesApr, managerFees, deployedLp) => {
|
|
10
|
-
const poolLengthRequest = await rpcCall(rpc, [{ to: contracts.pancakeFarmBooster[chainId], data: '0x081e3eda' }]); // poolLength()
|
|
11
|
-
const poolLength = Number(decodeAbiParameters([{ type: 'uint256', name: 'n_gauges' }], poolLengthRequest[0].result)) + 1;
|
|
12
|
-
const notDeployedCalls = range(1, poolLength, PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE).map((skip) => {
|
|
13
|
-
const inputParams = [
|
|
14
|
-
contracts.pancakeFarmBooster[chainId],
|
|
15
|
-
skip,
|
|
16
|
-
skip + PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE > poolLength ? poolLength : skip + PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE,
|
|
17
|
-
];
|
|
18
|
-
const inputData = encodeAbiParameters(parseAbiParameters(buildPancakeswapNotDeployedErc20Strats.inputType[chainId]), inputParams);
|
|
19
|
-
return concatBytecode(buildPancakeswapNotDeployedErc20Strats.bytecode[chainId], inputData);
|
|
20
|
-
});
|
|
21
|
-
const notDeployedData = await batchJsonRpc({
|
|
22
|
-
rpc,
|
|
23
|
-
calls: notDeployedCalls,
|
|
24
|
-
outputTypeAbi: buildPancakeswapNotDeployedErc20Strats.outputTypeHr[chainId],
|
|
25
|
-
callsKey: `strategies/pancakeswap/fetch/getPancakeNotDeployed.ts: notDeployedData - chainId ${chainId} - rpc ${rpc}`,
|
|
26
|
-
});
|
|
27
|
-
const pricesToFetch = notDeployedData
|
|
28
|
-
.flatMap((d) => {
|
|
29
|
-
if (d.lpToken._address === zeroAddress || deployedLp.includes(d.lpToken._address))
|
|
30
|
-
return undefined;
|
|
31
|
-
return d.coins.map((c) => {
|
|
32
|
-
const coinPrice = basePrices.find((bp) => equalTlc(bp.address, c._address))?.usdPrice || 0;
|
|
33
|
-
return coinPrice === 0 ? { address: c._address, symbol: bytes32ToString(c._symbol) } : undefined;
|
|
34
|
-
});
|
|
35
|
-
})
|
|
36
|
-
.filter(Boolean);
|
|
37
|
-
const prices = await mergePrices(basePrices, pricesToFetch, chainId);
|
|
38
|
-
const cake = tokenWithId('cake', chainId);
|
|
39
|
-
const cakeReward = { name: cake.name, symbol: cake.symbol, address: cake.address, decimals: cake.decimals };
|
|
40
|
-
const cakePriceUsd = prices.find((p) => equalTlc(p.address, cake.address))?.usdPrice || 0;
|
|
41
|
-
// TODO type
|
|
42
|
-
const notDeployed = notDeployedData
|
|
43
|
-
.map((d) => {
|
|
44
|
-
if (d.lpToken._address === zeroAddress || deployedLp.includes(d.lpToken._address))
|
|
45
|
-
return undefined;
|
|
46
|
-
const coins = d.coins.map((c) => ({
|
|
47
|
-
name: bytes32ToString(c._name),
|
|
48
|
-
symbol: bytes32ToString(c._symbol),
|
|
49
|
-
address: c._address,
|
|
50
|
-
decimals: Number(c._decimals),
|
|
51
|
-
}));
|
|
52
|
-
const lpName = bytes32ToString(d.lpToken._name);
|
|
53
|
-
const isStable = lpName.includes('StableSwap');
|
|
54
|
-
const isMetapool = coins.some((c) => c.name.includes(' LPs'));
|
|
55
|
-
const lpSymbol = `${coins.map((c) => c.symbol).join('-')} ${isStable ? 'Stable LP' : 'LP'}`;
|
|
56
|
-
const lpToken = {
|
|
57
|
-
name: lpName,
|
|
58
|
-
symbol: lpSymbol,
|
|
59
|
-
address: d.lpToken._address,
|
|
60
|
-
decimals: Number(d.lpToken._decimals),
|
|
61
|
-
};
|
|
62
|
-
const token0PriceInUsd = prices.find((p) => equalTlc(p.address, coins[0].address))?.usdPrice || 0;
|
|
63
|
-
const token1PriceInUsd = prices.find((p) => equalTlc(p.address, coins[1].address))?.usdPrice || 0;
|
|
64
|
-
const lpPriceInUsd = Number(formatUnits(d.token0PerShare, coins[0].decimals)) * token0PriceInUsd +
|
|
65
|
-
Number(formatUnits(d.token1PerShare, coins[1].decimals)) * token1PriceInUsd;
|
|
66
|
-
const tvl = lpPriceInUsd * Number(formatUnits(d.sharesTotalSupply, 18));
|
|
67
|
-
let tradingApy = Number(feesApr[lpToken.address.toLowerCase()]?.apr7d || 0);
|
|
68
|
-
if (!tradingApy && managerFees[d.pool.toLowerCase()]) {
|
|
69
|
-
const feesData = managerFees[d.pool.toLowerCase()];
|
|
70
|
-
tradingApy = feesData
|
|
71
|
-
? ((Number(formatUnits(feesData.token0, coins[0].decimals)) * token0PriceInUsd +
|
|
72
|
-
Number(formatUnits(feesData.token1, coins[1].decimals)) * token1PriceInUsd) /
|
|
73
|
-
tvl) *
|
|
74
|
-
365 *
|
|
75
|
-
100
|
|
76
|
-
: 0;
|
|
77
|
-
}
|
|
78
|
-
const boost = d.manager === 'pancakeswap' ? 2.5 : 3; // Pancake max boost is 2.5, managers farm is 3
|
|
79
|
-
const rewardPerYear = cakePriceUsd * Number(formatUnits(d.rewardPerSecond, 18)) * ONE_YEAR;
|
|
80
|
-
const stakedTvl = lpPriceInUsd * Number(formatUnits(d.stakedInGauge, 18));
|
|
81
|
-
const minApr = (rewardPerYear / (stakedTvl > 0 ? stakedTvl : tvl)) * ((100 - STRAT_FEES + 0.5) / 100);
|
|
82
|
-
const maxApr = minApr * boost;
|
|
83
|
-
return {
|
|
84
|
-
key: `${d.manager.toLowerCase()}-${coins.map((c) => c.symbol.toLowerCase()).join('-')}`,
|
|
85
|
-
protocol: 'pancakeswap',
|
|
86
|
-
chainId,
|
|
87
|
-
isMetapool,
|
|
88
|
-
isStable,
|
|
89
|
-
manager: d.manager,
|
|
90
|
-
pool: d.pool,
|
|
91
|
-
gaugeAddress: d.gagaugeAddressuge,
|
|
92
|
-
lpToken,
|
|
93
|
-
coins,
|
|
94
|
-
minApr,
|
|
95
|
-
maxApr,
|
|
96
|
-
rewards: [cakeReward],
|
|
97
|
-
};
|
|
98
|
-
})
|
|
99
|
-
.filter(Boolean);
|
|
100
|
-
return notDeployed;
|
|
101
|
-
};
|
|
102
|
-
//# sourceMappingURL=getPancakeNotDeployed.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPancakeNotDeployed.js","sourceRoot":"","sources":["../../../../../src/strategies/pancakeswap/fetch/getPancakeNotDeployed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
const points = {
|
|
2
|
-
'0x90c98ab215498b72abfec04c651e2e496ba364c0': [
|
|
3
|
-
{ multiplier: 20, label: 'Sats Multiplier' },
|
|
4
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
5
|
-
],
|
|
6
|
-
'0xe26d7f9409581f606242300fbfe63f56789f2169': [
|
|
7
|
-
{ multiplier: 3, label: 'Ether.fi Multiplier' },
|
|
8
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
9
|
-
{ multiplier: 1, label: 'EigenLayer Multiplier' },
|
|
10
|
-
],
|
|
11
|
-
'0xd7e0809998693fd87e81d51de1619fd0ee658031': [
|
|
12
|
-
{ multiplier: 1, label: 'Renzo Multiplier' },
|
|
13
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
14
|
-
{ multiplier: 1, label: 'EigenLayer Multiplier' },
|
|
15
|
-
],
|
|
16
|
-
'0x445d25a1c31445fb29e65d12da8e0eea38174176': [
|
|
17
|
-
{ multiplier: 2, label: 'Kelp Multiplier' },
|
|
18
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
19
|
-
{ multiplier: 1, label: 'EigenLayer Multiplier' },
|
|
20
|
-
],
|
|
21
|
-
'0x353d0b2efb5b3a7987fb06d30ad6160522d08426': [{ multiplier: 15, label: 'Resolv Points' }],
|
|
22
|
-
'0x09fa04aac9c6d1c6131352ee950cd67ecc6d4fb9': [{ multiplier: 15, label: 'Resolv Points' }],
|
|
23
|
-
'0x82d810ededb09614144900f914e75dd76700f19d': [{ multiplier: 30, label: 'Resolv Points' }],
|
|
24
|
-
};
|
|
25
|
-
export default points;
|
|
26
|
-
//# sourceMappingURL=points.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"points.js","sourceRoot":"","sources":["../../../../src/strategies/pendle/points.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACb,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;KAC/C;IACD,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE;QAC/C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;QAC9C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAClD;IACD,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;QAC9C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAClD;IACD,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAC3C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;QAC9C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAClD;IACD,4CAA4C,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC1F,4CAA4C,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC1F,4CAA4C,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;CAC3F,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
declare const points: {
|
|
2
|
-
'0x38de22a3175708d45e7c7c64cd78479c8b56f76e': {
|
|
3
|
-
multiplier: number;
|
|
4
|
-
label: string;
|
|
5
|
-
}[];
|
|
6
|
-
'0x4628f13651ead6793f8d838b34b8f8522fb0cc52': {
|
|
7
|
-
multiplier: number;
|
|
8
|
-
label: string;
|
|
9
|
-
}[];
|
|
10
|
-
'0xc907ba505c2e1cbc4658c395d4a2c7e6d2c32656': {
|
|
11
|
-
multiplier: number;
|
|
12
|
-
label: string;
|
|
13
|
-
}[];
|
|
14
|
-
'0x3ee841f47947fefbe510366e4bbb49e145484195': {
|
|
15
|
-
multiplier: number;
|
|
16
|
-
label: string;
|
|
17
|
-
}[];
|
|
18
|
-
'0x82202caec5e6d85014eadc68d4912f3c90093e7c': {
|
|
19
|
-
multiplier: number;
|
|
20
|
-
label: string;
|
|
21
|
-
}[];
|
|
22
|
-
'0x6691dbb44154a9f23f8357c56fc9ff5548a8bdc4': {
|
|
23
|
-
multiplier: number;
|
|
24
|
-
label: string;
|
|
25
|
-
}[];
|
|
26
|
-
'0x51f5466690978173f45270f57e06e25b0c888261': {
|
|
27
|
-
multiplier: number;
|
|
28
|
-
label: string;
|
|
29
|
-
}[];
|
|
30
|
-
'0xc73b0328bd40ea35aad34d0fdc1dbe64c4f9c59f': {
|
|
31
|
-
multiplier: number;
|
|
32
|
-
label: string;
|
|
33
|
-
}[];
|
|
34
|
-
'0xfff8634de89271b6075c55fa89b4e9a087fdb9fe': {
|
|
35
|
-
multiplier: number;
|
|
36
|
-
label: string;
|
|
37
|
-
}[];
|
|
38
|
-
};
|
|
39
|
-
export default points;
|
|
40
|
-
//# sourceMappingURL=points.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"points.d.ts","sourceRoot":"","sources":["../../../../src/strategies/curve/points.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUX,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPancakeNotDeployed.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/pancakeswap/fetch/getPancakeNotDeployed.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,oBAAoB,CAAA;AAI5D,eAAO,MAAM,qBAAqB,QAC3B,MAAM,WACF,MAAM,cACH,KAAK,EAAE,WACV,GAAG,eACC,GAAG,cACJ,MAAM,EAAE,mBAmHrB,CAAA"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
declare const points: {
|
|
2
|
-
'0x90c98ab215498b72abfec04c651e2e496ba364c0': {
|
|
3
|
-
multiplier: number;
|
|
4
|
-
label: string;
|
|
5
|
-
}[];
|
|
6
|
-
'0xe26d7f9409581f606242300fbfe63f56789f2169': {
|
|
7
|
-
multiplier: number;
|
|
8
|
-
label: string;
|
|
9
|
-
}[];
|
|
10
|
-
'0xd7e0809998693fd87e81d51de1619fd0ee658031': {
|
|
11
|
-
multiplier: number;
|
|
12
|
-
label: string;
|
|
13
|
-
}[];
|
|
14
|
-
'0x445d25a1c31445fb29e65d12da8e0eea38174176': {
|
|
15
|
-
multiplier: number;
|
|
16
|
-
label: string;
|
|
17
|
-
}[];
|
|
18
|
-
'0x353d0b2efb5b3a7987fb06d30ad6160522d08426': {
|
|
19
|
-
multiplier: number;
|
|
20
|
-
label: string;
|
|
21
|
-
}[];
|
|
22
|
-
'0x09fa04aac9c6d1c6131352ee950cd67ecc6d4fb9': {
|
|
23
|
-
multiplier: number;
|
|
24
|
-
label: string;
|
|
25
|
-
}[];
|
|
26
|
-
'0x82d810ededb09614144900f914e75dd76700f19d': {
|
|
27
|
-
multiplier: number;
|
|
28
|
-
label: string;
|
|
29
|
-
}[];
|
|
30
|
-
};
|
|
31
|
-
export default points;
|
|
32
|
-
//# sourceMappingURL=points.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"points.d.ts","sourceRoot":"","sources":["../../../../src/strategies/pendle/points.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBX,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const points = {
|
|
2
|
-
'0x38de22a3175708d45e7c7c64cd78479c8b56f76e': [{ multiplier: 30, label: 'Resolv Points' }],
|
|
3
|
-
'0x4628f13651ead6793f8d838b34b8f8522fb0cc52': [{ multiplier: 30, label: 'Resolv Points' }],
|
|
4
|
-
'0xc907ba505c2e1cbc4658c395d4a2c7e6d2c32656': [{ multiplier: 30, label: 'Resolv Points' }],
|
|
5
|
-
'0x3ee841f47947fefbe510366e4bbb49e145484195': [{ multiplier: 30, label: 'Resolv Points' }],
|
|
6
|
-
'0x82202caec5e6d85014eadc68d4912f3c90093e7c': [{ multiplier: 5, label: 'Elixir Potions' }],
|
|
7
|
-
'0x6691dbb44154a9f23f8357c56fc9ff5548a8bdc4': [{ multiplier: 10, label: 'Elixir Potions' }],
|
|
8
|
-
'0x51f5466690978173f45270f57e06e25b0c888261': [{ multiplier: 2.5, label: 'TAC Boost' }],
|
|
9
|
-
'0xc73b0328bd40ea35aad34d0fdc1dbe64c4f9c59f': [{ multiplier: 1.75, label: 'TAC Boost' }],
|
|
10
|
-
'0xfff8634de89271b6075c55fa89b4e9a087fdb9fe': [{ multiplier: 1.5, label: 'TAC Boost' }],
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default points
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { ONE_YEAR, STRAT_FEES, contracts, tokenWithId } from '@stake-dao/constants'
|
|
2
|
-
import { decodeAbiParameters, encodeAbiParameters, formatUnits, parseAbiParameters, zeroAddress } from 'viem'
|
|
3
|
-
|
|
4
|
-
import { range } from 'lodash-es'
|
|
5
|
-
import { buildPancakeswapNotDeployedErc20Strats } from '../../../bytecodes/index.js'
|
|
6
|
-
import { bytes32ToString, concatBytecode } from '../../../index.js'
|
|
7
|
-
import { type Price, mergePrices } from '../../../prices.js'
|
|
8
|
-
import { batchJsonRpc, equalTlc, rpcCall } from '../../../utils.js'
|
|
9
|
-
import { PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE } from '../config.js'
|
|
10
|
-
|
|
11
|
-
export const getPancakeNotDeployed = async (
|
|
12
|
-
rpc: string,
|
|
13
|
-
chainId: number,
|
|
14
|
-
basePrices: Price[],
|
|
15
|
-
feesApr: any,
|
|
16
|
-
managerFees: any,
|
|
17
|
-
deployedLp: string[],
|
|
18
|
-
) => {
|
|
19
|
-
const poolLengthRequest = await rpcCall(rpc, [{ to: contracts.pancakeFarmBooster![chainId]!, data: '0x081e3eda' }]) // poolLength()
|
|
20
|
-
const poolLength =
|
|
21
|
-
Number(decodeAbiParameters([{ type: 'uint256', name: 'n_gauges' }], poolLengthRequest[0].result)) + 1
|
|
22
|
-
|
|
23
|
-
const notDeployedCalls = range(1, poolLength, PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE).map((skip) => {
|
|
24
|
-
const inputParams = [
|
|
25
|
-
contracts.pancakeFarmBooster![chainId],
|
|
26
|
-
skip,
|
|
27
|
-
skip + PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE > poolLength ? poolLength : skip + PCS_POOLS_NOT_DEPLOYED_CHUNK_SIZE,
|
|
28
|
-
]
|
|
29
|
-
|
|
30
|
-
const inputData = encodeAbiParameters(
|
|
31
|
-
parseAbiParameters(buildPancakeswapNotDeployedErc20Strats.inputType[chainId]!) as any,
|
|
32
|
-
inputParams,
|
|
33
|
-
)
|
|
34
|
-
return concatBytecode(buildPancakeswapNotDeployedErc20Strats.bytecode[chainId]!, inputData)
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
const notDeployedData = await batchJsonRpc({
|
|
38
|
-
rpc,
|
|
39
|
-
calls: notDeployedCalls,
|
|
40
|
-
outputTypeAbi: buildPancakeswapNotDeployedErc20Strats.outputTypeHr[chainId],
|
|
41
|
-
callsKey: `strategies/pancakeswap/fetch/getPancakeNotDeployed.ts: notDeployedData - chainId ${chainId} - rpc ${rpc}`,
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
const pricesToFetch = notDeployedData
|
|
45
|
-
.flatMap((d) => {
|
|
46
|
-
if (d.lpToken._address === zeroAddress || deployedLp.includes(d.lpToken._address)) return undefined
|
|
47
|
-
|
|
48
|
-
return d.coins.map((c) => {
|
|
49
|
-
const coinPrice = basePrices.find((bp) => equalTlc(bp.address, c._address))?.usdPrice || 0
|
|
50
|
-
return coinPrice === 0 ? { address: c._address, symbol: bytes32ToString(c._symbol) } : undefined
|
|
51
|
-
})
|
|
52
|
-
})
|
|
53
|
-
.filter(Boolean)
|
|
54
|
-
const prices = await mergePrices(basePrices, pricesToFetch, chainId)
|
|
55
|
-
|
|
56
|
-
const cake = tokenWithId('cake', chainId)!
|
|
57
|
-
const cakeReward = { name: cake.name, symbol: cake.symbol, address: cake.address, decimals: cake.decimals }
|
|
58
|
-
const cakePriceUsd = prices.find((p) => equalTlc(p.address, cake.address))?.usdPrice || 0
|
|
59
|
-
|
|
60
|
-
// TODO type
|
|
61
|
-
const notDeployed: any[] = notDeployedData
|
|
62
|
-
.map((d) => {
|
|
63
|
-
if (d.lpToken._address === zeroAddress || deployedLp.includes(d.lpToken._address)) return undefined
|
|
64
|
-
|
|
65
|
-
const coins = d.coins.map((c) => ({
|
|
66
|
-
name: bytes32ToString(c._name),
|
|
67
|
-
symbol: bytes32ToString(c._symbol),
|
|
68
|
-
address: c._address,
|
|
69
|
-
decimals: Number(c._decimals),
|
|
70
|
-
}))
|
|
71
|
-
|
|
72
|
-
const lpName = bytes32ToString(d.lpToken._name)
|
|
73
|
-
const isStable = lpName.includes('StableSwap')
|
|
74
|
-
const isMetapool = coins.some((c) => c.name.includes(' LPs'))
|
|
75
|
-
const lpSymbol = `${coins.map((c) => c.symbol).join('-')} ${isStable ? 'Stable LP' : 'LP'}`
|
|
76
|
-
|
|
77
|
-
const lpToken = {
|
|
78
|
-
name: lpName,
|
|
79
|
-
symbol: lpSymbol,
|
|
80
|
-
address: d.lpToken._address,
|
|
81
|
-
decimals: Number(d.lpToken._decimals),
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const token0PriceInUsd = prices.find((p) => equalTlc(p.address, coins[0]!.address))?.usdPrice || 0
|
|
85
|
-
const token1PriceInUsd = prices.find((p) => equalTlc(p.address, coins[1]!.address))?.usdPrice || 0
|
|
86
|
-
|
|
87
|
-
const lpPriceInUsd =
|
|
88
|
-
Number(formatUnits(d.token0PerShare, coins[0].decimals)) * token0PriceInUsd +
|
|
89
|
-
Number(formatUnits(d.token1PerShare, coins[1].decimals)) * token1PriceInUsd
|
|
90
|
-
|
|
91
|
-
const tvl = lpPriceInUsd * Number(formatUnits(d.sharesTotalSupply, 18))
|
|
92
|
-
|
|
93
|
-
let tradingApy = Number(feesApr[lpToken.address.toLowerCase()]?.apr7d || 0)
|
|
94
|
-
if (!tradingApy && managerFees[d.pool.toLowerCase()]) {
|
|
95
|
-
const feesData = managerFees[d.pool.toLowerCase()]
|
|
96
|
-
tradingApy = feesData
|
|
97
|
-
? ((Number(formatUnits(feesData.token0, coins[0].decimals)) * token0PriceInUsd +
|
|
98
|
-
Number(formatUnits(feesData.token1, coins[1].decimals)) * token1PriceInUsd) /
|
|
99
|
-
tvl) *
|
|
100
|
-
365 *
|
|
101
|
-
100
|
|
102
|
-
: 0
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const boost = d.manager === 'pancakeswap' ? 2.5 : 3 // Pancake max boost is 2.5, managers farm is 3
|
|
106
|
-
|
|
107
|
-
const rewardPerYear = cakePriceUsd * Number(formatUnits(d.rewardPerSecond, 18)) * ONE_YEAR
|
|
108
|
-
const stakedTvl = lpPriceInUsd * Number(formatUnits(d.stakedInGauge, 18))
|
|
109
|
-
|
|
110
|
-
const minApr = (rewardPerYear / (stakedTvl > 0 ? stakedTvl : tvl)) * ((100 - STRAT_FEES + 0.5) / 100)
|
|
111
|
-
const maxApr = minApr * boost
|
|
112
|
-
|
|
113
|
-
return {
|
|
114
|
-
key: `${d.manager.toLowerCase()}-${coins.map((c) => c.symbol.toLowerCase()).join('-')}`,
|
|
115
|
-
protocol: 'pancakeswap',
|
|
116
|
-
chainId,
|
|
117
|
-
isMetapool,
|
|
118
|
-
isStable,
|
|
119
|
-
manager: d.manager,
|
|
120
|
-
pool: d.pool,
|
|
121
|
-
gaugeAddress: d.gagaugeAddressuge,
|
|
122
|
-
lpToken,
|
|
123
|
-
coins,
|
|
124
|
-
minApr,
|
|
125
|
-
maxApr,
|
|
126
|
-
rewards: [cakeReward],
|
|
127
|
-
}
|
|
128
|
-
})
|
|
129
|
-
.filter(Boolean)
|
|
130
|
-
|
|
131
|
-
return notDeployed
|
|
132
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
const points = {
|
|
2
|
-
'0x90c98ab215498b72abfec04c651e2e496ba364c0': [
|
|
3
|
-
{ multiplier: 20, label: 'Sats Multiplier' },
|
|
4
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
5
|
-
],
|
|
6
|
-
'0xe26d7f9409581f606242300fbfe63f56789f2169': [
|
|
7
|
-
{ multiplier: 3, label: 'Ether.fi Multiplier' },
|
|
8
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
9
|
-
{ multiplier: 1, label: 'EigenLayer Multiplier' },
|
|
10
|
-
],
|
|
11
|
-
'0xd7e0809998693fd87e81d51de1619fd0ee658031': [
|
|
12
|
-
{ multiplier: 1, label: 'Renzo Multiplier' },
|
|
13
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
14
|
-
{ multiplier: 1, label: 'EigenLayer Multiplier' },
|
|
15
|
-
],
|
|
16
|
-
'0x445d25a1c31445fb29e65d12da8e0eea38174176': [
|
|
17
|
-
{ multiplier: 2, label: 'Kelp Multiplier' },
|
|
18
|
-
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
19
|
-
{ multiplier: 1, label: 'EigenLayer Multiplier' },
|
|
20
|
-
],
|
|
21
|
-
'0x353d0b2efb5b3a7987fb06d30ad6160522d08426': [{ multiplier: 15, label: 'Resolv Points' }],
|
|
22
|
-
'0x09fa04aac9c6d1c6131352ee950cd67ecc6d4fb9': [{ multiplier: 15, label: 'Resolv Points' }],
|
|
23
|
-
'0x82d810ededb09614144900f914e75dd76700f19d': [{ multiplier: 30, label: 'Resolv Points' }],
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export default points
|