levr-sdk 0.2.2 → 0.3.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 (131) hide show
  1. package/dist/esm/abis/ClankerAirdropV2.js +289 -0
  2. package/dist/esm/abis/ClankerVault.js +215 -0
  3. package/dist/esm/abis/LevrFactory_v1.js +23 -0
  4. package/dist/esm/abis/LevrFeeSplitterFactory_v1.js +197 -0
  5. package/dist/esm/abis/LevrFeeSplitter_v1.js +544 -0
  6. package/dist/esm/abis/LevrGovernor_v1.js +10 -0
  7. package/dist/esm/abis/index.js +4 -0
  8. package/dist/esm/airdrop.js +160 -0
  9. package/dist/esm/airdrop.js.map +1 -0
  10. package/dist/esm/build-calldatas-v4.js +3 -1
  11. package/dist/esm/build-calldatas-v4.js.map +1 -1
  12. package/dist/esm/build-clanker-v4.js +75 -25
  13. package/dist/esm/build-clanker-v4.js.map +1 -1
  14. package/dist/esm/client/hook/index.js +10 -0
  15. package/dist/esm/client/hook/index.js.map +1 -1
  16. package/dist/esm/client/hook/use-airdrop.js +8 -4
  17. package/dist/esm/client/hook/use-airdrop.js.map +1 -1
  18. package/dist/esm/client/hook/use-configure-splits.js +43 -0
  19. package/dist/esm/client/hook/use-configure-splits.js.map +1 -0
  20. package/dist/esm/client/hook/use-deploy.js +3 -3
  21. package/dist/esm/client/hook/use-deploy.js.map +1 -1
  22. package/dist/esm/client/hook/use-factory.js +33 -0
  23. package/dist/esm/client/hook/use-factory.js.map +1 -0
  24. package/dist/esm/client/hook/use-fee-receivers.js +3 -2
  25. package/dist/esm/client/hook/use-fee-receivers.js.map +1 -1
  26. package/dist/esm/client/hook/use-governance.js +18 -3
  27. package/dist/esm/client/hook/use-governance.js.map +1 -1
  28. package/dist/esm/client/hook/use-project.js +7 -3
  29. package/dist/esm/client/hook/use-project.js.map +1 -1
  30. package/dist/esm/client/hook/use-proposal.js +11 -5
  31. package/dist/esm/client/hook/use-proposal.js.map +1 -1
  32. package/dist/esm/client/hook/use-stake.js +1 -1
  33. package/dist/esm/client/hook/use-stake.js.map +1 -1
  34. package/dist/esm/client/hook/use-vault.js +67 -0
  35. package/dist/esm/client/hook/use-vault.js.map +1 -0
  36. package/dist/esm/client/levr-provider.js +18 -2
  37. package/dist/esm/client/levr-provider.js.map +1 -1
  38. package/dist/esm/client/query-keys.js +13 -1
  39. package/dist/esm/client/query-keys.js.map +1 -1
  40. package/dist/esm/constants.js +83 -6
  41. package/dist/esm/constants.js.map +1 -1
  42. package/dist/esm/deploy-v4.js +56 -3
  43. package/dist/esm/deploy-v4.js.map +1 -1
  44. package/dist/esm/factory.js +94 -0
  45. package/dist/esm/factory.js.map +1 -0
  46. package/dist/esm/fee-receivers.js +265 -4
  47. package/dist/esm/fee-receivers.js.map +1 -1
  48. package/dist/esm/fee-splitter.js +68 -0
  49. package/dist/esm/fee-splitter.js.map +1 -0
  50. package/dist/esm/governance.js +86 -9
  51. package/dist/esm/governance.js.map +1 -1
  52. package/dist/esm/index.js +5 -1
  53. package/dist/esm/index.js.map +1 -1
  54. package/dist/esm/ipfs-merkle-tree.js +130 -0
  55. package/dist/esm/ipfs-merkle-tree.js.map +1 -0
  56. package/dist/esm/project.js +114 -26
  57. package/dist/esm/project.js.map +1 -1
  58. package/dist/esm/schema/levr.schema.js +94 -33
  59. package/dist/esm/schema/levr.schema.js.map +1 -1
  60. package/dist/esm/stake.js +157 -19
  61. package/dist/esm/stake.js.map +1 -1
  62. package/dist/esm/vault.js +136 -0
  63. package/dist/esm/vault.js.map +1 -0
  64. package/dist/types/abis/ClankerAirdropV2.d.ts +573 -0
  65. package/dist/types/abis/ClankerVault.d.ts +407 -0
  66. package/dist/types/abis/LevrFactory_v1.d.ts +18 -0
  67. package/dist/types/abis/LevrFeeSplitterFactory_v1.d.ts +149 -0
  68. package/dist/types/abis/LevrFeeSplitter_v1.d.ts +422 -0
  69. package/dist/types/abis/LevrGovernor_v1.d.ts +8 -0
  70. package/dist/types/abis/index.d.ts +4 -0
  71. package/dist/types/airdrop.d.ts +18 -0
  72. package/dist/types/airdrop.d.ts.map +1 -0
  73. package/dist/types/build-calldatas-v4.d.ts +3 -0
  74. package/dist/types/build-calldatas-v4.d.ts.map +1 -1
  75. package/dist/types/build-clanker-v4.d.ts +6 -1
  76. package/dist/types/build-clanker-v4.d.ts.map +1 -1
  77. package/dist/types/client/hook/index.d.ts +10 -0
  78. package/dist/types/client/hook/index.d.ts.map +1 -1
  79. package/dist/types/client/hook/use-airdrop.d.ts +3 -1
  80. package/dist/types/client/hook/use-airdrop.d.ts.map +1 -1
  81. package/dist/types/client/hook/use-configure-splits.d.ts +17 -0
  82. package/dist/types/client/hook/use-configure-splits.d.ts.map +1 -0
  83. package/dist/types/client/hook/use-deploy.d.ts +21 -14
  84. package/dist/types/client/hook/use-deploy.d.ts.map +1 -1
  85. package/dist/types/client/hook/use-factory.d.ts +34 -0
  86. package/dist/types/client/hook/use-factory.d.ts.map +1 -0
  87. package/dist/types/client/hook/use-fee-receivers.d.ts +1 -1
  88. package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -1
  89. package/dist/types/client/hook/use-governance.d.ts +18 -2
  90. package/dist/types/client/hook/use-governance.d.ts.map +1 -1
  91. package/dist/types/client/hook/use-project.d.ts +169 -1
  92. package/dist/types/client/hook/use-project.d.ts.map +1 -1
  93. package/dist/types/client/hook/use-proposal.d.ts +3 -2
  94. package/dist/types/client/hook/use-proposal.d.ts.map +1 -1
  95. package/dist/types/client/hook/use-vault.d.ts +13 -0
  96. package/dist/types/client/hook/use-vault.d.ts.map +1 -0
  97. package/dist/types/client/levr-provider.d.ts +15 -1
  98. package/dist/types/client/levr-provider.d.ts.map +1 -1
  99. package/dist/types/client/query-keys.d.ts +13 -1
  100. package/dist/types/client/query-keys.d.ts.map +1 -1
  101. package/dist/types/constants.d.ts +59 -1
  102. package/dist/types/constants.d.ts.map +1 -1
  103. package/dist/types/deploy-v4.d.ts +3 -1
  104. package/dist/types/deploy-v4.d.ts.map +1 -1
  105. package/dist/types/factory.d.ts +21 -0
  106. package/dist/types/factory.d.ts.map +1 -0
  107. package/dist/types/fee-receivers.d.ts +1822 -1
  108. package/dist/types/fee-receivers.d.ts.map +1 -1
  109. package/dist/types/fee-splitter.d.ts +23 -0
  110. package/dist/types/fee-splitter.d.ts.map +1 -0
  111. package/dist/types/governance.d.ts +18 -2
  112. package/dist/types/governance.d.ts.map +1 -1
  113. package/dist/types/index.d.ts +5 -1
  114. package/dist/types/index.d.ts.map +1 -1
  115. package/dist/types/ipfs-merkle-tree.d.ts +72 -0
  116. package/dist/types/ipfs-merkle-tree.d.ts.map +1 -0
  117. package/dist/types/project.d.ts +10 -2
  118. package/dist/types/project.d.ts.map +1 -1
  119. package/dist/types/proposal.d.ts +16 -0
  120. package/dist/types/proposal.d.ts.map +1 -1
  121. package/dist/types/schema/levr.schema.d.ts +16 -4
  122. package/dist/types/schema/levr.schema.d.ts.map +1 -1
  123. package/dist/types/stake.d.ts +33 -2
  124. package/dist/types/stake.d.ts.map +1 -1
  125. package/dist/types/vault.d.ts +70 -0
  126. package/dist/types/vault.d.ts.map +1 -0
  127. package/package.json +1 -1
  128. package/dist/esm/treasury.js +0 -90
  129. package/dist/esm/treasury.js.map +0 -1
  130. package/dist/types/treasury.d.ts +0 -11
  131. package/dist/types/treasury.d.ts.map +0 -1
@@ -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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"}
@@ -1,5 +1,5 @@
1
1
  import { Schema } from "effect";
2
- import { STAKING_REWARDS, STATIC_FEE_TIERS, TREASURY_AIRDROP_AMOUNTS } from "../constants.js";
2
+ import { LEVR_TEAM_LP_FEE_PERCENTAGE, STAKING_REWARDS, STATIC_FEE_TIERS, TREASURY_AIRDROP_AMOUNTS, VAULT_LOCKUP_PERIODS, VAULT_PERCENTAGES, VAULT_VESTING_PERIODS, } from "../constants.js";
3
3
  import { EthereumAddress, NonEmptyString } from "./base.schema.js";
4
4
  import { ClankerDeploymentSchema } from "./clanker.schema.js";
5
5
  const LevrMetadata = Schema.Struct({
@@ -22,19 +22,19 @@ const LevrMetadata = Schema.Struct({
22
22
  description: "Clanker token metadata",
23
23
  });
24
24
  const TreasuryFunding = Schema.Literal(...Object.keys(TREASURY_AIRDROP_AMOUNTS)).annotations({
25
- description: "Amount to fund the treasury during deployment",
25
+ description: "Percentage of total token supply (100B tokens) allocated to the treasury at deployment. Combined with custom airdrops, maximum 90% can be allocated (minimum 10% reserved for liquidity). Any remaining tokens are sent to liquidity.",
26
26
  });
27
27
  const LevrAirdrop = Schema.Array(Schema.Struct({
28
- amount: Schema.Number.annotations({
29
- description: "Total airdrop amount",
28
+ percentage: Schema.Number.annotations({
29
+ description: "Percentage of total token supply allocated to this recipient (0-100, e.g., 5 for 5%)",
30
30
  }),
31
31
  account: EthereumAddress.annotations({
32
- description: "Account address",
32
+ description: "Account address to receive airdrop",
33
33
  }),
34
34
  })).annotations({
35
- description: "Clanker token airdrop, bigger portian is reserved for the treasury",
35
+ description: "Custom token airdrops at deployment. Each recipient receives a percentage of the total 100B supply. Combined with treasury funding, total cannot exceed 90% of supply (minimum 10% reserved for liquidity).",
36
36
  });
37
- const LevrDevBuy = Schema.Literal("0.1 ETH", "0.5 ETH", "1 ETH").annotations({
37
+ const LevrDevBuy = Schema.Literal("0.1 ETH", "0.5 ETH", "1 ETH", "1.5 ETH").annotations({
38
38
  description: "Amount to buy during deployment",
39
39
  });
40
40
  const LevrStaticFeeTier = Schema.Literal(...Object.keys(STATIC_FEE_TIERS)).annotations({
@@ -56,31 +56,61 @@ const LevrFees = Schema.Union(LevrStaticFee, LevrDynamicFee).annotations({
56
56
  });
57
57
  const LevrRewardRecipients = Schema.Array(Schema.Struct({
58
58
  admin: EthereumAddress.annotations({
59
- description: "Admin address for recipient",
59
+ description: "Admin address who can manage this reward recipient configuration",
60
60
  }),
61
61
  recipient: EthereumAddress.annotations({
62
- description: "Recipient address",
62
+ description: "Address that will receive the allocated reward tokens",
63
63
  }),
64
64
  percentage: Schema.Number.annotations({
65
- description: "Percentage of rewards to recipient",
65
+ description: "Percentage of total rewards allocated to this recipient (0-100, e.g., 5 for 5%)",
66
66
  }),
67
67
  token: Schema.Literal("Both", "Paired", "Clanker").annotations({
68
- description: "Token type for rewards",
68
+ description: "Type of tokens to distribute: Both (paired token + clanker token), Paired (only paired token), or Clanker (only clanker token)",
69
69
  }),
70
70
  })).annotations({
71
- description: "Reward recipient for the clanker token",
71
+ description: "Custom reward recipients who receive a portion of the trading fees. Combined with staking rewards, total must equal 100%.",
72
72
  });
73
73
  const LevrStakingReward = Schema.Literal(...Object.keys(STAKING_REWARDS)).annotations({
74
- description: "The precentage that is distributed to the staking contract",
74
+ description: `Percentage of trading fees distributed to token stakers as rewards. Note: ${LEVR_TEAM_LP_FEE_PERCENTAGE}% is automatically allocated to Levr Protocol (deducted from this amount). Combined with custom reward recipients, total must equal 100%.`,
75
75
  });
76
76
  /**
77
- * Maximum allowed sum of treasury funding and airdrop amounts (90% of 100B tokens)
77
+ * Maximum allowed sum of staking reward and rewards recipients (as percentages 0-100)
78
+ */
79
+ const MAX_TOTAL_REWARDS_PERCENTAGE = 100;
80
+ /**
81
+ * Vault lockup period schema
78
82
  */
79
- const MAX_TOTAL_ALLOCATION = 90000000000; // 90B tokens
83
+ const VaultLockupPeriod = Schema.Literal(...Object.keys(VAULT_LOCKUP_PERIODS)).annotations({
84
+ description: "Lockup period for vaulted tokens. Tokens cannot be claimed during this period.",
85
+ });
86
+ /**
87
+ * Vault vesting period schema
88
+ */
89
+ const VaultVestingPeriod = Schema.Literal(...Object.keys(VAULT_VESTING_PERIODS)).annotations({
90
+ description: "Vesting period after lockup ends. \"instant\" makes tokens available immediately after lockup. Linear vesting occurs between end of lockup and end of vesting period.",
91
+ });
80
92
  /**
81
- * Maximum allowed sum of staking reward and rewards recipients
93
+ * Vault percentage schema
82
94
  */
83
- const MAX_TOTAL_REWARDS = 10000; // 100% of rewards are distributed to the staking contract
95
+ const VaultPercentage = Schema.Literal(...Object.keys(VAULT_PERCENTAGES)).annotations({
96
+ description: "Percentage of total token supply (100B tokens) allocated to vault.",
97
+ });
98
+ /**
99
+ * Vault configuration schema
100
+ */
101
+ const LevrVault = Schema.Struct({
102
+ lockupPeriod: VaultLockupPeriod.annotations({
103
+ description: "How long tokens are locked before vesting begins",
104
+ }),
105
+ vestingPeriod: VaultVestingPeriod.annotations({
106
+ description: "Vesting duration after lockup. \"instant\" = no vesting period",
107
+ }),
108
+ percentage: VaultPercentage.annotations({
109
+ description: "Percentage of total supply to allocate to vault",
110
+ }),
111
+ }).annotations({
112
+ description: "Vault configuration with lockup and linear vesting schedule",
113
+ });
84
114
  export const LevrClankerDeploymentSchema = Schema.Struct({
85
115
  ...ClankerDeploymentSchema.pick("name", "symbol").fields,
86
116
  image: NonEmptyString("Image is required").annotations({
@@ -89,29 +119,60 @@ export const LevrClankerDeploymentSchema = Schema.Struct({
89
119
  metadata: Schema.optional(LevrMetadata),
90
120
  devBuy: Schema.optional(LevrDevBuy),
91
121
  airdrop: Schema.optional(LevrAirdrop),
122
+ vault: Schema.optional(LevrVault),
92
123
  treasuryFunding: TreasuryFunding,
93
124
  fees: LevrFees,
94
- stakingReward: Schema.optional(LevrStakingReward),
125
+ stakingReward: LevrStakingReward,
95
126
  rewards: Schema.optional(LevrRewardRecipients),
96
127
  }).pipe(Schema.filter((data) => {
97
- // Calculate total airdrop amount
98
- const airdropTotal = data.airdrop?.reduce((sum, entry) => sum + entry.amount, 0) ?? 0;
99
- // Get treasury funding (default to 0 if not provided)
100
- const treasuryAmount = TREASURY_AIRDROP_AMOUNTS[data.treasuryFunding ?? "30%"];
101
- // Check if the sum exceeds the maximum allocation
102
- const total = airdropTotal + treasuryAmount;
103
- return total <= MAX_TOTAL_ALLOCATION;
128
+ // Calculate total airdrop percentage
129
+ const airdropTotal = data.airdrop?.reduce((sum, entry) => sum + entry.percentage, 0) ?? 0;
130
+ // Get treasury percentage (e.g., "30%" -> 30)
131
+ const treasuryPercentage = parseFloat(data.treasuryFunding ?? "30%");
132
+ // Get vault percentage (e.g., "5%" -> 5)
133
+ const vaultPercentage = data.vault ? parseFloat(data.vault.percentage) : 0;
134
+ // Check if total allocation exceeds 90% (must leave minimum 10% for liquidity)
135
+ const totalAllocated = airdropTotal + treasuryPercentage + vaultPercentage;
136
+ return totalAllocated <= 90;
104
137
  }, {
105
- message: () => `Total allocation (airdrop + treasury funding) cannot exceed ${MAX_TOTAL_ALLOCATION.toLocaleString()} tokens (90% of 100B)`,
138
+ message: () => `Total allocation (airdrop + vault + treasury funding) cannot exceed 90% (minimum 10% must be reserved for liquidity)`,
106
139
  }), Schema.filter((data) => {
107
- // Get staking reward in basis points (default to 100% if not provided)
108
- const stakingRewardBps = STAKING_REWARDS[data.stakingReward ?? "100%"];
109
- // Calculate total rewards recipients percentage
140
+ // Convert staking reward from percentage string (e.g., "100%") to number (e.g., 100)
141
+ const stakingRewardPercentageStr = data.stakingReward; // e.g., "100%"
142
+ const stakingRewardPercentage = parseFloat(stakingRewardPercentageStr); // e.g., 100
143
+ // Calculate total rewards recipients percentage (already in 0-100 format)
110
144
  const rewardRecipientsTotal = data.rewards?.reduce((sum, entry) => sum + entry.percentage, 0) ?? 0;
111
- // Check if the sum exceeds 100% (10,000 basis points)
112
- const totalRewards = stakingRewardBps + rewardRecipientsTotal;
113
- return totalRewards <= MAX_TOTAL_REWARDS;
145
+ // Check if the sum equals 100%
146
+ // Note: Team fee is deducted automatically from staking rewards on the backend
147
+ const totalRewards = stakingRewardPercentage + rewardRecipientsTotal;
148
+ return totalRewards === MAX_TOTAL_REWARDS_PERCENTAGE;
149
+ }, {
150
+ message: () => `Total rewards (staking reward + reward recipients) must equal 100%. Note: ${LEVR_TEAM_LP_FEE_PERCENTAGE}% Levr Protocol fee is automatically deducted from staking rewards.`,
151
+ }));
152
+ // ---
153
+ // Fee Splitter Configuration Schema
154
+ const LevrSplitConfig = Schema.Struct({
155
+ receiver: EthereumAddress.annotations({
156
+ description: "Receiver address for this split",
157
+ }),
158
+ percentage: Schema.Number.annotations({
159
+ description: "Percentage of fees (must total 100%)",
160
+ }),
161
+ }).annotations({
162
+ description: "Fee split configuration",
163
+ });
164
+ export const LevrFeeSplitterConfigSchema = Schema.Struct({
165
+ splits: Schema.Array(LevrSplitConfig).annotations({
166
+ description: "Fee split recipients and percentages. By default, the first receiver is the staking allocation.",
167
+ }),
168
+ }).pipe(Schema.filter((data) => {
169
+ const total = data.splits.reduce((sum, split) => sum + split.percentage, 0);
170
+ return total === 100;
171
+ }, {
172
+ message: () => "Total split percentages must equal 100%",
173
+ }), Schema.filter((data) => {
174
+ return data.splits.length > 0 && data.splits.length <= 10;
114
175
  }, {
115
- message: () => `Total rewards (staking reward + reward recipients) cannot exceed 100% (${MAX_TOTAL_REWARDS.toLocaleString()} basis points)`,
176
+ message: () => "Must have 1-10 fee receivers",
116
177
  }));
117
178
  //# sourceMappingURL=levr.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"levr.schema.js","sourceRoot":"","sources":["../../../src/schema/levr.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"levr.schema.js","sourceRoot":"","sources":["../../../src/schema/levr.schema.ts"],"names":[],"mappings":"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"}
package/dist/esm/stake.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { omit } from "lodash";
2
2
  import { encodeFunctionData, erc20Abi, parseUnits } from "viem";
3
- import { LevrForwarder_v1, LevrStaking_v1 } from "./abis/index.js";
3
+ import { LevrFeeSplitter_v1, LevrForwarder_v1, LevrStaking_v1 } from "./abis/index.js";
4
4
  import { WETH } from "./constants.js";
5
5
  export class Stake {
6
6
  wallet;
@@ -11,6 +11,7 @@ export class Stake {
11
11
  chainId;
12
12
  userAddress;
13
13
  trustedForwarder;
14
+ isFeeSplitterActive;
14
15
  constructor(config) {
15
16
  // Validate required fields only (not optional fields like trustedForwarder, pricing)
16
17
  if (Object.values(omit(config, ["pricing"])).some((value) => !value))
@@ -23,6 +24,7 @@ export class Stake {
23
24
  this.chainId = config.publicClient.chain?.id ?? 1; // Get chainId from publicClient
24
25
  this.userAddress = config.wallet.account.address;
25
26
  this.trustedForwarder = config.project.forwarder;
27
+ this.isFeeSplitterActive = config.project.feeSplitter?.isActive ?? false;
26
28
  }
27
29
  /**
28
30
  * Approve ERC20 tokens for spending by the staking contract
@@ -65,16 +67,48 @@ export class Stake {
65
67
  * @returns Transaction receipt with the new voting power after unstake
66
68
  */
67
69
  async unstake({ amount, to }) {
68
- const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
69
- const params = {
70
+ let parsedAmount;
71
+ if (typeof amount === "bigint") {
72
+ parsedAmount = amount;
73
+ }
74
+ else {
75
+ // Parse the amount
76
+ parsedAmount = parseUnits(amount.toString(), this.tokenDecimals);
77
+ }
78
+ // Get current staked balance to prevent rounding errors on 100% unstake
79
+ const currentStakedBalance = await this.publicClient.readContract({
80
+ address: this.stakingAddress,
81
+ abi: LevrStaking_v1,
82
+ functionName: "stakedBalanceOf",
83
+ args: [this.userAddress],
84
+ });
85
+ // If trying to unstake an amount very close to the total (within 0.01%), use exact balance
86
+ // This prevents "InsufficientStake" errors from floating-point rounding
87
+ const diff = parsedAmount > currentStakedBalance
88
+ ? parsedAmount - currentStakedBalance
89
+ : currentStakedBalance - parsedAmount;
90
+ const tolerance = currentStakedBalance / 10000n; // 0.01% tolerance
91
+ if (diff <= tolerance && parsedAmount >= (currentStakedBalance * 99n) / 100n) {
92
+ // User is trying to unstake ~100%, use exact balance to avoid rounding errors
93
+ parsedAmount = currentStakedBalance;
94
+ }
95
+ const simulateParams = {
70
96
  address: this.stakingAddress,
71
97
  abi: LevrStaking_v1,
72
98
  functionName: "unstake",
73
99
  args: [parsedAmount, to ?? this.userAddress],
100
+ account: this.userAddress,
74
101
  chain: this.wallet.chain,
75
102
  };
76
- const { result: newVotingPower } = await this.publicClient.simulateContract(params);
77
- const hash = await this.wallet.writeContract(params);
103
+ const { result: newVotingPower } = await this.publicClient.simulateContract(simulateParams);
104
+ // writeContract doesn't accept 'account' - it uses wallet.account automatically
105
+ const hash = await this.wallet.writeContract({
106
+ address: this.stakingAddress,
107
+ abi: LevrStaking_v1,
108
+ functionName: "unstake",
109
+ args: [parsedAmount, to ?? this.userAddress],
110
+ chain: this.wallet.chain,
111
+ });
78
112
  const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
79
113
  if (receipt.status === "reverted") {
80
114
  throw new Error("Unstake transaction reverted");
@@ -89,7 +123,7 @@ export class Stake {
89
123
  */
90
124
  async claimRewards(params) {
91
125
  // Default to claiming both staking token and WETH
92
- let defaultTokens = [this.tokenAddress];
126
+ const defaultTokens = [this.tokenAddress];
93
127
  const wethAddress = WETH(this.chainId)?.address;
94
128
  if (wethAddress) {
95
129
  defaultTokens.push(wethAddress);
@@ -108,7 +142,10 @@ export class Stake {
108
142
  return receipt;
109
143
  }
110
144
  /**
111
- * Accrue rewards by triggering automatic collection from LP locker and claiming from ClankerFeeLocker
145
+ * Accrue rewards by triggering manual accrual from balance delta detection
146
+ *
147
+ * NOTE: If fee splitter is configured, call distributeFromFeeSplitter() FIRST.
148
+ * The fee splitter transfers tokens to staking, then accrueRewards() detects the balance increase.
112
149
  */
113
150
  async accrueRewards(tokenAddress) {
114
151
  const hash = await this.wallet.writeContract({
@@ -124,24 +161,118 @@ export class Stake {
124
161
  }
125
162
  return receipt;
126
163
  }
164
+ /**
165
+ * Distribute fees from the fee splitter to all configured receivers (including staking)
166
+ *
167
+ * This should be called BEFORE accrueRewards() when fee splitter is configured.
168
+ * The fee splitter claims fees from LP locker and distributes them according to configured splits.
169
+ */
170
+ async distributeFromFeeSplitter(params) {
171
+ // Get the deployed fee splitter for THIS specific token
172
+ const { getFeeSplitter } = await import("./fee-splitter.js");
173
+ const feeSplitterAddress = await getFeeSplitter({
174
+ publicClient: this.publicClient,
175
+ clankerToken: this.tokenAddress,
176
+ chainId: this.chainId,
177
+ });
178
+ if (!feeSplitterAddress) {
179
+ throw new Error("Fee splitter not deployed for this token. Deploy it first.");
180
+ }
181
+ // Default to clanker token + WETH if tokens not provided
182
+ const wethAddress = WETH(this.chainId)?.address;
183
+ const defaultTokens = wethAddress ? [this.tokenAddress, wethAddress] : [this.tokenAddress];
184
+ const tokens = params?.tokens ?? defaultTokens;
185
+ const hash = await this.wallet.writeContract({
186
+ address: feeSplitterAddress, // Per-project splitter, not deployer!
187
+ abi: LevrFeeSplitter_v1,
188
+ functionName: "distributeBatch",
189
+ args: [tokens],
190
+ chain: this.wallet.chain,
191
+ });
192
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
193
+ if (receipt.status === "reverted") {
194
+ throw new Error("Distribute from fee splitter transaction reverted");
195
+ }
196
+ return receipt;
197
+ }
127
198
  /**
128
199
  * Accrue rewards for multiple tokens in a single transaction using forwarder multicall
200
+ *
201
+ * If fee splitter is configured and active, this will:
202
+ * 1. Call distribute() on fee splitter for each token
203
+ * 2. Fee splitter automatically calls accrueRewards() after distribution
204
+ *
205
+ * If fee splitter is NOT configured, this will:
206
+ * 1. Directly call accrueRewards() for each token on staking contract
207
+ *
208
+ * @param params.tokens - Array of token addresses to accrue (defaults to [clankerToken, WETH])
209
+ * @param params.useFeeSplitter - If true, uses fee splitter distribute (auto-detected if not provided)
129
210
  */
130
- async accrueAllRewards(tokenAddresses) {
211
+ async accrueAllRewards(params) {
131
212
  if (!this.trustedForwarder) {
132
213
  throw new Error("Trusted forwarder is required for multicall operations");
133
214
  }
134
- // Use forwarder's executeMulticall for meta-transaction support
135
- const calls = tokenAddresses.map((tokenAddress) => ({
136
- target: this.stakingAddress,
137
- allowFailure: false,
138
- value: 0n,
139
- callData: encodeFunctionData({
140
- abi: LevrStaking_v1,
141
- functionName: "accrueRewards",
142
- args: [tokenAddress],
143
- }),
144
- }));
215
+ // Default tokens: clankerToken + WETH (if available)
216
+ const defaultTokens = [this.tokenAddress];
217
+ const wethAddress = WETH(this.chainId)?.address;
218
+ if (wethAddress) {
219
+ defaultTokens.push(wethAddress);
220
+ }
221
+ const tokenAddresses = params?.tokens ?? defaultTokens;
222
+ // Detect if fee splitter should be used (can be overridden)
223
+ const useFeeSplitter = params?.useFeeSplitter ?? this._shouldUseFeeSplitter();
224
+ let calls;
225
+ if (useFeeSplitter) {
226
+ // Fee splitter mode: Get the deployed splitter for this token, then call distribute()
227
+ // The fee splitter will automatically call accrueRewards() after distributing
228
+ const { getFeeSplitter } = await import("./fee-splitter.js");
229
+ const feeSplitterAddress = await getFeeSplitter({
230
+ publicClient: this.publicClient,
231
+ clankerToken: this.tokenAddress,
232
+ chainId: this.chainId,
233
+ });
234
+ if (!feeSplitterAddress) {
235
+ throw new Error("Fee splitter not deployed for this token. Deploy it first or use useFeeSplitter: false");
236
+ }
237
+ // Call distribute() for each token (fee splitter's portion + auto-accrue)
238
+ const distributeCalls = tokenAddresses.map((tokenAddress) => ({
239
+ target: feeSplitterAddress, // Per-project splitter, not deployer!
240
+ allowFailure: false,
241
+ value: 0n,
242
+ callData: encodeFunctionData({
243
+ abi: LevrFeeSplitter_v1,
244
+ functionName: "distribute",
245
+ args: [tokenAddress],
246
+ }),
247
+ }));
248
+ // ALSO call accrueRewards() for each token (staking's direct portion from ClankerFeeLocker)
249
+ // This handles hybrid setups where staking receives fees both via splitter AND directly
250
+ const accrueCalls = tokenAddresses.map((tokenAddress) => ({
251
+ target: this.stakingAddress,
252
+ allowFailure: false,
253
+ value: 0n,
254
+ callData: encodeFunctionData({
255
+ abi: LevrStaking_v1,
256
+ functionName: "accrueRewards",
257
+ args: [tokenAddress],
258
+ }),
259
+ }));
260
+ // Execute both sets of calls in a single multicall transaction
261
+ calls = [...distributeCalls, ...accrueCalls];
262
+ }
263
+ else {
264
+ // Direct mode: Call accrueRewards() on staking contract
265
+ calls = tokenAddresses.map((tokenAddress) => ({
266
+ target: this.stakingAddress,
267
+ allowFailure: false,
268
+ value: 0n,
269
+ callData: encodeFunctionData({
270
+ abi: LevrStaking_v1,
271
+ functionName: "accrueRewards",
272
+ args: [tokenAddress],
273
+ }),
274
+ }));
275
+ }
145
276
  const hash = await this.wallet.writeContract({
146
277
  address: this.trustedForwarder,
147
278
  abi: LevrForwarder_v1,
@@ -155,6 +286,13 @@ export class Stake {
155
286
  }
156
287
  return receipt;
157
288
  }
289
+ /**
290
+ * Helper to detect if fee splitter should be used
291
+ * Returns true if fee splitter is configured and active for this project
292
+ */
293
+ _shouldUseFeeSplitter() {
294
+ return this.isFeeSplitterActive;
295
+ }
158
296
  /**
159
297
  * Simulate voting power after an unstake (without executing the transaction)
160
298
  * @param amount Amount to unstake
@@ -1 +1 @@
1
- {"version":3,"file":"stake.js","sourceRoot":"","sources":["../../src/stake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stake.js","sourceRoot":"","sources":["../../src/stake.ts"],"names":[],"mappings":"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"}