@stake-dao/reader 0.2.6 → 0.2.7

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 (63) hide show
  1. package/dist/esm/abis/MulticallAngleVaults.json +83 -0
  2. package/dist/esm/bytecodes/index.js +1 -0
  3. package/dist/esm/bytecodes/index.js.map +1 -1
  4. package/dist/esm/bytecodes/strategies/batches/batchAngleStrats.js +24 -0
  5. package/dist/esm/bytecodes/strategies/batches/batchAngleStrats.js.map +1 -0
  6. package/dist/esm/index.js +3 -0
  7. package/dist/esm/index.js.map +1 -1
  8. package/dist/esm/lockers/fetch/index.js +1 -2
  9. package/dist/esm/lockers/fetch/index.js.map +1 -1
  10. package/dist/esm/{strategies/utils/sdt.js → sdt.js} +37 -33
  11. package/dist/esm/sdt.js.map +1 -0
  12. package/dist/esm/strategies/angle/endpoints.js +3 -0
  13. package/dist/esm/strategies/angle/endpoints.js.map +1 -0
  14. package/dist/esm/strategies/angle/fetch.js +212 -0
  15. package/dist/esm/strategies/angle/fetch.js.map +1 -0
  16. package/dist/esm/strategies/curve/fetch/index.js +1 -1
  17. package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
  18. package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js +2 -1
  19. package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js.map +1 -1
  20. package/dist/esm/strategies/utils/index.js +0 -1
  21. package/dist/esm/strategies/utils/index.js.map +1 -1
  22. package/dist/esm/strategies/yearn/fetch/index.js +7 -3
  23. package/dist/esm/strategies/yearn/fetch/index.js.map +1 -1
  24. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  25. package/dist/types/bytecodes/index.d.ts +1 -0
  26. package/dist/types/bytecodes/index.d.ts.map +1 -1
  27. package/dist/types/bytecodes/strategies/batches/batchAngleStrats.d.ts +4 -0
  28. package/dist/types/bytecodes/strategies/batches/batchAngleStrats.d.ts.map +1 -0
  29. package/dist/types/index.d.ts +2 -0
  30. package/dist/types/index.d.ts.map +1 -1
  31. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  32. package/dist/types/{strategies/utils/sdt.d.ts → sdt.d.ts} +4 -2
  33. package/dist/types/sdt.d.ts.map +1 -0
  34. package/dist/types/strategies/angle/endpoints.d.ts +3 -0
  35. package/dist/types/strategies/angle/endpoints.d.ts.map +1 -0
  36. package/dist/types/strategies/angle/fetch.d.ts +22 -0
  37. package/dist/types/strategies/angle/fetch.d.ts.map +1 -0
  38. package/dist/types/strategies/curve/fetch/index.d.ts +1 -1
  39. package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
  40. package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Vaults.d.ts.map +1 -1
  41. package/dist/types/strategies/utils/index.d.ts +0 -1
  42. package/dist/types/strategies/utils/index.d.ts.map +1 -1
  43. package/dist/types/strategies/yearn/fetch/index.d.ts +1 -1
  44. package/dist/types/strategies/yearn/fetch/index.d.ts.map +1 -1
  45. package/package.json +2 -2
  46. package/src/bytecodes/index.ts +1 -0
  47. package/src/bytecodes/strategies/batches/batchAngleStrats.ts +26 -0
  48. package/src/index.ts +4 -0
  49. package/src/lockers/fetch/index.ts +1 -2
  50. package/src/{strategies/utils/sdt.ts → sdt.ts} +43 -38
  51. package/src/strategies/angle/endpoints.ts +2 -0
  52. package/src/strategies/angle/fetch.ts +252 -0
  53. package/src/strategies/curve/fetch/index.ts +1 -1
  54. package/src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts +2 -1
  55. package/src/strategies/utils/index.ts +0 -1
  56. package/src/strategies/yearn/fetch/index.ts +9 -3
  57. package/dist/esm/lockers/utils/getSdtInflationData.js +0 -38
  58. package/dist/esm/lockers/utils/getSdtInflationData.js.map +0 -1
  59. package/dist/esm/strategies/utils/sdt.js.map +0 -1
  60. package/dist/types/lockers/utils/getSdtInflationData.d.ts +0 -8
  61. package/dist/types/lockers/utils/getSdtInflationData.d.ts.map +0 -1
  62. package/dist/types/strategies/utils/sdt.d.ts.map +0 -1
  63. package/src/lockers/utils/getSdtInflationData.ts +0 -54
@@ -8,6 +8,7 @@ export { default as buildPancakeSwapErc20Strats } from './strategies/builds/buil
8
8
  export { default as buildPancakeswapNotDeployedErc20Strats } from './strategies/builds/buildPancakeswapNotDeployedErc20Strats.js';
9
9
  export { default as buildPendleStrats } from './strategies/builds/buildPendleStrats.js';
10
10
  export { default as batchCurveStrats } from './strategies/batches/batchCurveStrats.js';
11
+ export { default as batchAngleStrats } from './strategies/batches/batchAngleStrats.js';
11
12
  export { default as batchBalancerStrats } from './strategies/batches/batchBalancerStrats.js';
12
13
  export { default as batchPendleStrats } from './strategies/batches/batchPendleStrats.js';
13
14
  export { default as batchPancakeSwapStrats } from './strategies/batches/batchPancakeswapStrats.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bytecodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAE9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AACrF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4CAA4C,CAAA;AAC3F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,+CAA+C,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,oDAAoD,CAAA;AAC3G,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,+DAA+D,CAAA;AACjI,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAEvF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAClG,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,qDAAqD,CAAA;AAC5G,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,mDAAmD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bytecodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAE9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AACrF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4CAA4C,CAAA;AAC3F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,+CAA+C,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,oDAAoD,CAAA;AAC3G,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,+DAA+D,CAAA;AACjI,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAEvF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAClG,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,qDAAqD,CAAA;AAC5G,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,mDAAmD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { BatchMetaData } from '../../types.js';
2
+ declare const batchAngleStrats: BatchMetaData;
3
+ export default batchAngleStrats;
4
+ //# sourceMappingURL=batchAngleStrats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchAngleStrats.d.ts","sourceRoot":"","sources":["../../../../../src/bytecodes/strategies/batches/batchAngleStrats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,QAAA,MAAM,gBAAgB,EAAE,aAqBvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { getPricesFromLlama, getPricesFromGeckoTerminal } from './prices.js';
2
+ export * from './sdt.js';
2
3
  export { fetchSdt } from './sdt/sdt.js';
3
4
  export { fetchLockers } from './lockers/fetch/index.js';
4
5
  export * from './strategies/utils/index.js';
@@ -7,6 +8,7 @@ export { fetchCurve } from './strategies/curve/fetch/index.js';
7
8
  export { getCurveApiData } from './strategies/curve/fetch/curveApiData/getCurveApiData.js';
8
9
  export { getGaugesWeights } from './strategies/curve/fetch/curveApiData/getGaugesWeights.js';
9
10
  export { getGaugesFromRegistry } from './strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js';
11
+ export { fetchAngle } from './strategies/angle/fetch.js';
10
12
  export { buildBalancerStrategies } from './strategies/balancer/build.js';
11
13
  export { fetchBalancer } from './strategies/balancer/fetch.js';
12
14
  export { buildYearnStrategies } from './strategies/yearn/build.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;AAK5E,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,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;AAGxF,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"}
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;AAGxF,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AA6B5C,eAAO,MAAM,YAAY,aAAoB,GAAG,WAAW,MAAM,UAAU,KAAK,EAAE;;;;;;;;EAmXjF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AA4B5C,eAAO,MAAM,YAAY,aAAoB,GAAG,WAAW,MAAM,UAAU,KAAK,EAAE;;;;;;;;EAmXjF,CAAA"}
@@ -1,9 +1,11 @@
1
- import type { RewardsData, SdtApr } from '../types.js';
1
+ import type { RewardsData, SdtApr } from './strategies/types.js';
2
2
  export type SdtEmissionData = {
3
3
  lockersSdtPerBlock: bigint;
4
4
  lockersSdtPerSecond: bigint;
5
5
  stratsSdtPerBlock: bigint;
6
6
  stratsSdtPerSecond: bigint;
7
+ lockerGcTotalWeight: bigint;
8
+ stratGcTotalWeight: bigint;
7
9
  };
8
10
  export declare const calculateSDTRangeApr: (sdtRateInput: bigint, periodFinish: number, workingBalance: string, workingSupply: string, depositBalance: bigint, adjustedBalanceOf: string, votingEscrowTotalSupply: string, gaugeTotalSupply: string, sdtPrice: number, lpPrice: number) => {
9
11
  sdtMinApr: number;
@@ -11,7 +13,7 @@ export declare const calculateSDTRangeApr: (sdtRateInput: bigint, periodFinish:
11
13
  sdtBoost: number;
12
14
  sdtUserApr: number;
13
15
  };
14
- export declare const getSdtInflationData: (provider: any, chainId: number) => Promise<SdtEmissionData | undefined>;
16
+ export declare const getSdtInflationData: (provider: any) => Promise<SdtEmissionData>;
15
17
  export declare const computeSdtApr: (sdtEmissionData: SdtEmissionData, sdtRewards: RewardsData, userData: any, sdGauge: any, lpPriceInUsd: number) => SdtApr;
16
18
  export declare const getSdtApr: (rewardsData: any, sdtEmissionData: SdtEmissionData, sdGauge: any, lpPriceInUsd: number, userData: any) => SdtApr;
17
19
  //# sourceMappingURL=sdt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdt.d.ts","sourceRoot":"","sources":["../../src/sdt.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAIhE,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAiCD,eAAO,MAAM,oBAAoB,iBACjB,MAAM,gBACN,MAAM,kBACJ,MAAM,iBACP,MAAM,kBACL,MAAM,qBACH,MAAM,2BACA,MAAM,oBACb,MAAM,YACd,MAAM,WACP,MAAM;;;;;CA4DhB,CAAA;AAED,eAAO,MAAM,mBAAmB,aAAoB,GAAG,KAAG,OAAO,CAAC,eAAe,CA2ChF,CAAA;AAED,eAAO,MAAM,aAAa,oBACP,eAAe,cACpB,WAAW,YACb,GAAG,WACJ,GAAG,gBACE,MAAM,KACnB,MAsCF,CAAA;AAED,eAAO,MAAM,SAAS,gBACP,GAAG,mBACC,eAAe,WACvB,GAAG,gBACE,MAAM,YACV,GAAG,KACZ,MAgBF,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const ANGLE_APR_URL = "https://api.angle.money/v1/apr";
2
+ export declare const ANGLE_PRICE_URL = "https://api.angle.money/v1/prices";
3
+ //# sourceMappingURL=endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../../src/strategies/angle/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,mCAAmC,CAAA;AAC7D,eAAO,MAAM,eAAe,sCAAsC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { type Price } from '../../prices.js';
2
+ interface TFetchAngle {
3
+ prices: Price[];
4
+ provider: any;
5
+ rpc: string;
6
+ chainId: number;
7
+ }
8
+ export declare const fetchAngle: ({ prices, provider, rpc, chainId }: TFetchAngle) => Promise<{
9
+ global: {
10
+ fees: {
11
+ veSdt: number;
12
+ perf: number;
13
+ accumulator: number;
14
+ claimer: number;
15
+ };
16
+ };
17
+ deployed: any;
18
+ notDeployed: never[];
19
+ fetched: boolean;
20
+ }>;
21
+ export {};
22
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/strategies/angle/fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,iBAAiB,CAAA;AAOhE,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,UAAU,uCAA8C,WAAW;;;;;;;;;;;;EAuO/E,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { Price } from '../../../prices.js';
2
+ import { type SdtEmissionData } from '../../../sdt.js';
2
3
  import type { StrategyData, ValidChainId, ValidExplorer } from '../../types.js';
3
- import { type SdtEmissionData } from '../../utils/sdt.js';
4
4
  import type { GaugesWeightsData } from './curveApiData/getGaugesWeights.js';
5
5
  interface TFetchCurve {
6
6
  prices: Price[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curve/fetch/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAIV,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAA;AAKvB,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,oBAAoB,CAAA;AAKpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAK3E,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,YAAY,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,iBAAiB,CAAA;CACjC;AAED,eAAO,MAAM,UAAU,mHAUpB,WAAW,KAAG,OAAO,CAAC,YAAY,CAyPpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curve/fetch/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,iBAAiB,CAAA;AAEjE,OAAO,KAAK,EAIV,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAA;AASvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAK3E,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,YAAY,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,iBAAiB,CAAA;CACjC;AAED,eAAO,MAAM,UAAU,mHAUpB,WAAW,KAAG,OAAO,CAAC,YAAY,CAyPpC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPancakeV3Vaults.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAK3D,eAAO,MAAM,kBAAkB,QACxB,MAAM,WACF,MAAM,cACH,KAAK,EAAE,WACV,GAAG,cACA,GAAG;;;EAsLhB,CAAA"}
1
+ {"version":3,"file":"getPancakeV3Vaults.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAK3D,eAAO,MAAM,kBAAkB,QACxB,MAAM,WACF,MAAM,cACH,KAAK,EAAE,WACV,GAAG,cACA,GAAG;;;EAuLhB,CAAA"}
@@ -5,5 +5,4 @@ export declare const bytes32ToString: (bytes32: `0x${string}`) => string;
5
5
  export declare const concatBytecode: (contract: string, args: string) => string;
6
6
  export * from './boost.js';
7
7
  export * from './decodeEtherscanFactoryEvent.js';
8
- export * from './sdt.js';
9
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/strategies/utils/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,QAAY,CAAA;AAC7B,eAAO,MAAM,GAAG,QAAY,CAAA;AAC5B,eAAO,MAAM,QAAQ,QAAkB,CAAA;AAEvC,eAAO,MAAM,eAAe,YAAa,KAAK,MAAM,EAAE,WASrD,CAAA;AAED,eAAO,MAAM,cAAc,aAAc,MAAM,QAAQ,MAAM,KAAG,MAAwC,CAAA;AAExG,cAAc,YAAY,CAAA;AAC1B,cAAc,kCAAkC,CAAA;AAChD,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/strategies/utils/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,QAAY,CAAA;AAC7B,eAAO,MAAM,GAAG,QAAY,CAAA;AAC5B,eAAO,MAAM,QAAQ,QAAkB,CAAA;AAEvC,eAAO,MAAM,eAAe,YAAa,KAAK,MAAM,EAAE,WASrD,CAAA;AAED,eAAO,MAAM,cAAc,aAAc,MAAM,QAAQ,MAAM,KAAG,MAAwC,CAAA;AAExG,cAAc,YAAY,CAAA;AAC1B,cAAc,kCAAkC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { Price } from '../../../prices.js';
2
+ import { type SdtEmissionData } from '../../../sdt.js';
2
3
  import type { StrategyData, ValidChainId, ValidExplorer } from '../../types.js';
3
- import { type SdtEmissionData } from '../../utils/index.js';
4
4
  interface TFetchYearn {
5
5
  prices: Price[];
6
6
  provider: any;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/yearn/fetch/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAe,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5F,OAAO,EAAE,KAAK,eAAe,EAAoC,MAAM,sBAAsB,CAAA;AAiC7F,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,YAAY,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,eAAe,CAAA;CACjC;AAED,eAAO,MAAM,UAAU,oGASpB,WAAW,KAAG,OAAO,CAAC,YAAY,CA8KpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/yearn/fetch/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,iBAAiB,CAAA;AACjE,OAAO,KAAK,EAAe,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAmC5F,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,YAAY,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,eAAe,CAAA;CACjC;AAED,eAAO,MAAM,UAAU,oGASpB,WAAW,KAAG,OAAO,CAAC,YAAY,CAmLpC,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.2.6",
4
+ "version": "0.2.7",
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.2.0"
38
+ "@stake-dao/constants": "0.2.1"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/lodash-es": "^4.17.12"
@@ -11,6 +11,7 @@ export { default as buildPancakeswapNotDeployedErc20Strats } from './strategies/
11
11
  export { default as buildPendleStrats } from './strategies/builds/buildPendleStrats.js'
12
12
 
13
13
  export { default as batchCurveStrats } from './strategies/batches/batchCurveStrats.js'
14
+ export { default as batchAngleStrats } from './strategies/batches/batchAngleStrats.js'
14
15
  export { default as batchBalancerStrats } from './strategies/batches/batchBalancerStrats.js'
15
16
  export { default as batchPendleStrats } from './strategies/batches/batchPendleStrats.js'
16
17
  export { default as batchPancakeSwapStrats } from './strategies/batches/batchPancakeswapStrats.js'
@@ -0,0 +1,26 @@
1
+ import type { BatchMetaData } from '../../types.js'
2
+
3
+ const batchAngleStrats: BatchMetaData = {
4
+ bytecode: {
5
+ 1: '0x608060405234801561001057600080fd5b506040516112ad3803806112ad83398181016040528101906100329190610c31565b60008151905060008167ffffffffffffffff81111561005457610053610a85565b5b60405190808252806020026020018201604052801561008d57816020015b61007a6108f7565b8152602001906001900390816100725790505b509050600084905060005b838110156108c75760008582815181106100b5576100b4610c8d565b5b60200260200101519050600081600001519050600082604001519050826020015173ffffffffffffffffffffffffffffffffffffffff166370a0823184600001516040518263ffffffff1660e01b81526004016101129190610ccb565b602060405180830381865afa15801561012f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101539190610d1c565b86858151811061016657610165610c8d565b5b602002602001015160000181815250508173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e59190610d1c565b8685815181106101f8576101f7610c8d565b5b602002602001015160200181815250508173ffffffffffffffffffffffffffffffffffffffff1663f8ce31646040518163ffffffff1660e01b8152600401602060405180830381865afa158015610253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102779190610d1c565b86858151811061028a57610289610c8d565b5b602002602001015160400181815250508173ffffffffffffffffffffffffffffffffffffffff1663422ede426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103099190610d1c565b86858151811061031c5761031b610c8d565b5b602002602001015160600181815250508473ffffffffffffffffffffffffffffffffffffffff16636207d86684604001516040518263ffffffff1660e01b81526004016103699190610ccb565b602060405180830381865afa158015610386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103aa9190610d1c565b8685815181106103bd576103bc610c8d565b5b60200260200101516101600181815250508473ffffffffffffffffffffffffffffffffffffffff16634e791a3a84604001516040518263ffffffff1660e01b815260040161040b9190610ccb565b602060405180830381865afa158015610428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044c9190610d1c565b86858151811061045f5761045e610c8d565b5b60200260200101516101800181815250508473ffffffffffffffffffffffffffffffffffffffff16636977ff926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190610d1c565b8685815181106104f2576104f1610c8d565b5b60200260200101516101a00181815250508073ffffffffffffffffffffffffffffffffffffffff166317e280896040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105729190610d1c565b86858151811061058557610584610c8d565b5b60200260200101516101c00181815250508073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190610d1c565b86858151811061061857610617610c8d565b5b60200260200101516101e001818152505060008173ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a9190610d1c565b90508067ffffffffffffffff8111156106b6576106b5610a85565b5b6040519080825280602002602001820160405280156106ef57816020015b6106dc61097b565b8152602001906001900390816106d45790505b5087868151811061070357610702610c8d565b5b6020026020010151610200018190525060005b818110156108af5760008373ffffffffffffffffffffffffffffffffffffffff166354c49fe9836040518263ffffffff1660e01b81526004016107599190610d58565b602060405180830381865afa158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190610d73565b90508373ffffffffffffffffffffffffffffffffffffffff166348e9c65e826040518263ffffffff1660e01b81526004016107d59190610ccb565b60c060405180830381865afa1580156107f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108169190610e40565b89888151811061082957610828610c8d565b5b60200260200101516102000151838151811061084857610847610c8d565b5b602002602001015160000181905250600089888151811061086c5761086b610c8d565b5b60200260200101516102000151838151811061088b5761088a610c8d565b5b602002602001015160200181815250505080806108a790610e9c565b915050610716565b505050505080806108bf90610e9c565b915050610098565b506000826040516020016108db919061128a565b6040516020818303038152906040529050602081018059038082f35b60405180610220016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b604051806040016040528061098e61099b565b8152602001600081525090565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a3c82610a11565b9050919050565b610a4c81610a31565b8114610a5757600080fd5b50565b600081519050610a6981610a43565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610abd82610a74565b810181811067ffffffffffffffff82111715610adc57610adb610a85565b5b80604052505050565b6000610aef6109fd565b9050610afb8282610ab4565b919050565b600067ffffffffffffffff821115610b1b57610b1a610a85565b5b602082029050602081019050919050565b600080fd5b600080fd5b600060608284031215610b4c57610b4b610b31565b5b610b566060610ae5565b90506000610b6684828501610a5a565b6000830152506020610b7a84828501610a5a565b6020830152506040610b8e84828501610a5a565b60408301525092915050565b6000610bad610ba884610b00565b610ae5565b90508083825260208201905060608402830185811115610bd057610bcf610b2c565b5b835b81811015610bf95780610be58882610b36565b845260208401935050606081019050610bd2565b5050509392505050565b600082601f830112610c1857610c17610a6f565b5b8151610c28848260208601610b9a565b91505092915050565b60008060408385031215610c4857610c47610a07565b5b6000610c5685828601610a5a565b925050602083015167ffffffffffffffff811115610c7757610c76610a0c565b5b610c8385828601610c03565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b610cc581610a31565b82525050565b6000602082019050610ce06000830184610cbc565b92915050565b6000819050919050565b610cf981610ce6565b8114610d0457600080fd5b50565b600081519050610d1681610cf0565b92915050565b600060208284031215610d3257610d31610a07565b5b6000610d4084828501610d07565b91505092915050565b610d5281610ce6565b82525050565b6000602082019050610d6d6000830184610d49565b92915050565b600060208284031215610d8957610d88610a07565b5b6000610d9784828501610a5a565b91505092915050565b600060c08284031215610db657610db5610b31565b5b610dc060c0610ae5565b90506000610dd084828501610a5a565b6000830152506020610de484828501610a5a565b6020830152506040610df884828501610d07565b6040830152506060610e0c84828501610d07565b6060830152506080610e2084828501610d07565b60808301525060a0610e3484828501610d07565b60a08301525092915050565b600060c08284031215610e5657610e55610a07565b5b6000610e6484828501610da0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ea782610ce6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ed957610ed8610e6d565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610f1981610ce6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610f5481610a31565b82525050565b60c082016000820151610f706000850182610f4b565b506020820151610f836020850182610f4b565b506040820151610f966040850182610f10565b506060820151610fa96060850182610f10565b506080820151610fbc6080850182610f10565b5060a0820151610fcf60a0850182610f10565b50505050565b60e082016000820151610feb6000850182610f5a565b506020820151610ffe60c0850182610f10565b50505050565b60006110108383610fd5565b60e08301905092915050565b6000602082019050919050565b600061103482610f1f565b61103e8185610f2a565b935061104983610f3b565b8060005b8381101561107a5781516110618882611004565b975061106c8361101c565b92505060018101905061104d565b5085935050505092915050565b6000610220830160008301516110a06000860182610f10565b5060208301516110b36020860182610f10565b5060408301516110c66040860182610f10565b5060608301516110d96060860182610f10565b5060808301516110ec6080860182610f10565b5060a08301516110ff60a0860182610f10565b5060c083015161111260c0860182610f10565b5060e083015161112560e0860182610f10565b5061010083015161113a610100860182610f10565b5061012083015161114f610120860182610f10565b50610140830151611164610140860182610f10565b50610160830151611179610160860182610f10565b5061018083015161118e610180860182610f10565b506101a08301516111a36101a0860182610f10565b506101c08301516111b86101c0860182610f10565b506101e08301516111cd6101e0860182610f10565b506102008301518482036102008601526111e78282611029565b9150508091505092915050565b60006112008383611087565b905092915050565b6000602082019050919050565b600061122082610ee4565b61122a8185610eef565b93508360208202850161123c85610f00565b8060005b85811015611278578484038952815161125985826111f4565b945061126483611208565b925060208a01995050600181019050611240565b50829750879550505050505092915050565b600060208201905081810360008301526112a48184611215565b90509291505056fe',
6
+ },
7
+ inputType: {
8
+ 1: [
9
+ 'address gaugeController, AngleStategyInfo[] inputs',
10
+ 'struct AngleStategyInfo { address vault; address token; address sdtLiquidityGauge; }',
11
+ ],
12
+ },
13
+ outputTypeHr: {
14
+ 1: [
15
+ 'AngleStratsData[] stratsData',
16
+ 'struct AngleStratsData { uint256 vaultHoldings; uint256 totalSupply; uint256 accumulatedFees; uint256 keeperFee; uint256 veSDTFee; uint256 perfFee; uint256 accumulatorFee; uint256 claimerFee; uint256 strategyHoldings; uint256 workingBalance; uint256 workingSupplyStaked; uint256 gaugeRelativeWeight; uint256 gaugeWeight; uint256 totalGaugeWeights; uint256 sdWorkingSupply; uint256 sdGaugeTotalSupply; RewardsWithClaimable[] rewardsData; }',
17
+ 'struct RewardsWithClaimable { RewardData rewardData; uint256 claimablePendingRewards; }',
18
+ 'struct RewardData { address token; address distributor; uint256 period_finish; uint256 rate; uint256 last_update; uint256 integral; }',
19
+ ],
20
+ },
21
+ outputType: {
22
+ 1: [],
23
+ },
24
+ }
25
+
26
+ export default batchAngleStrats
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  /// --- GLOBAL
3
3
  ///////////////////////////////////////////////////////////////
4
4
  export { getPricesFromLlama, getPricesFromGeckoTerminal } from './prices.js'
5
+ export * from './sdt.js'
5
6
 
6
7
  ////////////////////////////////////////////////////////////////
7
8
  /// --- SDT
@@ -25,6 +26,9 @@ export { getCurveApiData } from './strategies/curve/fetch/curveApiData/getCurveA
25
26
  export { getGaugesWeights } from './strategies/curve/fetch/curveApiData/getGaugesWeights.js'
26
27
  export { getGaugesFromRegistry } from './strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js'
27
28
 
29
+ // Angle
30
+ export { fetchAngle } from './strategies/angle/fetch.js'
31
+
28
32
  // Balancer
29
33
  export { buildBalancerStrategies } from './strategies/balancer/build.js'
30
34
  export { fetchBalancer } from './strategies/balancer/fetch.js'
@@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains'
3
3
 
4
4
  import { ONE_YEAR, lockers, tokenWithId } from '@stake-dao/constants'
5
5
  import { delegationWithId } from '@stake-dao/constants'
6
- import { OneEther, Zero } from '../../index.js'
6
+ import { OneEther, Zero, getSdtInflationData } from '../../index.js'
7
7
  import { type Price } from '../../prices.js'
8
8
  import { type Call, multicall } from '../../utils.js'
9
9
  import { lockedAmountCallSideChain } from '../utils/index.js'
@@ -17,7 +17,6 @@ import callsForLockers from '../utils/callsForLockers/index.js'
17
17
  import getBribesRewardsData from '../utils/getBribesRewardsData.js'
18
18
  import getFees from '../utils/getFees.js'
19
19
  import getHttpCalls from '../utils/getHttpCalls.js'
20
- import getSdtInflationData from '../utils/getSdtInflationData.js'
21
20
  import substractFees from '../utils/substractFees.js'
22
21
 
23
22
  const callsForRewards = (gauge: string, rewards: any[]) =>
@@ -1,17 +1,19 @@
1
- import { ONE_WEEK, ONE_YEAR, contracts, mainnet } from '@stake-dao/constants'
1
+ import { ONE_WEEK, ONE_YEAR, contracts } from '@stake-dao/constants'
2
2
  import { LOCKERS_MASTERCHEF_PID } from '@stake-dao/constants'
3
3
  import { STRATEGIES_MASTERCHEF_PID } from '@stake-dao/constants'
4
4
  import { ETH_SECONDS_PER_BLOCK } from '@stake-dao/constants'
5
5
  import { formatUnits, parseAbi, parseEther, parseUnits } from 'viem'
6
- import { multicall } from '../../utils.js'
7
- import type { RewardsData, SdtApr } from '../types.js'
8
- import { OneEther, Zero } from './index.js'
6
+ import type { RewardsData, SdtApr } from './strategies/types.js'
7
+ import { OneEther, Zero } from './strategies/utils/index.js'
8
+ import { multicall } from './utils.js'
9
9
 
10
10
  export type SdtEmissionData = {
11
11
  lockersSdtPerBlock: bigint
12
12
  lockersSdtPerSecond: bigint
13
13
  stratsSdtPerBlock: bigint
14
14
  stratsSdtPerSecond: bigint
15
+ lockerGcTotalWeight: bigint
16
+ stratGcTotalWeight: bigint
15
17
  }
16
18
 
17
19
  const simulateUserWorkingBalance = (
@@ -117,46 +119,49 @@ export const calculateSDTRangeApr = (
117
119
  }
118
120
  }
119
121
 
120
- export const getSdtInflationData = async (provider: any, chainId: number): Promise<SdtEmissionData | undefined> => {
121
- if (chainId === mainnet.id) {
122
- const rawSdtMasterchefData = await multicall(
123
- provider,
124
- [
125
- { address: contracts.sdtMasterchef![1]!, name: 'sdtPerBlock' },
126
- { address: contracts.sdtMasterchef![1]!, name: 'totalAllocPoint' },
127
- { address: contracts.sdtMasterchef![1]!, name: 'poolInfo', params: [LOCKERS_MASTERCHEF_PID] },
128
- { address: contracts.sdtMasterchef![1]!, name: 'poolInfo', params: [STRATEGIES_MASTERCHEF_PID] },
129
- ],
130
- parseAbi([
131
- 'function sdtPerBlock() view returns (uint256)',
132
- 'function totalAllocPoint() view returns (uint256)',
133
- 'function poolInfo(uint256 pid) view returns (address,uint256,uint256,uint256)',
134
- ]),
135
- )
122
+ export const getSdtInflationData = async (provider: any): Promise<SdtEmissionData> => {
123
+ const rawSdtEmissionData = await multicall(
124
+ provider,
125
+ [
126
+ { address: contracts.sdtMasterchef![1]!, name: 'sdtPerBlock' },
127
+ { address: contracts.sdtMasterchef![1]!, name: 'totalAllocPoint' },
128
+ { address: contracts.sdtMasterchef![1]!, name: 'poolInfo', params: [LOCKERS_MASTERCHEF_PID] },
129
+ { address: contracts.sdtMasterchef![1]!, name: 'poolInfo', params: [STRATEGIES_MASTERCHEF_PID] },
130
+ { address: contracts.liquidLockersGaugeController![1]!, name: 'get_total_weight' },
131
+ { address: contracts.sdGaugeController![1]!, name: 'get_total_weight' },
132
+ ],
133
+ parseAbi([
134
+ 'function sdtPerBlock() external view returns (uint256)',
135
+ 'function totalAllocPoint() external view returns (uint256)',
136
+ 'function poolInfo(uint256) external view returns (address,uint256,uint256)',
137
+ 'function get_total_weight() external view returns (uint256)',
138
+ ]),
139
+ )
136
140
 
137
- const sdtPerBlock = rawSdtMasterchefData[0].result
138
- const totalAllocPoint = rawSdtMasterchefData[1].result
139
- const lockerPoolInfo = rawSdtMasterchefData[2].result
140
- const stratPoolInfo = rawSdtMasterchefData[3].result
141
+ const sdtPerBlock = rawSdtEmissionData[0].result
142
+ const totalAllocPoint = rawSdtEmissionData[1].result
143
+ const lockerPoolInfo = rawSdtEmissionData[2].result
144
+ const stratPoolInfo = rawSdtEmissionData[3].result
145
+ const lockerGcTotalWeight = rawSdtEmissionData[4].result
146
+ const stratGcTotalWeight = rawSdtEmissionData[5].result
141
147
 
142
- const lockersAllocPoint = lockerPoolInfo[1] as bigint
143
- const stratsAllocPoint = stratPoolInfo[1] as bigint
148
+ const lockersAllocPoint = lockerPoolInfo[1] as bigint
149
+ const stratsAllocPoint = stratPoolInfo[1] as bigint
144
150
 
145
- const lockersSdtPerBlock = (lockersAllocPoint * sdtPerBlock) / totalAllocPoint
146
- const lockersSdtPerSecond = BigInt(lockersSdtPerBlock) / BigInt(ETH_SECONDS_PER_BLOCK)
151
+ const lockersSdtPerBlock = (lockersAllocPoint * sdtPerBlock) / totalAllocPoint
152
+ const lockersSdtPerSecond = BigInt(lockersSdtPerBlock) / BigInt(ETH_SECONDS_PER_BLOCK)
147
153
 
148
- const stratsSdtPerBlock = (stratsAllocPoint * sdtPerBlock) / totalAllocPoint
149
- const stratsSdtPerSecond = BigInt(stratsSdtPerBlock) / BigInt(ETH_SECONDS_PER_BLOCK)
154
+ const stratsSdtPerBlock = (stratsAllocPoint * sdtPerBlock) / totalAllocPoint
155
+ const stratsSdtPerSecond = BigInt(stratsSdtPerBlock) / BigInt(ETH_SECONDS_PER_BLOCK)
150
156
 
151
- return {
152
- lockersSdtPerBlock,
153
- lockersSdtPerSecond,
154
- stratsSdtPerBlock,
155
- stratsSdtPerSecond,
156
- }
157
+ return {
158
+ lockersSdtPerBlock,
159
+ lockersSdtPerSecond,
160
+ stratsSdtPerBlock,
161
+ stratsSdtPerSecond,
162
+ lockerGcTotalWeight,
163
+ stratGcTotalWeight,
157
164
  }
158
-
159
- return undefined
160
165
  }
161
166
 
162
167
  export const computeSdtApr = (
@@ -0,0 +1,2 @@
1
+ export const ANGLE_APR_URL = 'https://api.angle.money/v1/apr'
2
+ export const ANGLE_PRICE_URL = 'https://api.angle.money/v1/prices'