@stake-dao/reader 0.3.0 → 0.3.2
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/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lockers/fetch/index.js +2 -2
- package/dist/esm/lockers/fetch/index.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/feeCalls.js +26 -38
- package/dist/esm/lockers/utils/callsForLockers/feeCalls.js.map +1 -1
- package/dist/esm/lockers/utils/getFees.js +3 -6
- package/dist/esm/lockers/utils/getFees.js.map +1 -1
- package/dist/esm/lockers/utils/substractFees.js +1 -7
- package/dist/esm/lockers/utils/substractFees.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/votemarket/curve/fetchCurveGauges.js +18 -8
- package/dist/esm/votemarket/curve/fetchCurveGauges.js.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 +8 -1
- package/dist/types/lockers/fetch/index.d.ts.map +1 -1
- package/dist/types/lockers/utils/callsForLockers/feeCalls.d.ts +5 -5
- package/dist/types/lockers/utils/callsForLockers/feeCalls.d.ts.map +1 -1
- package/dist/types/lockers/utils/getFees.d.ts.map +1 -1
- package/dist/types/lockers/utils/substractFees.d.ts.map +1 -1
- package/dist/types/votemarket/curve/fetchCurveGauges.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +1 -0
- package/src/lockers/fetch/index.ts +9 -2
- package/src/lockers/utils/callsForLockers/feeCalls.ts +31 -43
- package/src/lockers/utils/getFees.ts +3 -6
- package/src/lockers/utils/substractFees.ts +1 -7
- package/src/votemarket/curve/fetchCurveGauges.ts +21 -8
|
@@ -36,6 +36,7 @@ export const fetchCurveGauges = async (rpc) => {
|
|
|
36
36
|
const gaugesMetadata = [];
|
|
37
37
|
const filteredGauges = gauges.filter((g) => g.chainId > 0 && !BROKEN_GAUGES.includes(g.gauge.toLowerCase()));
|
|
38
38
|
const gaugesPerChain = groupBy(filteredGauges, 'chainId');
|
|
39
|
+
console.info('chains found:', Object.keys(gaugesPerChain));
|
|
39
40
|
for (const chainId of Object.keys(gaugesPerChain)) {
|
|
40
41
|
const chainGauges = gaugesPerChain[chainId];
|
|
41
42
|
const chunkedChainGauges = chunk(chainGauges, GAUGES_METADATA_CHUNK_SIZE);
|
|
@@ -55,8 +56,24 @@ export const fetchCurveGauges = async (rpc) => {
|
|
|
55
56
|
}
|
|
56
57
|
const augmentedGauges = filteredGauges.map((g) => {
|
|
57
58
|
const gaugeMetadata = gaugesMetadata.find((gm) => equalTlc(gm.gauge, g.gauge));
|
|
59
|
+
const filteredCoins = gaugeMetadata.coins
|
|
60
|
+
.map((c) => ({
|
|
61
|
+
name: c.name,
|
|
62
|
+
symbol: c.symbol,
|
|
63
|
+
address: c._address,
|
|
64
|
+
decimals: Number(c.decimals),
|
|
65
|
+
}))
|
|
66
|
+
.filter((c) => c.address !== zeroAddress);
|
|
67
|
+
const name = gaugeMetadata.lp.name
|
|
68
|
+
.replace('Curve.fi Factory Crypto Pool:', '')
|
|
69
|
+
.replace('Curve.fi Factory Pool:', '')
|
|
70
|
+
.replace('Curve.fi Factory USD Metapool:', '')
|
|
71
|
+
.replace('Curve.fi Factory Plain Pool:', '')
|
|
72
|
+
.replace('Curve.fi', '')
|
|
73
|
+
.trim();
|
|
58
74
|
return {
|
|
59
75
|
gauge: g.gauge,
|
|
76
|
+
name,
|
|
60
77
|
weight: g.weight,
|
|
61
78
|
relativeWeight: g.relativeWeight,
|
|
62
79
|
futureRelativeWeight: g.futureRelativeWeight,
|
|
@@ -68,14 +85,7 @@ export const fetchCurveGauges = async (rpc) => {
|
|
|
68
85
|
address: gaugeMetadata.lp._address,
|
|
69
86
|
decimals: Number(gaugeMetadata.lp.decimals),
|
|
70
87
|
},
|
|
71
|
-
coins:
|
|
72
|
-
.map((c) => ({
|
|
73
|
-
name: c.name,
|
|
74
|
-
symbol: c.symbol,
|
|
75
|
-
address: c._address,
|
|
76
|
-
decimals: Number(c.decimals),
|
|
77
|
-
}))
|
|
78
|
-
.filter((c) => c.address !== zeroAddress),
|
|
88
|
+
coins: filteredCoins,
|
|
79
89
|
};
|
|
80
90
|
});
|
|
81
91
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchCurveGauges.js","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchCurveGauges.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fetchCurveGauges.js","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchCurveGauges.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { getPricesFromLlama, getPricesFromGeckoTerminal } from './prices.js';
|
|
|
2
2
|
export * from './sdt.js';
|
|
3
3
|
export { fetchSdt } from './sdt/sdt.js';
|
|
4
4
|
export { fetchLockers } from './lockers/fetch/index.js';
|
|
5
|
+
export { getUserCherries, getCherriesLeaderBoard, getUserSnapshotCherries } from './lockers/utils/getCherries.js';
|
|
5
6
|
export * from './strategies/utils/index.js';
|
|
6
7
|
export { buildCurveStrategies } from './strategies/curve/build.js';
|
|
7
8
|
export { fetchCurve } from './strategies/curve/fetch/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5E,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAKvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5E,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAKvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAKjH,cAAc,6BAA6B,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAG/F,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AASrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { Price } from '../../prices.js';
|
|
2
2
|
import { type TBribesRewards } from '../utils/getBribesRewardsData.js';
|
|
3
|
-
|
|
3
|
+
interface TFetchLockers {
|
|
4
|
+
provider: any;
|
|
5
|
+
chainId: number;
|
|
6
|
+
prices: Price[];
|
|
7
|
+
withAirdropGraph?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const fetchLockers: ({ provider, chainId, prices, withAirdropGraph }: TFetchLockers) => Promise<{
|
|
4
10
|
parsed: {
|
|
5
11
|
rewards: {
|
|
6
12
|
token: import("@stake-dao/constants").LockerReward;
|
|
@@ -94,4 +100,5 @@ export declare const fetchLockers: (provider: any, chainId: number, prices: Pric
|
|
|
94
100
|
stratsSdtPerSecond: string;
|
|
95
101
|
} | undefined;
|
|
96
102
|
}>;
|
|
103
|
+
export {};
|
|
97
104
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAsB5F,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAsB5F,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,YAAY,oDAA2D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0PhG,CAAA"}
|
|
@@ -3,11 +3,11 @@ import type { Call } from '../../../utils.js';
|
|
|
3
3
|
export declare const feeCalls: (lockerId: string, accumulatorAddress: Address) => Call[];
|
|
4
4
|
export interface ILockerFee {
|
|
5
5
|
lockerId: string;
|
|
6
|
-
claimerFee:
|
|
7
|
-
daoFee:
|
|
8
|
-
bountyFee:
|
|
9
|
-
liquidityFee:
|
|
10
|
-
lockerFee:
|
|
6
|
+
claimerFee: string;
|
|
7
|
+
daoFee: string;
|
|
8
|
+
bountyFee: string;
|
|
9
|
+
liquidityFee: string;
|
|
10
|
+
lockerFee: string;
|
|
11
11
|
}
|
|
12
12
|
export declare const extractFees: (lockers: any, feesData: any) => ILockerFee[];
|
|
13
13
|
//# sourceMappingURL=feeCalls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/feeCalls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"feeCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/feeCalls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA4B,MAAM,MAAM,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,eAAO,MAAM,QAAQ,aAAc,MAAM,sBAAsB,OAAO,WA8BrE,CAAA;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,WAAW,YAAa,GAAG,YAAY,GAAG,KAAG,UAAU,EA+DnE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFees.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/getFees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE/D,QAAA,MAAM,OAAO,WAAY,GAAG,aAAa,UAAU,GAAG,IAAI,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"getFees.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/getFees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE/D,QAAA,MAAM,OAAO,WAAY,GAAG,aAAa,UAAU,GAAG,IAAI,GAAG,SAAS,UA0BrE,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"substractFees.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/substractFees.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa,aAAc,MAAM,UAAU,MAAM,aAAa,GAAG,KAAG,
|
|
1
|
+
{"version":3,"file":"substractFees.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/substractFees.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa,aAAc,MAAM,UAAU,MAAM,aAAa,GAAG,KAAG,MAiBzE,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchCurveGauges.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchCurveGauges.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,CAAA;AAEvE,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAe,IAAI,KAAG,OAAO,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"fetchCurveGauges.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchCurveGauges.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,CAAA;AAEvE,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAe,IAAI,KAAG,OAAO,CAAC,UAAU,CA6GpE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stake-dao/reader",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.2",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"graphql-request": "^6.0.0",
|
|
36
36
|
"lodash-es": "^4.17.21",
|
|
37
37
|
"viem": "^2.9.31",
|
|
38
|
-
"@stake-dao/constants": "0.3.
|
|
38
|
+
"@stake-dao/constants": "0.3.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/lodash-es": "^4.17.12"
|
package/src/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { fetchSdt } from './sdt/sdt.js'
|
|
|
13
13
|
/// --- LOCKERS
|
|
14
14
|
////////////////////////////////////////////////////////////////
|
|
15
15
|
export { fetchLockers } from './lockers/fetch/index.js'
|
|
16
|
+
export { getUserCherries, getCherriesLeaderBoard, getUserSnapshotCherries } from './lockers/utils/getCherries.js'
|
|
16
17
|
|
|
17
18
|
////////////////////////////////////////////////////////////////
|
|
18
19
|
/// --- STATEGIES
|
|
@@ -30,7 +30,14 @@ const callsForLockersSideChains = (lockerId: any, sideChains: any[]) => {
|
|
|
30
30
|
}, [])
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
interface TFetchLockers {
|
|
34
|
+
provider: any
|
|
35
|
+
chainId: number
|
|
36
|
+
prices: Price[]
|
|
37
|
+
withAirdropGraph?: boolean
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph }: TFetchLockers) => {
|
|
34
41
|
const chainLockers: Locker[] = lockers.filter((l) => l.chainId === chainId)
|
|
35
42
|
|
|
36
43
|
const httpCalls = await getHttpCalls(chainId)
|
|
@@ -98,7 +105,7 @@ export const fetchLockers = async (provider: any, chainId: number, prices: Price
|
|
|
98
105
|
const chunkedRawLockersData = rawLockersData.splice(0, lockerCallsLength)
|
|
99
106
|
|
|
100
107
|
let airdropGraph: any
|
|
101
|
-
if (locker.id === 'cake') {
|
|
108
|
+
if (locker.id === 'cake' && withAirdropGraph) {
|
|
102
109
|
airdropGraph = await getCherriesLeaderBoard()
|
|
103
110
|
}
|
|
104
111
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { type Address, zeroAddress } from 'viem'
|
|
2
|
-
import { Zero } from '../../../index.js'
|
|
1
|
+
import { type Address, formatUnits, zeroAddress } from 'viem'
|
|
3
2
|
import type { Call } from '../../../utils.js'
|
|
4
3
|
|
|
5
4
|
export const feeCalls = (lockerId: string, accumulatorAddress: Address) => {
|
|
@@ -13,28 +12,22 @@ export const feeCalls = (lockerId: string, accumulatorAddress: Address) => {
|
|
|
13
12
|
calls.push({ address: accumulatorAddress, name: 'claimerFee' })
|
|
14
13
|
|
|
15
14
|
// Treasury
|
|
16
|
-
if (['cake'
|
|
15
|
+
if (['cake'].includes(lockerId)) {
|
|
17
16
|
calls.push({ address: accumulatorAddress, name: 'daoFee' })
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
switch (lockerId) {
|
|
21
|
-
case '
|
|
22
|
-
calls.push({ address: accumulatorAddress, name: 'getFeeSplit' })
|
|
20
|
+
case 'angle':
|
|
23
21
|
break
|
|
24
22
|
case 'cake':
|
|
25
|
-
case 'yfi':
|
|
26
23
|
calls.push({ address: accumulatorAddress, name: 'liquidityFee' })
|
|
27
24
|
break
|
|
28
|
-
case 'pendle':
|
|
29
|
-
calls.push({ address: accumulatorAddress, name: 'bountyFee' })
|
|
30
|
-
break
|
|
31
|
-
case 'fpis':
|
|
32
|
-
calls.push({ address: accumulatorAddress, name: 'bribeFee' })
|
|
33
|
-
break
|
|
34
|
-
case 'apw':
|
|
35
25
|
case 'bpt':
|
|
36
26
|
calls.push({ address: accumulatorAddress, name: 'lockerFee' })
|
|
37
27
|
break
|
|
28
|
+
default:
|
|
29
|
+
calls.push({ address: accumulatorAddress, name: 'getFeeSplit' })
|
|
30
|
+
break
|
|
38
31
|
}
|
|
39
32
|
|
|
40
33
|
return calls
|
|
@@ -42,11 +35,11 @@ export const feeCalls = (lockerId: string, accumulatorAddress: Address) => {
|
|
|
42
35
|
|
|
43
36
|
export interface ILockerFee {
|
|
44
37
|
lockerId: string
|
|
45
|
-
claimerFee:
|
|
46
|
-
daoFee:
|
|
47
|
-
bountyFee:
|
|
48
|
-
liquidityFee:
|
|
49
|
-
lockerFee:
|
|
38
|
+
claimerFee: string
|
|
39
|
+
daoFee: string
|
|
40
|
+
bountyFee: string
|
|
41
|
+
liquidityFee: string
|
|
42
|
+
lockerFee: string
|
|
50
43
|
}
|
|
51
44
|
|
|
52
45
|
export const extractFees = (lockers: any, feesData: any): ILockerFee[] => {
|
|
@@ -67,44 +60,39 @@ export const extractFees = (lockers: any, feesData: any): ILockerFee[] => {
|
|
|
67
60
|
|
|
68
61
|
results.push({
|
|
69
62
|
lockerId: locker.id,
|
|
70
|
-
claimerFee: claimerFee ?
|
|
71
|
-
daoFee: daoFee ?
|
|
72
|
-
bountyFee: bountyFee ?
|
|
73
|
-
liquidityFee: liquidityFee ?
|
|
74
|
-
lockerFee: lockerFee ?
|
|
63
|
+
claimerFee: claimerFee ? `${claimerFee.value}` : '0',
|
|
64
|
+
daoFee: daoFee ? `${daoFee.value}` : '0',
|
|
65
|
+
bountyFee: bountyFee ? `${bountyFee.value}` : '0',
|
|
66
|
+
liquidityFee: liquidityFee ? `${liquidityFee.value}` : '0',
|
|
67
|
+
lockerFee: lockerFee ? `${lockerFee.value}` : '0',
|
|
75
68
|
})
|
|
76
69
|
continue
|
|
77
70
|
}
|
|
78
71
|
|
|
79
|
-
let daoFee =
|
|
80
|
-
|
|
81
|
-
let liquidityFee =
|
|
82
|
-
let lockerFee =
|
|
72
|
+
let daoFee = '0'
|
|
73
|
+
const bountyFee = '0'
|
|
74
|
+
let liquidityFee = '0'
|
|
75
|
+
let lockerFee = '0'
|
|
83
76
|
|
|
84
77
|
switch (locker.id) {
|
|
85
|
-
case '
|
|
86
|
-
const crvFees = feesData.pop()?.result
|
|
87
|
-
daoFee = BigInt(crvFees.fees[0])
|
|
88
|
-
liquidityFee = BigInt(crvFees.fees[1])
|
|
78
|
+
case 'angle':
|
|
89
79
|
break
|
|
90
|
-
}
|
|
91
80
|
case 'cake':
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
daoFee = BigInt(feesData.pop()?.result)
|
|
95
|
-
break
|
|
96
|
-
case 'pendle':
|
|
97
|
-
case 'fpis':
|
|
98
|
-
bountyFee = BigInt(feesData.pop()?.result)
|
|
99
|
-
daoFee = BigInt(feesData.pop()?.result)
|
|
81
|
+
liquidityFee = formatUnits(feesData.pop()?.result, 2)
|
|
82
|
+
daoFee = formatUnits(feesData.pop()?.result, 2)
|
|
100
83
|
break
|
|
101
|
-
case 'apw':
|
|
102
84
|
case 'bpt':
|
|
103
|
-
lockerFee =
|
|
85
|
+
lockerFee = formatUnits(feesData.pop()?.result, 2)
|
|
104
86
|
break
|
|
87
|
+
default: {
|
|
88
|
+
const fees: { fees: bigint[] } = feesData.pop()?.result
|
|
89
|
+
daoFee = formatUnits(fees.fees[0]!, 16)
|
|
90
|
+
liquidityFee = formatUnits(fees.fees[1]!, 16)
|
|
91
|
+
break
|
|
92
|
+
}
|
|
105
93
|
}
|
|
106
94
|
|
|
107
|
-
const claimerFee =
|
|
95
|
+
const claimerFee = formatUnits(feesData.pop()?.result, !['angle', 'cake', 'bpt'].includes(locker.id) ? 16 : 2)
|
|
108
96
|
|
|
109
97
|
results.push({
|
|
110
98
|
lockerId: locker.id,
|
|
@@ -8,13 +8,10 @@ const getFees = (locker: any, lockerFee: ILockerFee | null | undefined) => {
|
|
|
8
8
|
if (!fee.static) {
|
|
9
9
|
switch (fee.key) {
|
|
10
10
|
case 'voteFee':
|
|
11
|
-
value = Number(lockerFee?.bountyFee || 0)
|
|
11
|
+
value = Number(lockerFee?.bountyFee || 0)
|
|
12
12
|
break
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
case 'daoFee':
|
|
16
|
-
case 'lockerFee':
|
|
17
|
-
value = Number(lockerFee?.[fee.key] || 0) / 100
|
|
13
|
+
default:
|
|
14
|
+
value = Number(lockerFee?.[fee.key] || 0)
|
|
18
15
|
break
|
|
19
16
|
}
|
|
20
17
|
}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
const substractFees = (lockerId: string, maxApr: number, lockerFee: any): number => {
|
|
2
2
|
switch (lockerId) {
|
|
3
|
-
case 'yfi':
|
|
4
|
-
case 'bpt':
|
|
5
3
|
case 'apw': {
|
|
6
4
|
const totalFee = lockerFee
|
|
7
5
|
? Object.keys(lockerFee).reduce(
|
|
8
|
-
(total, key) => (key !== 'lockerId' ? total + Number(lockerFee[key])
|
|
6
|
+
(total, key) => (key !== 'lockerId' ? total + Number(lockerFee[key]) : total),
|
|
9
7
|
0,
|
|
10
8
|
)
|
|
11
9
|
: 0
|
|
12
10
|
|
|
13
11
|
return (maxApr * (100 - totalFee)) / 100
|
|
14
12
|
}
|
|
15
|
-
case 'mav': {
|
|
16
|
-
// 10% airdrop fees
|
|
17
|
-
return (maxApr * (100 - 10)) / 100
|
|
18
|
-
}
|
|
19
13
|
default: {
|
|
20
14
|
// Streaming from gauges, fees are already substracted
|
|
21
15
|
return maxApr
|
|
@@ -60,6 +60,8 @@ export const fetchCurveGauges = async (rpc: Rpcs): Promise<GaugesData> => {
|
|
|
60
60
|
const filteredGauges = gauges.filter((g) => g.chainId > 0 && !BROKEN_GAUGES.includes(g.gauge.toLowerCase()))
|
|
61
61
|
const gaugesPerChain = groupBy(filteredGauges, 'chainId')
|
|
62
62
|
|
|
63
|
+
console.info('chains found:', Object.keys(gaugesPerChain))
|
|
64
|
+
|
|
63
65
|
for (const chainId of Object.keys(gaugesPerChain)) {
|
|
64
66
|
const chainGauges = gaugesPerChain[chainId]!
|
|
65
67
|
const chunkedChainGauges = chunk(chainGauges, GAUGES_METADATA_CHUNK_SIZE)
|
|
@@ -88,8 +90,26 @@ export const fetchCurveGauges = async (rpc: Rpcs): Promise<GaugesData> => {
|
|
|
88
90
|
const augmentedGauges = filteredGauges.map((g) => {
|
|
89
91
|
const gaugeMetadata = gaugesMetadata.find((gm) => equalTlc(gm.gauge, g.gauge))
|
|
90
92
|
|
|
93
|
+
const filteredCoins = gaugeMetadata.coins
|
|
94
|
+
.map((c) => ({
|
|
95
|
+
name: c.name,
|
|
96
|
+
symbol: c.symbol,
|
|
97
|
+
address: c._address,
|
|
98
|
+
decimals: Number(c.decimals),
|
|
99
|
+
}))
|
|
100
|
+
.filter((c) => c.address !== zeroAddress)
|
|
101
|
+
|
|
102
|
+
const name = gaugeMetadata.lp.name
|
|
103
|
+
.replace('Curve.fi Factory Crypto Pool:', '')
|
|
104
|
+
.replace('Curve.fi Factory Pool:', '')
|
|
105
|
+
.replace('Curve.fi Factory USD Metapool:', '')
|
|
106
|
+
.replace('Curve.fi Factory Plain Pool:', '')
|
|
107
|
+
.replace('Curve.fi', '')
|
|
108
|
+
.trim()
|
|
109
|
+
|
|
91
110
|
return {
|
|
92
111
|
gauge: g.gauge,
|
|
112
|
+
name,
|
|
93
113
|
weight: g.weight,
|
|
94
114
|
relativeWeight: g.relativeWeight,
|
|
95
115
|
futureRelativeWeight: g.futureRelativeWeight,
|
|
@@ -101,14 +121,7 @@ export const fetchCurveGauges = async (rpc: Rpcs): Promise<GaugesData> => {
|
|
|
101
121
|
address: gaugeMetadata.lp._address,
|
|
102
122
|
decimals: Number(gaugeMetadata.lp.decimals),
|
|
103
123
|
},
|
|
104
|
-
coins:
|
|
105
|
-
.map((c) => ({
|
|
106
|
-
name: c.name,
|
|
107
|
-
symbol: c.symbol,
|
|
108
|
-
address: c._address,
|
|
109
|
-
decimals: Number(c.decimals),
|
|
110
|
-
}))
|
|
111
|
-
.filter((c) => c.address !== zeroAddress),
|
|
124
|
+
coins: filteredCoins,
|
|
112
125
|
}
|
|
113
126
|
})
|
|
114
127
|
|