@stake-dao/reader 0.4.62 → 0.4.63

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 (45) hide show
  1. package/dist/esm/abis/lockersMulticall.js +55 -18
  2. package/dist/esm/abis/lockersMulticall.js.map +1 -1
  3. package/dist/esm/lockers/fetch/index.js +9 -6
  4. package/dist/esm/lockers/fetch/index.js.map +1 -1
  5. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js +1 -0
  6. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js.map +1 -1
  7. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js +8 -2
  8. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js.map +1 -1
  9. package/dist/esm/lockers/utils/callsForLockers/gaugeCalls.js +4 -1
  10. package/dist/esm/lockers/utils/callsForLockers/gaugeCalls.js.map +1 -1
  11. package/dist/esm/lockers/utils/callsForLockers/index.js +2 -2
  12. package/dist/esm/lockers/utils/callsForLockers/index.js.map +1 -1
  13. package/dist/esm/lockers/utils/callsForLockers/veCalls.js +3 -2
  14. package/dist/esm/lockers/utils/callsForLockers/veCalls.js.map +1 -1
  15. package/dist/esm/lockers/utils/index.js +6 -0
  16. package/dist/esm/lockers/utils/index.js.map +1 -1
  17. package/dist/esm/prices.js +2 -0
  18. package/dist/esm/prices.js.map +1 -1
  19. package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js +2 -2
  20. package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js.map +1 -1
  21. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  22. package/dist/types/abis/lockersMulticall.d.ts +11 -3
  23. package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
  24. package/dist/types/lockers/fetch/index.d.ts +1 -0
  25. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  26. package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts.map +1 -1
  27. package/dist/types/lockers/utils/callsForLockers/feeCalls.d.ts.map +1 -1
  28. package/dist/types/lockers/utils/callsForLockers/gaugeCalls.d.ts.map +1 -1
  29. package/dist/types/lockers/utils/callsForLockers/index.d.ts +1 -1
  30. package/dist/types/lockers/utils/callsForLockers/index.d.ts.map +1 -1
  31. package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts +1 -1
  32. package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts.map +1 -1
  33. package/dist/types/lockers/utils/index.d.ts.map +1 -1
  34. package/dist/types/prices.d.ts.map +1 -1
  35. package/package.json +2 -2
  36. package/src/abis/lockersMulticall.ts +53 -16
  37. package/src/lockers/fetch/index.ts +9 -5
  38. package/src/lockers/utils/callsForLockers/depositorCalls.ts +1 -0
  39. package/src/lockers/utils/callsForLockers/feeCalls.ts +8 -2
  40. package/src/lockers/utils/callsForLockers/gaugeCalls.ts +5 -1
  41. package/src/lockers/utils/callsForLockers/index.ts +2 -1
  42. package/src/lockers/utils/callsForLockers/veCalls.ts +3 -2
  43. package/src/lockers/utils/index.ts +6 -0
  44. package/src/prices.ts +2 -0
  45. package/src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts +2 -2
@@ -1,9 +1,17 @@
1
- declare const lockersMulticallAbi: ({
1
+ declare const lockersMulticallAbi: (chainId?: number) => ({
2
2
  name: string;
3
- outputs: {
3
+ outputs: ({
4
4
  type: string;
5
5
  name: string;
6
- }[];
6
+ components?: undefined;
7
+ } | {
8
+ components: {
9
+ type: string;
10
+ name: string;
11
+ }[];
12
+ name: string;
13
+ type: string;
14
+ })[];
7
15
  inputs: {
8
16
  type: string;
9
17
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2UxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgXxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -91,6 +91,7 @@ export declare const fetchLockers: ({ provider, chainId, prices, withAirdropGrap
91
91
  gauge: import("@stake-dao/constants").Address;
92
92
  accumulator: import("@stake-dao/constants").Address;
93
93
  redeem?: import("@stake-dao/constants").Address;
94
+ veNFT?: import("@stake-dao/constants").Address;
94
95
  };
95
96
  secondaryMarket?: import("@stake-dao/constants").LockerSecondaryMarket;
96
97
  veBoost?: {
@@ -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;AAuB5F,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6RhG,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;AAuB5F,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiShG,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"depositorCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/depositorCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,cAAc,cAAe,MAAM,UAAU,OAAO,UAsBzD,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"depositorCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/depositorCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,cAAc,cAAe,MAAM,UAAU,OAAO,UAuBzD,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1 +1 @@
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,EAwEnE,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,EA8EnE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"gaugeCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/gaugeCalls.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,UAAW,MAAM;;;GAGhC,CAAA;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"gaugeCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/gaugeCalls.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU,UAAW,MAAM;;;GAKhC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -3,6 +3,6 @@ import type { Address } from 'viem';
3
3
  declare const callsForLockers: (lockerId: string, token: string, sdToken: string, votingEscrow: string, depositor: string, gauge: string, locker: string, secondaryMarket: LockerSecondaryMarket | undefined, voteBooster: any, veBoost?: {
4
4
  address: Address;
5
5
  delegator: Address;
6
- }) => any[];
6
+ }, veNFT?: Address) => any[];
7
7
  export default callsForLockers;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,qBAAqB,EAAY,MAAM,sBAAsB,CAAA;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAQnC,QAAA,MAAM,eAAe,aACT,MAAM,SACT,MAAM,WACJ,MAAM,gBACD,MAAM,aACT,MAAM,SACV,MAAM,UACL,MAAM,mBACG,qBAAqB,GAAG,SAAS,eACrC,GAAG,YACN;IACR,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;CACnB,UAmBF,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,qBAAqB,EAAY,MAAM,sBAAsB,CAAA;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAQnC,QAAA,MAAM,eAAe,aACT,MAAM,SACT,MAAM,WACJ,MAAM,gBACD,MAAM,aACT,MAAM,SACV,MAAM,UACL,MAAM,mBACG,qBAAqB,GAAG,SAAS,eACrC,GAAG,YACN;IACR,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;CACnB,UACO,OAAO,UAmBhB,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { Address } from 'viem';
2
- declare const veCalls: (lockerId: string, votingEscrow: string, locker: Address, token: string) => any[];
2
+ declare const veCalls: (lockerId: string, votingEscrow: string, locker: Address, token: string, veNFT?: Address) => any[];
3
3
  export default veCalls;
4
4
  //# sourceMappingURL=veCalls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"veCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/veCalls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,QAAA,MAAM,OAAO,aAAc,MAAM,gBAAgB,MAAM,UAAU,OAAO,SAAS,MAAM,UAwBtF,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"veCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/veCalls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,QAAA,MAAM,OAAO,aAAc,MAAM,gBAAgB,MAAM,UAAU,OAAO,SAAS,MAAM,UAAU,OAAO,UAyBvG,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/index.ts"],"names":[],"mappings":"AAIA,UAAU,IAAI;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAkHD,eAAO,MAAM,gBAAgB,aAAc,MAAM,QAAQ,IAAI,SAAS,MAAM,oBAAmB,MAAM;;;;;;CAiBpG,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAc,MAAM,gBAAgB,MAAM,UAAU,MAAM;;;;CAiCtF,CAAA;AAED,eAAO,MAAM,yBAAyB,aAAc,MAAM,gBAAgB,MAAM,UAAU,MAAM,WAAW,MAAM;;;;;CAiBhH,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/index.ts"],"names":[],"mappings":"AAIA,UAAU,IAAI;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAkHD,eAAO,MAAM,gBAAgB,aAAc,MAAM,QAAQ,IAAI,SAAS,MAAM,oBAAmB,MAAM;;;;;;CAiBpG,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAc,MAAM,gBAAgB,MAAM,UAAU,MAAM;;;;CAuCtF,CAAA;AAED,eAAO,MAAM,yBAAyB,aAAc,MAAM,gBAAgB,MAAM,UAAU,MAAM,WAAW,MAAM;;;;;CAiBhH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../src/prices.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,mBAAmB,wBAAkB,MAiBjD,CAAA;AAED,eAAO,MAAM,kBAAkB,WAAkB,GAAG,EAAE,wCAAmC,GAAG,KAAG,OAAO,CAAC,KAAK,EAAE,CAqB7G,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAmB,MAAM,iBAKvD,CAAA;AAED,eAAO,MAAM,2BAA2B,wBAAkB,MAiBzD,CAAA;AAED,eAAO,MAAM,0BAA0B,WAC7B,GAAG,EAAE,wCAEO,GAAG,KACtB,OAAO,CAAC,KAAK,EAAE,CA4BjB,CAAA;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,SAAS,WAAkB,YAAY,EAAE,uBAAgB,OAAO,CAAC,KAAK,EAAE,CAmBpF,CAAA;AAED,eAAO,MAAM,WAAW,eAAsB,KAAK,EAAE,UAAU,YAAY,EAAE,uBAAgB,OAAO,CAAC,KAAK,EAAE,CAO3G,CAAA;AAED,eAAO,MAAM,SAAS,WAAY,KAAK,EAAE,gBAAgB,MAAM,KAAG,MAEjE,CAAA"}
1
+ {"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../src/prices.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,mBAAmB,wBAAkB,MAmBjD,CAAA;AAED,eAAO,MAAM,kBAAkB,WAAkB,GAAG,EAAE,wCAAmC,GAAG,KAAG,OAAO,CAAC,KAAK,EAAE,CAqB7G,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAmB,MAAM,iBAKvD,CAAA;AAED,eAAO,MAAM,2BAA2B,wBAAkB,MAiBzD,CAAA;AAED,eAAO,MAAM,0BAA0B,WAC7B,GAAG,EAAE,wCAEO,GAAG,KACtB,OAAO,CAAC,KAAK,EAAE,CA4BjB,CAAA;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,SAAS,WAAkB,YAAY,EAAE,uBAAgB,OAAO,CAAC,KAAK,EAAE,CAmBpF,CAAA;AAED,eAAO,MAAM,WAAW,eAAsB,KAAK,EAAE,UAAU,YAAY,EAAE,uBAAgB,OAAO,CAAC,KAAK,EAAE,CAO3G,CAAA;AAED,eAAO,MAAM,SAAS,WAAY,KAAK,EAAE,gBAAgB,MAAM,KAAG,MAEjE,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.4.62",
4
+ "version": "0.4.63",
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.21.53",
38
- "@stake-dao/constants": "0.4.28"
38
+ "@stake-dao/constants": "0.4.29"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/lodash-es": "^4.17.12",
@@ -1,4 +1,4 @@
1
- const lockersMulticallAbi = [
1
+ const lockersMulticallAbi = (chainId = 1) => [
2
2
  {
3
3
  inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
4
4
  name: 'balanceOf',
@@ -23,6 +23,25 @@ const lockersMulticallAbi = [
23
23
  stateMutability: 'view',
24
24
  type: 'function',
25
25
  },
26
+ {
27
+ name: 'getLockedNftDetails',
28
+ outputs: [
29
+ { type: 'uint256[]', name: 'nfts' },
30
+ {
31
+ components: [
32
+ { type: 'uint256', name: 'amount' },
33
+ { type: 'uint256', name: 'end' },
34
+ { type: 'uint256', name: 'start' },
35
+ { type: 'uint256', name: 'power' },
36
+ ],
37
+ name: 'nftsDetails',
38
+ type: 'tuple[]',
39
+ },
40
+ ],
41
+ inputs: [{ type: 'address', name: '_user' }],
42
+ stateMutability: 'view',
43
+ type: 'function',
44
+ },
26
45
  {
27
46
  inputs: [{ internalType: 'address', name: '', type: 'address' }],
28
47
  name: 'locks',
@@ -302,23 +321,41 @@ const lockersMulticallAbi = [
302
321
  stateMutability: 'view',
303
322
  type: 'function',
304
323
  },
305
- {
306
- inputs: [],
307
- name: 'getFeeSplit',
308
- outputs: [
309
- {
310
- components: [
311
- { internalType: 'address[]', name: 'receivers', type: 'address[]' },
312
- { internalType: 'uint256[]', name: 'fees', type: 'uint256[]' },
324
+ chainId === 59144
325
+ ? {
326
+ inputs: [],
327
+ name: 'getFeeSplit',
328
+ outputs: [
329
+ {
330
+ components: [
331
+ { internalType: 'address', name: 'receiver', type: 'address' },
332
+ { internalType: 'uint96', name: 'fee', type: 'uint96' },
333
+ ],
334
+ internalType: 'struct BaseAccumulator.Split[]',
335
+ name: '',
336
+ type: 'tuple[]',
337
+ },
313
338
  ],
314
- internalType: 'struct AccumulatorV2.Split',
315
- name: '',
316
- type: 'tuple',
339
+ stateMutability: 'view',
340
+ type: 'function',
341
+ }
342
+ : {
343
+ inputs: [],
344
+ name: 'getFeeSplit',
345
+ outputs: [
346
+ {
347
+ components: [
348
+ { internalType: 'address[]', name: 'receivers', type: 'address[]' },
349
+ { internalType: 'uint256[]', name: 'fees', type: 'uint256[]' },
350
+ ],
351
+ internalType: 'struct AccumulatorV2.Split',
352
+ name: '',
353
+ type: 'tuple',
354
+ },
355
+ ],
356
+ stateMutability: 'view',
357
+ type: 'function',
317
358
  },
318
- ],
319
- stateMutability: 'view',
320
- type: 'function',
321
- },
322
359
  {
323
360
  inputs: [
324
361
  { internalType: 'address', name: '', type: 'address' },
@@ -61,6 +61,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
61
61
  locker.secondaryMarket,
62
62
  locker.voteBooster,
63
63
  locker.veBoost,
64
+ locker.modules.veNFT,
64
65
  ),
65
66
  )
66
67
  lockersRewardsCalls.push(...callsForRewards(locker.modules.gauge, locker.rewards))
@@ -75,8 +76,8 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
75
76
 
76
77
  const [rawLockersData, rawLockersSideChainData, rawLockersRewardsData, rawVeSdtTotalSupply] = await handlePromise(
77
78
  [
78
- multicall(provider, lockersCalls.concat(lockersFeeCalls), lockersMulticallAbi),
79
- multichainMulticall(lockersSideChainsCalls, lockersMulticallAbi),
79
+ multicall(provider, lockersCalls.concat(lockersFeeCalls), lockersMulticallAbi(chainId)),
80
+ multichainMulticall(lockersSideChainsCalls, lockersMulticallAbi()),
80
81
  multicall(
81
82
  provider,
82
83
  lockersRewardsCalls,
@@ -106,6 +107,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
106
107
  locker.secondaryMarket,
107
108
  locker.voteBooster,
108
109
  locker.veBoost,
110
+ locker.modules.veNFT,
109
111
  ).length
110
112
  const chunkedRawLockersData = rawLockersData.splice(0, lockerCallsLength)
111
113
 
@@ -118,7 +120,11 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
118
120
  const fees = getFees(locker, lockerFee)
119
121
 
120
122
  const tokenLocked = formatUnits(
121
- chunkedRawLockersData[0].result[0] ? chunkedRawLockersData[0].result[0] : chunkedRawLockersData[0].result,
123
+ chunkedRawLockersData[0].result[1]?.[0]
124
+ ? chunkedRawLockersData[0].result[1][0].amount
125
+ : chunkedRawLockersData[0].result[0]
126
+ ? chunkedRawLockersData[0].result[0]
127
+ : chunkedRawLockersData[0].result,
122
128
  locker.token.decimals,
123
129
  )
124
130
  const veBalanceOfLocker = formatUnits(chunkedRawLockersData[1].result, locker.token.decimals)
@@ -137,8 +143,6 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
137
143
  ? formatUnits(chunkedRawLockersData[7].result, locker.token.decimals)
138
144
  : '0'
139
145
  const amountTokenNotLock = formatUnits(chunkedRawLockersData[8].result, locker.token.decimals)
140
- // const veSdtTotalSupply = chainId === mainnet.id ? chunkedRawLockersData[9].result : '0'
141
-
142
146
  const voteBooster = parseVoteBoosterData(locker, chunkedRawLockersData)
143
147
  const peg = parsePeg(locker, chunkedRawLockersData)
144
148
 
@@ -13,6 +13,7 @@ const depositorCalls = (depositor: string, locker: Address) => {
13
13
  lockerWithId('fxn')!.modules.locker,
14
14
  lockerWithId('yfi')!.modules.locker,
15
15
  lockerWithId('pendle')!.modules.locker,
16
+ lockerWithId('zero', 59144)!.modules.locker,
16
17
  ].includes(locker)
17
18
  ) {
18
19
  calls.push({ address: depositor, name: 'lockIncentivePercent' })
@@ -90,10 +90,16 @@ export const extractFees = (lockers: any, feesData: any): ILockerFee[] => {
90
90
  liquidityFee = formatUnits(fxsFees.fees[1]!, 2)
91
91
  break
92
92
  }
93
+ case 'zero': {
94
+ const split = feesData.pop()?.result
95
+ daoFee = formatUnits(split[0]?.fee || BigInt(0), 16)
96
+ liquidityFee = formatUnits(split[1]?.fee || BigInt(0), 16)
97
+ break
98
+ }
93
99
  default: {
94
100
  const fees: { fees: bigint[] } = feesData.pop()?.result
95
- daoFee = formatUnits(fees.fees[0]!, 16)
96
- liquidityFee = formatUnits(fees.fees[1]!, 16)
101
+ daoFee = formatUnits(fees?.fees[0] || BigInt(0), 16)
102
+ liquidityFee = formatUnits(fees?.fees[1] || BigInt(0), 16)
97
103
  break
98
104
  }
99
105
  }
@@ -1,6 +1,10 @@
1
+ import { lockerWithId } from '@stake-dao/constants'
2
+
1
3
  const gaugeCalls = (gauge: string) => [
2
4
  { address: gauge, name: 'totalSupply' },
3
- { address: gauge, name: 'working_supply' },
5
+ gauge === lockerWithId('zero', 59144)!.modules.gauge
6
+ ? { address: gauge, name: 'totalSupply' }
7
+ : { address: gauge, name: 'working_supply' },
4
8
  ]
5
9
 
6
10
  export default gaugeCalls
@@ -22,8 +22,9 @@ const callsForLockers = (
22
22
  address: Address
23
23
  delegator: Address
24
24
  },
25
+ veNFT?: Address,
25
26
  ) => [
26
- ...veCalls(lockerId, votingEscrow, locker as Address, token),
27
+ ...veCalls(lockerId, votingEscrow, locker as Address, token, veNFT),
27
28
  ...depositorCalls(depositor, locker as Address),
28
29
  ...gaugeCalls(gauge),
29
30
  // Token
@@ -3,7 +3,7 @@ import { lockerWithId } from '@stake-dao/constants'
3
3
  import type { Address } from 'viem'
4
4
  import { lockedAmountCall } from '../index.js'
5
5
 
6
- const veCalls = (lockerId: string, votingEscrow: string, locker: Address, token: string) => {
6
+ const veCalls = (lockerId: string, votingEscrow: string, locker: Address, token: string, veNFT?: Address) => {
7
7
  const calls: any[] = []
8
8
  calls.push(lockedAmountCall(lockerId, votingEscrow, locker))
9
9
  calls.push({ address: votingEscrow, name: 'balanceOf', params: [locker] })
@@ -13,9 +13,10 @@ const veCalls = (lockerId: string, votingEscrow: string, locker: Address, token:
13
13
  lockerWithId('pendle')!.modules.locker,
14
14
  lockerWithId('mav')!.modules.locker,
15
15
  lockerWithId('cake', 56)!.modules.locker,
16
+ lockerWithId('zero', 59144)!.modules.locker,
16
17
  ].includes(locker)
17
18
  ) {
18
- calls.push({ address: token, name: 'balanceOf', params: [votingEscrow] })
19
+ calls.push({ address: token, name: 'balanceOf', params: [veNFT || votingEscrow] })
19
20
  } else {
20
21
  calls.push({ address: votingEscrow, name: 'supply' })
21
22
  }
@@ -170,6 +170,12 @@ export const lockedAmountCall = (lockerId: string, votingEscrow: string, locker:
170
170
  name: 'balanceOfLockedFxs',
171
171
  params: [locker],
172
172
  }
173
+ case 'zero':
174
+ return {
175
+ address: votingEscrow,
176
+ name: 'getLockedNftDetails',
177
+ params: [locker],
178
+ }
173
179
  default:
174
180
  return {
175
181
  address: votingEscrow,
package/src/prices.ts CHANGED
@@ -24,6 +24,8 @@ export const getLlamaTokenPrefix = (chainId = 1): string => {
24
24
  return 'arbitrum'
25
25
  case 56:
26
26
  return 'bsc'
27
+ case 59144:
28
+ return 'linea'
27
29
  default:
28
30
  return 'ethereum'
29
31
  }
@@ -8,7 +8,7 @@ import { getFarmApr } from './pancakeswapMath.js'
8
8
  import { STRAT_FEES, contracts, tokenWithId } from '@stake-dao/constants'
9
9
  import { buildPancakeSwapStrategies, concatBytecode } from '../../../index.js'
10
10
  import { type Price, mergePrices } from '../../../prices.js'
11
- import { batchJsonRpc, equalTlc, lc } from '../../../utils.js'
11
+ import { batchJsonRpc, equalTlc } from '../../../utils.js'
12
12
  import type { PancakeSwapGlobalData } from '../../types.js'
13
13
  import { getAprBreakdown } from '../../utils/getAprBreakdown.js'
14
14
  import { getPancakeV3Positions } from './getPancakeV3Positions.js'
@@ -123,7 +123,7 @@ export const getPancakeV3Vaults = async (
123
123
  return computedPositionData.positionData
124
124
  })
125
125
 
126
- const protocolTvlData = stakedTVLS[lc(strat.pool)]
126
+ const protocolTvlData = stakedTVLS[strat.pool]
127
127
  const protocolTvl = protocolTvlData
128
128
  ? Number(protocolTvlData.token0) * token0PriceInUsd + Number(protocolTvlData.token1) * token1PriceInUsd
129
129
  : 0