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.
Files changed (156) hide show
  1. package/README.md +109 -13
  2. package/dist/esm/abis/LevrFactory_v1.js +63 -0
  3. package/dist/esm/abis/LevrGovernor_v1.js +15 -24
  4. package/dist/esm/abis/LevrStaking_v1.js +7 -1
  5. package/dist/esm/abis/StateView.js +149 -0
  6. package/dist/esm/abis/V3QuoterV2.js +26 -0
  7. package/dist/esm/abis/index.js +4 -0
  8. package/dist/esm/balance.js +48 -4
  9. package/dist/esm/balance.js.map +1 -1
  10. package/dist/esm/client/hook/index.js +14 -3
  11. package/dist/esm/client/hook/index.js.map +1 -1
  12. package/dist/esm/client/hook/use-fee-receivers.js +11 -30
  13. package/dist/esm/client/hook/use-fee-receivers.js.map +1 -1
  14. package/dist/esm/client/hook/use-governance.js +20 -274
  15. package/dist/esm/client/hook/use-governance.js.map +1 -1
  16. package/dist/esm/client/hook/use-pool.js +26 -0
  17. package/dist/esm/client/hook/use-pool.js.map +1 -0
  18. package/dist/esm/client/hook/use-prepare.js +6 -3
  19. package/dist/esm/client/hook/use-prepare.js.map +1 -1
  20. package/dist/esm/client/hook/use-project.js +28 -16
  21. package/dist/esm/client/hook/use-project.js.map +1 -1
  22. package/dist/esm/client/hook/use-proposal.js +48 -0
  23. package/dist/esm/client/hook/use-proposal.js.map +1 -0
  24. package/dist/esm/client/hook/use-stake.js +29 -215
  25. package/dist/esm/client/hook/use-stake.js.map +1 -1
  26. package/dist/esm/client/hook/use-swap.js +23 -19
  27. package/dist/esm/client/hook/use-swap.js.map +1 -1
  28. package/dist/esm/client/hook/use-user.js +25 -0
  29. package/dist/esm/client/hook/use-user.js.map +1 -0
  30. package/dist/esm/client/levr-provider.js +73 -108
  31. package/dist/esm/client/levr-provider.js.map +1 -1
  32. package/dist/esm/client/query-keys.js +10 -22
  33. package/dist/esm/client/query-keys.js.map +1 -1
  34. package/dist/esm/constants.js +42 -1
  35. package/dist/esm/constants.js.map +1 -1
  36. package/dist/esm/fee-receivers.js +28 -13
  37. package/dist/esm/fee-receivers.js.map +1 -1
  38. package/dist/esm/governance.js +35 -399
  39. package/dist/esm/governance.js.map +1 -1
  40. package/dist/esm/index.js +7 -3
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/pool-key.js +152 -0
  43. package/dist/esm/pool-key.js.map +1 -0
  44. package/dist/esm/pool.js +70 -0
  45. package/dist/esm/pool.js.map +1 -0
  46. package/dist/esm/project.js +415 -118
  47. package/dist/esm/project.js.map +1 -1
  48. package/dist/esm/proposal.js +156 -0
  49. package/dist/esm/proposal.js.map +1 -0
  50. package/dist/esm/quote/index.js +98 -0
  51. package/dist/esm/quote/index.js.map +1 -0
  52. package/dist/esm/quote/v3.js +62 -0
  53. package/dist/esm/quote/v3.js.map +1 -0
  54. package/dist/esm/quote/v4.js +228 -0
  55. package/dist/esm/quote/v4.js.map +1 -0
  56. package/dist/esm/stake.js +34 -237
  57. package/dist/esm/stake.js.map +1 -1
  58. package/dist/esm/treasury.js +162 -0
  59. package/dist/esm/treasury.js.map +1 -0
  60. package/dist/esm/usd-price.js +149 -0
  61. package/dist/esm/usd-price.js.map +1 -0
  62. package/dist/esm/user.js +153 -0
  63. package/dist/esm/user.js.map +1 -0
  64. package/dist/esm/util.js +45 -1
  65. package/dist/esm/util.js.map +1 -1
  66. package/dist/types/abis/LevrFactory_v1.d.ts +48 -0
  67. package/dist/types/abis/LevrGovernor_v1.d.ts +12 -18
  68. package/dist/types/abis/LevrStaking_v1.d.ts +5 -1
  69. package/dist/types/abis/StateView.d.ts +278 -0
  70. package/dist/types/abis/V3QuoterV2.d.ts +39 -0
  71. package/dist/types/abis/index.d.ts +2 -0
  72. package/dist/types/balance.d.ts +19 -6
  73. package/dist/types/balance.d.ts.map +1 -1
  74. package/dist/types/client/hook/index.d.ts +12 -4
  75. package/dist/types/client/hook/index.d.ts.map +1 -1
  76. package/dist/types/client/hook/use-fee-receivers.d.ts +6 -16
  77. package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -1
  78. package/dist/types/client/hook/use-governance.d.ts +4 -93
  79. package/dist/types/client/hook/use-governance.d.ts.map +1 -1
  80. package/dist/types/client/hook/use-pool.d.ts +12 -0
  81. package/dist/types/client/hook/use-pool.d.ts.map +1 -0
  82. package/dist/types/client/hook/use-prepare.d.ts +1 -2
  83. package/dist/types/client/hook/use-prepare.d.ts.map +1 -1
  84. package/dist/types/client/hook/use-project.d.ts +8 -1
  85. package/dist/types/client/hook/use-project.d.ts.map +1 -1
  86. package/dist/types/client/hook/use-proposal.d.ts +18 -0
  87. package/dist/types/client/hook/use-proposal.d.ts.map +1 -0
  88. package/dist/types/client/hook/use-stake.d.ts +14 -168
  89. package/dist/types/client/hook/use-stake.d.ts.map +1 -1
  90. package/dist/types/client/hook/use-swap.d.ts +5 -9
  91. package/dist/types/client/hook/use-swap.d.ts.map +1 -1
  92. package/dist/types/client/hook/use-user.d.ts +13 -0
  93. package/dist/types/client/hook/use-user.d.ts.map +1 -0
  94. package/dist/types/client/levr-provider.d.ts +41 -68
  95. package/dist/types/client/levr-provider.d.ts.map +1 -1
  96. package/dist/types/client/query-keys.d.ts +14 -26
  97. package/dist/types/client/query-keys.d.ts.map +1 -1
  98. package/dist/types/constants.d.ts +18 -0
  99. package/dist/types/constants.d.ts.map +1 -1
  100. package/dist/types/fee-receivers.d.ts +29 -2
  101. package/dist/types/fee-receivers.d.ts.map +1 -1
  102. package/dist/types/governance.d.ts +8 -108
  103. package/dist/types/governance.d.ts.map +1 -1
  104. package/dist/types/index.d.ts +7 -3
  105. package/dist/types/index.d.ts.map +1 -1
  106. package/dist/types/pool-key.d.ts +121 -0
  107. package/dist/types/pool-key.d.ts.map +1 -0
  108. package/dist/types/pool.d.ts +590 -0
  109. package/dist/types/pool.d.ts.map +1 -0
  110. package/dist/types/project.d.ts +61 -11
  111. package/dist/types/project.d.ts.map +1 -1
  112. package/dist/types/proposal.d.ts +1161 -0
  113. package/dist/types/proposal.d.ts.map +1 -0
  114. package/dist/types/quote/index.d.ts +97 -0
  115. package/dist/types/quote/index.d.ts.map +1 -0
  116. package/dist/types/quote/v3.d.ts +78 -0
  117. package/dist/types/quote/v3.d.ts.map +1 -0
  118. package/dist/types/quote/v4.d.ts +95 -0
  119. package/dist/types/quote/v4.d.ts.map +1 -0
  120. package/dist/types/stake.d.ts +41 -87
  121. package/dist/types/stake.d.ts.map +1 -1
  122. package/dist/types/treasury.d.ts +16 -0
  123. package/dist/types/treasury.d.ts.map +1 -0
  124. package/dist/types/types.d.ts +15 -0
  125. package/dist/types/types.d.ts.map +1 -1
  126. package/dist/types/usd-price.d.ts +141 -0
  127. package/dist/types/usd-price.d.ts.map +1 -0
  128. package/dist/types/user.d.ts +188 -0
  129. package/dist/types/user.d.ts.map +1 -0
  130. package/dist/types/util.d.ts +17 -0
  131. package/dist/types/util.d.ts.map +1 -1
  132. package/package.json +5 -2
  133. package/dist/esm/client/hook/use-balance.js +0 -56
  134. package/dist/esm/client/hook/use-balance.js.map +0 -1
  135. package/dist/esm/client/hook/use-projects.js +0 -22
  136. package/dist/esm/client/hook/use-projects.js.map +0 -1
  137. package/dist/esm/client/hook/use-proposals.js +0 -31
  138. package/dist/esm/client/hook/use-proposals.js.map +0 -1
  139. package/dist/esm/projects.js +0 -212
  140. package/dist/esm/projects.js.map +0 -1
  141. package/dist/esm/proposals.js +0 -98
  142. package/dist/esm/proposals.js.map +0 -1
  143. package/dist/esm/quote-v4.js +0 -169
  144. package/dist/esm/quote-v4.js.map +0 -1
  145. package/dist/types/client/hook/use-balance.d.ts +0 -18
  146. package/dist/types/client/hook/use-balance.d.ts.map +0 -1
  147. package/dist/types/client/hook/use-projects.d.ts +0 -6
  148. package/dist/types/client/hook/use-projects.d.ts.map +0 -1
  149. package/dist/types/client/hook/use-proposals.d.ts +0 -16
  150. package/dist/types/client/hook/use-proposals.d.ts.map +0 -1
  151. package/dist/types/projects.d.ts +0 -20
  152. package/dist/types/projects.d.ts.map +0 -1
  153. package/dist/types/proposals.d.ts +0 -20
  154. package/dist/types/proposals.d.ts.map +0 -1
  155. package/dist/types/quote-v4.d.ts +0 -54
  156. package/dist/types/quote-v4.d.ts.map +0 -1
@@ -2,133 +2,109 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useQueryClient } from "@tanstack/react-query";
4
4
  import React, { createContext, useContext, useEffect, useMemo } from "react";
5
+ import { base } from "viem/chains";
5
6
  import { useAccount, useChainId } from "wagmi";
6
- import { useBalanceQuery } from "./hook/use-balance.js";
7
+ import { getPublicClient } from "../util.js";
7
8
  import { useClankerTokenQuery } from "./hook/use-clanker.js";
8
- import { useFeeReceiversQuery } from "./hook/use-fee-receivers.js";
9
- import { useGovernanceQueries } from "./hook/use-governance.js";
9
+ import { usePoolQuery } from "./hook/use-pool.js";
10
10
  import { useProjectQuery } from "./hook/use-project.js";
11
- import { useProposalsQuery } from "./hook/use-proposals.js";
12
- import { useStakingQueries } from "./hook/use-stake.js";
11
+ import { useProposalsQuery } from "./hook/use-proposal.js";
12
+ import { useUserQuery } from "./hook/use-user.js";
13
13
  const LevrContext = createContext(null);
14
14
  /**
15
15
  * Centralized provider for all Levr blockchain queries
16
16
  * Eliminates query duplication and provides unified refetch management
17
17
  */
18
- export function LevrProvider({ children, enabled = true }) {
18
+ export function LevrProvider({ children, enabled = true, oracleChainId = base.id, oracleRpcUrl, }) {
19
19
  const [clankerToken, setClankerToken] = React.useState(null);
20
20
  const queryClient = useQueryClient();
21
21
  const { address: userAddress } = useAccount();
22
22
  const chainId = useChainId();
23
+ // Create oracle public client for WETH/USD pricing
24
+ const oraclePublicClient = useMemo(() => {
25
+ return getPublicClient(oracleChainId, oracleRpcUrl);
26
+ }, [oracleChainId, oracleRpcUrl]);
23
27
  // ========================================
24
28
  // USE INTERNAL QUERY HOOKS
25
29
  // ========================================
26
- const project = useProjectQuery({ clankerToken, enabled });
30
+ const project = useProjectQuery({ clankerToken, oraclePublicClient, enabled });
27
31
  const tokenData = useClankerTokenQuery({ clankerToken, enabled });
28
- const balancesQuery = useBalanceQuery({
29
- clankerToken,
30
- projectTokenDecimals: project.data?.token.decimals,
31
- enabled,
32
- });
33
- const staking = useStakingQueries({
34
- clankerToken,
35
- projectData: project.data,
36
- enabled,
37
- });
38
- const governance = useGovernanceQueries({
39
- clankerToken,
40
- projectData: project.data,
41
- enabled,
42
- });
43
- const proposalsQueryResult = useProposalsQuery({
44
- governorAddress: project.data?.governor,
45
- tokenDecimals: project.data?.token.decimals,
46
- enabled,
47
- });
48
- const feeReceiversQuery = useFeeReceiversQuery({
49
- clankerToken,
32
+ const userQuery = useUserQuery({ project: project.data, enabled });
33
+ const poolQuery = usePoolQuery({ project: project.data, enabled });
34
+ const proposalsQuery = useProposalsQuery({
35
+ project: project.data,
50
36
  enabled,
51
37
  });
52
38
  // ========================================
53
39
  // REFETCH METHODS
54
40
  // ========================================
55
41
  const refetchMethods = useMemo(() => ({
42
+ // Core refetches
56
43
  all: async () => {
57
44
  await queryClient.invalidateQueries({ refetchType: "active" });
58
45
  },
46
+ user: async () => {
47
+ await userQuery.refetch();
48
+ },
59
49
  project: async () => {
60
50
  await project.refetch();
61
51
  },
62
- balances: async () => {
63
- await balancesQuery.refetch();
52
+ pool: async () => {
53
+ await poolQuery.refetch();
64
54
  },
65
- governance: async () => {
55
+ proposals: async () => {
56
+ await proposalsQuery.refetch();
57
+ },
58
+ // Action-based refetches
59
+ afterTrade: async () => {
66
60
  await Promise.all([
67
- governance.currentCycleId.refetch(),
68
- governance.addresses.refetch(),
69
- governance.airdropStatus.refetch(),
61
+ userQuery.refetch(), // Balances changed
62
+ poolQuery.refetch(), // Pool state changed (price impact)
70
63
  ]);
71
64
  },
72
- staking: async () => {
65
+ afterStake: async () => {
73
66
  await Promise.all([
74
- staking.allowance.refetch(),
75
- staking.poolData.refetch(),
76
- staking.userData.refetch(),
77
- staking.outstandingRewardsStaking.refetch(),
78
- staking.outstandingRewardsWeth.refetch(),
79
- staking.claimableRewardsStaking.refetch(),
80
- staking.claimableRewardsWeth.refetch(),
81
- staking.wethRewardRate.refetch(),
82
- staking.aprBpsWeth.refetch(),
67
+ userQuery.refetch(), // Balances, staking, voting power changed
68
+ project.refetch(), // Treasury might have changed
83
69
  ]);
84
70
  },
85
- proposals: async () => {
86
- await proposalsQueryResult.refetch();
71
+ afterUnstake: async () => {
72
+ await Promise.all([
73
+ userQuery.refetch(), // Balances, staking, voting power changed
74
+ project.refetch(), // Treasury might have changed
75
+ ]);
87
76
  },
88
- feeReceivers: async () => {
89
- await feeReceiversQuery.refetch();
77
+ afterClaim: async () => {
78
+ await userQuery.refetch(); // Balances, claimable rewards changed
90
79
  },
91
- // Smart cross-domain refetches
92
- afterStake: async () => {
80
+ afterAccrue: async () => {
93
81
  await Promise.all([
94
- balancesQuery.refetch(),
95
- staking.poolData.refetch(),
96
- staking.userData.refetch(),
97
- staking.allowance.refetch(),
98
- staking.outstandingRewardsStaking.refetch(),
99
- staking.outstandingRewardsWeth.refetch(),
100
- staking.claimableRewardsStaking.refetch(),
101
- staking.claimableRewardsWeth.refetch(),
102
- staking.wethRewardRate.refetch(),
103
- staking.aprBpsWeth.refetch(),
104
- project.refetch(), // Treasury might have changed
82
+ project.refetch(), // Outstanding rewards changed (pool-level)
105
83
  ]);
106
84
  },
107
- afterSwap: async () => {
85
+ afterVote: async () => {
108
86
  await Promise.all([
109
- balancesQuery.refetch(),
110
- project.refetch(), // Pool data might have changed
87
+ userQuery.refetch(), // User governance data (vote receipt)
88
+ proposalsQuery.refetch(), // Proposal votes updated
111
89
  ]);
112
90
  },
113
- afterGovernance: async () => {
91
+ afterProposal: async () => {
114
92
  await Promise.all([
115
- governance.currentCycleId.refetch(),
116
- governance.addresses.refetch(),
117
- governance.airdropStatus.refetch(),
118
- proposalsQueryResult.refetch(),
119
- project.refetch(), // Treasury might have changed
120
- staking.userData.refetch(), // Voting power might have changed
93
+ proposalsQuery.refetch(), // New proposal added
94
+ project.refetch(), // currentCycleId might have changed
121
95
  ]);
122
96
  },
123
- }), [
124
- queryClient,
125
- project,
126
- balancesQuery,
127
- governance,
128
- staking,
129
- proposalsQueryResult,
130
- feeReceiversQuery,
131
- ]);
97
+ afterExecute: async () => {
98
+ await Promise.all([
99
+ project.refetch(), // Treasury changed + currentCycleId (new cycle starts)
100
+ proposalsQuery.refetch(), // Proposal executed
101
+ userQuery.refetch(), // Staking rewards might have changed (if boost)
102
+ ]);
103
+ },
104
+ afterAirdrop: async () => {
105
+ await project.refetch(); // Treasury balance, airdrop status changed
106
+ },
107
+ }), [queryClient, project, userQuery, poolQuery, proposalsQuery]);
132
108
  // Auto-refetch on wallet/chain change
133
109
  useEffect(() => {
134
110
  if (enabled) {
@@ -140,41 +116,24 @@ export function LevrProvider({ children, enabled = true }) {
140
116
  setClankerToken,
141
117
  chainId,
142
118
  userAddress,
119
+ // Data queries
120
+ user: userQuery,
143
121
  project,
144
- balances: balancesQuery,
122
+ pool: poolQuery,
123
+ proposals: proposalsQuery,
145
124
  tokenData,
146
- staking: {
147
- allowance: staking.allowance,
148
- poolData: staking.poolData,
149
- userData: staking.userData,
150
- outstandingRewardsStaking: staking.outstandingRewardsStaking,
151
- outstandingRewardsWeth: staking.outstandingRewardsWeth,
152
- claimableRewardsStaking: staking.claimableRewardsStaking,
153
- claimableRewardsWeth: staking.claimableRewardsWeth,
154
- wethRewardRate: staking.wethRewardRate,
155
- aprBpsWeth: staking.aprBpsWeth,
156
- },
157
- governance: {
158
- currentCycleId: governance.currentCycleId,
159
- addresses: governance.addresses,
160
- airdropStatus: governance.airdropStatus,
161
- },
162
- proposals: proposalsQueryResult,
163
- feeReceivers: feeReceiversQuery,
125
+ // Refetch methods
164
126
  refetch: refetchMethods,
165
- stakeService: staking.stakeService,
166
127
  }), [
167
128
  clankerToken,
168
129
  setClankerToken,
169
130
  chainId,
170
131
  userAddress,
132
+ userQuery,
171
133
  project,
172
- balancesQuery,
134
+ poolQuery,
135
+ proposalsQuery,
173
136
  tokenData,
174
- staking,
175
- governance,
176
- proposalsQueryResult,
177
- feeReceiversQuery,
178
137
  refetchMethods,
179
138
  ]);
180
139
  return _jsx(LevrContext.Provider, { value: contextValue, children: children });
@@ -192,9 +151,15 @@ export function useLevrContext() {
192
151
  }
193
152
  /**
194
153
  * Hook to set the current clanker token
195
- * This allows components to update the global token context
154
+ * Automatically updates when the token address changes
155
+ * @param clankerToken - Token address to set (null to clear)
196
156
  */
197
- export const useSetClankerToken = () => useLevrContext().setClankerToken;
157
+ export const useSetClankerToken = (clankerToken) => {
158
+ const { setClankerToken } = useLevrContext();
159
+ React.useEffect(() => {
160
+ setClankerToken(clankerToken ?? null);
161
+ }, [clankerToken, setClankerToken]);
162
+ };
198
163
  /**
199
164
  * Hook to access refetch methods from LevrProvider
200
165
  */
@@ -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,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAI9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AA0EpD,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAA;AAWhE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAqB;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAiB,IAAI,CAAC,CAAA;IAC5E,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAA;IAC7C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,2CAA2C;IAC3C,2BAA2B;IAC3B,2CAA2C;IAE3C,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;IACjE,MAAM,aAAa,GAAG,eAAe,CAAC;QACpC,YAAY;QACZ,oBAAoB,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ;QAClD,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACtC,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;QAC7C,eAAe,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ;QACvC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ;QAC3C,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;QAC7C,YAAY;QACZ,OAAO;KACR,CAAC,CAAA;IAEF,2CAA2C;IAC3C,kBAAkB;IAClB,2CAA2C;IAE3C,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACzB,CAAC;QACD,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,aAAa,CAAC,OAAO,EAAE,CAAA;QAC/B,CAAC;QACD,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE;gBACnC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC9B,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE;aACnC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1B,OAAO,CAAC,yBAAyB,CAAC,OAAO,EAAE;gBAC3C,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE;gBACxC,OAAO,CAAC,uBAAuB,CAAC,OAAO,EAAE;gBACzC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBACtC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE;gBAChC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;aAC7B,CAAC,CAAA;QACJ,CAAC;QACD,SAAS,EAAE,KAAK,IAAI,EAAE;YACpB,MAAM,oBAAoB,CAAC,OAAO,EAAE,CAAA;QACtC,CAAC;QACD,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAA;QACnC,CAAC;QACD,+BAA+B;QAC/B,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1B,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC3B,OAAO,CAAC,yBAAyB,CAAC,OAAO,EAAE;gBAC3C,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE;gBACxC,OAAO,CAAC,uBAAuB,CAAC,OAAO,EAAE;gBACzC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE;gBACtC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE;gBAChC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC5B,OAAO,CAAC,OAAO,EAAE,EAAE,8BAA8B;aAClD,CAAC,CAAA;QACJ,CAAC;QACD,SAAS,EAAE,KAAK,IAAI,EAAE;YACpB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO,CAAC,OAAO,EAAE,EAAE,+BAA+B;aACnD,CAAC,CAAA;QACJ,CAAC;QACD,eAAe,EAAE,KAAK,IAAI,EAAE;YAC1B,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE;gBACnC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC9B,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE;gBAClC,oBAAoB,CAAC,OAAO,EAAE;gBAC9B,OAAO,CAAC,OAAO,EAAE,EAAE,8BAA8B;gBACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,kCAAkC;aAC/D,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,EACF;QACE,WAAW;QACX,OAAO;QACP,aAAa;QACb,UAAU;QACV,OAAO;QACP,oBAAoB;QACpB,iBAAiB;KAClB,CACF,CAAA;IAED,sCAAsC;IACtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,cAAc,CAAC,GAAG,EAAE,CAAA;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;IAE1B,MAAM,YAAY,GAAqB,OAAO,CAC5C,GAAG,EAAE,CAAC,CAAC;QACL,YAAY;QACZ,eAAe;QACf,OAAO;QACP,WAAW;QACX,OAAO;QACP,QAAQ,EAAE,aAAa;QACvB,SAAS;QACT,OAAO,EAAE;YACP,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,yBAAyB,EAAE,OAAO,CAAC,yBAAyB;YAC5D,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B;QACD,UAAU,EAAE;YACV,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,aAAa,EAAE,UAAU,CAAC,aAAa;SACxC;QACD,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,iBAAiB;QAC/B,OAAO,EAAE,cAAc;QACvB,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,EACF;QACE,YAAY;QACZ,eAAe;QACf,OAAO;QACP,WAAW;QACX,OAAO;QACP,aAAa;QACb,SAAS;QACT,OAAO;QACP,UAAU;QACV,oBAAoB;QACpB,iBAAiB;QACjB,cAAc;KACf,CACF,CAAA;IAED,OAAO,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAAG,QAAQ,GAAwB,CAAA;AACrF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,eAAe,CAAA;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,CAAA"}
1
+ {"version":3,"file":"levr-provider.js","sourceRoot":"","sources":["../../../src/client/levr-provider.tsx"],"names":[],"mappings":"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"}
@@ -7,34 +7,25 @@ export const queryKeys = {
7
7
  /**
8
8
  * Project query key
9
9
  */
10
- project: (factory, token, chainId) => ['project', factory, token, chainId],
10
+ project: (token, chainId) => ['project', token, chainId],
11
11
  /**
12
- * Balance query keys
12
+ * User query keys (composable data group)
13
13
  */
14
- balance: (tokens, userAddress) => ['balance', tokens, userAddress],
14
+ user: (userAddress, token, staking, treasury) => ['user', userAddress, token, staking, treasury],
15
+ /**
16
+ * Pool query keys
17
+ */
18
+ pool: (poolKey) => ['pool', poolKey],
15
19
  /**
16
20
  * Clanker SDK query keys
17
21
  */
18
22
  clanker: (chainId, walletAddress) => ['clanker', chainId, walletAddress],
19
23
  clankerToken: (tokenAddress) => ['clanker-token', tokenAddress],
20
24
  /**
21
- * Staking query keys
22
- */
23
- staking: {
24
- allowance: (stakingAddress, tokenAddress, userAddress) => ['staking', 'allowance', stakingAddress, tokenAddress, userAddress],
25
- poolData: (stakingAddress, tokenAddress) => ['staking', 'poolData', stakingAddress, tokenAddress],
26
- userData: (stakingAddress, userAddress) => ['staking', 'userData', stakingAddress, userAddress],
27
- outstandingRewards: (stakingAddress, tokenAddress, userAddress) => ['staking', 'outstandingRewards', stakingAddress, tokenAddress, userAddress],
28
- claimableRewards: (stakingAddress, tokenAddress, userAddress) => ['staking', 'claimableRewards', stakingAddress, tokenAddress, userAddress],
29
- },
30
- /**
31
- * Governance query keys
25
+ * Governance query keys (for dynamic per-component queries)
32
26
  */
33
27
  governance: {
34
28
  proposal: (governorAddress, proposalId) => ['governance', 'proposal', governorAddress, proposalId],
35
- currentCycleId: (governorAddress) => ['governance', 'currentCycleId', governorAddress],
36
- addresses: (governorAddress) => ['governance', 'addresses', governorAddress],
37
- airdropStatus: (governorAddress, clankerToken) => ['governance', 'airdropStatus', governorAddress, clankerToken],
38
29
  proposalsForCycle: (governorAddress, cycleId) => ['governance', 'proposalsForCycle', governorAddress, cycleId],
39
30
  winner: (governorAddress, cycleId) => ['governance', 'winner', governorAddress, cycleId],
40
31
  userVoteInCycle: (governorAddress, cycleId, userAddress) => ['governance', 'userVoteInCycle', governorAddress, cycleId, userAddress],
@@ -42,7 +33,8 @@ export const queryKeys = {
42
33
  /**
43
34
  * Proposals query keys
44
35
  */
45
- proposals: (governorAddress, tokenDecimals, fromBlock, toBlock, pageSize) => ['proposals', governorAddress, tokenDecimals, fromBlock, toBlock, pageSize],
36
+ proposals: (chainId, cycleId, userAddress) => ['proposals', chainId, cycleId, userAddress],
37
+ proposal: (chainId, cycleId, proposalId) => ['proposal', chainId, cycleId, proposalId],
46
38
  /**
47
39
  * Projects query keys
48
40
  */
@@ -53,9 +45,5 @@ export const queryKeys = {
53
45
  swap: {
54
46
  quote: (chainId, poolKey, zeroForOne, amountIn, amountInDecimals) => ['swap', 'quote', chainId, poolKey, zeroForOne, amountIn, amountInDecimals],
55
47
  },
56
- /**
57
- * Fee receivers query keys
58
- */
59
- feeReceivers: (clankerToken, userAddress, chainId) => ['fee-receivers', clankerToken, userAddress, chainId],
60
48
  };
61
49
  //# sourceMappingURL=query-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-keys.js","sourceRoot":"","sources":["../../../src/client/query-keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-keys.js","sourceRoot":"","sources":["../../../src/client/query-keys.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;;OAEG;IACH,OAAO,EAAE,CAAC,KAAc,EAAE,OAAe,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAU;IAElF;;OAEG;IACH,IAAI,EAAE,CAAC,WAAoB,EAAE,KAAc,EAAE,OAAgB,EAAE,QAAiB,EAAE,EAAE,CAClF,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAU;IAE1D;;OAEG;IACH,IAAI,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAU;IAEvD;;OAEG;IACH,OAAO,EAAE,CAAC,OAAgB,EAAE,aAAuB,EAAE,EAAE,CACrD,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAU;IAE9C,YAAY,EAAE,CAAC,YAAsB,EAAE,EAAE,CAAC,CAAC,eAAe,EAAE,YAAY,CAAU;IAElF;;OAEG;IACH,UAAU,EAAE;QACV,QAAQ,EAAE,CAAC,eAAyB,EAAE,UAAmB,EAAE,EAAE,CAC3D,CAAC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,CAAU;QAClE,iBAAiB,EAAE,CAAC,eAAyB,EAAE,OAAgB,EAAE,EAAE,CACjE,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,OAAO,CAAU;QACxE,MAAM,EAAE,CAAC,eAAyB,EAAE,OAAgB,EAAE,EAAE,CACtD,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAU;QAC7D,eAAe,EAAE,CAAC,eAAyB,EAAE,OAAgB,EAAE,WAAqB,EAAE,EAAE,CACtF,CAAC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,CAAU;KACpF;IAED;;OAEG;IACH,SAAS,EAAE,CAAC,OAAgB,EAAE,OAAgB,EAAE,WAAqB,EAAE,EAAE,CACvE,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAU;IAEvD,QAAQ,EAAE,CAAC,OAAgB,EAAE,OAAgB,EAAE,UAAmB,EAAE,EAAE,CACpE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAU;IAErD;;OAEG;IACH,QAAQ,EAAE,CAAC,cAAwB,EAAE,OAAgB,EAAE,EAAE,CACvD,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAU;IAEhD;;OAEG;IACH,IAAI,EAAE;QACJ,KAAK,EAAE,CACL,OAAgB,EAChB,OAAiB,EACjB,UAAoB,EACpB,QAAiB,EACjB,gBAAyB,EACzB,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAU;KAC1F;CACO,CAAA"}
@@ -27,7 +27,7 @@ export const GET_FACTORY_ADDRESS = (chainId) => {
27
27
  return undefined;
28
28
  return {
29
29
  [anvil.id]: process.env.NEXT_PUBLIC_LEVR_FACTORY_V1_ANVIL,
30
- [baseSepolia.id]: '0xa6ee403ee39a378308793d9f4c9a24fc97d34046',
30
+ [baseSepolia.id]: '0x84B505Fc0386699BF8A16df17A91bB415b49691f',
31
31
  }[chainId];
32
32
  };
33
33
  /**
@@ -106,6 +106,34 @@ export const UNISWAP_V4_POOL_MANAGER = (chainId) => {
106
106
  [baseSepolia.id]: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',
107
107
  }[chainId];
108
108
  };
109
+ /**
110
+ * Get the Uniswap V4 StateView address for a given chain ID
111
+ * @param chainId - The chain ID
112
+ * @returns The StateView address
113
+ */
114
+ export const UNISWAP_V4_STATE_VIEW = (chainId) => {
115
+ if (!chainId)
116
+ return undefined;
117
+ return {
118
+ [anvil.id]: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',
119
+ [base.id]: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',
120
+ [baseSepolia.id]: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',
121
+ }[chainId];
122
+ };
123
+ /**
124
+ * Get the Uniswap V3 Quoter V2 address for a given chain ID
125
+ * @param chainId - The chain ID
126
+ * @returns The V3 Quoter V2 address
127
+ */
128
+ export const UNISWAP_V3_QUOTER_V2 = (chainId) => {
129
+ if (!chainId)
130
+ return undefined;
131
+ return {
132
+ [anvil.id]: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a', // V3 Quoter V2
133
+ [base.id]: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
134
+ [baseSepolia.id]: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',
135
+ }[chainId];
136
+ };
109
137
  /**
110
138
  * Get the Clanker Factory address for a given chain ID
111
139
  * @param chainId - The chain ID
@@ -179,4 +207,17 @@ export const STATIC_FEE_TIERS = {
179
207
  '2%': 200,
180
208
  '3%': 300,
181
209
  };
210
+ /**
211
+ * Get the USDC address for a given chain ID
212
+ * @param chainId - The chain ID
213
+ * @returns The USDC address
214
+ */
215
+ export const GET_USDC_ADDRESS = (chainId) => {
216
+ if (!chainId)
217
+ return undefined;
218
+ return {
219
+ [anvil.id]: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
220
+ [base.id]: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
221
+ }[chainId];
222
+ };
182
223
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,48 @@
1
1
  import { IClankerLpLockerMultiple } from "./abis/index.js";
2
2
  import { GET_LP_LOCKER_ADDRESS } from "./constants.js";
3
3
  /**
4
- * Get fee receivers for a clanker token
4
+ * Get tokenRewards from LP locker (shared utility)
5
+ * Returns pool info and fee receiver data
5
6
  */
6
- export async function feeReceivers({ publicClient, clankerToken, chainId, userAddress, }) {
7
- if (Object.values({ publicClient, clankerToken, chainId }).some((value) => !value)) {
8
- throw new Error("Invalid fee receivers params");
9
- }
7
+ export async function getTokenRewards(publicClient, clankerToken) {
8
+ const chainId = publicClient.chain?.id;
9
+ if (!chainId)
10
+ throw new Error("Chain ID not found on public client");
10
11
  const lpLockerAddress = GET_LP_LOCKER_ADDRESS(chainId);
11
12
  if (!lpLockerAddress) {
12
13
  throw new Error("LP locker address not found for chain");
13
14
  }
14
- const info = await publicClient.readContract({
15
+ return await publicClient.readContract({
15
16
  address: lpLockerAddress,
16
17
  abi: IClankerLpLockerMultiple,
17
18
  functionName: "tokenRewards",
18
19
  args: [clankerToken],
19
20
  });
20
- const admins = info?.rewardAdmins || [];
21
- const recipients = info?.rewardRecipients || [];
22
- const bps = info?.rewardBps || [];
23
- const feeReceivers = admins.map((admin, index) => ({
21
+ }
22
+ /**
23
+ * Parse fee receivers from tokenRewards result
24
+ * Shared utility to avoid logic duplication
25
+ */
26
+ export function parseFeeReceivers(tokenRewardsResult, userAddress) {
27
+ const admins = tokenRewardsResult.rewardAdmins || [];
28
+ const recipients = tokenRewardsResult.rewardRecipients || [];
29
+ const bps = tokenRewardsResult.rewardBps || [];
30
+ return admins.map((admin, index) => ({
24
31
  areYouAnAdmin: userAddress ? admin.toLowerCase() === userAddress.toLowerCase() : false,
25
32
  admin,
26
33
  recipient: recipients[index],
27
- // Convert bps to percentage
28
- percentage: bps[index] / 100,
34
+ percentage: bps[index] / 100, // Convert bps to percentage
29
35
  }));
30
- return feeReceivers;
36
+ }
37
+ /**
38
+ * Get fee receivers for a clanker token
39
+ */
40
+ export async function feeReceivers({ publicClient, clankerToken, userAddress, }) {
41
+ if (Object.values({ publicClient, clankerToken }).some((value) => !value)) {
42
+ throw new Error("Invalid fee receivers params");
43
+ }
44
+ const tokenRewards = await getTokenRewards(publicClient, clankerToken);
45
+ return parseFeeReceivers(tokenRewards, userAddress);
31
46
  }
32
47
  /**
33
48
  * Update fee receiver for a clanker token
@@ -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;AAyBnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,GACQ;IACnB,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,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,IAAI,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAC3C,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,wBAAwB;QAC7B,YAAY,EAAE,cAAc;QAC5B,IAAI,EAAE,CAAC,YAAY,CAAC;KACrB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,EAAE,YAAY,IAAI,EAAE,CAAA;IACvC,MAAM,UAAU,GAAG,IAAI,EAAE,gBAAgB,IAAI,EAAE,CAAA;IAC/C,MAAM,GAAG,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;IAEjC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,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,4BAA4B;QAC5B,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG;KAC7B,CAAC,CAAC,CAAA;IAEH,OAAO,YAAY,CAAA;AACrB,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"}
1
+ {"version":3,"file":"fee-receivers.js","sourceRoot":"","sources":["../../src/fee-receivers.ts"],"names":[],"mappings":"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"}