levr-sdk 0.0.1 → 0.0.2

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 (108) hide show
  1. package/README.md +109 -13
  2. package/dist/esm/abis/StateView.js +149 -0
  3. package/dist/esm/abis/V3QuoterV2.js +26 -0
  4. package/dist/esm/abis/index.js +4 -0
  5. package/dist/esm/balance.js +30 -4
  6. package/dist/esm/balance.js.map +1 -1
  7. package/dist/esm/client/hook/use-balance.js +2 -1
  8. package/dist/esm/client/hook/use-balance.js.map +1 -1
  9. package/dist/esm/client/hook/use-fee-receivers.js +0 -1
  10. package/dist/esm/client/hook/use-fee-receivers.js.map +1 -1
  11. package/dist/esm/client/hook/use-governance.js +13 -32
  12. package/dist/esm/client/hook/use-governance.js.map +1 -1
  13. package/dist/esm/client/hook/use-project.js +7 -10
  14. package/dist/esm/client/hook/use-project.js.map +1 -1
  15. package/dist/esm/client/hook/use-proposals.js +2 -4
  16. package/dist/esm/client/hook/use-proposals.js.map +1 -1
  17. package/dist/esm/client/hook/use-stake.js +3 -23
  18. package/dist/esm/client/hook/use-stake.js.map +1 -1
  19. package/dist/esm/client/hook/use-swap.js +14 -6
  20. package/dist/esm/client/hook/use-swap.js.map +1 -1
  21. package/dist/esm/client/levr-provider.js +9 -2
  22. package/dist/esm/client/levr-provider.js.map +1 -1
  23. package/dist/esm/client/query-keys.js +1 -1
  24. package/dist/esm/client/query-keys.js.map +1 -1
  25. package/dist/esm/constants.js +41 -0
  26. package/dist/esm/constants.js.map +1 -1
  27. package/dist/esm/fee-receivers.js +5 -2
  28. package/dist/esm/fee-receivers.js.map +1 -1
  29. package/dist/esm/governance.js +20 -5
  30. package/dist/esm/governance.js.map +1 -1
  31. package/dist/esm/index.js +3 -1
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/pool-key.js +152 -0
  34. package/dist/esm/pool-key.js.map +1 -0
  35. package/dist/esm/project.js +48 -5
  36. package/dist/esm/project.js.map +1 -1
  37. package/dist/esm/projects.js +2 -30
  38. package/dist/esm/projects.js.map +1 -1
  39. package/dist/esm/quote/index.js +98 -0
  40. package/dist/esm/quote/index.js.map +1 -0
  41. package/dist/esm/quote/v3.js +62 -0
  42. package/dist/esm/quote/v3.js.map +1 -0
  43. package/dist/esm/quote/v4.js +228 -0
  44. package/dist/esm/quote/v4.js.map +1 -0
  45. package/dist/esm/stake.js +102 -40
  46. package/dist/esm/stake.js.map +1 -1
  47. package/dist/esm/usd-price.js +149 -0
  48. package/dist/esm/usd-price.js.map +1 -0
  49. package/dist/esm/util.js +45 -1
  50. package/dist/esm/util.js.map +1 -1
  51. package/dist/types/abis/StateView.d.ts +278 -0
  52. package/dist/types/abis/V3QuoterV2.d.ts +39 -0
  53. package/dist/types/abis/index.d.ts +2 -0
  54. package/dist/types/balance.d.ts +4 -6
  55. package/dist/types/balance.d.ts.map +1 -1
  56. package/dist/types/client/hook/index.d.ts +1 -1
  57. package/dist/types/client/hook/index.d.ts.map +1 -1
  58. package/dist/types/client/hook/use-balance.d.ts +3 -1
  59. package/dist/types/client/hook/use-balance.d.ts.map +1 -1
  60. package/dist/types/client/hook/use-fee-receivers.d.ts +1 -1
  61. package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -1
  62. package/dist/types/client/hook/use-governance.d.ts +20 -15
  63. package/dist/types/client/hook/use-governance.d.ts.map +1 -1
  64. package/dist/types/client/hook/use-project.d.ts +3 -1
  65. package/dist/types/client/hook/use-project.d.ts.map +1 -1
  66. package/dist/types/client/hook/use-proposals.d.ts +1 -1
  67. package/dist/types/client/hook/use-proposals.d.ts.map +1 -1
  68. package/dist/types/client/hook/use-stake.d.ts +37 -132
  69. package/dist/types/client/hook/use-stake.d.ts.map +1 -1
  70. package/dist/types/client/hook/use-swap.d.ts +2 -1
  71. package/dist/types/client/hook/use-swap.d.ts.map +1 -1
  72. package/dist/types/client/levr-provider.d.ts +31 -38
  73. package/dist/types/client/levr-provider.d.ts.map +1 -1
  74. package/dist/types/client/query-keys.d.ts +1 -1
  75. package/dist/types/client/query-keys.d.ts.map +1 -1
  76. package/dist/types/constants.d.ts +18 -0
  77. package/dist/types/constants.d.ts.map +1 -1
  78. package/dist/types/fee-receivers.d.ts +1 -2
  79. package/dist/types/fee-receivers.d.ts.map +1 -1
  80. package/dist/types/governance.d.ts +8 -21
  81. package/dist/types/governance.d.ts.map +1 -1
  82. package/dist/types/index.d.ts +3 -1
  83. package/dist/types/index.d.ts.map +1 -1
  84. package/dist/types/pool-key.d.ts +121 -0
  85. package/dist/types/pool-key.d.ts.map +1 -0
  86. package/dist/types/project.d.ts +7 -12
  87. package/dist/types/project.d.ts.map +1 -1
  88. package/dist/types/projects.d.ts +1 -1
  89. package/dist/types/projects.d.ts.map +1 -1
  90. package/dist/types/quote/index.d.ts +97 -0
  91. package/dist/types/quote/index.d.ts.map +1 -0
  92. package/dist/types/quote/v3.d.ts +78 -0
  93. package/dist/types/quote/v3.d.ts.map +1 -0
  94. package/dist/types/quote/v4.d.ts +95 -0
  95. package/dist/types/quote/v4.d.ts.map +1 -0
  96. package/dist/types/stake.d.ts +38 -59
  97. package/dist/types/stake.d.ts.map +1 -1
  98. package/dist/types/types.d.ts +15 -0
  99. package/dist/types/types.d.ts.map +1 -1
  100. package/dist/types/usd-price.d.ts +141 -0
  101. package/dist/types/usd-price.d.ts.map +1 -0
  102. package/dist/types/util.d.ts +17 -0
  103. package/dist/types/util.d.ts.map +1 -1
  104. package/package.json +1 -1
  105. package/dist/esm/quote-v4.js +0 -169
  106. package/dist/esm/quote-v4.js.map +0 -1
  107. package/dist/types/quote-v4.d.ts +0 -54
  108. package/dist/types/quote-v4.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { TransactionReceipt } from 'viem';
2
- import type { PopPublicClient, PopWalletClient } from './types';
2
+ import type { BalanceResult, PopPublicClient, PopWalletClient, PricingResult } from './types';
3
3
  export type GovernanceConfig = {
4
4
  wallet: PopWalletClient;
5
5
  publicClient: PopPublicClient;
@@ -7,6 +7,7 @@ export type GovernanceConfig = {
7
7
  tokenDecimals: number;
8
8
  clankerToken: `0x${string}`;
9
9
  trustedForwarder?: `0x${string}`;
10
+ pricing?: PricingResult;
10
11
  };
11
12
  export type ProposalDetails = {
12
13
  id: bigint;
@@ -28,10 +29,7 @@ export type FormattedProposalDetails = {
28
29
  id: bigint;
29
30
  proposalType: number;
30
31
  proposer: `0x${string}`;
31
- amount: {
32
- raw: bigint;
33
- formatted: string;
34
- };
32
+ amount: BalanceResult;
35
33
  recipient: `0x${string}`;
36
34
  description: string;
37
35
  createdAt: {
@@ -46,14 +44,8 @@ export type FormattedProposalDetails = {
46
44
  timestamp: bigint;
47
45
  date: Date;
48
46
  };
49
- yesVotes: {
50
- raw: bigint;
51
- formatted: string;
52
- };
53
- noVotes: {
54
- raw: bigint;
55
- formatted: string;
56
- };
47
+ yesVotes: BalanceResult;
48
+ noVotes: BalanceResult;
57
49
  totalBalanceVoted: bigint;
58
50
  executed: boolean;
59
51
  cycleId: bigint;
@@ -78,6 +70,7 @@ export declare class Governance {
78
70
  private tokenDecimals;
79
71
  private clankerToken;
80
72
  private userAddress;
73
+ private pricing?;
81
74
  constructor(config: GovernanceConfig);
82
75
  /**
83
76
  * Propose a transfer from treasury to recipient
@@ -186,14 +179,8 @@ export declare class Governance {
186
179
  * Get airdrop status for treasury with detailed status information
187
180
  */
188
181
  getAirdropStatus(): Promise<{
189
- availableAmount: {
190
- raw: bigint;
191
- formatted: string;
192
- };
193
- allocatedAmount: {
194
- raw: bigint;
195
- formatted: string;
196
- };
182
+ availableAmount: BalanceResult;
183
+ allocatedAmount: BalanceResult;
197
184
  isAvailable: boolean;
198
185
  error?: string;
199
186
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,15 @@ export * from './constants';
6
6
  export * from './deploy-v4';
7
7
  export * from './fee-receivers';
8
8
  export * from './governance';
9
+ export * from './pool-key';
9
10
  export * from './project';
10
11
  export * from './projects';
11
12
  export * from './proposals';
12
- export * from './quote-v4';
13
+ export * from './quote';
13
14
  export * from './schema';
14
15
  export * from './stake';
15
16
  export * from './swap-v4';
16
17
  export * from './types';
18
+ export * from './usd-price';
17
19
  export * from './util';
18
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA"}
@@ -0,0 +1,121 @@
1
+ import type { PublicClient } from 'viem';
2
+ import type { PoolKey } from './types';
3
+ /**
4
+ * @description Sort two token addresses for pool key (currency0 < currency1)
5
+ */
6
+ export declare const sortTokens: (tokenA: `0x${string}`, tokenB: `0x${string}`) => [`0x${string}`, `0x${string}`];
7
+ /**
8
+ * @description Default pool configuration
9
+ * 0.3% fee tier is the most common on Uniswap
10
+ */
11
+ export declare const DEFAULT_POOL_CONFIG: {
12
+ readonly fee: 3000;
13
+ readonly tickSpacing: 60;
14
+ readonly hooks: "0x0000000000000000000000000000000000000000";
15
+ };
16
+ /**
17
+ * @description Create a pool key for two tokens
18
+ * @param token0 First token address
19
+ * @param token1 Second token address
20
+ * @param fee Fee tier (in hundredths of a bip, e.g. 3000 = 0.3%). Defaults to 3000 (0.3%)
21
+ * @param tickSpacing Tick spacing. Defaults to 60 (for 0.3% fee tier)
22
+ * @param hooks Hooks address. Defaults to zero address (no hooks)
23
+ * @returns Properly sorted PoolKey
24
+ */
25
+ export declare const createPoolKey: (token0: `0x${string}`, token1: `0x${string}`, fee?: number, tickSpacing?: number, hooks?: `0x${string}`) => PoolKey;
26
+ /**
27
+ * @description Calculate pool ID from pool key (keccak256 of abi.encode(PoolKey))
28
+ * @param poolKey Pool key
29
+ * @returns Pool ID as bytes32
30
+ */
31
+ export declare const getPoolId: (poolKey: PoolKey) => `0x${string}`;
32
+ /**
33
+ * @description Common fee tiers and their corresponding tick spacings
34
+ * Ordered by preference: 0.3% is most common for major pairs, then 0.05%, then 1%
35
+ * From Uniswap V4 documentation
36
+ */
37
+ export declare const COMMON_FEE_TIERS: readonly [{
38
+ readonly fee: 3000;
39
+ readonly tickSpacing: 60;
40
+ }, {
41
+ readonly fee: 500;
42
+ readonly tickSpacing: 10;
43
+ }, {
44
+ readonly fee: 10000;
45
+ readonly tickSpacing: 200;
46
+ }];
47
+ /**
48
+ * @description Parameters for discovering a pool
49
+ */
50
+ export type DiscoverPoolParams = {
51
+ publicClient: PublicClient;
52
+ token0: `0x${string}`;
53
+ token1: `0x${string}`;
54
+ hooks?: `0x${string}`;
55
+ feeTiers?: readonly {
56
+ fee: number;
57
+ tickSpacing: number;
58
+ }[];
59
+ };
60
+ /**
61
+ * @description Return type for pool discovery
62
+ */
63
+ export type DiscoverPoolReturnType = {
64
+ poolKey: PoolKey;
65
+ sqrtPriceX96: bigint;
66
+ liquidity: bigint;
67
+ tick: number;
68
+ } | null;
69
+ /**
70
+ * @description Discover an existing pool by trying common fee tiers
71
+ * @param params Discovery parameters
72
+ * @returns Pool data if found, null otherwise
73
+ *
74
+ * @remarks
75
+ * This function tries to find an initialized pool by:
76
+ * 1. Trying common fee tiers (0.05%, 0.3%, 1%)
77
+ * 2. Querying StateView contract to check if pool exists and has liquidity
78
+ * 3. Returning the first valid pool found
79
+ *
80
+ * Uses Uniswap V4's StateView contract to fetch pool state:
81
+ * - getSlot0(): sqrtPriceX96, tick, protocol/LP fees
82
+ * - getLiquidity(): pool liquidity
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * const pool = await discoverPool({
87
+ * publicClient,
88
+ * token0: WETH_ADDRESS,
89
+ * token1: USDC_ADDRESS,
90
+ * })
91
+ * if (pool) {
92
+ * console.log('Found pool:', pool.poolKey)
93
+ * console.log('Liquidity:', pool.liquidity)
94
+ * }
95
+ * ```
96
+ */
97
+ export declare const discoverPool: ({ publicClient, token0, token1, hooks, feeTiers, }: DiscoverPoolParams) => Promise<DiscoverPoolReturnType>;
98
+ /**
99
+ * @description Find a liquid pool by discovering pools with liquidity
100
+ * @param params Discovery parameters
101
+ * @returns Pool key if found, null otherwise
102
+ *
103
+ * @remarks
104
+ * This is a convenience wrapper around discoverPool that returns just the pool key.
105
+ * It uses the StateView contract to find pools with actual liquidity.
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * const poolKey = await findLiquidPool({
110
+ * publicClient,
111
+ * token0: WETH_ADDRESS,
112
+ * token1: USDC_ADDRESS,
113
+ * })
114
+ * if (poolKey) {
115
+ * console.log('Found pool with fee tier:', poolKey.fee)
116
+ * }
117
+ * ```
118
+ */
119
+ export type FindLiquidPoolParams = DiscoverPoolParams;
120
+ export declare const findLiquidPool: (params: FindLiquidPoolParams) => Promise<PoolKey | null>;
121
+ //# sourceMappingURL=pool-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool-key.d.ts","sourceRoot":"","sources":["../../src/pool-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAKxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,QAAQ,KAAK,MAAM,EAAE,EACrB,QAAQ,KAAK,MAAM,EAAE,KACpB,CAAC,KAAK,MAAM,EAAE,EAAE,KAAK,MAAM,EAAE,CAE/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,KAAK,MAAM,EAAE,EACrB,QAAQ,KAAK,MAAM,EAAE,EACrB,MAAK,MAAgC,EACrC,cAAa,MAAwC,EACrD,QAAO,KAAK,MAAM,EAA8B,KAC/C,OASF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,KAAG,KAAK,MAAM,EAkBvD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;EAInB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;IACrB,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;IACrB,QAAQ,CAAC,EAAE,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC3D,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,IAAI,CAAA;AAER;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,YAAY,GAAU,oDAMhC,kBAAkB,KAAG,OAAO,CAAC,sBAAsB,CA0DrD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAErD,eAAO,MAAM,cAAc,GAAU,QAAQ,oBAAoB,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAGzF,CAAA"}
@@ -1,9 +1,8 @@
1
- import type { PoolKey, PopPublicClient } from './types';
1
+ import type { BalanceResult, PoolKey, PopPublicClient, PricingResult } from './types';
2
2
  export type ProjectParams = {
3
3
  publicClient: PopPublicClient;
4
- factoryAddress: `0x${string}`;
5
- chainId: number;
6
4
  clankerToken: `0x${string}`;
5
+ oraclePublicClient?: PopPublicClient;
7
6
  };
8
7
  export type ProjectMetadata = {
9
8
  description: string;
@@ -16,17 +15,12 @@ export type PoolInfo = {
16
15
  numPositions: bigint;
17
16
  };
18
17
  export type TreasuryStats = {
19
- balance: {
20
- raw: bigint;
21
- formatted: string;
22
- };
23
- totalAllocated: {
24
- raw: bigint;
25
- formatted: string;
26
- };
18
+ balance: BalanceResult;
19
+ totalAllocated: BalanceResult;
27
20
  utilization: number;
28
21
  };
29
22
  export type Project = {
23
+ chainId: number;
30
24
  treasury: `0x${string}`;
31
25
  governor: `0x${string}`;
32
26
  staking: `0x${string}`;
@@ -43,9 +37,10 @@ export type Project = {
43
37
  };
44
38
  pool?: PoolInfo;
45
39
  treasuryStats?: TreasuryStats;
40
+ pricing?: PricingResult;
46
41
  };
47
42
  /**
48
43
  * Get project data for a clanker token
49
44
  */
50
- export declare function project({ publicClient, factoryAddress, chainId, clankerToken, }: ProjectParams): Promise<Project | null>;
45
+ export declare function project({ publicClient, clankerToken, oraclePublicClient, }: ProjectParams): Promise<Project | null>;
51
46
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEvD,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,eAAe,CAAA;IAC7B,cAAc,EAAE,KAAK,MAAM,EAAE,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,EAAE,CAAA;IACnB,SAAS,EAAE,EAAE,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAClD,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAA;IAC1B,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,KAAK,EAAE;QACL,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,CAAA;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,EAC5B,YAAY,EACZ,cAAc,EACd,OAAO,EACP,YAAY,GACb,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA+JzC"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGrF,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,eAAe,CAAA;IAC7B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;IAC3B,kBAAkB,CAAC,EAAE,eAAe,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,EAAE,CAAA;IACnB,SAAS,EAAE,EAAE,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,aAAa,CAAA;IACtB,cAAc,EAAE,aAAa,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAA;IAC1B,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,KAAK,EAAE;QACL,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,EAC5B,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA0MzC"}
@@ -9,7 +9,7 @@ export type ProjectsParams = {
9
9
  pageSize?: number;
10
10
  };
11
11
  export type ProjectsResult = {
12
- projects: Omit<Project, 'forwarder'>[];
12
+ projects: Omit<Project, 'forwarder' | 'pool' | 'pricing'>[];
13
13
  fromBlock: bigint;
14
14
  toBlock: bigint;
15
15
  };
@@ -1 +1 @@
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
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/projects.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAkC,MAAM,WAAW,CAAA;AACxE,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,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAA;IAC3D,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,CAkN1C"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @description Unified quote API for Uniswap V3 and V4
3
+ *
4
+ * @remarks
5
+ * This module provides quote functionality for both Uniswap V3 and V4 pools.
6
+ * Each version offers two methods:
7
+ * - `read`: Performs an async call to get the quote immediately
8
+ * - `bytecode`: Returns encoded call data for use in multicalls or custom execution
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // V3 Read (immediate result)
13
+ * const v3Quote = await quote.v3.read({
14
+ * publicClient,
15
+ * quoterAddress: '0x...',
16
+ * tokenIn: '0x123...',
17
+ * tokenOut: '0x456...',
18
+ * amountIn: parseUnits('1', 18),
19
+ * fee: 3000,
20
+ * })
21
+ * console.log(`Output: ${formatUnits(v3Quote.amountOut, 6)}`)
22
+ *
23
+ * // V3 Bytecode (for multicall)
24
+ * const v3Bytecode = quote.v3.bytecode({
25
+ * quoterAddress: '0x...',
26
+ * tokenIn: '0x123...',
27
+ * tokenOut: '0x456...',
28
+ * amountIn: parseUnits('1', 18),
29
+ * fee: 3000,
30
+ * })
31
+ * // Use v3Bytecode.address and v3Bytecode.data in multicall
32
+ *
33
+ * // V4 Read (immediate result with hook fees and price impact)
34
+ * const v4Quote = await quote.v4.read({
35
+ * publicClient,
36
+ * poolKey,
37
+ * zeroForOne: true,
38
+ * amountIn: parseEther('1'),
39
+ * pricing,
40
+ * tokenAddress: '0x...',
41
+ * })
42
+ * console.log(`Output: ${formatEther(v4Quote.amountOut)}`)
43
+ * console.log(`Price Impact: ${v4Quote.priceImpactBps}%`)
44
+ * console.log(`Hook Fees:`, v4Quote.hookFees)
45
+ *
46
+ * // V4 Bytecode (for multicall)
47
+ * const v4Bytecode = quote.v4.bytecode({
48
+ * publicClient, // Needed for chain ID
49
+ * poolKey,
50
+ * zeroForOne: true,
51
+ * amountIn: parseEther('1'),
52
+ * })
53
+ * // Use v4Bytecode.address and v4Bytecode.data in multicall
54
+ * ```
55
+ */
56
+ export type { QuoteV3Params, QuoteV3ReadReturnType, QuoteV3BytecodeReturnType, } from './v3';
57
+ export type { QuoteV4Params, QuoteV4ReadReturnType, QuoteV4BytecodeReturnType, } from './v4';
58
+ /**
59
+ * @description Unified quote API for Uniswap V3 and V4
60
+ */
61
+ export declare const quote: {
62
+ /**
63
+ * Uniswap V3 quote methods
64
+ */
65
+ v3: {
66
+ /**
67
+ * Get a V3 quote by reading from the quoter contract
68
+ * @param params Quote parameters
69
+ * @returns Quote result with output amount
70
+ */
71
+ read: (params: import("./v3").QuoteV3Params) => Promise<import("./v3").QuoteV3ReadReturnType>;
72
+ /**
73
+ * Get encoded bytecode for a V3 quote (for multicalls)
74
+ * @param params Quote parameters
75
+ * @returns Contract address and encoded call data
76
+ */
77
+ bytecode: (params: import("./v3").QuoteV3Params) => import("./v3").QuoteV3BytecodeReturnType;
78
+ };
79
+ /**
80
+ * Uniswap V4 quote methods
81
+ */
82
+ v4: {
83
+ /**
84
+ * Get a V4 quote by reading from the quoter contract
85
+ * @param params Quote parameters
86
+ * @returns Quote result with output amount, gas estimate, price impact, and hook fees
87
+ */
88
+ read: (params: import("./v4").QuoteV4Params) => Promise<import("./v4").QuoteV4ReadReturnType>;
89
+ /**
90
+ * Get encoded bytecode for a V4 quote (for multicalls)
91
+ * @param params Quote parameters
92
+ * @returns Contract address and encoded call data
93
+ */
94
+ bytecode: (params: import("./v4").QuoteV4Params) => import("./v4").QuoteV4BytecodeReturnType;
95
+ };
96
+ };
97
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/quote/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAGH,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,MAAM,CAAA;AAEb,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,MAAM,CAAA;AAMb;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB;;OAEG;;QAED;;;;WAIG;;QAEH;;;;WAIG;;;IAGL;;OAEG;;QAED;;;;WAIG;;QAEH;;;;WAIG;;;CAGN,CAAA"}
@@ -0,0 +1,78 @@
1
+ import type { PublicClient } from 'viem';
2
+ import { V3QuoterV2 } from '../abis';
3
+ /**
4
+ * @description Parameters for quoting a V3 swap
5
+ */
6
+ export type QuoteV3Params = {
7
+ /**
8
+ * Public client for V3 quoter queries (only required for read method)
9
+ */
10
+ publicClient?: PublicClient;
11
+ /**
12
+ * V3 Quoter V2 address
13
+ */
14
+ quoterAddress: `0x${string}`;
15
+ /**
16
+ * Input token address
17
+ */
18
+ tokenIn: `0x${string}`;
19
+ /**
20
+ * Output token address
21
+ */
22
+ tokenOut: `0x${string}`;
23
+ /**
24
+ * Amount of input token (in wei)
25
+ */
26
+ amountIn: bigint;
27
+ /**
28
+ * Fee tier (500 = 0.05%, 3000 = 0.3%, 10000 = 1%)
29
+ */
30
+ fee: number;
31
+ /**
32
+ * Optional sqrt price limit (0n = no limit)
33
+ */
34
+ sqrtPriceLimitX96?: bigint;
35
+ };
36
+ /**
37
+ * @description Return type for V3 quote read method
38
+ */
39
+ export type QuoteV3ReadReturnType = {
40
+ /**
41
+ * Amount of output token (in wei)
42
+ */
43
+ amountOut: bigint;
44
+ /**
45
+ * Fee tier used for the quote
46
+ */
47
+ fee: number;
48
+ };
49
+ /**
50
+ * @description Return type for V3 quote bytecode method
51
+ */
52
+ export type QuoteV3BytecodeReturnType = {
53
+ /**
54
+ * Target contract address
55
+ */
56
+ address: `0x${string}`;
57
+ /**
58
+ * Encoded function call data
59
+ */
60
+ data: `0x${string}`;
61
+ /**
62
+ * Contract ABI for multicall
63
+ */
64
+ abi: typeof V3QuoterV2;
65
+ };
66
+ /**
67
+ * @description Quote a swap on Uniswap V3 by reading from the quoter contract
68
+ * @param params Parameters for V3 quote
69
+ * @returns Output amount and fee tier
70
+ */
71
+ export declare const quoteV3Read: (params: QuoteV3Params) => Promise<QuoteV3ReadReturnType>;
72
+ /**
73
+ * @description Get bytecode for a V3 quote that can be used in multicalls
74
+ * @param params Parameters for V3 quote
75
+ * @returns Contract address, encoded call data, and ABI
76
+ */
77
+ export declare const quoteV3Bytecode: (params: QuoteV3Params) => QuoteV3BytecodeReturnType;
78
+ //# sourceMappingURL=v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v3.d.ts","sourceRoot":"","sources":["../../../src/quote/v3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMpC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,aAAa,EAAE,KAAK,MAAM,EAAE,CAAA;IAC5B;;OAEG;IACH,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB;;OAEG;IACH,IAAI,EAAE,KAAK,MAAM,EAAE,CAAA;IACnB;;OAEG;IACH,GAAG,EAAE,OAAO,UAAU,CAAA;CACvB,CAAA;AAMD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAU,QAAQ,aAAa,KAAG,OAAO,CAAC,qBAAqB,CAoCtF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,aAAa,KAAG,yBAsBvD,CAAA"}
@@ -0,0 +1,95 @@
1
+ import type { PublicClient } from 'viem';
2
+ import { V4Quoter } from '../abis';
3
+ import type { PoolKey, PricingResult } from '../types';
4
+ export type QuoteV4Params = {
5
+ /**
6
+ * Public client for V4 quoter queries (only required for read method)
7
+ */
8
+ publicClient?: PublicClient;
9
+ /**
10
+ * Pool key containing currency pair and fee info
11
+ */
12
+ poolKey: PoolKey;
13
+ /**
14
+ * Swap direction (true = currency0 to currency1, false = currency1 to currency0)
15
+ */
16
+ zeroForOne: boolean;
17
+ /**
18
+ * Amount of input token (in wei)
19
+ */
20
+ amountIn: bigint;
21
+ /**
22
+ * Optional hook data
23
+ */
24
+ hookData?: `0x${string}`;
25
+ /**
26
+ * Optional pricing data for price impact calculation
27
+ */
28
+ pricing?: PricingResult;
29
+ /**
30
+ * Decimals for currency0 (default: 18)
31
+ */
32
+ currency0Decimals?: number;
33
+ /**
34
+ * Decimals for currency1 (default: 18)
35
+ */
36
+ currency1Decimals?: number;
37
+ /**
38
+ * Project token address to determine which currency is token vs WETH
39
+ */
40
+ tokenAddress?: `0x${string}`;
41
+ };
42
+ export type QuoteV4ReadReturnType = {
43
+ /**
44
+ * Amount of output token (in wei)
45
+ */
46
+ amountOut: bigint;
47
+ /**
48
+ * Estimated gas for the swap
49
+ */
50
+ gasEstimate: bigint;
51
+ /**
52
+ * Price impact percentage (e.g., 0.5 for 0.5%)
53
+ * Only calculated if pricing data is provided
54
+ */
55
+ priceImpactBps?: number;
56
+ /**
57
+ * Fee information from Clanker hooks (if available)
58
+ * - Static fees: clankerFee and pairedFee in basis points
59
+ * - Dynamic fees: baseFee and maxLpFee in basis points
60
+ */
61
+ hookFees?: {
62
+ type: 'static' | 'dynamic';
63
+ clankerFee?: number;
64
+ pairedFee?: number;
65
+ baseFee?: number;
66
+ maxLpFee?: number;
67
+ };
68
+ };
69
+ export type QuoteV4BytecodeReturnType = {
70
+ /**
71
+ * Target contract address
72
+ */
73
+ address: `0x${string}`;
74
+ /**
75
+ * Encoded function call data
76
+ */
77
+ data: `0x${string}`;
78
+ /**
79
+ * Contract ABI for multicall
80
+ */
81
+ abi: typeof V4Quoter;
82
+ };
83
+ /**
84
+ * @description Quote a swap on Uniswap V4 by reading from the quoter contract
85
+ * @param params Quote parameters including pool key and amount
86
+ * @returns Quote result with output amount, gas estimate, price impact, and hook fees
87
+ */
88
+ export declare const quoteV4Read: (params: QuoteV4Params) => Promise<QuoteV4ReadReturnType>;
89
+ /**
90
+ * @description Get bytecode for a V4 quote that can be used in multicalls
91
+ * @param params Quote parameters including pool key and amount
92
+ * @returns Contract address, encoded call data, and ABI
93
+ */
94
+ export declare const quoteV4Bytecode: (params: QuoteV4Params) => QuoteV4BytecodeReturnType;
95
+ //# sourceMappingURL=v4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4.d.ts","sourceRoot":"","sources":["../../../src/quote/v4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAGxC,OAAO,EAAiD,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEjF,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAMtD,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;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;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB;;OAEG;IACH,IAAI,EAAE,KAAK,MAAM,EAAE,CAAA;IACnB;;OAEG;IACH,GAAG,EAAE,OAAO,QAAQ,CAAA;CACrB,CAAA;AAsLD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAU,QAAQ,aAAa,KAAG,OAAO,CAAC,qBAAqB,CAwEtF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,aAAa,KAAG,yBAiCvD,CAAA"}