levr-sdk 0.1.2 → 0.2.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.
- package/README.md +5 -4
- package/dist/esm/client/hook/index.js +5 -9
- package/dist/esm/client/hook/index.js.map +1 -1
- package/dist/esm/client/hook/use-airdrop.js +19 -0
- package/dist/esm/client/hook/use-airdrop.js.map +1 -0
- package/dist/esm/client/hook/use-clanker.js +1 -34
- package/dist/esm/client/hook/use-clanker.js.map +1 -1
- package/dist/esm/client/hook/use-governance.js +2 -2
- package/dist/esm/client/hook/use-governance.js.map +1 -1
- package/dist/esm/client/hook/use-project.js +30 -6
- package/dist/esm/client/hook/use-project.js.map +1 -1
- package/dist/esm/client/hook/use-swap.js +0 -2
- package/dist/esm/client/hook/use-swap.js.map +1 -1
- package/dist/esm/client/levr-provider.js +10 -7
- package/dist/esm/client/levr-provider.js.map +1 -1
- package/dist/esm/fee-receivers.js +35 -6
- package/dist/esm/fee-receivers.js.map +1 -1
- package/dist/esm/governance.js +3 -12
- package/dist/esm/governance.js.map +1 -1
- package/dist/esm/project.js +106 -63
- package/dist/esm/project.js.map +1 -1
- package/dist/esm/quote/index.js +2 -2
- package/dist/esm/quote/v4.js +142 -128
- package/dist/esm/quote/v4.js.map +1 -1
- package/dist/esm/stake.js +1 -1
- package/dist/esm/stake.js.map +1 -1
- package/dist/esm/treasury.js +70 -148
- package/dist/esm/treasury.js.map +1 -1
- package/dist/esm/usd-price.js +21 -4
- package/dist/esm/usd-price.js.map +1 -1
- package/dist/esm/user.js +1 -1
- package/dist/esm/user.js.map +1 -1
- package/dist/types/client/hook/index.d.ts +5 -12
- package/dist/types/client/hook/index.d.ts.map +1 -1
- package/dist/types/client/hook/use-airdrop.d.ts +11 -0
- package/dist/types/client/hook/use-airdrop.d.ts.map +1 -0
- package/dist/types/client/hook/use-clanker.d.ts +1 -18
- package/dist/types/client/hook/use-clanker.d.ts.map +1 -1
- package/dist/types/client/hook/use-governance.d.ts +2 -1
- package/dist/types/client/hook/use-governance.d.ts.map +1 -1
- package/dist/types/client/hook/use-project.d.ts +11 -1
- package/dist/types/client/hook/use-project.d.ts.map +1 -1
- package/dist/types/client/hook/use-swap.d.ts.map +1 -1
- package/dist/types/client/levr-provider.d.ts +3 -10
- package/dist/types/client/levr-provider.d.ts.map +1 -1
- package/dist/types/fee-receivers.d.ts +514 -0
- package/dist/types/fee-receivers.d.ts.map +1 -1
- package/dist/types/governance.d.ts +2 -5
- package/dist/types/governance.d.ts.map +1 -1
- package/dist/types/project.d.ts +25 -6
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/quote/index.d.ts +2 -2
- package/dist/types/quote/v4.d.ts +5 -7
- package/dist/types/quote/v4.d.ts.map +1 -1
- package/dist/types/treasury.d.ts +1 -7
- package/dist/types/treasury.d.ts.map +1 -1
- package/dist/types/usd-price.d.ts +6 -1
- package/dist/types/usd-price.d.ts.map +1 -1
- package/dist/types/user.d.ts +1 -1
- package/dist/types/user.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -149,7 +149,7 @@ const stake = new Stake({
|
|
|
149
149
|
})
|
|
150
150
|
|
|
151
151
|
// Approve and stake
|
|
152
|
-
await stake.approve(1000) // Or '1000' or
|
|
152
|
+
await stake.approve(1000) // Or '1000' or parseUnits('1000', projectData.token.decimals)
|
|
153
153
|
await stake.stake(1000)
|
|
154
154
|
|
|
155
155
|
// Governance operations
|
|
@@ -240,7 +240,7 @@ project?.stakingStats?.totalStaked // Total staked by all users
|
|
|
240
240
|
project?.stakingStats?.apr // APR percentages
|
|
241
241
|
|
|
242
242
|
// Use mutations - automatically refetches related data
|
|
243
|
-
stake.mutate(1000) // Or '1000' or
|
|
243
|
+
stake.mutate(1000) // Or '1000' or parseUnits('1000', project.token.decimals)
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
#### `useSwap()`
|
|
@@ -326,7 +326,7 @@ project?.governanceStats?.currentCycleId // Current cycle
|
|
|
326
326
|
project?.treasury // Treasury address
|
|
327
327
|
project?.governor // Governor address
|
|
328
328
|
project?.airdrop // Airdrop status
|
|
329
|
-
user?.votingPower // User's voting power
|
|
329
|
+
user?.votingPower // User's voting power in Token Days (string)
|
|
330
330
|
proposals?.proposals // List of proposals with vote receipts
|
|
331
331
|
|
|
332
332
|
// Use mutations
|
|
@@ -454,7 +454,7 @@ console.log(userData.balances.token.formatted) // "1000.0"
|
|
|
454
454
|
console.log(userData.balances.weth.formatted) // "5.5"
|
|
455
455
|
console.log(userData.staking.stakedBalance.formatted) // "500.0"
|
|
456
456
|
console.log(userData.staking.claimableRewards.staking.formatted) // "10.5"
|
|
457
|
-
console.log(userData.votingPower
|
|
457
|
+
console.log(userData.votingPower) // "15000" (Token Days as string)
|
|
458
458
|
```
|
|
459
459
|
|
|
460
460
|
#### `Stake` Class
|
|
@@ -618,6 +618,7 @@ const { priceUsd, tokenPerWeth, wethPerUsdc } = await getUsdPrice({
|
|
|
618
618
|
oraclePublicClient: mainnetClient, // For WETH/USDC price (auto-discovers best V3 pool)
|
|
619
619
|
quotePublicClient: testnetClient, // For token/WETH price (your chain)
|
|
620
620
|
tokenAddress: '0x...', // Token to price
|
|
621
|
+
tokenDecimals: 18, // Token decimals (required)
|
|
621
622
|
quoteFee: 3000, // Optional: Pool fee tier (default: 3000 = 0.3%)
|
|
622
623
|
})
|
|
623
624
|
|
|
@@ -19,9 +19,9 @@ export const usePool = () => useLevrContext().pool;
|
|
|
19
19
|
*/
|
|
20
20
|
export const useProposals = () => useLevrContext().proposals;
|
|
21
21
|
/**
|
|
22
|
-
* Hook to access
|
|
22
|
+
* Hook to access airdrop status from LevrProvider
|
|
23
23
|
*/
|
|
24
|
-
export const
|
|
24
|
+
export const useAirdropStatus = () => useLevrContext().airdropStatus;
|
|
25
25
|
// ========================================
|
|
26
26
|
// COMPLEX HOOKS (with mutations/callbacks)
|
|
27
27
|
// ========================================
|
|
@@ -31,17 +31,13 @@ export * from "./use-governance.js";
|
|
|
31
31
|
export * from "./use-stake.js";
|
|
32
32
|
export * from "./use-swap.js";
|
|
33
33
|
// ========================================
|
|
34
|
-
// INTERNAL HOOKS (used by LevrProvider)
|
|
35
|
-
// ========================================
|
|
36
|
-
export { usePoolQuery } from "./use-pool.js";
|
|
37
|
-
export { useProposalsQuery } from "./use-proposal.js";
|
|
38
|
-
export { useUserQuery } from "./use-user.js";
|
|
39
|
-
// ========================================
|
|
40
34
|
// OTHER HOOKS (not part of Levr context)
|
|
41
35
|
// ========================================
|
|
36
|
+
export * from "./use-airdrop.js";
|
|
42
37
|
export * from "./use-deploy.js";
|
|
38
|
+
export * from "./use-pool.js";
|
|
43
39
|
export * from "./use-prepare.js";
|
|
44
40
|
export * from "./use-project.js";
|
|
45
|
-
export
|
|
41
|
+
export * from "./use-proposal.js";
|
|
46
42
|
export * from "./use-register.js";
|
|
47
43
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/hook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,2CAA2C;AAC3C,+CAA+C;AAC/C,2CAA2C;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,CAAA;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/hook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,2CAA2C;AAC3C,+CAA+C;AAC/C,2CAA2C;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,CAAA;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,aAAa,CAAA;AAEpE,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAE3C,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,2CAA2C;AAC3C,yCAAyC;AACzC,2CAA2C;AAE3C,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { usePublicClient } from "wagmi";
|
|
4
|
+
import { getTreasuryAirdropStatus } from "../../treasury.js";
|
|
5
|
+
/**
|
|
6
|
+
* Hook to fetch airdrop status for a treasury
|
|
7
|
+
* This should be called separately from project data
|
|
8
|
+
*/
|
|
9
|
+
export function useAirdropStatusQuery({ project, enabled: e = true }) {
|
|
10
|
+
const publicClient = usePublicClient();
|
|
11
|
+
const chainId = publicClient?.chain?.id;
|
|
12
|
+
const enabled = !!publicClient && !!project && !!chainId && e;
|
|
13
|
+
return useQuery({
|
|
14
|
+
queryKey: ["airdrop-status", project?.token.address, chainId],
|
|
15
|
+
enabled,
|
|
16
|
+
queryFn: () => getTreasuryAirdropStatus(publicClient, project?.token.address, project?.treasury, project?.token.decimals, project?.pricing?.tokenUsd ? parseFloat(project?.pricing?.tokenUsd) : null),
|
|
17
|
+
staleTime: 30000, // 30 seconds cache
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-airdrop.js","sourceRoot":"","sources":["../../../../src/client/hook/use-airdrop.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAGvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAOzD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAA+B;IAC/F,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;IAEvC,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAA;IAE7D,OAAO,QAAQ,CAAuB;QACpC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7D,OAAO;QACP,OAAO,EAAE,GAAG,EAAE,CACZ,wBAAwB,CACtB,YAAa,EACb,OAAO,EAAE,KAAK,CAAC,OAAQ,EACvB,OAAO,EAAE,QAAS,EAClB,OAAO,EAAE,KAAK,CAAC,QAAS,EACxB,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3E;QACH,SAAS,EAAE,MAAM,EAAE,mBAAmB;KACvC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -2,44 +2,11 @@
|
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
3
|
import { Clanker } from "clanker-sdk/v4";
|
|
4
4
|
import { usePublicClient, useWalletClient } from "wagmi";
|
|
5
|
-
import { IClankerToken } from "../../abis/index.js";
|
|
6
5
|
import { queryKeys } from "../query-keys.js";
|
|
7
|
-
/**
|
|
8
|
-
* Internal: Creates clanker token metadata query
|
|
9
|
-
* Used by LevrProvider
|
|
10
|
-
*/
|
|
11
|
-
export function useClankerTokenQuery({ clankerToken, enabled: e = true, }) {
|
|
12
|
-
const publicClient = usePublicClient();
|
|
13
|
-
return useQuery({
|
|
14
|
-
queryKey: queryKeys.clankerToken(clankerToken),
|
|
15
|
-
queryFn: async () => {
|
|
16
|
-
const allData = await publicClient?.readContract({
|
|
17
|
-
address: clankerToken,
|
|
18
|
-
abi: IClankerToken,
|
|
19
|
-
functionName: "allData",
|
|
20
|
-
});
|
|
21
|
-
if (!allData)
|
|
22
|
-
return null;
|
|
23
|
-
const [originalAdmin, admin, image, metadata, context] = allData;
|
|
24
|
-
return {
|
|
25
|
-
originalAdmin,
|
|
26
|
-
admin,
|
|
27
|
-
image,
|
|
28
|
-
metadata,
|
|
29
|
-
context,
|
|
30
|
-
};
|
|
31
|
-
},
|
|
32
|
-
enabled: e && !!clankerToken && !!publicClient,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
// ========================================
|
|
36
|
-
// PUBLIC HOOK (exported from index.ts)
|
|
37
|
-
// ========================================
|
|
38
6
|
/**
|
|
39
7
|
* Hook to get Clanker SDK instance
|
|
40
|
-
* For token metadata, use useClankerToken() from index.ts
|
|
41
8
|
*/
|
|
42
|
-
export function useClanker(
|
|
9
|
+
export function useClanker() {
|
|
43
10
|
const publicClient = usePublicClient();
|
|
44
11
|
const { data: wallet } = useWalletClient();
|
|
45
12
|
return useQuery({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-clanker.js","sourceRoot":"","sources":["../../../../src/client/hook/use-clanker.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"use-clanker.js","sourceRoot":"","sources":["../../../../src/client/hook/use-clanker.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QAC7E,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC;gBACH,OAAO,IAAI,OAAO,CAAC,EAAE,YAAY,EAAE,YAAa,EAAE,MAAM,EAAE,MAAO,EAAE,CAAC,CAAA;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM;KACpC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -87,12 +87,12 @@ export function useGovernance({ proposalId, cycleId, userAddress, onProposeTrans
|
|
|
87
87
|
onError: onExecuteProposalError,
|
|
88
88
|
});
|
|
89
89
|
const claimAirdrop = useMutation({
|
|
90
|
-
mutationFn: async () => {
|
|
90
|
+
mutationFn: async (airdropStatus) => {
|
|
91
91
|
if (!governance)
|
|
92
92
|
throw new Error("Governance not initialized");
|
|
93
93
|
if (!wallet.data)
|
|
94
94
|
throw new Error("Wallet is not connected");
|
|
95
|
-
return await governance.claimAirdrop();
|
|
95
|
+
return await governance.claimAirdrop(airdropStatus);
|
|
96
96
|
},
|
|
97
97
|
onSuccess: async (receipt) => {
|
|
98
98
|
await refetch.afterAirdrop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-governance.js","sourceRoot":"","sources":["../../../../src/client/hook/use-governance.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAOxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"use-governance.js","sourceRoot":"","sources":["../../../../src/client/hook/use-governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,51 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
3
|
import { useAccount, usePublicClient } from "wagmi";
|
|
4
|
-
import { getProject, getProjects } from "../../project.js";
|
|
4
|
+
import { getProject, getProjects, getStaticProject } from "../../project.js";
|
|
5
5
|
import { queryKeys } from "../query-keys.js";
|
|
6
|
+
/**
|
|
7
|
+
* Internal: Fetches static project data that doesn't change frequently
|
|
8
|
+
* Only refetches when the token address changes
|
|
9
|
+
*/
|
|
10
|
+
export function useStaticProjectQuery({ clankerToken, enabled: e = true, }) {
|
|
11
|
+
const publicClient = usePublicClient();
|
|
12
|
+
const { address: userAddress } = useAccount();
|
|
13
|
+
const chainId = publicClient?.chain?.id;
|
|
14
|
+
const enabled = !!publicClient && !!clankerToken && !!chainId && e;
|
|
15
|
+
return useQuery({
|
|
16
|
+
queryKey: ["static-project", clankerToken, chainId],
|
|
17
|
+
enabled,
|
|
18
|
+
queryFn: () => getStaticProject({
|
|
19
|
+
publicClient: publicClient,
|
|
20
|
+
clankerToken: clankerToken,
|
|
21
|
+
userAddress, // Pass userAddress so areYouAnAdmin works out of the box
|
|
22
|
+
}),
|
|
23
|
+
staleTime: Infinity, // Static data never goes stale automatically
|
|
24
|
+
});
|
|
25
|
+
}
|
|
6
26
|
/**
|
|
7
27
|
* Internal: Creates project query with all logic
|
|
8
28
|
* Used by LevrProvider
|
|
29
|
+
* Fetches dynamic stats (treasury, staking, governance, pricing) using static data from useStaticProjectQuery
|
|
9
30
|
*/
|
|
10
31
|
export function useProjectQuery({ clankerToken, oraclePublicClient, enabled: e = true, }) {
|
|
11
32
|
const publicClient = usePublicClient();
|
|
12
|
-
const { address: userAddress } = useAccount();
|
|
13
33
|
const chainId = publicClient?.chain?.id;
|
|
14
|
-
|
|
34
|
+
// Fetch static data (only refetches when token changes)
|
|
35
|
+
const { data: staticProject } = useStaticProjectQuery({
|
|
36
|
+
clankerToken,
|
|
37
|
+
enabled: e,
|
|
38
|
+
});
|
|
39
|
+
const enabled = !!publicClient && !!clankerToken && !!chainId && !!staticProject && e;
|
|
15
40
|
return useQuery({
|
|
16
41
|
queryKey: queryKeys.project(clankerToken, chainId),
|
|
17
42
|
enabled,
|
|
18
43
|
queryFn: () => getProject({
|
|
19
44
|
publicClient: publicClient,
|
|
20
|
-
|
|
45
|
+
staticProject: staticProject,
|
|
21
46
|
oraclePublicClient: oraclePublicClient,
|
|
22
|
-
userAddress, // Pass userAddress so areYouAnAdmin works out of the box
|
|
23
47
|
}),
|
|
24
|
-
staleTime:
|
|
48
|
+
staleTime: 30000, // 30 seconds cache for dynamic data
|
|
25
49
|
});
|
|
26
50
|
}
|
|
27
51
|
export function useProjects({ enabled: e = true, offset, limit } = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-project.js","sourceRoot":"","sources":["../../../../src/client/hook/use-project.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAGnD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"use-project.js","sourceRoot":"","sources":["../../../../src/client/hook/use-project.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAGnD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAOzC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,YAAY,EACZ,OAAO,EAAE,CAAC,GAAG,IAAI,GACW;IAC5B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAA;IAC7C,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;IAEvC,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAA;IAElE,OAAO,QAAQ,CAAuB;QACpC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC;QACnD,OAAO;QACP,OAAO,EAAE,GAAG,EAAE,CACZ,gBAAgB,CAAC;YACf,YAAY,EAAE,YAAa;YAC3B,YAAY,EAAE,YAAa;YAC3B,WAAW,EAAE,yDAAyD;SACvE,CAAC;QACJ,SAAS,EAAE,QAAQ,EAAE,6CAA6C;KACnE,CAAC,CAAA;AACJ,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,YAAY,EACZ,kBAAkB,EAClB,OAAO,EAAE,CAAC,GAAG,IAAI,GACK;IACtB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;IAEvC,wDAAwD;IACxD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC;QACpD,YAAY;QACZ,OAAO,EAAE,CAAC;KACX,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAA;IAErF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,YAAa,EAAE,OAAQ,CAAC;QACpD,OAAO;QACP,OAAO,EAAE,GAAG,EAAE,CACZ,UAAU,CAAC;YACT,YAAY,EAAE,YAAa;YAC3B,aAAa,EAAE,aAAc;YAC7B,kBAAkB,EAAE,kBAAkB;SACvC,CAAC;QACJ,SAAS,EAAE,MAAM,EAAE,oCAAoC;KACxD,CAAC,CAAA;AACJ,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,KAAwB,EAAE;IACtF,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,CAAC,EAAE,CAAA;IAEtC,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAA;IAEhD,OAAO,QAAQ,CAAiB;QAC9B,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;QAC9C,OAAO;QACP,OAAO,EAAE,GAAG,EAAE,CACZ,WAAW,CAAC;YACV,YAAY,EAAE,YAAa;YAC3B,MAAM;YACN,KAAK;SACN,CAAC;QACJ,SAAS,EAAE,MAAM;KAClB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -37,10 +37,8 @@ export function useSwap({ quoteParams, onApproveERC20Success, onApproveERC20Erro
|
|
|
37
37
|
zeroForOne: quoteParams.zeroForOne,
|
|
38
38
|
amountIn: amountInBigInt,
|
|
39
39
|
hookData: quoteParams.hookData,
|
|
40
|
-
pricing: project.data?.pricing,
|
|
41
40
|
currency0Decimals,
|
|
42
41
|
currency1Decimals,
|
|
43
|
-
tokenAddress: project.data?.token.address,
|
|
44
42
|
});
|
|
45
43
|
return {
|
|
46
44
|
...result,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-swap.js","sourceRoot":"","sources":["../../../../src/client/hook/use-swap.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AA+BzC;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,EACb,WAAW,MACM,EAAE;IACnB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAA;IACzD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;IAEvC,oCAAoC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAA;IAE3C,wBAAwB;IACxB,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAC5B,OAAO,EACP,OAAO,EACP,WAAW,EAAE,UAAU,EACvB,WAAW,EAAE,QAAQ,EACrB,WAAW,EAAE,gBAAgB,CAC9B;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,cAAc,GAAG,UAAU,CAAC,WAAY,CAAC,QAAQ,EAAE,WAAY,CAAC,gBAAgB,CAAC,CAAA;YAEvF,yEAAyE;YACzE,MAAM,iBAAiB,GACrB,OAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC5E,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,CAAC,CAAC,EAAE,CAAA,CAAC,gBAAgB;YACzB,MAAM,iBAAiB,GACrB,OAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC5E,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,CAAC,CAAC,EAAE,CAAA,CAAC,gBAAgB;YAEzB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;gBACpC,YAAY,EAAE,YAAa;gBAC3B,OAAO,EAAE,OAAQ;gBACjB,UAAU,EAAE,WAAY,CAAC,UAAU;gBACnC,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE,WAAY,CAAC,QAAQ;gBAC/B,
|
|
1
|
+
{"version":3,"file":"use-swap.js","sourceRoot":"","sources":["../../../../src/client/hook/use-swap.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import React, { createContext, useContext, useEffect, useMemo } from "react";
|
|
|
5
5
|
import { base } from "viem/chains";
|
|
6
6
|
import { useAccount, useChainId } from "wagmi";
|
|
7
7
|
import { getPublicClient } from "../util.js";
|
|
8
|
-
import {
|
|
8
|
+
import { useAirdropStatusQuery } from "./index.js";
|
|
9
9
|
import { usePoolQuery } from "./hook/use-pool.js";
|
|
10
10
|
import { useProjectQuery } from "./hook/use-project.js";
|
|
11
11
|
import { useProposalsQuery } from "./hook/use-proposal.js";
|
|
@@ -28,7 +28,7 @@ export function LevrProvider({ children, enabled = true, oracleChainId = base.id
|
|
|
28
28
|
// USE INTERNAL QUERY HOOKS
|
|
29
29
|
// ========================================
|
|
30
30
|
const project = useProjectQuery({ clankerToken, oraclePublicClient, enabled });
|
|
31
|
-
const
|
|
31
|
+
const airdropStatus = useAirdropStatusQuery({ project: project.data, enabled });
|
|
32
32
|
const userQuery = useUserQuery({ project: project.data, enabled });
|
|
33
33
|
const poolQuery = usePoolQuery({ project: project.data, enabled });
|
|
34
34
|
const proposalsQuery = useProposalsQuery({
|
|
@@ -60,6 +60,7 @@ export function LevrProvider({ children, enabled = true, oracleChainId = base.id
|
|
|
60
60
|
await Promise.all([
|
|
61
61
|
userQuery.refetch(), // Balances changed
|
|
62
62
|
poolQuery.refetch(), // Pool state changed (price impact)
|
|
63
|
+
project.refetch(), // Staking stats might have changed
|
|
63
64
|
]);
|
|
64
65
|
},
|
|
65
66
|
afterStake: async () => {
|
|
@@ -98,13 +99,15 @@ export function LevrProvider({ children, enabled = true, oracleChainId = base.id
|
|
|
98
99
|
await Promise.all([
|
|
99
100
|
project.refetch(), // Treasury changed + currentCycleId (new cycle starts)
|
|
100
101
|
proposalsQuery.refetch(), // Proposal executed
|
|
101
|
-
userQuery.refetch(), // Staking rewards might have changed (if boost)
|
|
102
102
|
]);
|
|
103
103
|
},
|
|
104
104
|
afterAirdrop: async () => {
|
|
105
|
-
await
|
|
105
|
+
await Promise.all([
|
|
106
|
+
project.refetch(), // Treasury changed
|
|
107
|
+
airdropStatus.refetch(), // Treasury balance, airdrop status changed
|
|
108
|
+
]);
|
|
106
109
|
},
|
|
107
|
-
}), [queryClient, project, userQuery, poolQuery, proposalsQuery]);
|
|
110
|
+
}), [queryClient, project, userQuery, poolQuery, proposalsQuery, airdropStatus]);
|
|
108
111
|
// Auto-refetch on wallet/chain change
|
|
109
112
|
useEffect(() => {
|
|
110
113
|
if (enabled) {
|
|
@@ -121,7 +124,7 @@ export function LevrProvider({ children, enabled = true, oracleChainId = base.id
|
|
|
121
124
|
project,
|
|
122
125
|
pool: poolQuery,
|
|
123
126
|
proposals: proposalsQuery,
|
|
124
|
-
|
|
127
|
+
airdropStatus,
|
|
125
128
|
// Refetch methods
|
|
126
129
|
refetch: refetchMethods,
|
|
127
130
|
}), [
|
|
@@ -133,7 +136,7 @@ export function LevrProvider({ children, enabled = true, oracleChainId = base.id
|
|
|
133
136
|
project,
|
|
134
137
|
poolQuery,
|
|
135
138
|
proposalsQuery,
|
|
136
|
-
|
|
139
|
+
airdropStatus,
|
|
137
140
|
refetchMethods,
|
|
138
141
|
]);
|
|
139
142
|
return _jsx(LevrContext.Provider, { value: contextValue, children: children });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"levr-provider.js","sourceRoot":"","sources":["../../../src/client/levr-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE5E,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"levr-provider.js","sourceRoot":"","sources":["../../../src/client/levr-provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,52 @@
|
|
|
1
1
|
import { IClankerLpLockerMultiple } from "./abis/index.js";
|
|
2
2
|
import { GET_LP_LOCKER_ADDRESS } from "./constants.js";
|
|
3
3
|
/**
|
|
4
|
-
* Get tokenRewards from LP locker
|
|
4
|
+
* Get tokenRewards from LP locker by reading the contract
|
|
5
5
|
* Returns pool info and fee receiver data
|
|
6
6
|
*/
|
|
7
|
-
export async
|
|
8
|
-
|
|
7
|
+
export const tokenRewardsRead = async (params) => {
|
|
8
|
+
if (!params.publicClient) {
|
|
9
|
+
throw new Error("publicClient is required for read method");
|
|
10
|
+
}
|
|
11
|
+
const chainId = params.publicClient.chain?.id;
|
|
9
12
|
if (!chainId)
|
|
10
13
|
throw new Error("Chain ID not found on public client");
|
|
11
14
|
const lpLockerAddress = GET_LP_LOCKER_ADDRESS(chainId);
|
|
12
15
|
if (!lpLockerAddress) {
|
|
13
16
|
throw new Error("LP locker address not found for chain");
|
|
14
17
|
}
|
|
15
|
-
return await publicClient.readContract({
|
|
18
|
+
return await params.publicClient.readContract({
|
|
16
19
|
address: lpLockerAddress,
|
|
17
20
|
abi: IClankerLpLockerMultiple,
|
|
18
21
|
functionName: "tokenRewards",
|
|
19
|
-
args: [clankerToken],
|
|
22
|
+
args: [params.clankerToken],
|
|
20
23
|
});
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Get fee receiver contract calls for multicall
|
|
27
|
+
* Returns contract call to fetch tokenRewards from LP locker
|
|
28
|
+
*/
|
|
29
|
+
export function getFeeReceiverContracts(clankerToken, chainId) {
|
|
30
|
+
const lpLockerAddress = GET_LP_LOCKER_ADDRESS(chainId);
|
|
31
|
+
if (!lpLockerAddress) {
|
|
32
|
+
throw new Error("LP locker address not found for chain");
|
|
33
|
+
}
|
|
34
|
+
return [
|
|
35
|
+
{
|
|
36
|
+
address: lpLockerAddress,
|
|
37
|
+
abi: IClankerLpLockerMultiple,
|
|
38
|
+
functionName: "tokenRewards",
|
|
39
|
+
args: [clankerToken],
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated Use tokenRewardsRead() instead
|
|
45
|
+
* Get tokenRewards from LP locker (shared utility)
|
|
46
|
+
* Returns pool info and fee receiver data
|
|
47
|
+
*/
|
|
48
|
+
export async function getTokenRewards(publicClient, clankerToken) {
|
|
49
|
+
return tokenRewardsRead({ publicClient, clankerToken });
|
|
21
50
|
}
|
|
22
51
|
/**
|
|
23
52
|
* Parse fee receivers from tokenRewards result
|
|
@@ -41,7 +70,7 @@ export async function feeReceivers({ publicClient, clankerToken, userAddress, })
|
|
|
41
70
|
if (Object.values({ publicClient, clankerToken }).some((value) => !value)) {
|
|
42
71
|
throw new Error("Invalid fee receivers params");
|
|
43
72
|
}
|
|
44
|
-
const tokenRewards = await
|
|
73
|
+
const tokenRewards = await tokenRewardsRead({ publicClient, clankerToken });
|
|
45
74
|
return parseFeeReceivers(tokenRewards, userAddress);
|
|
46
75
|
}
|
|
47
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee-receivers.js","sourceRoot":"","sources":["../../src/fee-receivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"fee-receivers.js","sourceRoot":"","sources":["../../src/fee-receivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AA8BnD;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAA0B,EAAE,EAAE;IACnE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAA;IAC7C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAEpE,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACtD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;QAC5C,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,wBAAwB;QAC7B,YAAY,EAAE,cAAc;QAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;KAC5B,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAA2B,EAAE,OAAe;IAClF,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACtD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO;QACL;YACE,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,wBAAwB;YAC7B,YAAY,EAAE,cAAuB;YACrC,IAAI,EAAE,CAAC,YAAY,CAAC;SACrB;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,YAA6B,EAAE,YAA2B;IAC9F,OAAO,gBAAgB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,kBAIC,EACD,WAA2B;IAE3B,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,IAAI,EAAE,CAAA;IACpD,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,IAAI,EAAE,CAAA;IAC5D,MAAM,GAAG,GAAG,kBAAkB,CAAC,SAAS,IAAI,EAAE,CAAA;IAE9C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK;QACtF,KAAK;QACL,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC;QAC5B,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,4BAA4B;KAC3D,CAAC,CAAC,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,YAAY,EACZ,YAAY,EACZ,WAAW,GACQ;IACnB,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;IAC3E,OAAO,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,YAAY,GACY;IACxB,IACE,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAC5F,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACtD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;QAC5C,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,wBAAwB;QAC7B,YAAY,EAAE,uBAAuB;QACrC,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;KAClD,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/esm/governance.js
CHANGED
|
@@ -148,21 +148,12 @@ export class Governance {
|
|
|
148
148
|
args: [parsedProposalId, voterAddress],
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
|
-
|
|
152
|
-
* Claim airdrop for treasury
|
|
153
|
-
* Uses airdrop data from project that was already fetched
|
|
154
|
-
*/
|
|
155
|
-
async claimAirdrop() {
|
|
151
|
+
async claimAirdrop(airdropStatus) {
|
|
156
152
|
const chainId = this.publicClient.chain?.id;
|
|
157
153
|
const airdropAddress = GET_CLANKER_AIRDROP_ADDRESS(chainId);
|
|
158
154
|
if (!airdropAddress) {
|
|
159
155
|
throw new Error(`No airdrop address found for chain ID ${chainId}`);
|
|
160
156
|
}
|
|
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
157
|
if (airdropStatus.error) {
|
|
167
158
|
throw new Error(airdropStatus.error);
|
|
168
159
|
}
|
|
@@ -177,13 +168,13 @@ export class Governance {
|
|
|
177
168
|
this.project.token.address,
|
|
178
169
|
this.project.treasury,
|
|
179
170
|
airdropStatus.allocatedAmount.raw,
|
|
180
|
-
|
|
171
|
+
airdropStatus.proof,
|
|
181
172
|
],
|
|
182
173
|
chain: this.wallet.chain,
|
|
183
174
|
});
|
|
184
175
|
const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
|
|
185
176
|
if (receipt.status === "reverted") {
|
|
186
|
-
throw new Error(
|
|
177
|
+
throw new Error(`Claim airdrop transaction reverted: ${hash}`);
|
|
187
178
|
}
|
|
188
179
|
return receipt;
|
|
189
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAGjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"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"}
|