levr-sdk 0.0.2 → 0.1.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 (120) hide show
  1. package/dist/esm/abis/LevrFactory_v1.js +63 -0
  2. package/dist/esm/abis/LevrGovernor_v1.js +15 -24
  3. package/dist/esm/abis/LevrStaking_v1.js +7 -1
  4. package/dist/esm/balance.js +19 -1
  5. package/dist/esm/balance.js.map +1 -1
  6. package/dist/esm/client/hook/index.js +14 -3
  7. package/dist/esm/client/hook/index.js.map +1 -1
  8. package/dist/esm/client/hook/use-fee-receivers.js +11 -29
  9. package/dist/esm/client/hook/use-fee-receivers.js.map +1 -1
  10. package/dist/esm/client/hook/use-governance.js +19 -254
  11. package/dist/esm/client/hook/use-governance.js.map +1 -1
  12. package/dist/esm/client/hook/use-pool.js +26 -0
  13. package/dist/esm/client/hook/use-pool.js.map +1 -0
  14. package/dist/esm/client/hook/use-prepare.js +6 -3
  15. package/dist/esm/client/hook/use-prepare.js.map +1 -1
  16. package/dist/esm/client/hook/use-project.js +24 -9
  17. package/dist/esm/client/hook/use-project.js.map +1 -1
  18. package/dist/esm/client/hook/use-proposal.js +48 -0
  19. package/dist/esm/client/hook/use-proposal.js.map +1 -0
  20. package/dist/esm/client/hook/use-stake.js +29 -195
  21. package/dist/esm/client/hook/use-stake.js.map +1 -1
  22. package/dist/esm/client/hook/use-swap.js +9 -13
  23. package/dist/esm/client/hook/use-swap.js.map +1 -1
  24. package/dist/esm/client/hook/use-user.js +25 -0
  25. package/dist/esm/client/hook/use-user.js.map +1 -0
  26. package/dist/esm/client/levr-provider.js +65 -107
  27. package/dist/esm/client/levr-provider.js.map +1 -1
  28. package/dist/esm/client/query-keys.js +9 -21
  29. package/dist/esm/client/query-keys.js.map +1 -1
  30. package/dist/esm/constants.js +1 -1
  31. package/dist/esm/fee-receivers.js +25 -13
  32. package/dist/esm/fee-receivers.js.map +1 -1
  33. package/dist/esm/governance.js +35 -414
  34. package/dist/esm/governance.js.map +1 -1
  35. package/dist/esm/index.js +4 -2
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/pool.js +70 -0
  38. package/dist/esm/pool.js.map +1 -0
  39. package/dist/esm/project.js +389 -135
  40. package/dist/esm/project.js.map +1 -1
  41. package/dist/esm/proposal.js +156 -0
  42. package/dist/esm/proposal.js.map +1 -0
  43. package/dist/esm/quote/index.js +2 -2
  44. package/dist/esm/quote/index.js.map +1 -1
  45. package/dist/esm/stake.js +34 -299
  46. package/dist/esm/stake.js.map +1 -1
  47. package/dist/esm/treasury.js +162 -0
  48. package/dist/esm/treasury.js.map +1 -0
  49. package/dist/esm/user.js +153 -0
  50. package/dist/esm/user.js.map +1 -0
  51. package/dist/types/abis/LevrFactory_v1.d.ts +48 -0
  52. package/dist/types/abis/LevrGovernor_v1.d.ts +12 -18
  53. package/dist/types/abis/LevrStaking_v1.d.ts +5 -1
  54. package/dist/types/balance.d.ts +15 -0
  55. package/dist/types/balance.d.ts.map +1 -1
  56. package/dist/types/client/hook/index.d.ts +11 -3
  57. package/dist/types/client/hook/index.d.ts.map +1 -1
  58. package/dist/types/client/hook/use-fee-receivers.d.ts +6 -16
  59. package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -1
  60. package/dist/types/client/hook/use-governance.d.ts +4 -98
  61. package/dist/types/client/hook/use-governance.d.ts.map +1 -1
  62. package/dist/types/client/hook/use-pool.d.ts +12 -0
  63. package/dist/types/client/hook/use-pool.d.ts.map +1 -0
  64. package/dist/types/client/hook/use-prepare.d.ts +1 -2
  65. package/dist/types/client/hook/use-prepare.d.ts.map +1 -1
  66. package/dist/types/client/hook/use-project.d.ts +5 -0
  67. package/dist/types/client/hook/use-project.d.ts.map +1 -1
  68. package/dist/types/client/hook/use-proposal.d.ts +18 -0
  69. package/dist/types/client/hook/use-proposal.d.ts.map +1 -0
  70. package/dist/types/client/hook/use-stake.d.ts +14 -73
  71. package/dist/types/client/hook/use-stake.d.ts.map +1 -1
  72. package/dist/types/client/hook/use-swap.d.ts +3 -8
  73. package/dist/types/client/hook/use-swap.d.ts.map +1 -1
  74. package/dist/types/client/hook/use-user.d.ts +13 -0
  75. package/dist/types/client/hook/use-user.d.ts.map +1 -0
  76. package/dist/types/client/levr-provider.d.ts +30 -50
  77. package/dist/types/client/levr-provider.d.ts.map +1 -1
  78. package/dist/types/client/query-keys.d.ts +13 -25
  79. package/dist/types/client/query-keys.d.ts.map +1 -1
  80. package/dist/types/fee-receivers.d.ts +28 -0
  81. package/dist/types/fee-receivers.d.ts.map +1 -1
  82. package/dist/types/governance.d.ts +5 -92
  83. package/dist/types/governance.d.ts.map +1 -1
  84. package/dist/types/index.d.ts +4 -2
  85. package/dist/types/index.d.ts.map +1 -1
  86. package/dist/types/pool.d.ts +590 -0
  87. package/dist/types/pool.d.ts.map +1 -0
  88. package/dist/types/project.d.ts +56 -1
  89. package/dist/types/project.d.ts.map +1 -1
  90. package/dist/types/proposal.d.ts +1161 -0
  91. package/dist/types/proposal.d.ts.map +1 -0
  92. package/dist/types/quote/index.d.ts +2 -2
  93. package/dist/types/quote/index.d.ts.map +1 -1
  94. package/dist/types/stake.d.ts +16 -41
  95. package/dist/types/stake.d.ts.map +1 -1
  96. package/dist/types/treasury.d.ts +16 -0
  97. package/dist/types/treasury.d.ts.map +1 -0
  98. package/dist/types/user.d.ts +188 -0
  99. package/dist/types/user.d.ts.map +1 -0
  100. package/package.json +5 -2
  101. package/dist/esm/client/hook/use-balance.js +0 -57
  102. package/dist/esm/client/hook/use-balance.js.map +0 -1
  103. package/dist/esm/client/hook/use-projects.js +0 -22
  104. package/dist/esm/client/hook/use-projects.js.map +0 -1
  105. package/dist/esm/client/hook/use-proposals.js +0 -29
  106. package/dist/esm/client/hook/use-proposals.js.map +0 -1
  107. package/dist/esm/projects.js +0 -184
  108. package/dist/esm/projects.js.map +0 -1
  109. package/dist/esm/proposals.js +0 -98
  110. package/dist/esm/proposals.js.map +0 -1
  111. package/dist/types/client/hook/use-balance.d.ts +0 -20
  112. package/dist/types/client/hook/use-balance.d.ts.map +0 -1
  113. package/dist/types/client/hook/use-projects.d.ts +0 -6
  114. package/dist/types/client/hook/use-projects.d.ts.map +0 -1
  115. package/dist/types/client/hook/use-proposals.d.ts +0 -16
  116. package/dist/types/client/hook/use-proposals.d.ts.map +0 -1
  117. package/dist/types/projects.d.ts +0 -20
  118. package/dist/types/projects.d.ts.map +0 -1
  119. package/dist/types/proposals.d.ts +0 -20
  120. package/dist/types/proposals.d.ts.map +0 -1
@@ -1,34 +1,26 @@
1
- import { decodeEventLog, erc20Abi, formatUnits, parseUnits } from "viem";
2
- import { LevrGovernor_v1 } from "./abis/index.js";
3
- import IClankerAirdrop from "./abis/IClankerAirdrop.js";
4
- import { GET_CLANKER_AIRDROP_ADDRESS, TREASURY_AIRDROP_AMOUNTS } from "./constants.js";
1
+ import { decodeEventLog, parseUnits } from "viem";
2
+ import { IClankerAirdrop, LevrGovernor_v1 } from "./abis/index.js";
3
+ import { GET_CLANKER_AIRDROP_ADDRESS } from "./constants.js";
5
4
  export class Governance {
6
5
  wallet;
7
6
  publicClient;
8
- governorAddress;
9
- tokenDecimals;
10
- clankerToken;
11
- userAddress;
12
- pricing;
7
+ project;
13
8
  constructor(config) {
14
9
  if (Object.values(config).some((value) => !value))
15
10
  throw new Error("Invalid config");
16
11
  this.wallet = config.wallet;
17
12
  this.publicClient = config.publicClient;
18
- this.governorAddress = config.governorAddress;
19
- this.tokenDecimals = config.tokenDecimals;
20
- this.clankerToken = config.clankerToken;
21
- this.userAddress = config.wallet.account.address;
22
- this.pricing = config.pricing;
23
- // trustedForwarder reserved for future meta-transaction support
13
+ this.project = config.project;
24
14
  }
25
15
  /**
26
16
  * Propose a transfer from treasury to recipient
27
17
  */
28
18
  async proposeTransfer(recipient, amount, description) {
29
- const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
19
+ const parsedAmount = typeof amount === "bigint"
20
+ ? amount
21
+ : parseUnits(amount.toString(), this.project.token.decimals);
30
22
  const hash = await this.wallet.writeContract({
31
- address: this.governorAddress,
23
+ address: this.project.governor,
32
24
  abi: LevrGovernor_v1,
33
25
  functionName: "proposeTransfer",
34
26
  args: [recipient, parsedAmount, description],
@@ -67,9 +59,11 @@ export class Governance {
67
59
  * Propose a boost from treasury to staking rewards
68
60
  */
69
61
  async proposeBoost(amount) {
70
- const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
62
+ const parsedAmount = typeof amount === "bigint"
63
+ ? amount
64
+ : parseUnits(amount.toString(), this.project.token.decimals);
71
65
  const hash = await this.wallet.writeContract({
72
- address: this.governorAddress,
66
+ address: this.project.governor,
73
67
  abi: LevrGovernor_v1,
74
68
  functionName: "proposeBoost",
75
69
  args: [parsedAmount],
@@ -110,7 +104,7 @@ export class Governance {
110
104
  async vote(proposalId, support) {
111
105
  const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
112
106
  const hash = await this.wallet.writeContract({
113
- address: this.governorAddress,
107
+ address: this.project.governor,
114
108
  abi: LevrGovernor_v1,
115
109
  functionName: "vote",
116
110
  args: [parsedProposalId, support],
@@ -129,7 +123,7 @@ export class Governance {
129
123
  async executeProposal(proposalId) {
130
124
  const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
131
125
  const hash = await this.wallet.writeContract({
132
- address: this.governorAddress,
126
+ address: this.project.governor,
133
127
  abi: LevrGovernor_v1,
134
128
  functionName: "execute",
135
129
  args: [parsedProposalId],
@@ -141,423 +135,50 @@ export class Governance {
141
135
  }
142
136
  return receipt;
143
137
  }
144
- /**
145
- * Get proposal details by ID
146
- */
147
- async getProposal(proposalId) {
148
- const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
149
- const result = (await this.publicClient.readContract({
150
- address: this.governorAddress,
151
- abi: LevrGovernor_v1,
152
- functionName: "getProposal",
153
- args: [parsedProposalId],
154
- }));
155
- const amountFormatted = formatUnits(result.amount, this.tokenDecimals);
156
- const yesVotesFormatted = formatUnits(result.yesVotes, this.tokenDecimals);
157
- const noVotesFormatted = formatUnits(result.noVotes, this.tokenDecimals);
158
- // Calculate USD values if pricing is available
159
- const tokenPrice = this.pricing ? parseFloat(this.pricing.tokenUsd) : null;
160
- return {
161
- id: result.id,
162
- proposalType: result.proposalType,
163
- proposer: result.proposer,
164
- amount: {
165
- raw: result.amount,
166
- formatted: amountFormatted,
167
- usd: tokenPrice ? (parseFloat(amountFormatted) * tokenPrice).toString() : undefined,
168
- },
169
- recipient: result.recipient,
170
- description: result.description,
171
- createdAt: {
172
- timestamp: result.createdAt,
173
- date: new Date(Number(result.createdAt) * 1000),
174
- },
175
- votingStartsAt: {
176
- timestamp: result.votingStartsAt,
177
- date: new Date(Number(result.votingStartsAt) * 1000),
178
- },
179
- votingEndsAt: {
180
- timestamp: result.votingEndsAt,
181
- date: new Date(Number(result.votingEndsAt) * 1000),
182
- },
183
- yesVotes: {
184
- raw: result.yesVotes,
185
- formatted: yesVotesFormatted,
186
- usd: tokenPrice ? (parseFloat(yesVotesFormatted) * tokenPrice).toString() : undefined,
187
- },
188
- noVotes: {
189
- raw: result.noVotes,
190
- formatted: noVotesFormatted,
191
- usd: tokenPrice ? (parseFloat(noVotesFormatted) * tokenPrice).toString() : undefined,
192
- },
193
- totalBalanceVoted: result.totalBalanceVoted,
194
- executed: result.executed,
195
- cycleId: result.cycleId,
196
- };
197
- }
198
- /**
199
- * Get current cycle ID
200
- */
201
- async getCurrentCycleId() {
202
- return await this.publicClient.readContract({
203
- address: this.governorAddress,
204
- abi: LevrGovernor_v1,
205
- functionName: "currentCycleId",
206
- });
207
- }
208
- /**
209
- * Get all proposal IDs for a specific cycle
210
- */
211
- async getProposalsForCycle(cycleId) {
212
- const parsedCycleId = typeof cycleId === "bigint" ? cycleId : BigInt(cycleId);
213
- return await this.publicClient.readContract({
214
- address: this.governorAddress,
215
- abi: LevrGovernor_v1,
216
- functionName: "getProposalsForCycle",
217
- args: [parsedCycleId],
218
- });
219
- }
220
- /**
221
- * Get the winner proposal ID for a cycle
222
- */
223
- async getWinner(cycleId) {
224
- const parsedCycleId = typeof cycleId === "bigint" ? cycleId : BigInt(cycleId);
225
- return await this.publicClient.readContract({
226
- address: this.governorAddress,
227
- abi: LevrGovernor_v1,
228
- functionName: "getWinner",
229
- args: [parsedCycleId],
230
- });
231
- }
232
138
  /**
233
139
  * Get vote receipt for a user on a proposal
234
140
  */
235
141
  async getVoteReceipt(proposalId, voter) {
236
142
  const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
237
- const voterAddress = voter ?? this.userAddress;
143
+ const voterAddress = voter ?? this.wallet.account.address;
238
144
  return await this.publicClient.readContract({
239
- address: this.governorAddress,
145
+ address: this.project.governor,
240
146
  abi: LevrGovernor_v1,
241
147
  functionName: "getVoteReceipt",
242
148
  args: [parsedProposalId, voterAddress],
243
149
  });
244
150
  }
245
- /**
246
- * Get voting power snapshot for a user at proposal creation
247
- */
248
- async getVotingPowerSnapshot(proposalId, user) {
249
- const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
250
- const userAddress = user ?? this.userAddress;
251
- return await this.publicClient.readContract({
252
- address: this.governorAddress,
253
- abi: LevrGovernor_v1,
254
- functionName: "getVotingPowerSnapshot",
255
- args: [parsedProposalId, userAddress],
256
- });
257
- }
258
- /**
259
- * Check if proposal meets quorum
260
- */
261
- async meetsQuorum(proposalId) {
262
- const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
263
- return await this.publicClient.readContract({
264
- address: this.governorAddress,
265
- abi: LevrGovernor_v1,
266
- functionName: "meetsQuorum",
267
- args: [parsedProposalId],
268
- });
269
- }
270
- /**
271
- * Check if proposal meets approval threshold
272
- */
273
- async meetsApproval(proposalId) {
274
- const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
275
- return await this.publicClient.readContract({
276
- address: this.governorAddress,
277
- abi: LevrGovernor_v1,
278
- functionName: "meetsApproval",
279
- args: [parsedProposalId],
280
- });
281
- }
282
- /**
283
- * Get proposal state (Pending, Active, Defeated, Succeeded, Executed)
284
- */
285
- async getProposalState(proposalId) {
286
- const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
287
- return await this.publicClient.readContract({
288
- address: this.governorAddress,
289
- abi: LevrGovernor_v1,
290
- functionName: "state",
291
- args: [parsedProposalId],
292
- });
293
- }
294
- /**
295
- * Get active proposal count for a specific proposal type
296
- */
297
- async getActiveProposalCount(proposalType) {
298
- return await this.publicClient.readContract({
299
- address: this.governorAddress,
300
- abi: LevrGovernor_v1,
301
- functionName: "activeProposalCount",
302
- args: [proposalType],
303
- });
304
- }
305
- /**
306
- * Get factory address
307
- */
308
- async getFactory() {
309
- return await this.publicClient.readContract({
310
- address: this.governorAddress,
311
- abi: LevrGovernor_v1,
312
- functionName: "factory",
313
- });
314
- }
315
- /**
316
- * Get treasury address
317
- */
318
- async getTreasury() {
319
- return await this.publicClient.readContract({
320
- address: this.governorAddress,
321
- abi: LevrGovernor_v1,
322
- functionName: "treasury",
323
- });
324
- }
325
- /**
326
- * Get staked token address
327
- */
328
- async getStakedToken() {
329
- return await this.publicClient.readContract({
330
- address: this.governorAddress,
331
- abi: LevrGovernor_v1,
332
- functionName: "stakedToken",
333
- });
334
- }
335
- /**
336
- * Propose transfer and execute in sequence (for testing convenience)
337
- */
338
- async proposeAndExecuteTransfer(recipient, amount, description) {
339
- const { receipt: proposeReceipt, proposalId } = await this.proposeTransfer(recipient, amount, description);
340
- const executeReceipt = await this.executeProposal(proposalId);
341
- return {
342
- proposeReceipt,
343
- executeReceipt,
344
- proposalId,
345
- };
346
- }
347
- /**
348
- * Propose boost and execute in sequence (for testing convenience)
349
- */
350
- async proposeAndExecuteBoost(amount) {
351
- const { receipt: proposeReceipt, proposalId } = await this.proposeBoost(amount);
352
- const executeReceipt = await this.executeProposal(proposalId);
353
- return {
354
- proposeReceipt,
355
- executeReceipt,
356
- proposalId,
357
- };
358
- }
359
- /**
360
- * Find treasury airdrop allocation by checking all known amounts using multicall
361
- */
362
- async findTreasuryAllocation() {
363
- const chainId = this.publicClient.chain?.id;
364
- const airdropAddress = GET_CLANKER_AIRDROP_ADDRESS(chainId);
365
- const treasury = await this.getTreasury();
366
- if (!airdropAddress)
367
- return null;
368
- // Prepare multicall for all possible treasury airdrop amounts + treasury balance check
369
- const amounts = Object.values(TREASURY_AIRDROP_AMOUNTS).map((amountInTokens) => BigInt(amountInTokens) * 10n ** 18n);
370
- const results = await this.publicClient.multicall({
371
- contracts: [
372
- // First check treasury balance
373
- {
374
- address: this.clankerToken,
375
- abi: erc20Abi,
376
- functionName: "balanceOf",
377
- args: [treasury],
378
- },
379
- // Then check all airdrop amounts
380
- ...amounts.map((amount) => ({
381
- address: airdropAddress,
382
- abi: IClankerAirdrop,
383
- functionName: "amountAvailableToClaim",
384
- args: [this.clankerToken, treasury, amount],
385
- })),
386
- ], // Mixed ABIs in multicall
387
- allowFailure: true,
388
- });
389
- // Extract treasury balance from first result
390
- const treasuryBalanceResult = results[0];
391
- const treasuryBalance = treasuryBalanceResult && treasuryBalanceResult.status === "success"
392
- ? treasuryBalanceResult.result
393
- : 0n;
394
- // Extract airdrop check results (skip first result which is balance)
395
- const airdropResults = results.slice(1);
396
- // Collect all valid results first
397
- const allResults = [];
398
- for (let i = 0; i < airdropResults.length; i++) {
399
- const result = airdropResults[i];
400
- const amount = amounts[i];
401
- if (result.status === "success" && result.result !== undefined) {
402
- const available = result.result;
403
- if (available > 0n) {
404
- // Available - highest priority (1)
405
- allResults.push({ amount, available, status: "available", priority: 1 });
406
- }
407
- else {
408
- // Available is 0 - check treasury balance to determine if claimed or locked
409
- // If treasury has >= this amount, it's likely already claimed
410
- // Otherwise it's still locked
411
- const isClaimed = treasuryBalance >= amount;
412
- const priority = isClaimed ? 4 : 2;
413
- const status = isClaimed ? "claimed" : "locked";
414
- const error = isClaimed ? "Treasury airdrop already claimed" : "Airdrop is still locked";
415
- allResults.push({ amount, available: 0n, status, priority, error });
416
- }
417
- }
418
- else if (result.status === "failure") {
419
- const errorMessage = result.error?.message || "";
420
- // AirdropNotCreated means this amount wasn't configured - skip entirely
421
- if (errorMessage.includes("AirdropNotCreated")) {
422
- continue;
423
- }
424
- // AirdropNotUnlocked means this amount exists but is locked (priority 2)
425
- if (errorMessage.includes("AirdropNotUnlocked")) {
426
- allResults.push({
427
- amount,
428
- available: 0n,
429
- status: "locked",
430
- error: "Airdrop is still locked",
431
- priority: 2,
432
- });
433
- continue;
434
- }
435
- // Already claimed errors (priority 3)
436
- if (errorMessage.includes("UserMaxClaimed") || errorMessage.includes("TotalMaxClaimed")) {
437
- allResults.push({
438
- amount,
439
- available: 0n,
440
- status: "claimed",
441
- error: "Already claimed maximum amount",
442
- priority: 3,
443
- });
444
- continue;
445
- }
446
- // Arithmetic underflow/overflow means a different (larger) amount was claimed
447
- // Skip this result entirely - the correct amount will be detected separately
448
- if (errorMessage.includes("underflow") || errorMessage.includes("overflow")) {
449
- continue;
450
- }
451
- // Other errors - treat as locked (priority 2)
452
- allResults.push({
453
- amount,
454
- available: 0n,
455
- status: "locked",
456
- error: errorMessage,
457
- priority: 2,
458
- });
459
- }
460
- }
461
- // If no results found, return null
462
- if (allResults.length === 0) {
463
- return null;
464
- }
465
- // Sort by priority (lower is better), then by amount (higher is better for same priority)
466
- allResults.sort((a, b) => {
467
- if (a.priority !== b.priority) {
468
- return a.priority - b.priority;
469
- }
470
- // For same priority, prefer larger amounts
471
- return a.amount > b.amount ? -1 : 1;
472
- });
473
- // Return the best result
474
- const best = allResults[0];
475
- return {
476
- amount: best.amount,
477
- available: best.available,
478
- status: best.status,
479
- error: best.error,
480
- };
481
- }
482
- /**
483
- * Get available airdrop amount for treasury using known amounts
484
- */
485
- async getAvailableAirdropAmount() {
486
- const allocation = await this.findTreasuryAllocation();
487
- return allocation?.available || 0n;
488
- }
489
- /**
490
- * Get airdrop status for treasury with detailed status information
491
- */
492
- async getAirdropStatus() {
493
- const allocation = await this.findTreasuryAllocation();
494
- if (!allocation) {
495
- return {
496
- availableAmount: { raw: 0n, formatted: formatUnits(0n, this.tokenDecimals) },
497
- allocatedAmount: { raw: 0n, formatted: formatUnits(0n, this.tokenDecimals) },
498
- isAvailable: false,
499
- error: "No treasury airdrop found",
500
- };
501
- }
502
- // Generate appropriate error message based on status
503
- let error;
504
- switch (allocation.status) {
505
- case "available":
506
- error = undefined;
507
- break;
508
- case "locked":
509
- error = allocation.error || "Airdrop is still locked (lockup period not passed)";
510
- break;
511
- case "claimed":
512
- error = "Treasury airdrop already claimed";
513
- break;
514
- case "not_found":
515
- error = "No treasury airdrop found";
516
- break;
517
- }
518
- const availableFormatted = formatUnits(allocation.available, this.tokenDecimals);
519
- const allocatedFormatted = formatUnits(allocation.amount, this.tokenDecimals);
520
- const tokenPrice = this.pricing ? parseFloat(this.pricing.tokenUsd) : null;
521
- return {
522
- availableAmount: {
523
- raw: allocation.available,
524
- formatted: availableFormatted,
525
- usd: tokenPrice ? (parseFloat(availableFormatted) * tokenPrice).toString() : undefined,
526
- },
527
- allocatedAmount: {
528
- raw: allocation.amount,
529
- formatted: allocatedFormatted,
530
- usd: tokenPrice ? (parseFloat(allocatedFormatted) * tokenPrice).toString() : undefined,
531
- },
532
- isAvailable: allocation.status === "available" && allocation.available > 0n,
533
- error,
534
- };
535
- }
536
151
  /**
537
152
  * Claim airdrop for treasury
153
+ * Uses airdrop data from project that was already fetched
538
154
  */
539
155
  async claimAirdrop() {
540
- const allocation = await this.findTreasuryAllocation();
541
- if (!allocation) {
542
- throw new Error("No treasury airdrop found to claim");
543
- }
544
- if (allocation.status === "claimed") {
545
- throw new Error("Treasury airdrop already claimed");
546
- }
547
- if (allocation.status === "not_found") {
548
- throw new Error("No treasury airdrop configured for this token");
549
- }
550
156
  const chainId = this.publicClient.chain?.id;
551
157
  const airdropAddress = GET_CLANKER_AIRDROP_ADDRESS(chainId);
552
- const treasury = await this.getTreasury();
553
158
  if (!airdropAddress) {
554
159
  throw new Error(`No airdrop address found for chain ID ${chainId}`);
555
160
  }
161
+ // Use airdrop status from project data
162
+ const airdropStatus = this.project.airdrop;
163
+ if (!airdropStatus) {
164
+ throw new Error("No treasury airdrop found");
165
+ }
166
+ if (airdropStatus.error) {
167
+ throw new Error(airdropStatus.error);
168
+ }
169
+ if (!airdropStatus.isAvailable) {
170
+ throw new Error("No airdrop available to claim");
171
+ }
556
172
  const hash = await this.wallet.writeContract({
557
173
  address: airdropAddress,
558
174
  abi: IClankerAirdrop,
559
175
  functionName: "claim",
560
- args: [this.clankerToken, treasury, allocation.amount, []], // Empty proof for single-leaf merkle tree
176
+ args: [
177
+ this.project.token.address,
178
+ this.project.treasury,
179
+ airdropStatus.allocatedAmount.raw,
180
+ [],
181
+ ],
561
182
  chain: this.wallet.chain,
562
183
  });
563
184
  const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
@@ -1 +1 @@
1
- {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,eAAe,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AA+DnF,MAAM,OAAO,UAAU;IACb,MAAM,CAAiB;IACvB,YAAY,CAAiB;IAC7B,eAAe,CAAe;IAC9B,aAAa,CAAQ;IACrB,YAAY,CAAe;IAC3B,WAAW,CAAe;IAC1B,OAAO,CAAgB;IAE/B,YAAY,MAAwB;QAClC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAEpF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAA;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,gEAAgE;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,SAAwB,EACxB,MAAgC,EAChC,WAAmB;QAEnB,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAEzF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3E,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;QAED,iDAAiD;QACjD,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACnD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,cAAc,CAAC;oBAC7B,GAAG,EAAE,eAAe;oBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,SAAS,KAAK,iBAAiB,CAAA;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC;YAC7B,GAAG,EAAE,eAAe;YACpB,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC7B,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAC,CAAA;QAEF,MAAM,UAAU,GAAI,OAAO,CAAC,IAA+B,CAAC,UAAU,CAAA;QAEtE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,MAAgC;QAEhC,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAEzF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,YAAY,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3E,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,iDAAiD;QACjD,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACnD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,cAAc,CAAC;oBAC7B,GAAG,EAAE,eAAe;oBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,SAAS,KAAK,iBAAiB,CAAA;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC;YAC7B,GAAG,EAAE,eAAe;YACpB,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC7B,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAC,CAAA;QAEF,MAAM,UAAU,GAAI,OAAO,CAAC,IAA+B,CAAC,UAAU,CAAA;QAEtE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,UAA2B,EAAE,OAAgB;QACtD,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEzF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3E,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,UAA2B;QAC/C,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEzF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,gBAAgB,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3E,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,UAA2B;QAC3C,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEzF,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB,CAAC,CAAoB,CAAA;QAEtB,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACtE,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1E,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAExE,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE1E,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,MAAM;gBAClB,SAAS,EAAE,eAAe;gBAC1B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACpF;YACD,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;aAChD;YACD,cAAc,EAAE;gBACd,SAAS,EAAE,MAAM,CAAC,cAAc;gBAChC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;aACrD;YACD,YAAY,EAAE;gBACZ,SAAS,EAAE,MAAM,CAAC,YAAY;gBAC9B,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;aACnD;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,SAAS,EAAE,iBAAiB;gBAC5B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACtF;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,MAAM,CAAC,OAAO;gBACnB,SAAS,EAAE,gBAAgB;gBAC3B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACrF;YACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,gBAAgB;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAwB;QACjD,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE7E,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,sBAAsB;YACpC,IAAI,EAAE,CAAC,aAAa,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAwB;QACtC,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE7E,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,aAAa,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,UAA2B,EAC3B,KAAqB;QAErB,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACzF,MAAM,YAAY,GAAG,KAAK,IAAI,IAAI,CAAC,WAAW,CAAA;QAE9C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;SACvC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,UAA2B,EAAE,IAAoB;QAC5E,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACzF,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAA;QAE5C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,wBAAwB;YACtC,IAAI,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;SACtC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,UAA2B;QAC3C,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEzF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAA2B;QAC7C,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEzF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,UAA2B;QAChD,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEzF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,OAAO;YACrB,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,YAAoB;QAC/C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,qBAAqB;YACnC,IAAI,EAAE,CAAC,YAAY,CAAC;SACrB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,UAAU;SACzB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAC7B,SAAwB,EACxB,MAAgC,EAChC,WAAmB;QAMnB,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CACxE,SAAS,EACT,MAAM,EACN,WAAW,CACZ,CAAA;QACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAE7D,OAAO;YACL,cAAc;YACd,cAAc;YACd,UAAU;SACX,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAAgC;QAK3D,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC/E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAE7D,OAAO;YACL,cAAc;YACd,cAAc;YACd,UAAU;SACX,CAAA;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB;QAMlC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAA;QAC3C,MAAM,cAAc,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QAEzC,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAA;QAEhC,uFAAuF;QACvF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,GAAG,CACzD,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,GAAG,IAAI,GAAG,CACxD,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAChD,SAAS,EAAE;gBACT,+BAA+B;gBAC/B;oBACE,OAAO,EAAE,IAAI,CAAC,YAAY;oBAC1B,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,QAAQ,CAAC;iBACjB;gBACD,iCAAiC;gBACjC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC1B,OAAO,EAAE,cAAc;oBACvB,GAAG,EAAE,eAAe;oBACpB,YAAY,EAAE,wBAAiC;oBAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC;iBAC5C,CAAC,CAAC;aACG,EAAE,0BAA0B;YACpC,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;QAEF,6CAA6C;QAC7C,MAAM,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,eAAe,GACnB,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,KAAK,SAAS;YACjE,CAAC,CAAE,qBAAqB,CAAC,MAAiB;YAC1C,CAAC,CAAC,EAAE,CAAA;QAER,qEAAqE;QACrE,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEvC,kCAAkC;QAClC,MAAM,UAAU,GAMX,EAAE,CAAA;QAEP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAEzB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAgB,CAAA;gBAEzC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;oBACnB,mCAAmC;oBACnC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1E,CAAC;qBAAM,CAAC;oBACN,4EAA4E;oBAC5E,8DAA8D;oBAC9D,8BAA8B;oBAC9B,MAAM,SAAS,GAAG,eAAe,IAAI,MAAM,CAAA;oBAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;oBAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,yBAAyB,CAAA;oBAExF,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;gBACrE,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAA;gBAEhD,wEAAwE;gBACxE,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC/C,SAAQ;gBACV,CAAC;gBAED,yEAAyE;gBACzE,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBAChD,UAAU,CAAC,IAAI,CAAC;wBACd,MAAM;wBACN,SAAS,EAAE,EAAE;wBACb,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,yBAAyB;wBAChC,QAAQ,EAAE,CAAC;qBACZ,CAAC,CAAA;oBACF,SAAQ;gBACV,CAAC;gBAED,sCAAsC;gBACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACxF,UAAU,CAAC,IAAI,CAAC;wBACd,MAAM;wBACN,SAAS,EAAE,EAAE;wBACb,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,gCAAgC;wBACvC,QAAQ,EAAE,CAAC;qBACZ,CAAC,CAAA;oBACF,SAAQ;gBACV,CAAC;gBAED,8EAA8E;gBAC9E,6EAA6E;gBAC7E,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5E,SAAQ;gBACV,CAAC;gBAED,8CAA8C;gBAC9C,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM;oBACN,SAAS,EAAE,EAAE;oBACb,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,CAAC;iBACZ,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,0FAA0F;QAC1F,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;YAChC,CAAC;YACD,2CAA2C;YAC3C,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,yBAAyB;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAE1B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACtD,OAAO,UAAU,EAAE,SAAS,IAAI,EAAE,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QAMpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;gBAC5E,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;gBAC5E,WAAW,EAAE,KAAK;gBAClB,KAAK,EAAE,2BAA2B;aACnC,CAAA;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,KAAyB,CAAA;QAC7B,QAAQ,UAAU,CAAC,MAAM,EAAE,CAAC;YAC1B,KAAK,WAAW;gBACd,KAAK,GAAG,SAAS,CAAA;gBACjB,MAAK;YACP,KAAK,QAAQ;gBACX,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,oDAAoD,CAAA;gBAChF,MAAK;YACP,KAAK,SAAS;gBACZ,KAAK,GAAG,kCAAkC,CAAA;gBAC1C,MAAK;YACP,KAAK,WAAW;gBACd,KAAK,GAAG,2BAA2B,CAAA;gBACnC,MAAK;QACT,CAAC;QAED,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAChF,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE1E,OAAO;YACL,eAAe,EAAE;gBACf,GAAG,EAAE,UAAU,CAAC,SAAS;gBACzB,SAAS,EAAE,kBAAkB;gBAC7B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACvF;YACD,eAAe,EAAE;gBACf,GAAG,EAAE,UAAU,CAAC,MAAM;gBACtB,SAAS,EAAE,kBAAkB;gBAC7B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACvF;YACD,WAAW,EAAE,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,SAAS,GAAG,EAAE;YAC3E,KAAK;SACN,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAA;QAC3C,MAAM,cAAc,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,cAAc;YACvB,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,OAAO;YACrB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,0CAA0C;YACtG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3E,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -6,15 +6,17 @@ export * from "./constants.js";
6
6
  export * from "./deploy-v4.js";
7
7
  export * from "./fee-receivers.js";
8
8
  export * from "./governance.js";
9
+ export * from "./pool.js";
9
10
  export * from "./pool-key.js";
10
11
  export * from "./project.js";
11
- export * from "./projects.js";
12
- export * from "./proposals.js";
12
+ export * from "./proposal.js";
13
13
  export * from "./quote/index.js";
14
14
  export * from "./schema/index.js";
15
15
  export * from "./stake.js";
16
16
  export * from "./swap-v4.js";
17
+ export * from "./treasury.js";
17
18
  export * from "./types.js";
18
19
  export * from "./usd-price.js";
20
+ export * from "./user.js";
19
21
  export * from "./util.js";
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA"}
@@ -0,0 +1,70 @@
1
+ import { StateView } from "./abis/index.js";
2
+ import { UNISWAP_V4_STATE_VIEW } from "./constants.js";
3
+ import { getPoolId } from "./pool-key.js";
4
+ // ========================================
5
+ // HELPER UTILS (for composition in larger multicalls)
6
+ // ========================================
7
+ /**
8
+ * Helper: Get pool state contracts for multicall composition
9
+ */
10
+ export function poolStateContracts(params) {
11
+ return [
12
+ {
13
+ address: params.stateViewAddress,
14
+ abi: StateView,
15
+ functionName: "getSlot0",
16
+ args: [params.poolId],
17
+ },
18
+ {
19
+ address: params.stateViewAddress,
20
+ abi: StateView,
21
+ functionName: "getLiquidity",
22
+ args: [params.poolId],
23
+ },
24
+ ];
25
+ }
26
+ // ========================================
27
+ // MAIN POOL DATA FUNCTION
28
+ // ========================================
29
+ /**
30
+ * Get pool-specific data including liquidity, price, and fees
31
+ * Uses StateView contract for efficient state queries
32
+ */
33
+ export async function pool({ publicClient, project }) {
34
+ if (Object.values({ publicClient, project }).some((value) => !value)) {
35
+ throw new Error("Invalid pool params");
36
+ }
37
+ if (!project.pool?.poolKey)
38
+ return null;
39
+ const chainId = publicClient.chain?.id;
40
+ if (!chainId)
41
+ throw new Error("Chain ID not found on public client");
42
+ const stateViewAddress = UNISWAP_V4_STATE_VIEW(chainId);
43
+ if (!stateViewAddress) {
44
+ throw new Error(`StateView address not found for chain ID ${chainId}`);
45
+ }
46
+ const poolKey = project.pool.poolKey;
47
+ const poolId = getPoolId(poolKey);
48
+ // Use helper to get contracts and execute multicall
49
+ const contracts = poolStateContracts({ stateViewAddress, poolId });
50
+ const results = await publicClient.multicall({ contracts });
51
+ const slot0Result = results[0].result;
52
+ const liquidityResult = results[1].result;
53
+ const [sqrtPriceX96, tick, protocolFee, lpFee] = slot0Result;
54
+ const liquidity = liquidityResult;
55
+ // Determine fee display from project
56
+ const feeDisplay = project.pool.feeDisplay;
57
+ return {
58
+ poolKey,
59
+ sqrtPriceX96,
60
+ tick: Number(tick),
61
+ liquidity: {
62
+ raw: liquidity,
63
+ formatted: liquidity.toString(),
64
+ },
65
+ protocolFee: Number(protocolFee),
66
+ lpFee: Number(lpFee),
67
+ feeDisplay,
68
+ };
69
+ }
70
+ //# sourceMappingURL=pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAmBtC,2CAA2C;AAC3C,sDAAsD;AACtD,2CAA2C;AAE3C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAGlC;IACC,OAAO;QACL;YACE,OAAO,EAAE,MAAM,CAAC,gBAAgB;YAChC,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,UAAmB;YACjC,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;SACtB;QACD;YACE,OAAO,EAAE,MAAM,CAAC,gBAAgB;YAChC,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,cAAuB;YACrC,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;SACtB;KACF,CAAA;AACH,CAAC;AAED,2CAA2C;AAC3C,0BAA0B;AAC1B,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,EAAc;IAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;QAAE,OAAO,IAAI,CAAA;IAEvC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,CAAA;IACtC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAEpE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACvD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAEjC,oDAAoD;IACpD,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3D,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAA0C,CAAA;IACzE,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAgB,CAAA;IAEnD,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,WAAW,CAAA;IAC5D,MAAM,SAAS,GAAG,eAAe,CAAA;IAEjC,qCAAqC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAA;IAE1C,OAAO;QACL,OAAO;QACP,YAAY;QACZ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,SAAS,EAAE;YACT,GAAG,EAAE,SAAS;YACd,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;SAChC;QACD,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;QACpB,UAAU;KACX,CAAA;AACH,CAAC"}