@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.
Files changed (79) hide show
  1. package/dist/esm/abis/lockersMulticall.js +14 -0
  2. package/dist/esm/abis/lockersMulticall.js.map +1 -1
  3. package/dist/esm/index.js +1 -0
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/lockers/fetch/index.js +7 -1
  6. package/dist/esm/lockers/fetch/index.js.map +1 -1
  7. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js +1 -0
  8. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js.map +1 -1
  9. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js +2 -2
  10. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js.map +1 -1
  11. package/dist/esm/lockers/utils/callsForLockers/index.js +1 -1
  12. package/dist/esm/lockers/utils/callsForLockers/index.js.map +1 -1
  13. package/dist/esm/lockers/utils/callsForLockers/veCalls.js +8 -2
  14. package/dist/esm/lockers/utils/callsForLockers/veCalls.js.map +1 -1
  15. package/dist/esm/lockers/utils/getHttpCalls.js +8 -0
  16. package/dist/esm/lockers/utils/getHttpCalls.js.map +1 -1
  17. package/dist/esm/lockers/utils/index.js +6 -1
  18. package/dist/esm/lockers/utils/index.js.map +1 -1
  19. package/dist/esm/lockers/utils/substractFees.js +1 -0
  20. package/dist/esm/lockers/utils/substractFees.js.map +1 -1
  21. package/dist/esm/strategies/curve/fetch/index.js +1 -3
  22. package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
  23. package/dist/esm/strategies/pendle/build.js +2 -2
  24. package/dist/esm/strategies/pendle/build.js.map +1 -1
  25. package/dist/esm/strategies/pendle/fetch.js +0 -3
  26. package/dist/esm/strategies/pendle/fetch.js.map +1 -1
  27. package/dist/esm/tokens.js.map +1 -1
  28. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  29. package/dist/esm/votemarket/fetchCampaigns/processRawCampaigns.js.map +1 -1
  30. package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
  31. package/dist/types/index.d.ts +1 -0
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/types/lockers/fetch/index.d.ts +1 -0
  34. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  35. package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts.map +1 -1
  36. package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts +1 -1
  37. package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts.map +1 -1
  38. package/dist/types/lockers/utils/getHttpCalls.d.ts +5 -0
  39. package/dist/types/lockers/utils/getHttpCalls.d.ts.map +1 -1
  40. package/dist/types/lockers/utils/index.d.ts +5 -1
  41. package/dist/types/lockers/utils/index.d.ts.map +1 -1
  42. package/dist/types/lockers/utils/substractFees.d.ts.map +1 -1
  43. package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
  44. package/dist/types/strategies/pendle/fetch.d.ts +0 -1
  45. package/dist/types/strategies/pendle/fetch.d.ts.map +1 -1
  46. package/dist/types/votemarket/types.d.ts +1 -0
  47. package/dist/types/votemarket/types.d.ts.map +1 -1
  48. package/package.json +3 -3
  49. package/src/abis/lockersMulticall.ts +14 -0
  50. package/src/index.ts +1 -0
  51. package/src/lockers/fetch/index.ts +7 -1
  52. package/src/lockers/utils/callsForLockers/depositorCalls.ts +1 -0
  53. package/src/lockers/utils/callsForLockers/feeCalls.ts +2 -2
  54. package/src/lockers/utils/callsForLockers/index.ts +1 -1
  55. package/src/lockers/utils/callsForLockers/veCalls.ts +13 -2
  56. package/src/lockers/utils/getHttpCalls.ts +8 -0
  57. package/src/lockers/utils/index.ts +6 -1
  58. package/src/lockers/utils/substractFees.ts +1 -0
  59. package/src/strategies/curve/fetch/index.ts +1 -3
  60. package/src/strategies/pendle/build.ts +2 -2
  61. package/src/strategies/pendle/fetch.ts +0 -3
  62. package/src/tokens.ts +1 -1
  63. package/src/votemarket/fetchCampaigns/processRawCampaigns.ts +2 -2
  64. package/src/votemarket/types.ts +1 -0
  65. package/dist/esm/strategies/curve/points.js +0 -13
  66. package/dist/esm/strategies/curve/points.js.map +0 -1
  67. package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js +0 -102
  68. package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js.map +0 -1
  69. package/dist/esm/strategies/pendle/points.js +0 -26
  70. package/dist/esm/strategies/pendle/points.js.map +0 -1
  71. package/dist/types/strategies/curve/points.d.ts +0 -40
  72. package/dist/types/strategies/curve/points.d.ts.map +0 -1
  73. package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts +0 -3
  74. package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts.map +0 -1
  75. package/dist/types/strategies/pendle/points.d.ts +0 -32
  76. package/dist/types/strategies/pendle/points.d.ts.map +0 -1
  77. package/src/strategies/curve/points.ts +0 -13
  78. package/src/strategies/pancakeswap/fetch/getPancakeNotDeployed.ts +0 -132
  79. 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,3 +0,0 @@
1
- import { type Price } from '../../../prices.js';
2
- export declare const getPancakeNotDeployed: (rpc: string, chainId: number, basePrices: Price[], feesApr: any, managerFees: any, deployedLp: string[]) => Promise<any[]>;
3
- //# sourceMappingURL=getPancakeNotDeployed.d.ts.map
@@ -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