levr-sdk 0.3.1 → 0.4.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.
- package/dist/esm/abis/IClankerFeeLocker.js +215 -0
- package/dist/esm/abis/IClankerLpLockerFeeConversion.js +26 -0
- package/dist/esm/abis/LevrDeployer_v1.js +86 -0
- package/dist/esm/abis/LevrFactory_v1.js +603 -66
- package/dist/esm/abis/LevrFeeSplitter_v1.js +5 -58
- package/dist/esm/abis/LevrGovernor_v1.js +215 -14
- package/dist/esm/abis/LevrStakedToken_v1.js +15 -0
- package/dist/esm/abis/LevrStaking_v1.js +318 -63
- package/dist/esm/abis/LevrTreasury_v1.js +34 -38
- package/dist/esm/abis/index.js +2 -0
- package/dist/esm/airdrop.js +29 -14
- package/dist/esm/airdrop.js.map +1 -1
- package/dist/esm/build-calldatas-v4.js +2 -1
- package/dist/esm/build-calldatas-v4.js.map +1 -1
- package/dist/esm/build-clanker-v4.js +6 -1
- package/dist/esm/build-clanker-v4.js.map +1 -1
- package/dist/esm/client/hook/use-project.js +6 -3
- package/dist/esm/client/hook/use-project.js.map +1 -1
- package/dist/esm/client/hook/use-register.js +1 -1
- package/dist/esm/client/hook/use-stake.js +1 -1
- package/dist/esm/client/levr-provider.js +43 -72
- package/dist/esm/client/levr-provider.js.map +1 -1
- package/dist/esm/client/query-keys.js +1 -1
- package/dist/esm/client/query-keys.js.map +1 -1
- package/dist/esm/constants/clanker.js +84 -0
- package/dist/esm/constants/clanker.js.map +1 -0
- package/dist/esm/constants/config.js +71 -0
- package/dist/esm/constants/config.js.map +1 -0
- package/dist/esm/constants/index.js +52 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/constants/levr.js +34 -0
- package/dist/esm/constants/levr.js.map +1 -0
- package/dist/esm/constants/uniswap.js +86 -0
- package/dist/esm/constants/uniswap.js.map +1 -0
- package/dist/esm/deploy-v4.js +1 -1
- package/dist/esm/factory.js +84 -7
- package/dist/esm/factory.js.map +1 -1
- package/dist/esm/fee-receivers.js +1 -1
- package/dist/esm/fee-splitter.js +1 -1
- package/dist/esm/governance.js +4 -3
- package/dist/esm/governance.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/pool-key.js +1 -1
- package/dist/esm/pool.js +1 -1
- package/dist/esm/project.js +194 -55
- package/dist/esm/project.js.map +1 -1
- package/dist/esm/proposal.js +1 -0
- package/dist/esm/proposal.js.map +1 -1
- package/dist/esm/quote/v4.js +1 -1
- package/dist/esm/schema/levr.schema.js +37 -10
- package/dist/esm/schema/levr.schema.js.map +1 -1
- package/dist/esm/stake.js +137 -61
- package/dist/esm/stake.js.map +1 -1
- package/dist/esm/swap-v4.js +1 -1
- package/dist/esm/usd-price.js +1 -1
- package/dist/esm/user.js +13 -6
- package/dist/esm/user.js.map +1 -1
- package/dist/esm/util.js +58 -2
- package/dist/esm/util.js.map +1 -1
- package/dist/esm/vault.js +1 -1
- package/dist/types/abis/IClankerFeeLocker.d.ts +169 -0
- package/dist/types/abis/IClankerLpLockerFeeConversion.d.ts +20 -0
- package/dist/types/abis/LevrDeployer_v1.d.ts +67 -0
- package/dist/types/abis/LevrFactory_v1.d.ts +454 -39
- package/dist/types/abis/LevrFeeSplitter_v1.d.ts +4 -44
- package/dist/types/abis/LevrGovernor_v1.d.ts +172 -14
- package/dist/types/abis/LevrStakedToken_v1.d.ts +12 -0
- package/dist/types/abis/LevrStaking_v1.d.ts +258 -61
- package/dist/types/abis/LevrTreasury_v1.d.ts +29 -31
- package/dist/types/abis/index.d.ts +2 -0
- package/dist/types/airdrop.d.ts +2 -1
- package/dist/types/airdrop.d.ts.map +1 -1
- package/dist/types/build-calldatas-v4.d.ts +1 -0
- package/dist/types/build-calldatas-v4.d.ts.map +1 -1
- package/dist/types/build-clanker-v4.d.ts +2 -1
- package/dist/types/build-clanker-v4.d.ts.map +1 -1
- package/dist/types/client/hook/use-factory.d.ts +2 -0
- package/dist/types/client/hook/use-factory.d.ts.map +1 -1
- package/dist/types/client/hook/use-project.d.ts.map +1 -1
- package/dist/types/client/levr-provider.d.ts.map +1 -1
- package/dist/types/client/query-keys.d.ts +1 -1
- package/dist/types/client/query-keys.d.ts.map +1 -1
- package/dist/types/constants/clanker.d.ts +31 -0
- package/dist/types/constants/clanker.d.ts.map +1 -0
- package/dist/types/constants/config.d.ts +71 -0
- package/dist/types/constants/config.d.ts.map +1 -0
- package/dist/types/constants/index.d.ts +35 -0
- package/dist/types/constants/index.d.ts.map +1 -0
- package/dist/types/constants/levr.d.ts +17 -0
- package/dist/types/constants/levr.d.ts.map +1 -0
- package/dist/types/constants/uniswap.d.ts +37 -0
- package/dist/types/constants/uniswap.d.ts.map +1 -0
- package/dist/types/factory.d.ts +20 -3
- package/dist/types/factory.d.ts.map +1 -1
- package/dist/types/fee-receivers.d.ts +17 -177
- package/dist/types/fee-receivers.d.ts.map +1 -1
- package/dist/types/governance.d.ts +2 -0
- package/dist/types/governance.d.ts.map +1 -1
- package/dist/types/project.d.ts +17 -2
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/proposal.d.ts +344 -28
- package/dist/types/proposal.d.ts.map +1 -1
- package/dist/types/schema/levr.schema.d.ts +21 -0
- package/dist/types/schema/levr.schema.d.ts.map +1 -1
- package/dist/types/stake.d.ts +20 -34
- package/dist/types/stake.d.ts.map +1 -1
- package/dist/types/user.d.ts +813 -1
- package/dist/types/user.d.ts.map +1 -1
- package/dist/types/util.d.ts +4 -0
- package/dist/types/util.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/esm/constants.js +0 -300
- package/dist/esm/constants.js.map +0 -1
- package/dist/types/constants.d.ts +0 -177
- package/dist/types/constants.d.ts.map +0 -1
package/dist/types/stake.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TransactionReceipt } from 'viem';
|
|
2
2
|
import type { Project } from '.';
|
|
3
|
-
import type {
|
|
3
|
+
import type { PopPublicClient, PopWalletClient } from './types';
|
|
4
4
|
export type StakeConfig = {
|
|
5
5
|
wallet: PopWalletClient;
|
|
6
6
|
publicClient: PopPublicClient;
|
|
@@ -14,31 +14,6 @@ export type ClaimParams = {
|
|
|
14
14
|
tokens?: `0x${string}`[];
|
|
15
15
|
to?: `0x${string}`;
|
|
16
16
|
};
|
|
17
|
-
export type StakePoolData = {
|
|
18
|
-
totalStaked: BalanceResult;
|
|
19
|
-
escrowBalance: BalanceResult;
|
|
20
|
-
streamParams: {
|
|
21
|
-
windowSeconds: number;
|
|
22
|
-
streamStart: bigint;
|
|
23
|
-
streamEnd: bigint;
|
|
24
|
-
isActive: boolean;
|
|
25
|
-
};
|
|
26
|
-
rewardRatePerSecond: BalanceResult;
|
|
27
|
-
};
|
|
28
|
-
export type StakeUserData = {
|
|
29
|
-
stakedBalance: BalanceResult;
|
|
30
|
-
aprBps: {
|
|
31
|
-
raw: bigint;
|
|
32
|
-
percentage: number;
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
export type StakeOutstandingRewards = {
|
|
36
|
-
available: BalanceResult;
|
|
37
|
-
pending: BalanceResult;
|
|
38
|
-
};
|
|
39
|
-
export type StakeClaimableRewards = {
|
|
40
|
-
claimable: BalanceResult;
|
|
41
|
-
};
|
|
42
17
|
export type VotingPowerResult = {
|
|
43
18
|
tokenDays: bigint;
|
|
44
19
|
formatted: string;
|
|
@@ -48,6 +23,7 @@ export declare class Stake {
|
|
|
48
23
|
private publicClient;
|
|
49
24
|
private stakingAddress;
|
|
50
25
|
private tokenAddress;
|
|
26
|
+
private stakedTokenAddress;
|
|
51
27
|
private tokenDecimals;
|
|
52
28
|
private chainId;
|
|
53
29
|
private userAddress;
|
|
@@ -75,10 +51,18 @@ export declare class Stake {
|
|
|
75
51
|
*/
|
|
76
52
|
claimRewards(params: ClaimParams | void): Promise<TransactionReceipt>;
|
|
77
53
|
/**
|
|
78
|
-
* Accrue rewards
|
|
54
|
+
* Accrue rewards for a single token using forwarder multicall
|
|
55
|
+
*
|
|
56
|
+
* SECURITY FIX (External Audit 2): Fee collection now handled via SDK using executeMulticall
|
|
57
|
+
* This prevents arbitrary code execution risk from external contract calls in contracts
|
|
58
|
+
*
|
|
59
|
+
* Flow:
|
|
60
|
+
* 1. Call LP locker collectRewards() via forwarder.executeTransaction (wrapped external call)
|
|
61
|
+
* 2. Call fee locker claim() via forwarder.executeTransaction (wrapped external call)
|
|
62
|
+
* 3. If fee splitter: call distribute() (distributes to receivers including staking)
|
|
63
|
+
* 4. Call accrueRewards() on staking contract (detects balance increase)
|
|
79
64
|
*
|
|
80
|
-
*
|
|
81
|
-
* The fee splitter transfers tokens to staking, then accrueRewards() detects the balance increase.
|
|
65
|
+
* @param tokenAddress The reward token to accrue (defaults to clankerToken)
|
|
82
66
|
*/
|
|
83
67
|
accrueRewards(tokenAddress?: `0x${string}`): Promise<TransactionReceipt>;
|
|
84
68
|
/**
|
|
@@ -93,12 +77,14 @@ export declare class Stake {
|
|
|
93
77
|
/**
|
|
94
78
|
* Accrue rewards for multiple tokens in a single transaction using forwarder multicall
|
|
95
79
|
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* 2. Fee splitter automatically calls accrueRewards() after distribution
|
|
80
|
+
* SECURITY FIX (External Audit 2): Fee collection now handled via SDK using executeMulticall
|
|
81
|
+
* This prevents arbitrary code execution risk from external contract calls in contracts
|
|
99
82
|
*
|
|
100
|
-
*
|
|
101
|
-
* 1.
|
|
83
|
+
* Flow:
|
|
84
|
+
* 1. Call LP locker collectRewards() via factory.executeTransaction (wrapped external call)
|
|
85
|
+
* 2. Call fee locker claim() via factory.executeTransaction (wrapped external call)
|
|
86
|
+
* 3. If fee splitter: call distribute() (distributes to receivers including staking)
|
|
87
|
+
* 4. Call accrueRewards() on staking contract (detects balance increase)
|
|
102
88
|
*
|
|
103
89
|
* @param params.tokens - Array of token addresses to accrue (defaults to [clankerToken, WETH])
|
|
104
90
|
* @param params.useFeeSplitter - If true, uses fee splitter distribute (auto-detected if not provided)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stake.d.ts","sourceRoot":"","sources":["../../src/stake.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAG9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"stake.d.ts","sourceRoot":"","sources":["../../src/stake.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAG9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,CAAA;AAShC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/D,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,eAAe,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,CAAA;IACxB,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAe;IACxC,OAAO,CAAC,mBAAmB,CAAS;gBAExB,MAAM,EAAE,WAAW;IAgB/B;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuB5E;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuB1E;;;OAGG;IACG,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC;QACpD,OAAO,EAAE,kBAAkB,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;KACvB,CAAC;IAgEF;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyB3E;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,YAAY,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0B9E;;;;;OAKG;IACG,yBAAyB,CAAC,MAAM,CAAC,EAAE;QACvC,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmC/B;;;;;;;;;;;;;;OAcG;IACG,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAC9B,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,CAAA;QACxB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuJ/B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;OAIG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC;CAuB9B"}
|