@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.
Files changed (29) hide show
  1. package/dist/esm/index.js +1 -0
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/lockers/fetch/index.js +2 -2
  4. package/dist/esm/lockers/fetch/index.js.map +1 -1
  5. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js +26 -38
  6. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js.map +1 -1
  7. package/dist/esm/lockers/utils/getFees.js +3 -6
  8. package/dist/esm/lockers/utils/getFees.js.map +1 -1
  9. package/dist/esm/lockers/utils/substractFees.js +1 -7
  10. package/dist/esm/lockers/utils/substractFees.js.map +1 -1
  11. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  12. package/dist/esm/votemarket/curve/fetchCurveGauges.js +18 -8
  13. package/dist/esm/votemarket/curve/fetchCurveGauges.js.map +1 -1
  14. package/dist/types/index.d.ts +1 -0
  15. package/dist/types/index.d.ts.map +1 -1
  16. package/dist/types/lockers/fetch/index.d.ts +8 -1
  17. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  18. package/dist/types/lockers/utils/callsForLockers/feeCalls.d.ts +5 -5
  19. package/dist/types/lockers/utils/callsForLockers/feeCalls.d.ts.map +1 -1
  20. package/dist/types/lockers/utils/getFees.d.ts.map +1 -1
  21. package/dist/types/lockers/utils/substractFees.d.ts.map +1 -1
  22. package/dist/types/votemarket/curve/fetchCurveGauges.d.ts.map +1 -1
  23. package/package.json +2 -2
  24. package/src/index.ts +1 -0
  25. package/src/lockers/fetch/index.ts +9 -2
  26. package/src/lockers/utils/callsForLockers/feeCalls.ts +31 -43
  27. package/src/lockers/utils/getFees.ts +3 -6
  28. package/src/lockers/utils/substractFees.ts +1 -7
  29. 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: gaugeMetadata.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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"}
@@ -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;AAKvD,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
+ {"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
- export declare const fetchLockers: (provider: any, chainId: number, prices: Price[]) => Promise<{
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,eAAO,MAAM,YAAY,aAAoB,GAAG,WAAW,MAAM,UAAU,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0PjF,CAAA"}
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: bigint;
7
- daoFee: bigint;
8
- bountyFee: bigint;
9
- liquidityFee: bigint;
10
- lockerFee: bigint;
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,EAAe,MAAM,MAAM,CAAA;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,eAAO,MAAM,QAAQ,aAAc,MAAM,sBAAsB,OAAO,WAoCrE,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,EAoEnE,CAAA"}
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,UA6BrE,CAAA;AAED,eAAe,OAAO,CAAA"}
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,MAuBzE,CAAA;AAED,eAAe,aAAa,CAAA"}
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,CAgGpE,CAAA"}
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.0",
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.0"
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
- export const fetchLockers = async (provider: any, chainId: number, prices: Price[]) => {
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', 'yfi', 'pendle', 'fpis'].includes(lockerId)) {
15
+ if (['cake'].includes(lockerId)) {
17
16
  calls.push({ address: accumulatorAddress, name: 'daoFee' })
18
17
  }
19
18
 
20
19
  switch (lockerId) {
21
- case 'crv':
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: bigint
46
- daoFee: bigint
47
- bountyFee: bigint
48
- liquidityFee: bigint
49
- lockerFee: bigint
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 ? BigInt(claimerFee.value * 100) : Zero,
71
- daoFee: daoFee ? BigInt(daoFee.value * 100) : Zero,
72
- bountyFee: bountyFee ? BigInt(bountyFee.value * 100) : Zero,
73
- liquidityFee: liquidityFee ? BigInt(liquidityFee.value * 100) : Zero,
74
- lockerFee: lockerFee ? BigInt(lockerFee.value * 100) : Zero,
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 = Zero
80
- let bountyFee = Zero
81
- let liquidityFee = Zero
82
- let lockerFee = Zero
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 'crv': {
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
- case 'yfi':
93
- liquidityFee = BigInt(feesData.pop()?.result)
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 = BigInt(feesData.pop()?.result)
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 = BigInt(feesData.pop()?.result)
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) / 100
11
+ value = Number(lockerFee?.bountyFee || 0)
12
12
  break
13
- case 'claimerFee':
14
- case 'liquidityFee':
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]) / 100 : total),
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: gaugeMetadata.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