levr-sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +711 -0
  3. package/dist/esm/abis/IClankerAirdrop.js +443 -0
  4. package/dist/esm/abis/IClankerHookDynamicFee.js +198 -0
  5. package/dist/esm/abis/IClankerHookStaticFee.js +75 -0
  6. package/dist/esm/abis/IClankerLPLocker.js +402 -0
  7. package/dist/esm/abis/IClankerLpLockerMultiple.js +609 -0
  8. package/dist/esm/abis/IClankerToken.js +421 -0
  9. package/dist/esm/abis/LevrFactory_v1.js +608 -0
  10. package/dist/esm/abis/LevrForwarder_v1.js +622 -0
  11. package/dist/esm/abis/LevrGovernor_v1.js +726 -0
  12. package/dist/esm/abis/LevrStakedToken_v1.js +441 -0
  13. package/dist/esm/abis/LevrStaking_v1.js +607 -0
  14. package/dist/esm/abis/LevrTreasury_v1.js +219 -0
  15. package/dist/esm/abis/Permit2.js +29 -0
  16. package/dist/esm/abis/V4Quoter.js +466 -0
  17. package/dist/esm/abis/WETH9.js +153 -0
  18. package/dist/esm/abis/index.js +23 -0
  19. package/dist/esm/balance.js +72 -0
  20. package/dist/esm/balance.js.map +1 -0
  21. package/dist/esm/build-calldatas-v4.js +98 -0
  22. package/dist/esm/build-calldatas-v4.js.map +1 -0
  23. package/dist/esm/build-clanker-v4.js +128 -0
  24. package/dist/esm/build-clanker-v4.js.map +1 -0
  25. package/dist/esm/client/hook/index.js +36 -0
  26. package/dist/esm/client/hook/index.js.map +1 -0
  27. package/dist/esm/client/hook/use-balance.js +56 -0
  28. package/dist/esm/client/hook/use-balance.js.map +1 -0
  29. package/dist/esm/client/hook/use-clanker.js +57 -0
  30. package/dist/esm/client/hook/use-clanker.js.map +1 -0
  31. package/dist/esm/client/hook/use-deploy.js +16 -0
  32. package/dist/esm/client/hook/use-deploy.js.map +1 -0
  33. package/dist/esm/client/hook/use-fee-receivers.js +54 -0
  34. package/dist/esm/client/hook/use-fee-receivers.js.map +1 -0
  35. package/dist/esm/client/hook/use-governance.js +389 -0
  36. package/dist/esm/client/hook/use-governance.js.map +1 -0
  37. package/dist/esm/client/hook/use-prepare.js +47 -0
  38. package/dist/esm/client/hook/use-prepare.js.map +1 -0
  39. package/dist/esm/client/hook/use-project.js +29 -0
  40. package/dist/esm/client/hook/use-project.js.map +1 -0
  41. package/dist/esm/client/hook/use-projects.js +22 -0
  42. package/dist/esm/client/hook/use-projects.js.map +1 -0
  43. package/dist/esm/client/hook/use-proposals.js +31 -0
  44. package/dist/esm/client/hook/use-proposals.js.map +1 -0
  45. package/dist/esm/client/hook/use-register.js +101 -0
  46. package/dist/esm/client/hook/use-register.js.map +1 -0
  47. package/dist/esm/client/hook/use-stake.js +327 -0
  48. package/dist/esm/client/hook/use-stake.js.map +1 -0
  49. package/dist/esm/client/hook/use-swap.js +110 -0
  50. package/dist/esm/client/hook/use-swap.js.map +1 -0
  51. package/dist/esm/client/index.js +4 -0
  52. package/dist/esm/client/index.js.map +1 -0
  53. package/dist/esm/client/levr-provider.js +201 -0
  54. package/dist/esm/client/levr-provider.js.map +1 -0
  55. package/dist/esm/client/query-keys.js +61 -0
  56. package/dist/esm/client/query-keys.js.map +1 -0
  57. package/dist/esm/constants.js +182 -0
  58. package/dist/esm/constants.js.map +1 -0
  59. package/dist/esm/deploy-v4.js +46 -0
  60. package/dist/esm/deploy-v4.js.map +1 -0
  61. package/dist/esm/fee-receivers.js +52 -0
  62. package/dist/esm/fee-receivers.js.map +1 -0
  63. package/dist/esm/governance.js +555 -0
  64. package/dist/esm/governance.js.map +1 -0
  65. package/dist/esm/index.js +18 -0
  66. package/dist/esm/index.js.map +1 -0
  67. package/dist/esm/project.js +146 -0
  68. package/dist/esm/project.js.map +1 -0
  69. package/dist/esm/projects.js +212 -0
  70. package/dist/esm/projects.js.map +1 -0
  71. package/dist/esm/proposals.js +98 -0
  72. package/dist/esm/proposals.js.map +1 -0
  73. package/dist/esm/quote-v4.js +169 -0
  74. package/dist/esm/quote-v4.js.map +1 -0
  75. package/dist/esm/schema/base.schema.js +11 -0
  76. package/dist/esm/schema/base.schema.js.map +1 -0
  77. package/dist/esm/schema/clanker.schema.js +191 -0
  78. package/dist/esm/schema/clanker.schema.js.map +1 -0
  79. package/dist/esm/schema/index.js +4 -0
  80. package/dist/esm/schema/index.js.map +1 -0
  81. package/dist/esm/schema/levr.schema.js +114 -0
  82. package/dist/esm/schema/levr.schema.js.map +1 -0
  83. package/dist/esm/stake.js +384 -0
  84. package/dist/esm/stake.js.map +1 -0
  85. package/dist/esm/swap-v4.js +281 -0
  86. package/dist/esm/swap-v4.js.map +1 -0
  87. package/dist/esm/types.js +2 -0
  88. package/dist/esm/types.js.map +1 -0
  89. package/dist/esm/util.js +19 -0
  90. package/dist/esm/util.js.map +1 -0
  91. package/dist/types/abis/IClankerAirdrop.d.ts +348 -0
  92. package/dist/types/abis/IClankerHookDynamicFee.d.ts +156 -0
  93. package/dist/types/abis/IClankerHookStaticFee.d.ts +58 -0
  94. package/dist/types/abis/IClankerLPLocker.d.ts +316 -0
  95. package/dist/types/abis/IClankerLpLockerMultiple.d.ts +481 -0
  96. package/dist/types/abis/IClankerToken.d.ts +326 -0
  97. package/dist/types/abis/LevrFactory_v1.d.ts +471 -0
  98. package/dist/types/abis/LevrForwarder_v1.d.ts +478 -0
  99. package/dist/types/abis/LevrGovernor_v1.d.ts +562 -0
  100. package/dist/types/abis/LevrStakedToken_v1.d.ts +338 -0
  101. package/dist/types/abis/LevrStaking_v1.d.ts +468 -0
  102. package/dist/types/abis/LevrTreasury_v1.d.ts +169 -0
  103. package/dist/types/abis/Permit2.d.ts +54 -0
  104. package/dist/types/abis/V4Quoter.d.ts +496 -0
  105. package/dist/types/abis/WETH9.d.ts +244 -0
  106. package/dist/types/abis/index.d.ts +15 -0
  107. package/dist/types/balance.d.ts +24 -0
  108. package/dist/types/balance.d.ts.map +1 -0
  109. package/dist/types/build-calldatas-v4.d.ts +20 -0
  110. package/dist/types/build-calldatas-v4.d.ts.map +1 -0
  111. package/dist/types/build-clanker-v4.d.ts +12 -0
  112. package/dist/types/build-clanker-v4.d.ts.map +1 -0
  113. package/dist/types/client/hook/index.d.ts +32 -0
  114. package/dist/types/client/hook/index.d.ts.map +1 -0
  115. package/dist/types/client/hook/use-balance.d.ts +18 -0
  116. package/dist/types/client/hook/use-balance.d.ts.map +1 -0
  117. package/dist/types/client/hook/use-clanker.d.ts +23 -0
  118. package/dist/types/client/hook/use-clanker.d.ts.map +1 -0
  119. package/dist/types/client/hook/use-deploy.d.ts +45 -0
  120. package/dist/types/client/hook/use-deploy.d.ts.map +1 -0
  121. package/dist/types/client/hook/use-fee-receivers.d.ts +26 -0
  122. package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -0
  123. package/dist/types/client/hook/use-governance.d.ts +145 -0
  124. package/dist/types/client/hook/use-governance.d.ts.map +1 -0
  125. package/dist/types/client/hook/use-prepare.d.ts +21 -0
  126. package/dist/types/client/hook/use-prepare.d.ts.map +1 -0
  127. package/dist/types/client/hook/use-project.d.ts +11 -0
  128. package/dist/types/client/hook/use-project.d.ts.map +1 -0
  129. package/dist/types/client/hook/use-projects.d.ts +6 -0
  130. package/dist/types/client/hook/use-projects.d.ts.map +1 -0
  131. package/dist/types/client/hook/use-proposals.d.ts +16 -0
  132. package/dist/types/client/hook/use-proposals.d.ts.map +1 -0
  133. package/dist/types/client/hook/use-register.d.ts +31 -0
  134. package/dist/types/client/hook/use-register.d.ts.map +1 -0
  135. package/dist/types/client/hook/use-stake.d.ts +195 -0
  136. package/dist/types/client/hook/use-stake.d.ts.map +1 -0
  137. package/dist/types/client/hook/use-swap.d.ts +59 -0
  138. package/dist/types/client/hook/use-swap.d.ts.map +1 -0
  139. package/dist/types/client/index.d.ts +4 -0
  140. package/dist/types/client/index.d.ts.map +1 -0
  141. package/dist/types/client/levr-provider.d.ts +127 -0
  142. package/dist/types/client/levr-provider.d.ts.map +1 -0
  143. package/dist/types/client/query-keys.d.ts +61 -0
  144. package/dist/types/client/query-keys.d.ts.map +1 -0
  145. package/dist/types/constants.d.ts +101 -0
  146. package/dist/types/constants.d.ts.map +1 -0
  147. package/dist/types/deploy-v4.d.ts +13 -0
  148. package/dist/types/deploy-v4.d.ts.map +1 -0
  149. package/dist/types/fee-receivers.d.ts +29 -0
  150. package/dist/types/fee-receivers.d.ts.map +1 -0
  151. package/dist/types/governance.d.ts +205 -0
  152. package/dist/types/governance.d.ts.map +1 -0
  153. package/dist/types/index.d.ts +18 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/dist/types/project.d.ts +51 -0
  156. package/dist/types/project.d.ts.map +1 -0
  157. package/dist/types/projects.d.ts +20 -0
  158. package/dist/types/projects.d.ts.map +1 -0
  159. package/dist/types/proposals.d.ts +20 -0
  160. package/dist/types/proposals.d.ts.map +1 -0
  161. package/dist/types/quote-v4.d.ts +54 -0
  162. package/dist/types/quote-v4.d.ts.map +1 -0
  163. package/dist/types/schema/base.schema.d.ts +5 -0
  164. package/dist/types/schema/base.schema.d.ts.map +1 -0
  165. package/dist/types/schema/clanker.schema.d.ts +104 -0
  166. package/dist/types/schema/clanker.schema.d.ts.map +1 -0
  167. package/dist/types/schema/index.d.ts +4 -0
  168. package/dist/types/schema/index.d.ts.map +1 -0
  169. package/dist/types/schema/levr.schema.d.ts +34 -0
  170. package/dist/types/schema/levr.schema.d.ts.map +1 -0
  171. package/dist/types/stake.d.ts +137 -0
  172. package/dist/types/stake.d.ts.map +1 -0
  173. package/dist/types/swap-v4.d.ts +97 -0
  174. package/dist/types/swap-v4.d.ts.map +1 -0
  175. package/dist/types/types.d.ts +20 -0
  176. package/dist/types/types.d.ts.map +1 -0
  177. package/dist/types/util.d.ts +5 -0
  178. package/dist/types/util.d.ts.map +1 -0
  179. package/package.json +100 -0
@@ -0,0 +1,101 @@
1
+ import { BigNumber } from 'ethers';
2
+ /**
3
+ * Get the LP locker address for a given chain ID
4
+ * @param chainId - The chain ID
5
+ * @returns The LP locker address
6
+ */
7
+ export declare const GET_LP_LOCKER_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
8
+ /**
9
+ * Get the factory address for a given chain ID
10
+ * @param chainId - The chain ID
11
+ * @returns The factory address
12
+ */
13
+ export declare const GET_FACTORY_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
14
+ /**
15
+ * Get the WETH address for a given chain ID
16
+ * @param chainId - The chain ID
17
+ * @returns The WETH address
18
+ */
19
+ export declare const WETH: (chainId?: number) => {
20
+ address: `0x${string}`;
21
+ decimals: number;
22
+ symbol: string;
23
+ name: string;
24
+ } | undefined;
25
+ /**
26
+ * Get the Uniswap V4 Permit2 address for a given chain ID
27
+ * @param chainId - The chain ID
28
+ * @returns The Permit2 address
29
+ */
30
+ export declare const UNISWAP_V4_PERMIT2: (chainId?: number) => `0x${string}` | undefined;
31
+ /**
32
+ * Get the Uniswap V4 Quoter address for a given chain ID
33
+ * @param chainId - The chain ID
34
+ * @returns The Quoter address
35
+ */
36
+ export declare const UNISWAP_V4_QUOTER: (chainId?: number) => `0x${string}` | undefined;
37
+ /**
38
+ * Get the Uniswap V4 Universal Router address for a given chain ID
39
+ * @param chainId - The chain ID
40
+ * @returns The Uniswap V4 Universal Router address
41
+ */
42
+ export declare const UNISWAP_V4_UNIVERSAL_ROUTER: (chainId?: number) => `0x${string}` | undefined;
43
+ /**
44
+ * Get the Uniswap V4 Pool Manager address for a given chain ID
45
+ * @param chainId - The chain ID
46
+ * @returns The Pool Manager address
47
+ */
48
+ export declare const UNISWAP_V4_POOL_MANAGER: (chainId?: number) => `0x${string}` | undefined;
49
+ /**
50
+ * Get the Clanker Factory address for a given chain ID
51
+ * @param chainId - The chain ID
52
+ * @returns The Clanker Factory address (same on Base mainnet and Base Sepolia)
53
+ */
54
+ export declare const GET_CLANKER_FACTORY_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
55
+ /**
56
+ * Get the Clanker Airdrop address for a given chain ID
57
+ * @param chainId - The chain ID
58
+ * @returns The Clanker Airdrop address
59
+ */
60
+ export declare const GET_CLANKER_AIRDROP_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
61
+ /**
62
+ * Contract balance representation, for use in Universal Router
63
+ */
64
+ export declare const CONTRACT_BALANCE: BigNumber;
65
+ /**
66
+ * MSG_SENDER representation, for use in Universal Router
67
+ */
68
+ export declare const MSG_SENDER = "0x0000000000000000000000000000000000000001";
69
+ /**
70
+ * ADDRESS_THIS representation, for use in Universal Router
71
+ */
72
+ export declare const ADDRESS_THIS = "0x0000000000000000000000000000000000000002";
73
+ /**
74
+ * Common treasury airdrop amounts in tokens (not wei)
75
+ * First value is used as default in deployV4
76
+ */
77
+ export declare const TREASURY_AIRDROP_AMOUNTS: {
78
+ readonly '30%': 30000000000;
79
+ readonly '40%': 40000000000;
80
+ readonly '50%': 50000000000;
81
+ readonly '60%': 60000000000;
82
+ readonly '70%': 70000000000;
83
+ readonly '80%': 80000000000;
84
+ readonly '90%': 90000000000;
85
+ };
86
+ /**
87
+ * Staking rewards in basis points
88
+ * The amount of rewards that are distributed to the staking contract
89
+ */
90
+ export declare const STAKING_REWARDS: {
91
+ readonly '100%': 10000;
92
+ readonly '90%': 9000;
93
+ readonly '80%': 8000;
94
+ readonly '70%': 7000;
95
+ };
96
+ export declare const STATIC_FEE_TIERS: {
97
+ readonly '1%': 100;
98
+ readonly '2%': 200;
99
+ readonly '3%': 300;
100
+ };
101
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAWxE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAOtE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GACf,UAAU,MAAM,KAEd;IACE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,GACD,SAeH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQrE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQpE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQ9E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQ1E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAY9E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAW9E,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAE5B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,+CAA+C,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,YAAY,+CAA+C,CAAA;AAExE;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;CAQ3B,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;CAKlB,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { Clanker } from 'clanker-sdk/v4';
2
+ import type { TransactionReceipt } from 'viem';
3
+ import type { LevrClankerDeploymentSchemaType } from './schema';
4
+ export type DeployV4Params = {
5
+ c: LevrClankerDeploymentSchemaType;
6
+ clanker: Clanker | undefined | null;
7
+ };
8
+ export type DeployV4ReturnType = {
9
+ receipt: TransactionReceipt;
10
+ address: `0x${string}`;
11
+ };
12
+ export declare const deployV4: ({ c, clanker }: DeployV4Params) => Promise<DeployV4ReturnType>;
13
+ //# sourceMappingURL=deploy-v4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-v4.d.ts","sourceRoot":"","sources":["../../src/deploy-v4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAK9C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAA;AAE/D,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,+BAA+B,CAAA;IAClC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,gBAAgB,cAAc,KAAG,OAAO,CAAC,kBAAkB,CA6CzF,CAAA"}
@@ -0,0 +1,29 @@
1
+ import type { PopPublicClient, PopWalletClient } from './types';
2
+ export type FeeReceiversParams = {
3
+ publicClient: PopPublicClient;
4
+ clankerToken: `0x${string}`;
5
+ chainId: number;
6
+ userAddress?: `0x${string}`;
7
+ };
8
+ export type FeeReceiverAdmin = {
9
+ areYouAnAdmin: boolean;
10
+ admin: `0x${string}`;
11
+ recipient: `0x${string}`;
12
+ percentage: number;
13
+ };
14
+ export type UpdateFeeReceiverParams = {
15
+ walletClient: PopWalletClient;
16
+ clankerToken: `0x${string}`;
17
+ chainId: number;
18
+ rewardIndex: bigint | number;
19
+ newRecipient: `0x${string}`;
20
+ };
21
+ /**
22
+ * Get fee receivers for a clanker token
23
+ */
24
+ export declare function feeReceivers({ publicClient, clankerToken, chainId, userAddress, }: FeeReceiversParams): Promise<FeeReceiverAdmin[] | undefined>;
25
+ /**
26
+ * Update fee receiver for a clanker token
27
+ */
28
+ export declare function updateFeeReceiver({ walletClient, clankerToken, chainId, rewardIndex, newRecipient, }: UpdateFeeReceiverParams): Promise<`0x${string}`>;
29
+ //# sourceMappingURL=fee-receivers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee-receivers.d.ts","sourceRoot":"","sources":["../../src/fee-receivers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,eAAe,CAAA;IAC7B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,eAAe,CAAA;IAC7B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,EACjC,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,GACZ,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CA8B9D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,YAAY,GACb,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAqBlD"}
@@ -0,0 +1,205 @@
1
+ import type { TransactionReceipt } from 'viem';
2
+ import type { PopPublicClient, PopWalletClient } from './types';
3
+ export type GovernanceConfig = {
4
+ wallet: PopWalletClient;
5
+ publicClient: PopPublicClient;
6
+ governorAddress: `0x${string}`;
7
+ tokenDecimals: number;
8
+ clankerToken: `0x${string}`;
9
+ trustedForwarder?: `0x${string}`;
10
+ };
11
+ export type ProposalDetails = {
12
+ id: bigint;
13
+ proposalType: number;
14
+ proposer: `0x${string}`;
15
+ amount: bigint;
16
+ recipient: `0x${string}`;
17
+ description: string;
18
+ createdAt: bigint;
19
+ votingStartsAt: bigint;
20
+ votingEndsAt: bigint;
21
+ yesVotes: bigint;
22
+ noVotes: bigint;
23
+ totalBalanceVoted: bigint;
24
+ executed: boolean;
25
+ cycleId: bigint;
26
+ };
27
+ export type FormattedProposalDetails = {
28
+ id: bigint;
29
+ proposalType: number;
30
+ proposer: `0x${string}`;
31
+ amount: {
32
+ raw: bigint;
33
+ formatted: string;
34
+ };
35
+ recipient: `0x${string}`;
36
+ description: string;
37
+ createdAt: {
38
+ timestamp: bigint;
39
+ date: Date;
40
+ };
41
+ votingStartsAt: {
42
+ timestamp: bigint;
43
+ date: Date;
44
+ };
45
+ votingEndsAt: {
46
+ timestamp: bigint;
47
+ date: Date;
48
+ };
49
+ yesVotes: {
50
+ raw: bigint;
51
+ formatted: string;
52
+ };
53
+ noVotes: {
54
+ raw: bigint;
55
+ formatted: string;
56
+ };
57
+ totalBalanceVoted: bigint;
58
+ executed: boolean;
59
+ cycleId: bigint;
60
+ };
61
+ export type ProposeTransferConfig = {
62
+ recipient: `0x${string}`;
63
+ amount: string;
64
+ amountDecimals: number;
65
+ description: string;
66
+ };
67
+ export type ProposeBoostConfig = {
68
+ amount: string;
69
+ amountDecimals: number;
70
+ };
71
+ export type ExecuteProposalConfig = {
72
+ proposalId: number | bigint;
73
+ };
74
+ export declare class Governance {
75
+ private wallet;
76
+ private publicClient;
77
+ private governorAddress;
78
+ private tokenDecimals;
79
+ private clankerToken;
80
+ private userAddress;
81
+ constructor(config: GovernanceConfig);
82
+ /**
83
+ * Propose a transfer from treasury to recipient
84
+ */
85
+ proposeTransfer(recipient: `0x${string}`, amount: number | string | bigint, description: string): Promise<{
86
+ receipt: TransactionReceipt;
87
+ proposalId: bigint;
88
+ }>;
89
+ /**
90
+ * Propose a boost from treasury to staking rewards
91
+ */
92
+ proposeBoost(amount: number | string | bigint): Promise<{
93
+ receipt: TransactionReceipt;
94
+ proposalId: bigint;
95
+ }>;
96
+ /**
97
+ * Vote on a proposal
98
+ */
99
+ vote(proposalId: number | bigint, support: boolean): Promise<TransactionReceipt>;
100
+ /**
101
+ * Execute a proposal by ID
102
+ * Note: Automatically starts a new cycle after successful execution
103
+ */
104
+ executeProposal(proposalId: number | bigint): Promise<TransactionReceipt>;
105
+ /**
106
+ * Get proposal details by ID
107
+ */
108
+ getProposal(proposalId: number | bigint): Promise<FormattedProposalDetails>;
109
+ /**
110
+ * Get current cycle ID
111
+ */
112
+ getCurrentCycleId(): Promise<bigint>;
113
+ /**
114
+ * Get all proposal IDs for a specific cycle
115
+ */
116
+ getProposalsForCycle(cycleId: number | bigint): Promise<readonly bigint[]>;
117
+ /**
118
+ * Get the winner proposal ID for a cycle
119
+ */
120
+ getWinner(cycleId: number | bigint): Promise<bigint>;
121
+ /**
122
+ * Get vote receipt for a user on a proposal
123
+ */
124
+ getVoteReceipt(proposalId: number | bigint, voter?: `0x${string}`): Promise<{
125
+ hasVoted: boolean;
126
+ support: boolean;
127
+ votes: bigint;
128
+ }>;
129
+ /**
130
+ * Get voting power snapshot for a user at proposal creation
131
+ */
132
+ getVotingPowerSnapshot(proposalId: number | bigint, user?: `0x${string}`): Promise<bigint>;
133
+ /**
134
+ * Check if proposal meets quorum
135
+ */
136
+ meetsQuorum(proposalId: number | bigint): Promise<boolean>;
137
+ /**
138
+ * Check if proposal meets approval threshold
139
+ */
140
+ meetsApproval(proposalId: number | bigint): Promise<boolean>;
141
+ /**
142
+ * Get proposal state (Pending, Active, Defeated, Succeeded, Executed)
143
+ */
144
+ getProposalState(proposalId: number | bigint): Promise<number>;
145
+ /**
146
+ * Get active proposal count for a specific proposal type
147
+ */
148
+ getActiveProposalCount(proposalType: number): Promise<bigint>;
149
+ /**
150
+ * Get factory address
151
+ */
152
+ getFactory(): Promise<`0x${string}`>;
153
+ /**
154
+ * Get treasury address
155
+ */
156
+ getTreasury(): Promise<`0x${string}`>;
157
+ /**
158
+ * Get staked token address
159
+ */
160
+ getStakedToken(): Promise<`0x${string}`>;
161
+ /**
162
+ * Propose transfer and execute in sequence (for testing convenience)
163
+ */
164
+ proposeAndExecuteTransfer(recipient: `0x${string}`, amount: number | string | bigint, description: string): Promise<{
165
+ proposeReceipt: TransactionReceipt;
166
+ executeReceipt: TransactionReceipt;
167
+ proposalId: bigint;
168
+ }>;
169
+ /**
170
+ * Propose boost and execute in sequence (for testing convenience)
171
+ */
172
+ proposeAndExecuteBoost(amount: number | string | bigint): Promise<{
173
+ proposeReceipt: TransactionReceipt;
174
+ executeReceipt: TransactionReceipt;
175
+ proposalId: bigint;
176
+ }>;
177
+ /**
178
+ * Find treasury airdrop allocation by checking all known amounts using multicall
179
+ */
180
+ private findTreasuryAllocation;
181
+ /**
182
+ * Get available airdrop amount for treasury using known amounts
183
+ */
184
+ getAvailableAirdropAmount(): Promise<bigint>;
185
+ /**
186
+ * Get airdrop status for treasury with detailed status information
187
+ */
188
+ getAirdropStatus(): Promise<{
189
+ availableAmount: {
190
+ raw: bigint;
191
+ formatted: string;
192
+ };
193
+ allocatedAmount: {
194
+ raw: bigint;
195
+ formatted: string;
196
+ };
197
+ isAvailable: boolean;
198
+ error?: string;
199
+ }>;
200
+ /**
201
+ * Claim airdrop for treasury
202
+ */
203
+ claimAirdrop(): Promise<TransactionReceipt>;
204
+ }
205
+ //# sourceMappingURL=governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAM9C,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,eAAe,CAAA;IAC7B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAA;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAA;IAC5C,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAA;IACjD,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAA;IAC/C,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAe;gBAEtB,MAAM,EAAE,gBAAgB;IAYpC;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,KAAK,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA+C/D;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAC/B,OAAO,CAAC;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA+C/D;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBtF;;;OAGG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoB/E;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA8CjF;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ1C;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;IAWhF;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW1D;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,GACpB,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAYlE;;OAEG;IACG,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAYhG;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWhE;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWlE;;OAEG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE;;OAEG;IACG,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASnE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAQ1C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAQ3C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAQ9C;;OAEG;IACG,yBAAyB,CAC7B,SAAS,EAAE,KAAK,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QACT,cAAc,EAAE,kBAAkB,CAAA;QAClC,cAAc,EAAE,kBAAkB,CAAA;QAClC,UAAU,EAAE,MAAM,CAAA;KACnB,CAAC;IAeF;;OAEG;IACG,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QACtE,cAAc,EAAE,kBAAkB,CAAA;QAClC,cAAc,EAAE,kBAAkB,CAAA;QAClC,UAAU,EAAE,MAAM,CAAA;KACnB,CAAC;IAWF;;OAEG;YACW,sBAAsB;IAuJpC;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKlD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC;QAChC,eAAe,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;QACnD,eAAe,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;QACnD,WAAW,EAAE,OAAO,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAC;IA2CF;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAuClD"}
@@ -0,0 +1,18 @@
1
+ export * from './abis';
2
+ export * from './balance';
3
+ export * from './build-calldatas-v4';
4
+ export * from './build-clanker-v4';
5
+ export * from './constants';
6
+ export * from './deploy-v4';
7
+ export * from './fee-receivers';
8
+ export * from './governance';
9
+ export * from './project';
10
+ export * from './projects';
11
+ export * from './proposals';
12
+ export * from './quote-v4';
13
+ export * from './schema';
14
+ export * from './stake';
15
+ export * from './swap-v4';
16
+ export * from './types';
17
+ export * from './util';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,51 @@
1
+ import type { PoolKey, PopPublicClient } from './types';
2
+ export type ProjectParams = {
3
+ publicClient: PopPublicClient;
4
+ factoryAddress: `0x${string}`;
5
+ chainId: number;
6
+ clankerToken: `0x${string}`;
7
+ };
8
+ export type ProjectMetadata = {
9
+ description: string;
10
+ socialMediaUrls: [];
11
+ auditUrls: [];
12
+ };
13
+ export type PoolInfo = {
14
+ poolKey: PoolKey;
15
+ feeDisplay: string;
16
+ numPositions: bigint;
17
+ };
18
+ export type TreasuryStats = {
19
+ balance: {
20
+ raw: bigint;
21
+ formatted: string;
22
+ };
23
+ totalAllocated: {
24
+ raw: bigint;
25
+ formatted: string;
26
+ };
27
+ utilization: number;
28
+ };
29
+ export type Project = {
30
+ treasury: `0x${string}`;
31
+ governor: `0x${string}`;
32
+ staking: `0x${string}`;
33
+ stakedToken: `0x${string}`;
34
+ forwarder: `0x${string}`;
35
+ token: {
36
+ address: `0x${string}`;
37
+ decimals: number;
38
+ name: string;
39
+ symbol: string;
40
+ totalSupply: bigint;
41
+ metadata: ProjectMetadata | null;
42
+ imageUrl?: string;
43
+ };
44
+ pool?: PoolInfo;
45
+ treasuryStats?: TreasuryStats;
46
+ };
47
+ /**
48
+ * Get project data for a clanker token
49
+ */
50
+ export declare function project({ publicClient, factoryAddress, chainId, clankerToken, }: ProjectParams): Promise<Project | null>;
51
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,20 @@
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
@@ -0,0 +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"}
@@ -0,0 +1,20 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,54 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,5 @@
1
+ import { Schema } from 'effect';
2
+ export declare const NonEmptyString: (message: string) => Schema.refine<string, typeof Schema.String>;
3
+ export declare const UrlString: Schema.refine<string, typeof Schema.String>;
4
+ export declare const EthereumAddress: Schema.Schema<`0x${string}`, `0x${string}`>;
5
+ //# sourceMappingURL=base.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.schema.d.ts","sourceRoot":"","sources":["../../../src/schema/base.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,gDAG1C,CAAA;AAEJ,eAAO,MAAM,SAAS,6CAEpB,CAAA;AAEF,eAAO,MAAM,eAAe,EAItB,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC,CAAA"}