levr-sdk 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -13
- package/dist/esm/abis/LevrFactory_v1.js +63 -0
- package/dist/esm/abis/LevrGovernor_v1.js +15 -24
- package/dist/esm/abis/LevrStaking_v1.js +7 -1
- package/dist/esm/abis/StateView.js +149 -0
- package/dist/esm/abis/V3QuoterV2.js +26 -0
- package/dist/esm/abis/index.js +4 -0
- package/dist/esm/balance.js +48 -4
- package/dist/esm/balance.js.map +1 -1
- package/dist/esm/client/hook/index.js +14 -3
- package/dist/esm/client/hook/index.js.map +1 -1
- package/dist/esm/client/hook/use-fee-receivers.js +11 -30
- package/dist/esm/client/hook/use-fee-receivers.js.map +1 -1
- package/dist/esm/client/hook/use-governance.js +20 -274
- package/dist/esm/client/hook/use-governance.js.map +1 -1
- package/dist/esm/client/hook/use-pool.js +26 -0
- package/dist/esm/client/hook/use-pool.js.map +1 -0
- package/dist/esm/client/hook/use-prepare.js +6 -3
- package/dist/esm/client/hook/use-prepare.js.map +1 -1
- package/dist/esm/client/hook/use-project.js +28 -16
- package/dist/esm/client/hook/use-project.js.map +1 -1
- package/dist/esm/client/hook/use-proposal.js +48 -0
- package/dist/esm/client/hook/use-proposal.js.map +1 -0
- package/dist/esm/client/hook/use-stake.js +29 -215
- package/dist/esm/client/hook/use-stake.js.map +1 -1
- package/dist/esm/client/hook/use-swap.js +23 -19
- package/dist/esm/client/hook/use-swap.js.map +1 -1
- package/dist/esm/client/hook/use-user.js +25 -0
- package/dist/esm/client/hook/use-user.js.map +1 -0
- package/dist/esm/client/levr-provider.js +73 -108
- package/dist/esm/client/levr-provider.js.map +1 -1
- package/dist/esm/client/query-keys.js +10 -22
- package/dist/esm/client/query-keys.js.map +1 -1
- package/dist/esm/constants.js +42 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/fee-receivers.js +28 -13
- package/dist/esm/fee-receivers.js.map +1 -1
- package/dist/esm/governance.js +35 -399
- package/dist/esm/governance.js.map +1 -1
- package/dist/esm/index.js +7 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pool-key.js +152 -0
- package/dist/esm/pool-key.js.map +1 -0
- package/dist/esm/pool.js +70 -0
- package/dist/esm/pool.js.map +1 -0
- package/dist/esm/project.js +415 -118
- package/dist/esm/project.js.map +1 -1
- package/dist/esm/proposal.js +156 -0
- package/dist/esm/proposal.js.map +1 -0
- package/dist/esm/quote/index.js +98 -0
- package/dist/esm/quote/index.js.map +1 -0
- package/dist/esm/quote/v3.js +62 -0
- package/dist/esm/quote/v3.js.map +1 -0
- package/dist/esm/quote/v4.js +228 -0
- package/dist/esm/quote/v4.js.map +1 -0
- package/dist/esm/stake.js +34 -237
- package/dist/esm/stake.js.map +1 -1
- package/dist/esm/treasury.js +162 -0
- package/dist/esm/treasury.js.map +1 -0
- package/dist/esm/usd-price.js +149 -0
- package/dist/esm/usd-price.js.map +1 -0
- package/dist/esm/user.js +153 -0
- package/dist/esm/user.js.map +1 -0
- package/dist/esm/util.js +45 -1
- package/dist/esm/util.js.map +1 -1
- package/dist/types/abis/LevrFactory_v1.d.ts +48 -0
- package/dist/types/abis/LevrGovernor_v1.d.ts +12 -18
- package/dist/types/abis/LevrStaking_v1.d.ts +5 -1
- package/dist/types/abis/StateView.d.ts +278 -0
- package/dist/types/abis/V3QuoterV2.d.ts +39 -0
- package/dist/types/abis/index.d.ts +2 -0
- package/dist/types/balance.d.ts +19 -6
- package/dist/types/balance.d.ts.map +1 -1
- package/dist/types/client/hook/index.d.ts +12 -4
- package/dist/types/client/hook/index.d.ts.map +1 -1
- package/dist/types/client/hook/use-fee-receivers.d.ts +6 -16
- package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -1
- package/dist/types/client/hook/use-governance.d.ts +4 -93
- package/dist/types/client/hook/use-governance.d.ts.map +1 -1
- package/dist/types/client/hook/use-pool.d.ts +12 -0
- package/dist/types/client/hook/use-pool.d.ts.map +1 -0
- package/dist/types/client/hook/use-prepare.d.ts +1 -2
- package/dist/types/client/hook/use-prepare.d.ts.map +1 -1
- package/dist/types/client/hook/use-project.d.ts +8 -1
- package/dist/types/client/hook/use-project.d.ts.map +1 -1
- package/dist/types/client/hook/use-proposal.d.ts +18 -0
- package/dist/types/client/hook/use-proposal.d.ts.map +1 -0
- package/dist/types/client/hook/use-stake.d.ts +14 -168
- package/dist/types/client/hook/use-stake.d.ts.map +1 -1
- package/dist/types/client/hook/use-swap.d.ts +5 -9
- package/dist/types/client/hook/use-swap.d.ts.map +1 -1
- package/dist/types/client/hook/use-user.d.ts +13 -0
- package/dist/types/client/hook/use-user.d.ts.map +1 -0
- package/dist/types/client/levr-provider.d.ts +41 -68
- package/dist/types/client/levr-provider.d.ts.map +1 -1
- package/dist/types/client/query-keys.d.ts +14 -26
- package/dist/types/client/query-keys.d.ts.map +1 -1
- package/dist/types/constants.d.ts +18 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/fee-receivers.d.ts +29 -2
- package/dist/types/fee-receivers.d.ts.map +1 -1
- package/dist/types/governance.d.ts +8 -108
- package/dist/types/governance.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/pool-key.d.ts +121 -0
- package/dist/types/pool-key.d.ts.map +1 -0
- package/dist/types/pool.d.ts +590 -0
- package/dist/types/pool.d.ts.map +1 -0
- package/dist/types/project.d.ts +61 -11
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/proposal.d.ts +1161 -0
- package/dist/types/proposal.d.ts.map +1 -0
- package/dist/types/quote/index.d.ts +97 -0
- package/dist/types/quote/index.d.ts.map +1 -0
- package/dist/types/quote/v3.d.ts +78 -0
- package/dist/types/quote/v3.d.ts.map +1 -0
- package/dist/types/quote/v4.d.ts +95 -0
- package/dist/types/quote/v4.d.ts.map +1 -0
- package/dist/types/stake.d.ts +41 -87
- package/dist/types/stake.d.ts.map +1 -1
- package/dist/types/treasury.d.ts +16 -0
- package/dist/types/treasury.d.ts.map +1 -0
- package/dist/types/types.d.ts +15 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/usd-price.d.ts +141 -0
- package/dist/types/usd-price.d.ts.map +1 -0
- package/dist/types/user.d.ts +188 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/util.d.ts +17 -0
- package/dist/types/util.d.ts.map +1 -1
- package/package.json +5 -2
- package/dist/esm/client/hook/use-balance.js +0 -56
- package/dist/esm/client/hook/use-balance.js.map +0 -1
- package/dist/esm/client/hook/use-projects.js +0 -22
- package/dist/esm/client/hook/use-projects.js.map +0 -1
- package/dist/esm/client/hook/use-proposals.js +0 -31
- package/dist/esm/client/hook/use-proposals.js.map +0 -1
- package/dist/esm/projects.js +0 -212
- package/dist/esm/projects.js.map +0 -1
- package/dist/esm/proposals.js +0 -98
- package/dist/esm/proposals.js.map +0 -1
- package/dist/esm/quote-v4.js +0 -169
- package/dist/esm/quote-v4.js.map +0 -1
- package/dist/types/client/hook/use-balance.d.ts +0 -18
- package/dist/types/client/hook/use-balance.d.ts.map +0 -1
- package/dist/types/client/hook/use-projects.d.ts +0 -6
- package/dist/types/client/hook/use-projects.d.ts.map +0 -1
- package/dist/types/client/hook/use-proposals.d.ts +0 -16
- package/dist/types/client/hook/use-proposals.d.ts.map +0 -1
- package/dist/types/projects.d.ts +0 -20
- package/dist/types/projects.d.ts.map +0 -1
- package/dist/types/proposals.d.ts +0 -20
- package/dist/types/proposals.d.ts.map +0 -1
- package/dist/types/quote-v4.d.ts +0 -54
- package/dist/types/quote-v4.d.ts.map +0 -1
package/dist/esm/proposals.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { formatUnits } from "viem";
|
|
2
|
-
import { LevrGovernor_v1 } from "./abis/index.js";
|
|
3
|
-
const proposalCreatedEvent = LevrGovernor_v1.find((item) => item.type === "event" && item.name === "ProposalCreated");
|
|
4
|
-
/**
|
|
5
|
-
* Get multiple proposals data from governor contract
|
|
6
|
-
*/
|
|
7
|
-
export async function proposals({ publicClient, governorAddress, tokenDecimals = 18, fromBlock, toBlock = "latest", pageSize = 50, }) {
|
|
8
|
-
if (Object.values({ publicClient, governorAddress }).some((value) => !value)) {
|
|
9
|
-
throw new Error("Invalid proposals params");
|
|
10
|
-
}
|
|
11
|
-
// Determine block range
|
|
12
|
-
const latestBlock = await publicClient.getBlockNumber();
|
|
13
|
-
const from = fromBlock ?? latestBlock - latestBlock / 10n; // Default to last 10% of blocks
|
|
14
|
-
const to = toBlock === "latest" ? latestBlock : toBlock;
|
|
15
|
-
// Fetch ProposalCreated events - indexed events are efficient even across large ranges
|
|
16
|
-
const allLogs = (await publicClient.getLogs({
|
|
17
|
-
address: governorAddress,
|
|
18
|
-
event: proposalCreatedEvent,
|
|
19
|
-
fromBlock: from,
|
|
20
|
-
toBlock: to,
|
|
21
|
-
}));
|
|
22
|
-
// Sort by block number descending (most recent first)
|
|
23
|
-
const logs = allLogs.sort((a, b) => {
|
|
24
|
-
if (a.blockNumber > b.blockNumber)
|
|
25
|
-
return -1;
|
|
26
|
-
if (a.blockNumber < b.blockNumber)
|
|
27
|
-
return 1;
|
|
28
|
-
return 0;
|
|
29
|
-
});
|
|
30
|
-
// Limit to pageSize
|
|
31
|
-
const limitedLogs = logs.slice(0, pageSize);
|
|
32
|
-
if (limitedLogs.length === 0) {
|
|
33
|
-
return {
|
|
34
|
-
proposals: [],
|
|
35
|
-
fromBlock: from,
|
|
36
|
-
toBlock: to,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
// Extract proposal IDs from events
|
|
40
|
-
const proposalIds = limitedLogs.map((log) => log.args.proposalId);
|
|
41
|
-
// Batch fetch all proposal details
|
|
42
|
-
const contracts = proposalIds.map((proposalId) => ({
|
|
43
|
-
address: governorAddress,
|
|
44
|
-
abi: LevrGovernor_v1,
|
|
45
|
-
functionName: "getProposal",
|
|
46
|
-
args: [proposalId],
|
|
47
|
-
}));
|
|
48
|
-
const results = await publicClient.multicall({ contracts });
|
|
49
|
-
// Parse results into FormattedProposalDetails objects
|
|
50
|
-
const proposals = [];
|
|
51
|
-
for (let i = 0; i < proposalIds.length; i++) {
|
|
52
|
-
const result = results[i].result;
|
|
53
|
-
// Skip if proposal data is invalid
|
|
54
|
-
if (!result) {
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
proposals.push({
|
|
58
|
-
id: result.id,
|
|
59
|
-
proposalType: result.proposalType,
|
|
60
|
-
proposer: result.proposer,
|
|
61
|
-
amount: {
|
|
62
|
-
raw: result.amount,
|
|
63
|
-
formatted: formatUnits(result.amount, tokenDecimals),
|
|
64
|
-
},
|
|
65
|
-
recipient: result.recipient,
|
|
66
|
-
description: result.description,
|
|
67
|
-
createdAt: {
|
|
68
|
-
timestamp: result.createdAt,
|
|
69
|
-
date: new Date(Number(result.createdAt) * 1000),
|
|
70
|
-
},
|
|
71
|
-
votingStartsAt: {
|
|
72
|
-
timestamp: result.votingStartsAt,
|
|
73
|
-
date: new Date(Number(result.votingStartsAt) * 1000),
|
|
74
|
-
},
|
|
75
|
-
votingEndsAt: {
|
|
76
|
-
timestamp: result.votingEndsAt,
|
|
77
|
-
date: new Date(Number(result.votingEndsAt) * 1000),
|
|
78
|
-
},
|
|
79
|
-
yesVotes: {
|
|
80
|
-
raw: result.yesVotes,
|
|
81
|
-
formatted: formatUnits(result.yesVotes, tokenDecimals),
|
|
82
|
-
},
|
|
83
|
-
noVotes: {
|
|
84
|
-
raw: result.noVotes,
|
|
85
|
-
formatted: formatUnits(result.noVotes, tokenDecimals),
|
|
86
|
-
},
|
|
87
|
-
totalBalanceVoted: result.totalBalanceVoted,
|
|
88
|
-
executed: result.executed,
|
|
89
|
-
cycleId: result.cycleId,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
proposals,
|
|
94
|
-
fromBlock: from,
|
|
95
|
-
toBlock: to,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=proposals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proposals.js","sourceRoot":"","sources":["../../src/proposals.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/quote-v4.js
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { encodeAbiParameters, keccak256 } from "viem";
|
|
2
|
-
import { IClankerHookDynamicFee, IClankerHookStaticFee, V4Quoter } from "./abis/index.js";
|
|
3
|
-
import { UNISWAP_V4_QUOTER } from "./constants.js";
|
|
4
|
-
/**
|
|
5
|
-
* @description Try to get static fees from a Clanker hook using multicall
|
|
6
|
-
* @param publicClient Public client
|
|
7
|
-
* @param hookAddress Hook address
|
|
8
|
-
* @param poolId Pool ID
|
|
9
|
-
* @returns Static fees or undefined
|
|
10
|
-
*/
|
|
11
|
-
const tryGetStaticFees = async (publicClient, hookAddress, poolId) => {
|
|
12
|
-
try {
|
|
13
|
-
const results = await publicClient.multicall({
|
|
14
|
-
contracts: [
|
|
15
|
-
{
|
|
16
|
-
address: hookAddress,
|
|
17
|
-
abi: IClankerHookStaticFee,
|
|
18
|
-
functionName: "clankerFee",
|
|
19
|
-
args: [poolId],
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
address: hookAddress,
|
|
23
|
-
abi: IClankerHookStaticFee,
|
|
24
|
-
functionName: "pairedFee",
|
|
25
|
-
args: [poolId],
|
|
26
|
-
},
|
|
27
|
-
],
|
|
28
|
-
});
|
|
29
|
-
if (results[0].status === "success" && results[1].status === "success") {
|
|
30
|
-
return {
|
|
31
|
-
clankerFee: Number(results[0].result),
|
|
32
|
-
pairedFee: Number(results[1].result),
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* @description Try to get dynamic fee configuration from a Clanker hook
|
|
43
|
-
* @param publicClient Public client
|
|
44
|
-
* @param hookAddress Hook address
|
|
45
|
-
* @param poolId Pool ID
|
|
46
|
-
* @returns Dynamic fee config or undefined
|
|
47
|
-
*/
|
|
48
|
-
const tryGetDynamicFees = async (publicClient, hookAddress, poolId) => {
|
|
49
|
-
try {
|
|
50
|
-
const config = await publicClient.readContract({
|
|
51
|
-
address: hookAddress,
|
|
52
|
-
abi: IClankerHookDynamicFee,
|
|
53
|
-
functionName: "poolConfigVars",
|
|
54
|
-
args: [poolId],
|
|
55
|
-
});
|
|
56
|
-
return {
|
|
57
|
-
baseFee: Number(config.baseFee),
|
|
58
|
-
maxLpFee: Number(config.maxLpFee),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* @description Get hook fee information from Clanker hooks
|
|
67
|
-
* @param publicClient Public client
|
|
68
|
-
* @param poolKey Pool key containing hook address
|
|
69
|
-
* @returns Hook fee information or undefined
|
|
70
|
-
*/
|
|
71
|
-
const getHookFees = async (publicClient, poolKey) => {
|
|
72
|
-
// Generate pool ID for hook queries (keccak256 of abi.encode(PoolKey))
|
|
73
|
-
const poolId = keccak256(encodeAbiParameters([
|
|
74
|
-
{
|
|
75
|
-
type: "tuple",
|
|
76
|
-
components: [
|
|
77
|
-
{ name: "currency0", type: "address" },
|
|
78
|
-
{ name: "currency1", type: "address" },
|
|
79
|
-
{ name: "fee", type: "uint24" },
|
|
80
|
-
{ name: "tickSpacing", type: "int24" },
|
|
81
|
-
{ name: "hooks", type: "address" },
|
|
82
|
-
],
|
|
83
|
-
},
|
|
84
|
-
], [poolKey]));
|
|
85
|
-
// Try static fees first
|
|
86
|
-
const staticFees = await tryGetStaticFees(publicClient, poolKey.hooks, poolId);
|
|
87
|
-
if (staticFees) {
|
|
88
|
-
return {
|
|
89
|
-
type: "static",
|
|
90
|
-
clankerFee: staticFees.clankerFee,
|
|
91
|
-
pairedFee: staticFees.pairedFee,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
// Try dynamic fees
|
|
95
|
-
const dynamicFees = await tryGetDynamicFees(publicClient, poolKey.hooks, poolId);
|
|
96
|
-
if (dynamicFees) {
|
|
97
|
-
return {
|
|
98
|
-
type: "dynamic",
|
|
99
|
-
baseFee: dynamicFees.baseFee,
|
|
100
|
-
maxLpFee: dynamicFees.maxLpFee,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
return undefined;
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* @description Get a swap quote from Uniswap V4 Quoter
|
|
107
|
-
* @param params Quote parameters including pool key and amount
|
|
108
|
-
* @returns Quote result with output amount, gas estimate, and hook fees
|
|
109
|
-
*
|
|
110
|
-
* @remarks
|
|
111
|
-
* The V4Quoter uses state-changing calls that are simulated via static call.
|
|
112
|
-
* The quoter returns the expected output amount for the given input.
|
|
113
|
-
*
|
|
114
|
-
* This function works for both native ETH and ERC20 swaps:
|
|
115
|
-
* - Native ETH → Token: Quote uses WETH address, swap router handles wrapping
|
|
116
|
-
* - Token → Native ETH: Quote uses WETH address, swap router handles unwrapping
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* const quote = await quoteV4({
|
|
121
|
-
* publicClient,
|
|
122
|
-
* chainId: base.id,
|
|
123
|
-
* poolKey,
|
|
124
|
-
* zeroForOne: true,
|
|
125
|
-
* amountIn: parseEther('1'),
|
|
126
|
-
* })
|
|
127
|
-
* console.log(`Output: ${formatEther(quote.amountOut)}`)
|
|
128
|
-
* console.log(`Fees:`, quote.hookFees)
|
|
129
|
-
* ```
|
|
130
|
-
*/
|
|
131
|
-
export const quoteV4 = async ({ publicClient, chainId, poolKey, zeroForOne, amountIn, hookData = "0x", }) => {
|
|
132
|
-
const quoterAddress = UNISWAP_V4_QUOTER(chainId);
|
|
133
|
-
if (!quoterAddress)
|
|
134
|
-
throw new Error("V4 Quoter address not found for chain");
|
|
135
|
-
// Always fetch hook fee information (in parallel with quote)
|
|
136
|
-
const hookFeesPromise = getHookFees(publicClient, poolKey);
|
|
137
|
-
// Call the quoter using simulateContract (static call simulation)
|
|
138
|
-
// This is equivalent to ethers.js callStatic
|
|
139
|
-
const [{ result }, hookFees] = await Promise.all([
|
|
140
|
-
publicClient.simulateContract({
|
|
141
|
-
address: quoterAddress,
|
|
142
|
-
abi: V4Quoter,
|
|
143
|
-
functionName: "quoteExactInputSingle",
|
|
144
|
-
args: [
|
|
145
|
-
{
|
|
146
|
-
poolKey: {
|
|
147
|
-
currency0: poolKey.currency0,
|
|
148
|
-
currency1: poolKey.currency1,
|
|
149
|
-
fee: poolKey.fee,
|
|
150
|
-
tickSpacing: poolKey.tickSpacing,
|
|
151
|
-
hooks: poolKey.hooks,
|
|
152
|
-
},
|
|
153
|
-
zeroForOne,
|
|
154
|
-
exactAmount: amountIn,
|
|
155
|
-
hookData,
|
|
156
|
-
},
|
|
157
|
-
],
|
|
158
|
-
}),
|
|
159
|
-
hookFeesPromise,
|
|
160
|
-
]);
|
|
161
|
-
// The quoter returns [amountOut: bigint, gasEstimate: bigint]
|
|
162
|
-
const [amountOut, gasEstimate] = result;
|
|
163
|
-
return {
|
|
164
|
-
amountOut,
|
|
165
|
-
gasEstimate,
|
|
166
|
-
hookFees,
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
//# sourceMappingURL=quote-v4.js.map
|
package/dist/esm/quote-v4.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quote-v4.js","sourceRoot":"","sources":["../../src/quote-v4.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { Address } from 'viem';
|
|
2
|
-
import type { TokenConfig } from '../../balance';
|
|
3
|
-
export type UseBalanceParams = {
|
|
4
|
-
tokens?: TokenConfig[];
|
|
5
|
-
enabled?: boolean;
|
|
6
|
-
refetchInterval?: number | false;
|
|
7
|
-
};
|
|
8
|
-
export type UseBalanceQueryParams = {
|
|
9
|
-
clankerToken: Address | null;
|
|
10
|
-
projectTokenDecimals?: number;
|
|
11
|
-
enabled?: boolean;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Internal: Creates balance query with all logic
|
|
15
|
-
* Used by LevrProvider
|
|
16
|
-
*/
|
|
17
|
-
export declare function useBalanceQuery({ clankerToken, projectTokenDecimals, enabled: e, }: UseBalanceQueryParams): import("@tanstack/react-query").UseQueryResult<Record<string, import("../..").BalanceResult>, Error>;
|
|
18
|
-
//# sourceMappingURL=use-balance.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-balance.d.ts","sourceRoot":"","sources":["../../../../src/client/hook/use-balance.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,oBAAyB,EACzB,OAAO,EAAE,CAAQ,GAClB,EAAE,qBAAqB,wGAgDvB"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ProjectsParams, ProjectsResult } from '../../projects';
|
|
2
|
-
export type UseProjectsParams = {
|
|
3
|
-
enabled?: boolean;
|
|
4
|
-
} & Omit<ProjectsParams, 'publicClient' | 'factoryAddress' | 'chainId'>;
|
|
5
|
-
export declare function useProjects({ enabled: e, ...params }?: UseProjectsParams): import("@tanstack/react-query").UseQueryResult<ProjectsResult, Error>;
|
|
6
|
-
//# sourceMappingURL=use-projects.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-projects.d.ts","sourceRoot":"","sources":["../../../../src/client/hook/use-projects.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAA;AAEvE,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAQ,EAAE,GAAG,MAAM,EAAE,GAAE,iBAAsB,yEAmBnF"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Address } from 'viem';
|
|
2
|
-
import type { ProposalsParams } from '../../proposals';
|
|
3
|
-
export type UseProposalsParams = Omit<ProposalsParams, 'publicClient'> & {
|
|
4
|
-
enabled?: boolean;
|
|
5
|
-
};
|
|
6
|
-
export type UseProposalsQueryParams = {
|
|
7
|
-
governorAddress?: Address;
|
|
8
|
-
tokenDecimals?: number;
|
|
9
|
-
enabled?: boolean;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Internal: Creates proposals query with all logic
|
|
13
|
-
* Used by LevrProvider
|
|
14
|
-
*/
|
|
15
|
-
export declare function useProposalsQuery({ governorAddress, tokenDecimals, enabled: e, }: UseProposalsQueryParams): import("@tanstack/react-query").UseQueryResult<import("../..").ProposalsResult | null, Error>;
|
|
16
|
-
//# sourceMappingURL=use-proposals.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-proposals.d.ts","sourceRoot":"","sources":["../../../../src/client/hook/use-proposals.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAItD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,eAAe,EACf,aAAkB,EAClB,OAAO,EAAE,CAAQ,GAClB,EAAE,uBAAuB,iGAqBzB"}
|
package/dist/types/projects.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Project } from './project';
|
|
2
|
-
import type { PopPublicClient } from './types';
|
|
3
|
-
export type ProjectsParams = {
|
|
4
|
-
publicClient: PopPublicClient;
|
|
5
|
-
factoryAddress: `0x${string}`;
|
|
6
|
-
chainId: number;
|
|
7
|
-
fromBlock?: bigint;
|
|
8
|
-
toBlock?: bigint | 'latest';
|
|
9
|
-
pageSize?: number;
|
|
10
|
-
};
|
|
11
|
-
export type ProjectsResult = {
|
|
12
|
-
projects: Omit<Project, 'forwarder'>[];
|
|
13
|
-
fromBlock: bigint;
|
|
14
|
-
toBlock: bigint;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Get multiple projects data
|
|
18
|
-
*/
|
|
19
|
-
export declare function projects({ publicClient, factoryAddress, chainId, fromBlock, toBlock, pageSize, }: ProjectsParams): Promise<ProjectsResult>;
|
|
20
|
-
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/projects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAY,OAAO,EAAkC,MAAM,WAAW,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,eAAe,CAAA;IAC7B,cAAc,EAAE,KAAK,MAAM,EAAE,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAA;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAcD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,EAC7B,YAAY,EACZ,cAAc,EACd,OAAO,EACP,SAAS,EACT,OAAkB,EAClB,QAAc,GACf,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA+O1C"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { FormattedProposalDetails } from './governance';
|
|
2
|
-
import type { PopPublicClient } from './types';
|
|
3
|
-
export type ProposalsParams = {
|
|
4
|
-
publicClient: PopPublicClient;
|
|
5
|
-
governorAddress: `0x${string}`;
|
|
6
|
-
tokenDecimals?: number;
|
|
7
|
-
fromBlock?: bigint;
|
|
8
|
-
toBlock?: bigint | 'latest';
|
|
9
|
-
pageSize?: number;
|
|
10
|
-
};
|
|
11
|
-
export type ProposalsResult = {
|
|
12
|
-
proposals: FormattedProposalDetails[];
|
|
13
|
-
fromBlock: bigint;
|
|
14
|
-
toBlock: bigint;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Get multiple proposals data from governor contract
|
|
18
|
-
*/
|
|
19
|
-
export declare function proposals({ publicClient, governorAddress, tokenDecimals, fromBlock, toBlock, pageSize, }: ProposalsParams): Promise<ProposalsResult>;
|
|
20
|
-
//# sourceMappingURL=proposals.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proposals.d.ts","sourceRoot":"","sources":["../../src/proposals.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,eAAe,CAAA;IAC7B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,wBAAwB,EAAE,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAcD;;GAEG;AACH,wBAAsB,SAAS,CAAC,EAC9B,YAAY,EACZ,eAAe,EACf,aAAkB,EAClB,SAAS,EACT,OAAkB,EAClB,QAAa,GACd,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAoH5C"}
|
package/dist/types/quote-v4.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { PublicClient } from 'viem';
|
|
2
|
-
import type { PoolKey } from './types';
|
|
3
|
-
export type QuoteV4Params = {
|
|
4
|
-
publicClient: PublicClient;
|
|
5
|
-
chainId: number;
|
|
6
|
-
poolKey: PoolKey;
|
|
7
|
-
zeroForOne: boolean;
|
|
8
|
-
amountIn: bigint;
|
|
9
|
-
hookData?: `0x${string}`;
|
|
10
|
-
};
|
|
11
|
-
export type QuoteV4ReturnType = {
|
|
12
|
-
amountOut: bigint;
|
|
13
|
-
gasEstimate: bigint;
|
|
14
|
-
/**
|
|
15
|
-
* Fee information from Clanker hooks (if available)
|
|
16
|
-
* - Static fees: clankerFee and pairedFee in basis points
|
|
17
|
-
* - Dynamic fees: baseFee and maxLpFee in basis points
|
|
18
|
-
*/
|
|
19
|
-
hookFees?: {
|
|
20
|
-
type: 'static' | 'dynamic';
|
|
21
|
-
clankerFee?: number;
|
|
22
|
-
pairedFee?: number;
|
|
23
|
-
baseFee?: number;
|
|
24
|
-
maxLpFee?: number;
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* @description Get a swap quote from Uniswap V4 Quoter
|
|
29
|
-
* @param params Quote parameters including pool key and amount
|
|
30
|
-
* @returns Quote result with output amount, gas estimate, and hook fees
|
|
31
|
-
*
|
|
32
|
-
* @remarks
|
|
33
|
-
* The V4Quoter uses state-changing calls that are simulated via static call.
|
|
34
|
-
* The quoter returns the expected output amount for the given input.
|
|
35
|
-
*
|
|
36
|
-
* This function works for both native ETH and ERC20 swaps:
|
|
37
|
-
* - Native ETH → Token: Quote uses WETH address, swap router handles wrapping
|
|
38
|
-
* - Token → Native ETH: Quote uses WETH address, swap router handles unwrapping
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```typescript
|
|
42
|
-
* const quote = await quoteV4({
|
|
43
|
-
* publicClient,
|
|
44
|
-
* chainId: base.id,
|
|
45
|
-
* poolKey,
|
|
46
|
-
* zeroForOne: true,
|
|
47
|
-
* amountIn: parseEther('1'),
|
|
48
|
-
* })
|
|
49
|
-
* console.log(`Output: ${formatEther(quote.amountOut)}`)
|
|
50
|
-
* console.log(`Fees:`, quote.hookFees)
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
export declare const quoteV4: ({ publicClient, chainId, poolKey, zeroForOne, amountIn, hookData, }: QuoteV4Params) => Promise<QuoteV4ReturnType>;
|
|
54
|
-
//# sourceMappingURL=quote-v4.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quote-v4.d.ts","sourceRoot":"","sources":["../../src/quote-v4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAKxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AA4HD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,OAAO,GAAU,qEAO3B,aAAa,KAAG,OAAO,CAAC,iBAAiB,CAwC3C,CAAA"}
|