levr-sdk 0.1.2 → 0.2.0

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 (57) hide show
  1. package/README.md +5 -4
  2. package/dist/esm/client/hook/index.js +5 -9
  3. package/dist/esm/client/hook/index.js.map +1 -1
  4. package/dist/esm/client/hook/use-airdrop.js +19 -0
  5. package/dist/esm/client/hook/use-airdrop.js.map +1 -0
  6. package/dist/esm/client/hook/use-clanker.js +1 -34
  7. package/dist/esm/client/hook/use-clanker.js.map +1 -1
  8. package/dist/esm/client/hook/use-governance.js +2 -2
  9. package/dist/esm/client/hook/use-governance.js.map +1 -1
  10. package/dist/esm/client/hook/use-project.js +30 -6
  11. package/dist/esm/client/hook/use-project.js.map +1 -1
  12. package/dist/esm/client/hook/use-swap.js +0 -2
  13. package/dist/esm/client/hook/use-swap.js.map +1 -1
  14. package/dist/esm/client/levr-provider.js +10 -7
  15. package/dist/esm/client/levr-provider.js.map +1 -1
  16. package/dist/esm/fee-receivers.js +35 -6
  17. package/dist/esm/fee-receivers.js.map +1 -1
  18. package/dist/esm/governance.js +2 -7
  19. package/dist/esm/governance.js.map +1 -1
  20. package/dist/esm/project.js +106 -63
  21. package/dist/esm/project.js.map +1 -1
  22. package/dist/esm/quote/index.js +2 -2
  23. package/dist/esm/quote/v4.js +142 -128
  24. package/dist/esm/quote/v4.js.map +1 -1
  25. package/dist/esm/stake.js +1 -1
  26. package/dist/esm/stake.js.map +1 -1
  27. package/dist/esm/usd-price.js +21 -4
  28. package/dist/esm/usd-price.js.map +1 -1
  29. package/dist/esm/user.js +1 -1
  30. package/dist/esm/user.js.map +1 -1
  31. package/dist/types/client/hook/index.d.ts +5 -12
  32. package/dist/types/client/hook/index.d.ts.map +1 -1
  33. package/dist/types/client/hook/use-airdrop.d.ts +11 -0
  34. package/dist/types/client/hook/use-airdrop.d.ts.map +1 -0
  35. package/dist/types/client/hook/use-clanker.d.ts +1 -18
  36. package/dist/types/client/hook/use-clanker.d.ts.map +1 -1
  37. package/dist/types/client/hook/use-governance.d.ts +2 -1
  38. package/dist/types/client/hook/use-governance.d.ts.map +1 -1
  39. package/dist/types/client/hook/use-project.d.ts +11 -1
  40. package/dist/types/client/hook/use-project.d.ts.map +1 -1
  41. package/dist/types/client/hook/use-swap.d.ts.map +1 -1
  42. package/dist/types/client/levr-provider.d.ts +3 -10
  43. package/dist/types/client/levr-provider.d.ts.map +1 -1
  44. package/dist/types/fee-receivers.d.ts +514 -0
  45. package/dist/types/fee-receivers.d.ts.map +1 -1
  46. package/dist/types/governance.d.ts +3 -2
  47. package/dist/types/governance.d.ts.map +1 -1
  48. package/dist/types/project.d.ts +25 -6
  49. package/dist/types/project.d.ts.map +1 -1
  50. package/dist/types/quote/index.d.ts +2 -2
  51. package/dist/types/quote/v4.d.ts +5 -7
  52. package/dist/types/quote/v4.d.ts.map +1 -1
  53. package/dist/types/usd-price.d.ts +6 -1
  54. package/dist/types/usd-price.d.ts.map +1 -1
  55. package/dist/types/user.d.ts +1 -1
  56. package/dist/types/user.d.ts.map +1 -1
  57. package/package.json +1 -1
@@ -2,8 +2,7 @@ import { erc20Abi, zeroAddress } from "viem";
2
2
  import { IClankerToken, LevrFactory_v1, LevrGovernor_v1, LevrStaking_v1 } from "./abis/index.js";
3
3
  import { formatBalanceWithUsd } from "./balance.js";
4
4
  import { GET_FACTORY_ADDRESS, WETH } from "./constants.js";
5
- import { getTokenRewards, parseFeeReceivers } from "./fee-receivers.js";
6
- import { getTreasuryAirdropStatus } from "./treasury.js";
5
+ import { getFeeReceiverContracts, parseFeeReceivers } from "./fee-receivers.js";
7
6
  import { getUsdPrice, getWethUsdPrice } from "./usd-price.js";
8
7
  // ---
9
8
  // Contract Getters
@@ -32,12 +31,7 @@ function getTokenContracts(clankerToken) {
32
31
  {
33
32
  address: clankerToken,
34
33
  abi: IClankerToken,
35
- functionName: "metadata",
36
- },
37
- {
38
- address: clankerToken,
39
- abi: IClankerToken,
40
- functionName: "imageUrl",
34
+ functionName: "allData",
41
35
  },
42
36
  ];
43
37
  }
@@ -117,6 +111,21 @@ function getStakingContracts(staking, clankerToken, wethAddress) {
117
111
  functionName: "rewardRatePerSecond",
118
112
  args: [clankerToken],
119
113
  },
114
+ {
115
+ address: staking,
116
+ abi: LevrStaking_v1,
117
+ functionName: "streamWindowSeconds",
118
+ },
119
+ {
120
+ address: staking,
121
+ abi: LevrStaking_v1,
122
+ functionName: "streamStart",
123
+ },
124
+ {
125
+ address: staking,
126
+ abi: LevrStaking_v1,
127
+ functionName: "streamEnd",
128
+ },
120
129
  ];
121
130
  const wethContracts = wethAddress
122
131
  ? [
@@ -139,12 +148,14 @@ function getStakingContracts(staking, clankerToken, wethAddress) {
139
148
  // ---
140
149
  // Parsers
141
150
  function parseTokenData(results, clankerToken) {
142
- const [decimals, name, symbol, totalSupply, metadata, imageUrl] = results;
151
+ const [decimals, name, symbol, totalSupply, allData] = results;
152
+ // Extract allData fields: [originalAdmin, admin, image, metadata, context]
153
+ const [originalAdmin, admin, image, metadata, context] = allData.result;
143
154
  // Parse metadata JSON
144
155
  let parsedMetadata = null;
145
- if (metadata.result && typeof metadata.result === "string") {
156
+ if (metadata && typeof metadata === "string") {
146
157
  try {
147
- parsedMetadata = JSON.parse(metadata.result);
158
+ parsedMetadata = JSON.parse(metadata);
148
159
  }
149
160
  catch {
150
161
  // If parsing fails, leave as null
@@ -157,7 +168,10 @@ function parseTokenData(results, clankerToken) {
157
168
  symbol: symbol.result,
158
169
  totalSupply: totalSupply.result,
159
170
  metadata: parsedMetadata,
160
- imageUrl: imageUrl.result,
171
+ imageUrl: image || undefined,
172
+ originalAdmin,
173
+ admin,
174
+ context,
161
175
  };
162
176
  }
163
177
  function parseFactoryData(results) {
@@ -201,10 +215,13 @@ function parseStakingStats(results, tokenDecimals, tokenUsdPrice, wethUsdPrice,
201
215
  const aprBpsRaw = results[1].result;
202
216
  const outstandingRewardsTokenRaw = results[2].result;
203
217
  const tokenRewardRateRaw = results[3].result;
218
+ const streamWindowSecondsRaw = results[4].result;
219
+ const streamStartRaw = results[5].result;
220
+ const streamEndRaw = results[6].result;
204
221
  // Check if WETH data is present
205
- const hasWethData = results.length > 4;
206
- const outstandingRewardsWethRaw = hasWethData && results[4] ? results[4].result : null;
207
- const wethRewardRateRaw = hasWethData && results[5] ? results[5].result : null;
222
+ const hasWethData = results.length > 7;
223
+ const outstandingRewardsWethRaw = hasWethData && results[7] ? results[7].result : null;
224
+ const wethRewardRateRaw = hasWethData && results[8] ? results[8].result : null;
208
225
  // Calculate WETH APR if available
209
226
  let wethApr = null;
210
227
  if (wethRewardRateRaw !== null &&
@@ -227,6 +244,9 @@ function parseStakingStats(results, tokenDecimals, tokenUsdPrice, wethUsdPrice,
227
244
  };
228
245
  }
229
246
  }
247
+ // Calculate if stream is active
248
+ const now = BigInt(Math.floor(Date.now() / 1000));
249
+ const isStreamActive = streamStartRaw <= now && now <= streamEndRaw;
230
250
  return {
231
251
  totalStaked: formatBalanceWithUsd(totalStakedRaw, tokenDecimals, tokenUsdPrice),
232
252
  apr: {
@@ -254,6 +274,12 @@ function parseStakingStats(results, tokenDecimals, tokenUsdPrice, wethUsdPrice,
254
274
  ? formatBalanceWithUsd(wethRewardRateRaw, 18, wethUsdPrice)
255
275
  : null,
256
276
  },
277
+ streamParams: {
278
+ windowSeconds: Number(streamWindowSecondsRaw),
279
+ streamStart: streamStartRaw,
280
+ streamEnd: streamEndRaw,
281
+ isActive: isStreamActive,
282
+ },
257
283
  };
258
284
  }
259
285
  /**
@@ -290,13 +316,13 @@ export async function getProjects({ publicClient, offset = 0, limit = 50, }) {
290
316
  const results = await publicClient.multicall({ contracts });
291
317
  // Parse results into Project objects
292
318
  const projects = [];
293
- const callsPerProject = 8; // 6 token + 2 treasury (no governance for list view)
319
+ const callsPerProject = 7; // 5 token + 2 treasury (no governance for list view)
294
320
  for (let i = 0; i < projectsData.length; i++) {
295
321
  const projectInfo = projectsData[i];
296
322
  const offset = i * callsPerProject;
297
323
  // Extract results for this project
298
- const tokenResults = results.slice(offset, offset + 6);
299
- const treasuryResults = results.slice(offset + 6, offset + 8);
324
+ const tokenResults = results.slice(offset, offset + 5);
325
+ const treasuryResults = results.slice(offset + 5, offset + 7);
300
326
  // Parse using our type-safe parsers
301
327
  const tokenData = parseTokenData(tokenResults, projectInfo.clankerToken);
302
328
  const treasuryStats = parseTreasuryStats(treasuryResults, tokenData.decimals, tokenData.totalSupply, null // No pricing for list view
@@ -318,9 +344,10 @@ export async function getProjects({ publicClient, offset = 0, limit = 50, }) {
318
344
  };
319
345
  }
320
346
  /**
321
- * Get project data for a clanker token
347
+ * Get static project data that doesn't change frequently
348
+ * This includes contract addresses, token metadata, pool info, and fee receivers
322
349
  */
323
- export async function getProject({ publicClient, clankerToken, oraclePublicClient, userAddress, }) {
350
+ export async function getStaticProject({ publicClient, clankerToken, userAddress, }) {
324
351
  if (Object.values({ publicClient, clankerToken }).some((value) => !value)) {
325
352
  throw new Error("Invalid project params");
326
353
  }
@@ -330,21 +357,24 @@ export async function getProject({ publicClient, clankerToken, oraclePublicClien
330
357
  const factoryAddress = GET_FACTORY_ADDRESS(chainId);
331
358
  if (!factoryAddress)
332
359
  throw new Error("Factory address not found");
333
- const wethAddress = WETH(chainId)?.address;
334
- // Build contract calls using individual getters
360
+ // Build contract calls including tokenRewards in the same multicall
335
361
  const contracts = [
336
362
  ...getTokenContracts(clankerToken),
337
363
  ...getFactoryContracts(factoryAddress, clankerToken),
364
+ ...getFeeReceiverContracts(clankerToken, chainId),
338
365
  ];
339
366
  const multicallResults = await publicClient.multicall({ contracts });
340
367
  // Calculate slice indices for each data group
341
- const tokenCount = 6;
368
+ const tokenCount = 5;
342
369
  const factoryCount = 2;
370
+ const tokenRewardsCount = 1;
343
371
  let idx = 0;
344
372
  const tokenResults = multicallResults.slice(idx, idx + tokenCount);
345
373
  idx += tokenCount;
346
374
  const factoryResults = multicallResults.slice(idx, idx + factoryCount);
347
375
  idx += factoryCount;
376
+ const tokenRewardsResult = multicallResults[idx];
377
+ idx += tokenRewardsCount;
348
378
  // Parse results using individual parsers
349
379
  const tokenData = parseTokenData(tokenResults, clankerToken);
350
380
  const factoryData = parseFactoryData(factoryResults);
@@ -352,29 +382,11 @@ export async function getProject({ publicClient, clankerToken, oraclePublicClien
352
382
  const { treasury, governor, staking, stakedToken } = factoryData;
353
383
  if ([treasury, governor, staking, stakedToken].some((a) => a === zeroAddress))
354
384
  return null;
355
- // Now fetch treasury, governance, and staking data
356
- const additionalContracts = [
357
- ...getTreasuryContracts(clankerToken, treasury, staking),
358
- ...getGovernanceContracts(governor),
359
- ...getStakingContracts(staking, clankerToken, wethAddress),
360
- ];
361
- const additionalResults = await publicClient.multicall({ contracts: additionalContracts });
362
- // Calculate slice indices for additional data
363
- const treasuryCount = 2;
364
- const governanceCount = 3; // currentCycleId + 2 activeProposalCount calls
365
- const stakingCount = wethAddress ? 6 : 4;
366
- let idx2 = 0;
367
- const treasuryResults = additionalResults.slice(idx2, idx2 + treasuryCount);
368
- idx2 += treasuryCount;
369
- const governanceResults = additionalResults.slice(idx2, idx2 + governanceCount);
370
- idx2 += governanceCount;
371
- const stakingResults = additionalResults.slice(idx2, idx2 + stakingCount);
372
385
  // Extract pool information and fee receivers from LP locker
373
386
  let poolInfo;
374
387
  let feeReceivers;
375
- try {
376
- // Use shared utility to get tokenRewards (no duplication)
377
- const tokenRewards = await getTokenRewards(publicClient, clankerToken);
388
+ if (tokenRewardsResult.status === "success") {
389
+ const tokenRewards = tokenRewardsResult.result;
378
390
  const poolKey = tokenRewards.poolKey;
379
391
  poolInfo = {
380
392
  poolKey,
@@ -385,12 +397,36 @@ export async function getProject({ publicClient, clankerToken, oraclePublicClien
385
397
  // Pass userAddress so areYouAnAdmin works out of the box
386
398
  feeReceivers = parseFeeReceivers(tokenRewards, userAddress);
387
399
  }
388
- catch {
389
- // If reading fails (e.g., token not deployed through Clanker), poolInfo remains undefined
400
+ // If tokenRewards fails (e.g., token not deployed through Clanker), poolInfo remains undefined
401
+ return {
402
+ treasury: factoryData.treasury,
403
+ governor: factoryData.governor,
404
+ staking: factoryData.staking,
405
+ stakedToken: factoryData.stakedToken,
406
+ forwarder: factoryData.forwarder,
407
+ factory: factoryAddress,
408
+ token: tokenData,
409
+ pool: poolInfo,
410
+ feeReceivers,
411
+ };
412
+ }
413
+ /**
414
+ * Get project data for a clanker token
415
+ * Requires staticProject data to avoid refetching static information
416
+ * Fetches dynamic data including treasury, governance, staking stats, and pricing
417
+ */
418
+ export async function getProject({ publicClient, staticProject, oraclePublicClient, }) {
419
+ if (Object.values({ publicClient, staticProject }).some((value) => !value)) {
420
+ throw new Error("Invalid project params");
390
421
  }
422
+ const chainId = publicClient.chain?.id;
423
+ if (!chainId)
424
+ throw new Error("Chain ID not found on public client");
425
+ const wethAddress = WETH(chainId)?.address;
426
+ const clankerToken = staticProject.token.address;
391
427
  // Fetch pricing data if oracle client is provided and pool exists
392
428
  let pricing;
393
- if (oraclePublicClient && poolInfo) {
429
+ if (oraclePublicClient && staticProject.pool) {
394
430
  try {
395
431
  const [wethUsdData, tokenUsdData] = await Promise.all([
396
432
  getWethUsdPrice({ publicClient: oraclePublicClient }),
@@ -398,9 +434,10 @@ export async function getProject({ publicClient, clankerToken, oraclePublicClien
398
434
  oraclePublicClient,
399
435
  quotePublicClient: publicClient,
400
436
  tokenAddress: clankerToken,
401
- quoteFee: poolInfo.poolKey.fee,
402
- quoteTickSpacing: poolInfo.poolKey.tickSpacing,
403
- quoteHooks: poolInfo.poolKey.hooks,
437
+ tokenDecimals: staticProject.token.decimals,
438
+ quoteFee: staticProject.pool.poolKey.fee,
439
+ quoteTickSpacing: staticProject.pool.poolKey.tickSpacing,
440
+ quoteHooks: staticProject.pool.poolKey.hooks,
404
441
  }),
405
442
  ]);
406
443
  pricing = {
@@ -413,31 +450,37 @@ export async function getProject({ publicClient, clankerToken, oraclePublicClien
413
450
  console.warn("Failed to fetch USD pricing:", error);
414
451
  }
415
452
  }
453
+ // Fetch only dynamic data (treasury, governance, and staking stats)
454
+ const contracts = [
455
+ ...getTreasuryContracts(clankerToken, staticProject.treasury, staticProject.staking),
456
+ ...getGovernanceContracts(staticProject.governor),
457
+ ...getStakingContracts(staticProject.staking, clankerToken, wethAddress),
458
+ ];
459
+ const results = await publicClient.multicall({ contracts });
460
+ // Calculate slice indices for dynamic data
461
+ const treasuryCount = 2;
462
+ const governanceCount = 3; // currentCycleId + 2 activeProposalCount calls
463
+ const stakingCount = wethAddress ? 9 : 7; // Added 3 stream-related calls
464
+ let idx = 0;
465
+ const treasuryResults = results.slice(idx, idx + treasuryCount);
466
+ idx += treasuryCount;
467
+ const governanceResults = results.slice(idx, idx + governanceCount);
468
+ idx += governanceCount;
469
+ const stakingResults = results.slice(idx, idx + stakingCount);
416
470
  // Calculate USD values for stats if pricing is available
417
471
  const tokenUsdPrice = pricing ? parseFloat(pricing.tokenUsd) : null;
418
472
  const wethUsdPrice = pricing ? parseFloat(pricing.wethUsd) : null;
419
473
  // Parse treasury and staking stats using individual parsers
420
- const treasuryStats = parseTreasuryStats(treasuryResults, tokenData.decimals, tokenData.totalSupply, tokenUsdPrice);
421
- const stakingStats = parseStakingStats(stakingResults, tokenData.decimals, tokenUsdPrice, wethUsdPrice, pricing);
422
- // Get airdrop status
423
- const airdropStatus = await getTreasuryAirdropStatus(publicClient, clankerToken, treasury, tokenData.decimals, tokenUsdPrice);
474
+ const treasuryStats = parseTreasuryStats(treasuryResults, staticProject.token.decimals, staticProject.token.totalSupply, tokenUsdPrice);
475
+ const stakingStats = parseStakingStats(stakingResults, staticProject.token.decimals, tokenUsdPrice, wethUsdPrice, pricing);
424
476
  const governanceStats = parseGovernanceData(governanceResults);
425
477
  return {
426
478
  chainId,
427
- treasury: factoryData.treasury,
428
- governor: factoryData.governor,
429
- staking: factoryData.staking,
430
- stakedToken: factoryData.stakedToken,
431
- forwarder: factoryData.forwarder,
432
- factory: factoryAddress,
433
- token: tokenData,
434
- pool: poolInfo,
479
+ ...staticProject,
435
480
  treasuryStats,
436
481
  stakingStats,
437
482
  governanceStats,
438
- feeReceivers,
439
483
  pricing,
440
- airdrop: airdropStatus,
441
484
  };
442
485
  }
443
486
  //# sourceMappingURL=project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"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"}
@@ -36,8 +36,8 @@
36
36
  * poolKey,
37
37
  * zeroForOne: true,
38
38
  * amountIn: parseEther('1'),
39
- * pricing,
40
- * tokenAddress: '0x...',
39
+ * currency0Decimals: 18,
40
+ * currency1Decimals: 18,
41
41
  * })
42
42
  * console.log(`Output: ${formatEther(v4Quote.amountOut)}`)
43
43
  * console.log(`Price Impact: ${v4Quote.priceImpactBps}%`)