levr-sdk 0.0.1

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 (179) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +711 -0
  3. package/dist/esm/abis/IClankerAirdrop.js +443 -0
  4. package/dist/esm/abis/IClankerHookDynamicFee.js +198 -0
  5. package/dist/esm/abis/IClankerHookStaticFee.js +75 -0
  6. package/dist/esm/abis/IClankerLPLocker.js +402 -0
  7. package/dist/esm/abis/IClankerLpLockerMultiple.js +609 -0
  8. package/dist/esm/abis/IClankerToken.js +421 -0
  9. package/dist/esm/abis/LevrFactory_v1.js +608 -0
  10. package/dist/esm/abis/LevrForwarder_v1.js +622 -0
  11. package/dist/esm/abis/LevrGovernor_v1.js +726 -0
  12. package/dist/esm/abis/LevrStakedToken_v1.js +441 -0
  13. package/dist/esm/abis/LevrStaking_v1.js +607 -0
  14. package/dist/esm/abis/LevrTreasury_v1.js +219 -0
  15. package/dist/esm/abis/Permit2.js +29 -0
  16. package/dist/esm/abis/V4Quoter.js +466 -0
  17. package/dist/esm/abis/WETH9.js +153 -0
  18. package/dist/esm/abis/index.js +23 -0
  19. package/dist/esm/balance.js +72 -0
  20. package/dist/esm/balance.js.map +1 -0
  21. package/dist/esm/build-calldatas-v4.js +98 -0
  22. package/dist/esm/build-calldatas-v4.js.map +1 -0
  23. package/dist/esm/build-clanker-v4.js +128 -0
  24. package/dist/esm/build-clanker-v4.js.map +1 -0
  25. package/dist/esm/client/hook/index.js +36 -0
  26. package/dist/esm/client/hook/index.js.map +1 -0
  27. package/dist/esm/client/hook/use-balance.js +56 -0
  28. package/dist/esm/client/hook/use-balance.js.map +1 -0
  29. package/dist/esm/client/hook/use-clanker.js +57 -0
  30. package/dist/esm/client/hook/use-clanker.js.map +1 -0
  31. package/dist/esm/client/hook/use-deploy.js +16 -0
  32. package/dist/esm/client/hook/use-deploy.js.map +1 -0
  33. package/dist/esm/client/hook/use-fee-receivers.js +54 -0
  34. package/dist/esm/client/hook/use-fee-receivers.js.map +1 -0
  35. package/dist/esm/client/hook/use-governance.js +389 -0
  36. package/dist/esm/client/hook/use-governance.js.map +1 -0
  37. package/dist/esm/client/hook/use-prepare.js +47 -0
  38. package/dist/esm/client/hook/use-prepare.js.map +1 -0
  39. package/dist/esm/client/hook/use-project.js +29 -0
  40. package/dist/esm/client/hook/use-project.js.map +1 -0
  41. package/dist/esm/client/hook/use-projects.js +22 -0
  42. package/dist/esm/client/hook/use-projects.js.map +1 -0
  43. package/dist/esm/client/hook/use-proposals.js +31 -0
  44. package/dist/esm/client/hook/use-proposals.js.map +1 -0
  45. package/dist/esm/client/hook/use-register.js +101 -0
  46. package/dist/esm/client/hook/use-register.js.map +1 -0
  47. package/dist/esm/client/hook/use-stake.js +327 -0
  48. package/dist/esm/client/hook/use-stake.js.map +1 -0
  49. package/dist/esm/client/hook/use-swap.js +110 -0
  50. package/dist/esm/client/hook/use-swap.js.map +1 -0
  51. package/dist/esm/client/index.js +4 -0
  52. package/dist/esm/client/index.js.map +1 -0
  53. package/dist/esm/client/levr-provider.js +201 -0
  54. package/dist/esm/client/levr-provider.js.map +1 -0
  55. package/dist/esm/client/query-keys.js +61 -0
  56. package/dist/esm/client/query-keys.js.map +1 -0
  57. package/dist/esm/constants.js +182 -0
  58. package/dist/esm/constants.js.map +1 -0
  59. package/dist/esm/deploy-v4.js +46 -0
  60. package/dist/esm/deploy-v4.js.map +1 -0
  61. package/dist/esm/fee-receivers.js +52 -0
  62. package/dist/esm/fee-receivers.js.map +1 -0
  63. package/dist/esm/governance.js +555 -0
  64. package/dist/esm/governance.js.map +1 -0
  65. package/dist/esm/index.js +18 -0
  66. package/dist/esm/index.js.map +1 -0
  67. package/dist/esm/project.js +146 -0
  68. package/dist/esm/project.js.map +1 -0
  69. package/dist/esm/projects.js +212 -0
  70. package/dist/esm/projects.js.map +1 -0
  71. package/dist/esm/proposals.js +98 -0
  72. package/dist/esm/proposals.js.map +1 -0
  73. package/dist/esm/quote-v4.js +169 -0
  74. package/dist/esm/quote-v4.js.map +1 -0
  75. package/dist/esm/schema/base.schema.js +11 -0
  76. package/dist/esm/schema/base.schema.js.map +1 -0
  77. package/dist/esm/schema/clanker.schema.js +191 -0
  78. package/dist/esm/schema/clanker.schema.js.map +1 -0
  79. package/dist/esm/schema/index.js +4 -0
  80. package/dist/esm/schema/index.js.map +1 -0
  81. package/dist/esm/schema/levr.schema.js +114 -0
  82. package/dist/esm/schema/levr.schema.js.map +1 -0
  83. package/dist/esm/stake.js +384 -0
  84. package/dist/esm/stake.js.map +1 -0
  85. package/dist/esm/swap-v4.js +281 -0
  86. package/dist/esm/swap-v4.js.map +1 -0
  87. package/dist/esm/types.js +2 -0
  88. package/dist/esm/types.js.map +1 -0
  89. package/dist/esm/util.js +19 -0
  90. package/dist/esm/util.js.map +1 -0
  91. package/dist/types/abis/IClankerAirdrop.d.ts +348 -0
  92. package/dist/types/abis/IClankerHookDynamicFee.d.ts +156 -0
  93. package/dist/types/abis/IClankerHookStaticFee.d.ts +58 -0
  94. package/dist/types/abis/IClankerLPLocker.d.ts +316 -0
  95. package/dist/types/abis/IClankerLpLockerMultiple.d.ts +481 -0
  96. package/dist/types/abis/IClankerToken.d.ts +326 -0
  97. package/dist/types/abis/LevrFactory_v1.d.ts +471 -0
  98. package/dist/types/abis/LevrForwarder_v1.d.ts +478 -0
  99. package/dist/types/abis/LevrGovernor_v1.d.ts +562 -0
  100. package/dist/types/abis/LevrStakedToken_v1.d.ts +338 -0
  101. package/dist/types/abis/LevrStaking_v1.d.ts +468 -0
  102. package/dist/types/abis/LevrTreasury_v1.d.ts +169 -0
  103. package/dist/types/abis/Permit2.d.ts +54 -0
  104. package/dist/types/abis/V4Quoter.d.ts +496 -0
  105. package/dist/types/abis/WETH9.d.ts +244 -0
  106. package/dist/types/abis/index.d.ts +15 -0
  107. package/dist/types/balance.d.ts +24 -0
  108. package/dist/types/balance.d.ts.map +1 -0
  109. package/dist/types/build-calldatas-v4.d.ts +20 -0
  110. package/dist/types/build-calldatas-v4.d.ts.map +1 -0
  111. package/dist/types/build-clanker-v4.d.ts +12 -0
  112. package/dist/types/build-clanker-v4.d.ts.map +1 -0
  113. package/dist/types/client/hook/index.d.ts +32 -0
  114. package/dist/types/client/hook/index.d.ts.map +1 -0
  115. package/dist/types/client/hook/use-balance.d.ts +18 -0
  116. package/dist/types/client/hook/use-balance.d.ts.map +1 -0
  117. package/dist/types/client/hook/use-clanker.d.ts +23 -0
  118. package/dist/types/client/hook/use-clanker.d.ts.map +1 -0
  119. package/dist/types/client/hook/use-deploy.d.ts +45 -0
  120. package/dist/types/client/hook/use-deploy.d.ts.map +1 -0
  121. package/dist/types/client/hook/use-fee-receivers.d.ts +26 -0
  122. package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -0
  123. package/dist/types/client/hook/use-governance.d.ts +145 -0
  124. package/dist/types/client/hook/use-governance.d.ts.map +1 -0
  125. package/dist/types/client/hook/use-prepare.d.ts +21 -0
  126. package/dist/types/client/hook/use-prepare.d.ts.map +1 -0
  127. package/dist/types/client/hook/use-project.d.ts +11 -0
  128. package/dist/types/client/hook/use-project.d.ts.map +1 -0
  129. package/dist/types/client/hook/use-projects.d.ts +6 -0
  130. package/dist/types/client/hook/use-projects.d.ts.map +1 -0
  131. package/dist/types/client/hook/use-proposals.d.ts +16 -0
  132. package/dist/types/client/hook/use-proposals.d.ts.map +1 -0
  133. package/dist/types/client/hook/use-register.d.ts +31 -0
  134. package/dist/types/client/hook/use-register.d.ts.map +1 -0
  135. package/dist/types/client/hook/use-stake.d.ts +195 -0
  136. package/dist/types/client/hook/use-stake.d.ts.map +1 -0
  137. package/dist/types/client/hook/use-swap.d.ts +59 -0
  138. package/dist/types/client/hook/use-swap.d.ts.map +1 -0
  139. package/dist/types/client/index.d.ts +4 -0
  140. package/dist/types/client/index.d.ts.map +1 -0
  141. package/dist/types/client/levr-provider.d.ts +127 -0
  142. package/dist/types/client/levr-provider.d.ts.map +1 -0
  143. package/dist/types/client/query-keys.d.ts +61 -0
  144. package/dist/types/client/query-keys.d.ts.map +1 -0
  145. package/dist/types/constants.d.ts +101 -0
  146. package/dist/types/constants.d.ts.map +1 -0
  147. package/dist/types/deploy-v4.d.ts +13 -0
  148. package/dist/types/deploy-v4.d.ts.map +1 -0
  149. package/dist/types/fee-receivers.d.ts +29 -0
  150. package/dist/types/fee-receivers.d.ts.map +1 -0
  151. package/dist/types/governance.d.ts +205 -0
  152. package/dist/types/governance.d.ts.map +1 -0
  153. package/dist/types/index.d.ts +18 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/dist/types/project.d.ts +51 -0
  156. package/dist/types/project.d.ts.map +1 -0
  157. package/dist/types/projects.d.ts +20 -0
  158. package/dist/types/projects.d.ts.map +1 -0
  159. package/dist/types/proposals.d.ts +20 -0
  160. package/dist/types/proposals.d.ts.map +1 -0
  161. package/dist/types/quote-v4.d.ts +54 -0
  162. package/dist/types/quote-v4.d.ts.map +1 -0
  163. package/dist/types/schema/base.schema.d.ts +5 -0
  164. package/dist/types/schema/base.schema.d.ts.map +1 -0
  165. package/dist/types/schema/clanker.schema.d.ts +104 -0
  166. package/dist/types/schema/clanker.schema.d.ts.map +1 -0
  167. package/dist/types/schema/index.d.ts +4 -0
  168. package/dist/types/schema/index.d.ts.map +1 -0
  169. package/dist/types/schema/levr.schema.d.ts +34 -0
  170. package/dist/types/schema/levr.schema.d.ts.map +1 -0
  171. package/dist/types/stake.d.ts +137 -0
  172. package/dist/types/stake.d.ts.map +1 -0
  173. package/dist/types/swap-v4.d.ts +97 -0
  174. package/dist/types/swap-v4.d.ts.map +1 -0
  175. package/dist/types/types.d.ts +20 -0
  176. package/dist/types/types.d.ts.map +1 -0
  177. package/dist/types/util.d.ts +5 -0
  178. package/dist/types/util.d.ts.map +1 -0
  179. package/package.json +100 -0
@@ -0,0 +1,555 @@
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";
5
+ export class Governance {
6
+ wallet;
7
+ publicClient;
8
+ governorAddress;
9
+ tokenDecimals;
10
+ clankerToken;
11
+ userAddress;
12
+ constructor(config) {
13
+ if (Object.values(config).some((value) => !value))
14
+ throw new Error("Invalid config");
15
+ this.wallet = config.wallet;
16
+ this.publicClient = config.publicClient;
17
+ this.governorAddress = config.governorAddress;
18
+ this.tokenDecimals = config.tokenDecimals;
19
+ this.clankerToken = config.clankerToken;
20
+ this.userAddress = config.wallet.account.address;
21
+ // trustedForwarder reserved for future meta-transaction support
22
+ }
23
+ /**
24
+ * Propose a transfer from treasury to recipient
25
+ */
26
+ async proposeTransfer(recipient, amount, description) {
27
+ const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
28
+ const hash = await this.wallet.writeContract({
29
+ address: this.governorAddress,
30
+ abi: LevrGovernor_v1,
31
+ functionName: "proposeTransfer",
32
+ args: [recipient, parsedAmount, description],
33
+ chain: this.wallet.chain,
34
+ });
35
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
36
+ if (receipt.status === "reverted") {
37
+ throw new Error("Propose transfer transaction reverted");
38
+ }
39
+ // Extract proposal ID from ProposalCreated event
40
+ const proposalCreatedLog = receipt.logs.find((log) => {
41
+ try {
42
+ const decoded = decodeEventLog({
43
+ abi: LevrGovernor_v1,
44
+ data: log.data,
45
+ topics: log.topics,
46
+ });
47
+ return decoded.eventName === "ProposalCreated";
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ });
53
+ if (!proposalCreatedLog) {
54
+ throw new Error("ProposalCreated event not found in receipt");
55
+ }
56
+ const decoded = decodeEventLog({
57
+ abi: LevrGovernor_v1,
58
+ data: proposalCreatedLog.data,
59
+ topics: proposalCreatedLog.topics,
60
+ });
61
+ const proposalId = decoded.args.proposalId;
62
+ return { receipt, proposalId };
63
+ }
64
+ /**
65
+ * Propose a boost from treasury to staking rewards
66
+ */
67
+ async proposeBoost(amount) {
68
+ const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
69
+ const hash = await this.wallet.writeContract({
70
+ address: this.governorAddress,
71
+ abi: LevrGovernor_v1,
72
+ functionName: "proposeBoost",
73
+ args: [parsedAmount],
74
+ chain: this.wallet.chain,
75
+ });
76
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
77
+ if (receipt.status === "reverted") {
78
+ throw new Error("Propose boost transaction reverted");
79
+ }
80
+ // Extract proposal ID from ProposalCreated event
81
+ const proposalCreatedLog = receipt.logs.find((log) => {
82
+ try {
83
+ const decoded = decodeEventLog({
84
+ abi: LevrGovernor_v1,
85
+ data: log.data,
86
+ topics: log.topics,
87
+ });
88
+ return decoded.eventName === "ProposalCreated";
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ });
94
+ if (!proposalCreatedLog) {
95
+ throw new Error("ProposalCreated event not found in receipt");
96
+ }
97
+ const decoded = decodeEventLog({
98
+ abi: LevrGovernor_v1,
99
+ data: proposalCreatedLog.data,
100
+ topics: proposalCreatedLog.topics,
101
+ });
102
+ const proposalId = decoded.args.proposalId;
103
+ return { receipt, proposalId };
104
+ }
105
+ /**
106
+ * Vote on a proposal
107
+ */
108
+ async vote(proposalId, support) {
109
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
110
+ const hash = await this.wallet.writeContract({
111
+ address: this.governorAddress,
112
+ abi: LevrGovernor_v1,
113
+ functionName: "vote",
114
+ args: [parsedProposalId, support],
115
+ chain: this.wallet.chain,
116
+ });
117
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
118
+ if (receipt.status === "reverted") {
119
+ throw new Error("Vote transaction reverted");
120
+ }
121
+ return receipt;
122
+ }
123
+ /**
124
+ * Execute a proposal by ID
125
+ * Note: Automatically starts a new cycle after successful execution
126
+ */
127
+ async executeProposal(proposalId) {
128
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
129
+ const hash = await this.wallet.writeContract({
130
+ address: this.governorAddress,
131
+ abi: LevrGovernor_v1,
132
+ functionName: "execute",
133
+ args: [parsedProposalId],
134
+ chain: this.wallet.chain,
135
+ });
136
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
137
+ if (receipt.status === "reverted") {
138
+ throw new Error("Execute proposal transaction reverted");
139
+ }
140
+ return receipt;
141
+ }
142
+ /**
143
+ * Get proposal details by ID
144
+ */
145
+ async getProposal(proposalId) {
146
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
147
+ const result = (await this.publicClient.readContract({
148
+ address: this.governorAddress,
149
+ abi: LevrGovernor_v1,
150
+ functionName: "getProposal",
151
+ args: [parsedProposalId],
152
+ }));
153
+ return {
154
+ id: result.id,
155
+ proposalType: result.proposalType,
156
+ proposer: result.proposer,
157
+ amount: {
158
+ raw: result.amount,
159
+ formatted: formatUnits(result.amount, this.tokenDecimals),
160
+ },
161
+ recipient: result.recipient,
162
+ description: result.description,
163
+ createdAt: {
164
+ timestamp: result.createdAt,
165
+ date: new Date(Number(result.createdAt) * 1000),
166
+ },
167
+ votingStartsAt: {
168
+ timestamp: result.votingStartsAt,
169
+ date: new Date(Number(result.votingStartsAt) * 1000),
170
+ },
171
+ votingEndsAt: {
172
+ timestamp: result.votingEndsAt,
173
+ date: new Date(Number(result.votingEndsAt) * 1000),
174
+ },
175
+ yesVotes: {
176
+ raw: result.yesVotes,
177
+ formatted: formatUnits(result.yesVotes, this.tokenDecimals),
178
+ },
179
+ noVotes: {
180
+ raw: result.noVotes,
181
+ formatted: formatUnits(result.noVotes, this.tokenDecimals),
182
+ },
183
+ totalBalanceVoted: result.totalBalanceVoted,
184
+ executed: result.executed,
185
+ cycleId: result.cycleId,
186
+ };
187
+ }
188
+ /**
189
+ * Get current cycle ID
190
+ */
191
+ async getCurrentCycleId() {
192
+ return await this.publicClient.readContract({
193
+ address: this.governorAddress,
194
+ abi: LevrGovernor_v1,
195
+ functionName: "currentCycleId",
196
+ });
197
+ }
198
+ /**
199
+ * Get all proposal IDs for a specific cycle
200
+ */
201
+ async getProposalsForCycle(cycleId) {
202
+ const parsedCycleId = typeof cycleId === "bigint" ? cycleId : BigInt(cycleId);
203
+ return await this.publicClient.readContract({
204
+ address: this.governorAddress,
205
+ abi: LevrGovernor_v1,
206
+ functionName: "getProposalsForCycle",
207
+ args: [parsedCycleId],
208
+ });
209
+ }
210
+ /**
211
+ * Get the winner proposal ID for a cycle
212
+ */
213
+ async getWinner(cycleId) {
214
+ const parsedCycleId = typeof cycleId === "bigint" ? cycleId : BigInt(cycleId);
215
+ return await this.publicClient.readContract({
216
+ address: this.governorAddress,
217
+ abi: LevrGovernor_v1,
218
+ functionName: "getWinner",
219
+ args: [parsedCycleId],
220
+ });
221
+ }
222
+ /**
223
+ * Get vote receipt for a user on a proposal
224
+ */
225
+ async getVoteReceipt(proposalId, voter) {
226
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
227
+ const voterAddress = voter ?? this.userAddress;
228
+ return await this.publicClient.readContract({
229
+ address: this.governorAddress,
230
+ abi: LevrGovernor_v1,
231
+ functionName: "getVoteReceipt",
232
+ args: [parsedProposalId, voterAddress],
233
+ });
234
+ }
235
+ /**
236
+ * Get voting power snapshot for a user at proposal creation
237
+ */
238
+ async getVotingPowerSnapshot(proposalId, user) {
239
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
240
+ const userAddress = user ?? this.userAddress;
241
+ return await this.publicClient.readContract({
242
+ address: this.governorAddress,
243
+ abi: LevrGovernor_v1,
244
+ functionName: "getVotingPowerSnapshot",
245
+ args: [parsedProposalId, userAddress],
246
+ });
247
+ }
248
+ /**
249
+ * Check if proposal meets quorum
250
+ */
251
+ async meetsQuorum(proposalId) {
252
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
253
+ return await this.publicClient.readContract({
254
+ address: this.governorAddress,
255
+ abi: LevrGovernor_v1,
256
+ functionName: "meetsQuorum",
257
+ args: [parsedProposalId],
258
+ });
259
+ }
260
+ /**
261
+ * Check if proposal meets approval threshold
262
+ */
263
+ async meetsApproval(proposalId) {
264
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
265
+ return await this.publicClient.readContract({
266
+ address: this.governorAddress,
267
+ abi: LevrGovernor_v1,
268
+ functionName: "meetsApproval",
269
+ args: [parsedProposalId],
270
+ });
271
+ }
272
+ /**
273
+ * Get proposal state (Pending, Active, Defeated, Succeeded, Executed)
274
+ */
275
+ async getProposalState(proposalId) {
276
+ const parsedProposalId = typeof proposalId === "bigint" ? proposalId : BigInt(proposalId);
277
+ return await this.publicClient.readContract({
278
+ address: this.governorAddress,
279
+ abi: LevrGovernor_v1,
280
+ functionName: "state",
281
+ args: [parsedProposalId],
282
+ });
283
+ }
284
+ /**
285
+ * Get active proposal count for a specific proposal type
286
+ */
287
+ async getActiveProposalCount(proposalType) {
288
+ return await this.publicClient.readContract({
289
+ address: this.governorAddress,
290
+ abi: LevrGovernor_v1,
291
+ functionName: "activeProposalCount",
292
+ args: [proposalType],
293
+ });
294
+ }
295
+ /**
296
+ * Get factory address
297
+ */
298
+ async getFactory() {
299
+ return await this.publicClient.readContract({
300
+ address: this.governorAddress,
301
+ abi: LevrGovernor_v1,
302
+ functionName: "factory",
303
+ });
304
+ }
305
+ /**
306
+ * Get treasury address
307
+ */
308
+ async getTreasury() {
309
+ return await this.publicClient.readContract({
310
+ address: this.governorAddress,
311
+ abi: LevrGovernor_v1,
312
+ functionName: "treasury",
313
+ });
314
+ }
315
+ /**
316
+ * Get staked token address
317
+ */
318
+ async getStakedToken() {
319
+ return await this.publicClient.readContract({
320
+ address: this.governorAddress,
321
+ abi: LevrGovernor_v1,
322
+ functionName: "stakedToken",
323
+ });
324
+ }
325
+ /**
326
+ * Propose transfer and execute in sequence (for testing convenience)
327
+ */
328
+ async proposeAndExecuteTransfer(recipient, amount, description) {
329
+ const { receipt: proposeReceipt, proposalId } = await this.proposeTransfer(recipient, amount, description);
330
+ const executeReceipt = await this.executeProposal(proposalId);
331
+ return {
332
+ proposeReceipt,
333
+ executeReceipt,
334
+ proposalId,
335
+ };
336
+ }
337
+ /**
338
+ * Propose boost and execute in sequence (for testing convenience)
339
+ */
340
+ async proposeAndExecuteBoost(amount) {
341
+ const { receipt: proposeReceipt, proposalId } = await this.proposeBoost(amount);
342
+ const executeReceipt = await this.executeProposal(proposalId);
343
+ return {
344
+ proposeReceipt,
345
+ executeReceipt,
346
+ proposalId,
347
+ };
348
+ }
349
+ /**
350
+ * Find treasury airdrop allocation by checking all known amounts using multicall
351
+ */
352
+ async findTreasuryAllocation() {
353
+ const chainId = this.publicClient.chain?.id;
354
+ const airdropAddress = GET_CLANKER_AIRDROP_ADDRESS(chainId);
355
+ const treasury = await this.getTreasury();
356
+ if (!airdropAddress)
357
+ return null;
358
+ // Prepare multicall for all possible treasury airdrop amounts + treasury balance check
359
+ const amounts = Object.values(TREASURY_AIRDROP_AMOUNTS).map((amountInTokens) => BigInt(amountInTokens) * 10n ** 18n);
360
+ const results = await this.publicClient.multicall({
361
+ contracts: [
362
+ // First check treasury balance
363
+ {
364
+ address: this.clankerToken,
365
+ abi: erc20Abi,
366
+ functionName: "balanceOf",
367
+ args: [treasury],
368
+ },
369
+ // Then check all airdrop amounts
370
+ ...amounts.map((amount) => ({
371
+ address: airdropAddress,
372
+ abi: IClankerAirdrop,
373
+ functionName: "amountAvailableToClaim",
374
+ args: [this.clankerToken, treasury, amount],
375
+ })),
376
+ ], // Mixed ABIs in multicall
377
+ allowFailure: true,
378
+ });
379
+ // Extract treasury balance from first result
380
+ const treasuryBalanceResult = results[0];
381
+ const treasuryBalance = treasuryBalanceResult && treasuryBalanceResult.status === "success"
382
+ ? treasuryBalanceResult.result
383
+ : 0n;
384
+ // Extract airdrop check results (skip first result which is balance)
385
+ const airdropResults = results.slice(1);
386
+ // Collect all valid results first
387
+ const allResults = [];
388
+ for (let i = 0; i < airdropResults.length; i++) {
389
+ const result = airdropResults[i];
390
+ const amount = amounts[i];
391
+ if (result.status === "success" && result.result !== undefined) {
392
+ const available = result.result;
393
+ if (available > 0n) {
394
+ // Available - highest priority (1)
395
+ allResults.push({ amount, available, status: "available", priority: 1 });
396
+ }
397
+ else {
398
+ // Available is 0 - check treasury balance to determine if claimed or locked
399
+ // If treasury has >= this amount, it's likely already claimed
400
+ // Otherwise it's still locked
401
+ const isClaimed = treasuryBalance >= amount;
402
+ const priority = isClaimed ? 4 : 2;
403
+ const status = isClaimed ? "claimed" : "locked";
404
+ const error = isClaimed ? "Treasury airdrop already claimed" : "Airdrop is still locked";
405
+ allResults.push({ amount, available: 0n, status, priority, error });
406
+ }
407
+ }
408
+ else if (result.status === "failure") {
409
+ const errorMessage = result.error?.message || "";
410
+ // AirdropNotCreated means this amount wasn't configured - skip entirely
411
+ if (errorMessage.includes("AirdropNotCreated")) {
412
+ continue;
413
+ }
414
+ // AirdropNotUnlocked means this amount exists but is locked (priority 2)
415
+ if (errorMessage.includes("AirdropNotUnlocked")) {
416
+ allResults.push({
417
+ amount,
418
+ available: 0n,
419
+ status: "locked",
420
+ error: "Airdrop is still locked",
421
+ priority: 2,
422
+ });
423
+ continue;
424
+ }
425
+ // Already claimed errors (priority 3)
426
+ if (errorMessage.includes("UserMaxClaimed") || errorMessage.includes("TotalMaxClaimed")) {
427
+ allResults.push({
428
+ amount,
429
+ available: 0n,
430
+ status: "claimed",
431
+ error: "Already claimed maximum amount",
432
+ priority: 3,
433
+ });
434
+ continue;
435
+ }
436
+ // Arithmetic underflow/overflow means a different (larger) amount was claimed
437
+ // Skip this result entirely - the correct amount will be detected separately
438
+ if (errorMessage.includes("underflow") || errorMessage.includes("overflow")) {
439
+ continue;
440
+ }
441
+ // Other errors - treat as locked (priority 2)
442
+ allResults.push({
443
+ amount,
444
+ available: 0n,
445
+ status: "locked",
446
+ error: errorMessage,
447
+ priority: 2,
448
+ });
449
+ }
450
+ }
451
+ // If no results found, return null
452
+ if (allResults.length === 0) {
453
+ return null;
454
+ }
455
+ // Sort by priority (lower is better), then by amount (higher is better for same priority)
456
+ allResults.sort((a, b) => {
457
+ if (a.priority !== b.priority) {
458
+ return a.priority - b.priority;
459
+ }
460
+ // For same priority, prefer larger amounts
461
+ return a.amount > b.amount ? -1 : 1;
462
+ });
463
+ // Return the best result
464
+ const best = allResults[0];
465
+ return {
466
+ amount: best.amount,
467
+ available: best.available,
468
+ status: best.status,
469
+ error: best.error,
470
+ };
471
+ }
472
+ /**
473
+ * Get available airdrop amount for treasury using known amounts
474
+ */
475
+ async getAvailableAirdropAmount() {
476
+ const allocation = await this.findTreasuryAllocation();
477
+ return allocation?.available || 0n;
478
+ }
479
+ /**
480
+ * Get airdrop status for treasury with detailed status information
481
+ */
482
+ async getAirdropStatus() {
483
+ const allocation = await this.findTreasuryAllocation();
484
+ if (!allocation) {
485
+ return {
486
+ availableAmount: { raw: 0n, formatted: formatUnits(0n, this.tokenDecimals) },
487
+ allocatedAmount: { raw: 0n, formatted: formatUnits(0n, this.tokenDecimals) },
488
+ isAvailable: false,
489
+ error: "No treasury airdrop found",
490
+ };
491
+ }
492
+ // Generate appropriate error message based on status
493
+ let error;
494
+ switch (allocation.status) {
495
+ case "available":
496
+ error = undefined;
497
+ break;
498
+ case "locked":
499
+ error = allocation.error || "Airdrop is still locked (lockup period not passed)";
500
+ break;
501
+ case "claimed":
502
+ error = "Treasury airdrop already claimed";
503
+ break;
504
+ case "not_found":
505
+ error = "No treasury airdrop found";
506
+ break;
507
+ }
508
+ return {
509
+ availableAmount: {
510
+ raw: allocation.available,
511
+ formatted: formatUnits(allocation.available, this.tokenDecimals),
512
+ },
513
+ allocatedAmount: {
514
+ raw: allocation.amount,
515
+ formatted: formatUnits(allocation.amount, this.tokenDecimals),
516
+ },
517
+ isAvailable: allocation.status === "available" && allocation.available > 0n,
518
+ error,
519
+ };
520
+ }
521
+ /**
522
+ * Claim airdrop for treasury
523
+ */
524
+ async claimAirdrop() {
525
+ const allocation = await this.findTreasuryAllocation();
526
+ if (!allocation) {
527
+ throw new Error("No treasury airdrop found to claim");
528
+ }
529
+ if (allocation.status === "claimed") {
530
+ throw new Error("Treasury airdrop already claimed");
531
+ }
532
+ if (allocation.status === "not_found") {
533
+ throw new Error("No treasury airdrop configured for this token");
534
+ }
535
+ const chainId = this.publicClient.chain?.id;
536
+ const airdropAddress = GET_CLANKER_AIRDROP_ADDRESS(chainId);
537
+ const treasury = await this.getTreasury();
538
+ if (!airdropAddress) {
539
+ throw new Error(`No airdrop address found for chain ID ${chainId}`);
540
+ }
541
+ const hash = await this.wallet.writeContract({
542
+ address: airdropAddress,
543
+ abi: IClankerAirdrop,
544
+ functionName: "claim",
545
+ args: [this.clankerToken, treasury, allocation.amount, []], // Empty proof for single-leaf merkle tree
546
+ chain: this.wallet.chain,
547
+ });
548
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
549
+ if (receipt.status === "reverted") {
550
+ throw new Error("Claim airdrop transaction reverted");
551
+ }
552
+ return receipt;
553
+ }
554
+ }
555
+ //# sourceMappingURL=governance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export * from "./abis/index.js";
2
+ export * from "./balance.js";
3
+ export * from "./build-calldatas-v4.js";
4
+ export * from "./build-clanker-v4.js";
5
+ export * from "./constants.js";
6
+ export * from "./deploy-v4.js";
7
+ export * from "./fee-receivers.js";
8
+ export * from "./governance.js";
9
+ export * from "./project.js";
10
+ export * from "./projects.js";
11
+ export * from "./proposals.js";
12
+ export * from "./quote-v4.js";
13
+ export * from "./schema/index.js";
14
+ export * from "./stake.js";
15
+ export * from "./swap-v4.js";
16
+ export * from "./types.js";
17
+ export * from "./util.js";
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}