@clawnch/clawncher-sdk 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 (98) hide show
  1. package/README.md +603 -0
  2. package/dist/abis.d.ts +935 -0
  3. package/dist/abis.d.ts.map +1 -0
  4. package/dist/abis.js +486 -0
  5. package/dist/abis.js.map +1 -0
  6. package/dist/addresses.d.ts +51 -0
  7. package/dist/addresses.d.ts.map +1 -0
  8. package/dist/addresses.js +80 -0
  9. package/dist/addresses.js.map +1 -0
  10. package/dist/api-deployer-types.d.ts +165 -0
  11. package/dist/api-deployer-types.d.ts.map +1 -0
  12. package/dist/api-deployer-types.js +9 -0
  13. package/dist/api-deployer-types.js.map +1 -0
  14. package/dist/api-deployer.d.ts +114 -0
  15. package/dist/api-deployer.d.ts.map +1 -0
  16. package/dist/api-deployer.js +309 -0
  17. package/dist/api-deployer.js.map +1 -0
  18. package/dist/claimer.d.ts +197 -0
  19. package/dist/claimer.d.ts.map +1 -0
  20. package/dist/claimer.js +311 -0
  21. package/dist/claimer.js.map +1 -0
  22. package/dist/deployer.d.ts +229 -0
  23. package/dist/deployer.d.ts.map +1 -0
  24. package/dist/deployer.js +305 -0
  25. package/dist/deployer.js.map +1 -0
  26. package/dist/erc8004-types.d.ts +94 -0
  27. package/dist/erc8004-types.d.ts.map +1 -0
  28. package/dist/erc8004-types.js +8 -0
  29. package/dist/erc8004-types.js.map +1 -0
  30. package/dist/errors.d.ts +62 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +75 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/index.d.ts +204 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +358 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/liquidity-types.d.ts +198 -0
  39. package/dist/liquidity-types.d.ts.map +1 -0
  40. package/dist/liquidity-types.js +8 -0
  41. package/dist/liquidity-types.js.map +1 -0
  42. package/dist/liquidity.d.ts +111 -0
  43. package/dist/liquidity.d.ts.map +1 -0
  44. package/dist/liquidity.js +608 -0
  45. package/dist/liquidity.js.map +1 -0
  46. package/dist/molten-types.d.ts +282 -0
  47. package/dist/molten-types.d.ts.map +1 -0
  48. package/dist/molten-types.js +8 -0
  49. package/dist/molten-types.js.map +1 -0
  50. package/dist/molten.d.ts +336 -0
  51. package/dist/molten.d.ts.map +1 -0
  52. package/dist/molten.js +560 -0
  53. package/dist/molten.js.map +1 -0
  54. package/dist/portfolio.d.ts +129 -0
  55. package/dist/portfolio.d.ts.map +1 -0
  56. package/dist/portfolio.js +218 -0
  57. package/dist/portfolio.js.map +1 -0
  58. package/dist/reader.d.ts +249 -0
  59. package/dist/reader.d.ts.map +1 -0
  60. package/dist/reader.js +488 -0
  61. package/dist/reader.js.map +1 -0
  62. package/dist/swap-types.d.ts +159 -0
  63. package/dist/swap-types.d.ts.map +1 -0
  64. package/dist/swap-types.js +22 -0
  65. package/dist/swap-types.js.map +1 -0
  66. package/dist/swap.d.ts +762 -0
  67. package/dist/swap.d.ts.map +1 -0
  68. package/dist/swap.js +345 -0
  69. package/dist/swap.js.map +1 -0
  70. package/dist/token-verification-data.d.ts +4 -0
  71. package/dist/token-verification-data.d.ts.map +1 -0
  72. package/dist/token-verification-data.js +6 -0
  73. package/dist/token-verification-data.js.map +1 -0
  74. package/dist/types.d.ts +244 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +5 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/uniswap-abis.d.ts +470 -0
  79. package/dist/uniswap-abis.d.ts.map +1 -0
  80. package/dist/uniswap-abis.js +322 -0
  81. package/dist/uniswap-abis.js.map +1 -0
  82. package/dist/uniswap-addresses.d.ts +38 -0
  83. package/dist/uniswap-addresses.d.ts.map +1 -0
  84. package/dist/uniswap-addresses.js +67 -0
  85. package/dist/uniswap-addresses.js.map +1 -0
  86. package/dist/vanity.d.ts +115 -0
  87. package/dist/vanity.d.ts.map +1 -0
  88. package/dist/vanity.js +166 -0
  89. package/dist/vanity.js.map +1 -0
  90. package/dist/verify.d.ts +88 -0
  91. package/dist/verify.d.ts.map +1 -0
  92. package/dist/verify.js +181 -0
  93. package/dist/verify.js.map +1 -0
  94. package/dist/watcher.d.ts +112 -0
  95. package/dist/watcher.d.ts.map +1 -0
  96. package/dist/watcher.js +132 -0
  97. package/dist/watcher.js.map +1 -0
  98. package/package.json +59 -0
@@ -0,0 +1,322 @@
1
+ /**
2
+ * Uniswap V3 & V4 ABIs
3
+ *
4
+ * Minimal ABIs for the contract functions used by ClawnchLiquidity.
5
+ * We only include the functions we actually call to keep bundle size small.
6
+ */
7
+ // ============================================================================
8
+ // ERC20 (minimal — approve, allowance, balanceOf)
9
+ // Already available via viem's erc20Abi, but defining here for clarity
10
+ // ============================================================================
11
+ // ============================================================================
12
+ // Uniswap V4 - StateView (read-only lens)
13
+ // ============================================================================
14
+ export const StateViewABI = [
15
+ {
16
+ inputs: [{ name: 'poolId', type: 'bytes32' }],
17
+ name: 'getSlot0',
18
+ outputs: [
19
+ { name: 'sqrtPriceX96', type: 'uint160' },
20
+ { name: 'tick', type: 'int24' },
21
+ { name: 'protocolFee', type: 'uint24' },
22
+ { name: 'lpFee', type: 'uint24' },
23
+ ],
24
+ stateMutability: 'view',
25
+ type: 'function',
26
+ },
27
+ {
28
+ inputs: [{ name: 'poolId', type: 'bytes32' }],
29
+ name: 'getLiquidity',
30
+ outputs: [{ name: 'liquidity', type: 'uint128' }],
31
+ stateMutability: 'view',
32
+ type: 'function',
33
+ },
34
+ {
35
+ inputs: [
36
+ { name: 'poolId', type: 'bytes32' },
37
+ { name: 'owner', type: 'address' },
38
+ { name: 'tickLower', type: 'int24' },
39
+ { name: 'tickUpper', type: 'int24' },
40
+ { name: 'salt', type: 'bytes32' },
41
+ ],
42
+ name: 'getPositionInfo',
43
+ outputs: [
44
+ { name: 'liquidity', type: 'uint128' },
45
+ { name: 'feeGrowthInside0LastX128', type: 'uint256' },
46
+ { name: 'feeGrowthInside1LastX128', type: 'uint256' },
47
+ ],
48
+ stateMutability: 'view',
49
+ type: 'function',
50
+ },
51
+ {
52
+ inputs: [
53
+ { name: 'poolId', type: 'bytes32' },
54
+ { name: 'tickLower', type: 'int24' },
55
+ { name: 'tickUpper', type: 'int24' },
56
+ ],
57
+ name: 'getFeeGrowthInside',
58
+ outputs: [
59
+ { name: 'feeGrowthInside0X128', type: 'uint256' },
60
+ { name: 'feeGrowthInside1X128', type: 'uint256' },
61
+ ],
62
+ stateMutability: 'view',
63
+ type: 'function',
64
+ },
65
+ ];
66
+ // ============================================================================
67
+ // Uniswap V4 - PositionManager
68
+ // ============================================================================
69
+ export const V4PositionManagerABI = [
70
+ {
71
+ inputs: [{ name: 'data', type: 'bytes[]' }],
72
+ name: 'multicall',
73
+ outputs: [{ name: 'results', type: 'bytes[]' }],
74
+ stateMutability: 'payable',
75
+ type: 'function',
76
+ },
77
+ {
78
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
79
+ name: 'getPoolAndPositionInfo',
80
+ outputs: [
81
+ {
82
+ name: 'poolKey',
83
+ type: 'tuple',
84
+ components: [
85
+ { name: 'currency0', type: 'address' },
86
+ { name: 'currency1', type: 'address' },
87
+ { name: 'fee', type: 'uint24' },
88
+ { name: 'tickSpacing', type: 'int24' },
89
+ { name: 'hooks', type: 'address' },
90
+ ],
91
+ },
92
+ {
93
+ name: 'info',
94
+ type: 'tuple',
95
+ components: [
96
+ { name: 'tickLower', type: 'int24' },
97
+ { name: 'tickUpper', type: 'int24' },
98
+ { name: 'liquidity', type: 'uint128' },
99
+ ],
100
+ },
101
+ ],
102
+ stateMutability: 'view',
103
+ type: 'function',
104
+ },
105
+ {
106
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
107
+ name: 'ownerOf',
108
+ outputs: [{ name: '', type: 'address' }],
109
+ stateMutability: 'view',
110
+ type: 'function',
111
+ },
112
+ {
113
+ inputs: [{ name: 'owner', type: 'address' }],
114
+ name: 'balanceOf',
115
+ outputs: [{ name: '', type: 'uint256' }],
116
+ stateMutability: 'view',
117
+ type: 'function',
118
+ },
119
+ ];
120
+ // ============================================================================
121
+ // Uniswap V3 - NonfungiblePositionManager
122
+ // ============================================================================
123
+ export const V3NonfungiblePositionManagerABI = [
124
+ // mint
125
+ {
126
+ inputs: [
127
+ {
128
+ name: 'params',
129
+ type: 'tuple',
130
+ components: [
131
+ { name: 'token0', type: 'address' },
132
+ { name: 'token1', type: 'address' },
133
+ { name: 'fee', type: 'uint24' },
134
+ { name: 'tickLower', type: 'int24' },
135
+ { name: 'tickUpper', type: 'int24' },
136
+ { name: 'amount0Desired', type: 'uint256' },
137
+ { name: 'amount1Desired', type: 'uint256' },
138
+ { name: 'amount0Min', type: 'uint256' },
139
+ { name: 'amount1Min', type: 'uint256' },
140
+ { name: 'recipient', type: 'address' },
141
+ { name: 'deadline', type: 'uint256' },
142
+ ],
143
+ },
144
+ ],
145
+ name: 'mint',
146
+ outputs: [
147
+ { name: 'tokenId', type: 'uint256' },
148
+ { name: 'liquidity', type: 'uint128' },
149
+ { name: 'amount0', type: 'uint256' },
150
+ { name: 'amount1', type: 'uint256' },
151
+ ],
152
+ stateMutability: 'payable',
153
+ type: 'function',
154
+ },
155
+ // increaseLiquidity
156
+ {
157
+ inputs: [
158
+ {
159
+ name: 'params',
160
+ type: 'tuple',
161
+ components: [
162
+ { name: 'tokenId', type: 'uint256' },
163
+ { name: 'amount0Desired', type: 'uint256' },
164
+ { name: 'amount1Desired', type: 'uint256' },
165
+ { name: 'amount0Min', type: 'uint256' },
166
+ { name: 'amount1Min', type: 'uint256' },
167
+ { name: 'deadline', type: 'uint256' },
168
+ ],
169
+ },
170
+ ],
171
+ name: 'increaseLiquidity',
172
+ outputs: [
173
+ { name: 'liquidity', type: 'uint128' },
174
+ { name: 'amount0', type: 'uint256' },
175
+ { name: 'amount1', type: 'uint256' },
176
+ ],
177
+ stateMutability: 'payable',
178
+ type: 'function',
179
+ },
180
+ // decreaseLiquidity
181
+ {
182
+ inputs: [
183
+ {
184
+ name: 'params',
185
+ type: 'tuple',
186
+ components: [
187
+ { name: 'tokenId', type: 'uint256' },
188
+ { name: 'liquidity', type: 'uint128' },
189
+ { name: 'amount0Min', type: 'uint256' },
190
+ { name: 'amount1Min', type: 'uint256' },
191
+ { name: 'deadline', type: 'uint256' },
192
+ ],
193
+ },
194
+ ],
195
+ name: 'decreaseLiquidity',
196
+ outputs: [
197
+ { name: 'amount0', type: 'uint256' },
198
+ { name: 'amount1', type: 'uint256' },
199
+ ],
200
+ stateMutability: 'payable',
201
+ type: 'function',
202
+ },
203
+ // collect
204
+ {
205
+ inputs: [
206
+ {
207
+ name: 'params',
208
+ type: 'tuple',
209
+ components: [
210
+ { name: 'tokenId', type: 'uint256' },
211
+ { name: 'recipient', type: 'address' },
212
+ { name: 'amount0Max', type: 'uint128' },
213
+ { name: 'amount1Max', type: 'uint128' },
214
+ ],
215
+ },
216
+ ],
217
+ name: 'collect',
218
+ outputs: [
219
+ { name: 'amount0', type: 'uint256' },
220
+ { name: 'amount1', type: 'uint256' },
221
+ ],
222
+ stateMutability: 'payable',
223
+ type: 'function',
224
+ },
225
+ // burn
226
+ {
227
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
228
+ name: 'burn',
229
+ outputs: [],
230
+ stateMutability: 'payable',
231
+ type: 'function',
232
+ },
233
+ // positions (read)
234
+ {
235
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
236
+ name: 'positions',
237
+ outputs: [
238
+ { name: 'nonce', type: 'uint96' },
239
+ { name: 'operator', type: 'address' },
240
+ { name: 'token0', type: 'address' },
241
+ { name: 'token1', type: 'address' },
242
+ { name: 'fee', type: 'uint24' },
243
+ { name: 'tickLower', type: 'int24' },
244
+ { name: 'tickUpper', type: 'int24' },
245
+ { name: 'liquidity', type: 'uint128' },
246
+ { name: 'feeGrowthInside0LastX128', type: 'uint256' },
247
+ { name: 'feeGrowthInside1LastX128', type: 'uint256' },
248
+ { name: 'tokensOwed0', type: 'uint128' },
249
+ { name: 'tokensOwed1', type: 'uint128' },
250
+ ],
251
+ stateMutability: 'view',
252
+ type: 'function',
253
+ },
254
+ // balanceOf
255
+ {
256
+ inputs: [{ name: 'owner', type: 'address' }],
257
+ name: 'balanceOf',
258
+ outputs: [{ name: '', type: 'uint256' }],
259
+ stateMutability: 'view',
260
+ type: 'function',
261
+ },
262
+ // tokenOfOwnerByIndex
263
+ {
264
+ inputs: [
265
+ { name: 'owner', type: 'address' },
266
+ { name: 'index', type: 'uint256' },
267
+ ],
268
+ name: 'tokenOfOwnerByIndex',
269
+ outputs: [{ name: '', type: 'uint256' }],
270
+ stateMutability: 'view',
271
+ type: 'function',
272
+ },
273
+ // ownerOf
274
+ {
275
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
276
+ name: 'ownerOf',
277
+ outputs: [{ name: '', type: 'address' }],
278
+ stateMutability: 'view',
279
+ type: 'function',
280
+ },
281
+ // multicall
282
+ {
283
+ inputs: [{ name: 'data', type: 'bytes[]' }],
284
+ name: 'multicall',
285
+ outputs: [{ name: 'results', type: 'bytes[]' }],
286
+ stateMutability: 'payable',
287
+ type: 'function',
288
+ },
289
+ ];
290
+ // ============================================================================
291
+ // Permit2 (minimal)
292
+ // ============================================================================
293
+ export const Permit2ABI = [
294
+ {
295
+ inputs: [
296
+ { name: 'owner', type: 'address' },
297
+ { name: 'token', type: 'address' },
298
+ { name: 'spender', type: 'address' },
299
+ ],
300
+ name: 'allowance',
301
+ outputs: [
302
+ { name: 'amount', type: 'uint160' },
303
+ { name: 'expiration', type: 'uint48' },
304
+ { name: 'nonce', type: 'uint48' },
305
+ ],
306
+ stateMutability: 'view',
307
+ type: 'function',
308
+ },
309
+ {
310
+ inputs: [
311
+ { name: 'token', type: 'address' },
312
+ { name: 'spender', type: 'address' },
313
+ { name: 'amount', type: 'uint160' },
314
+ { name: 'expiration', type: 'uint48' },
315
+ ],
316
+ name: 'approve',
317
+ outputs: [],
318
+ stateMutability: 'nonpayable',
319
+ type: 'function',
320
+ },
321
+ ];
322
+ //# sourceMappingURL=uniswap-abis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswap-abis.js","sourceRoot":"","sources":["../src/uniswap-abis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Uniswap V3 & V4 Contract Addresses
3
+ *
4
+ * Official deployment addresses for Base mainnet and Base Sepolia.
5
+ * Source: https://docs.uniswap.org/contracts/v4/deployments
6
+ */
7
+ import type { Address } from 'viem';
8
+ import type { NetworkName } from './addresses.js';
9
+ export interface UniswapV4Addresses {
10
+ poolManager: Address;
11
+ positionManager: Address;
12
+ positionDescriptor: Address;
13
+ stateView: Address;
14
+ quoter: Address;
15
+ universalRouter: Address;
16
+ permit2: Address;
17
+ }
18
+ export interface UniswapV3Addresses {
19
+ factory: Address;
20
+ nonfungiblePositionManager: Address;
21
+ swapRouter: Address;
22
+ swapRouter02: Address;
23
+ quoterV2: Address;
24
+ }
25
+ export interface CommonAddresses {
26
+ weth: Address;
27
+ usdc: Address;
28
+ }
29
+ export declare function getUniswapV4Addresses(network?: NetworkName): UniswapV4Addresses;
30
+ export declare function getUniswapV3Addresses(network?: NetworkName): UniswapV3Addresses;
31
+ export declare function getCommonAddresses(network?: NetworkName): CommonAddresses;
32
+ /** All Uniswap addresses for a given network */
33
+ export declare function getUniswapAddresses(network?: NetworkName): {
34
+ v4: UniswapV4Addresses;
35
+ v3: UniswapV3Addresses;
36
+ common: CommonAddresses;
37
+ };
38
+ //# sourceMappingURL=uniswap-addresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswap-addresses.d.ts","sourceRoot":"","sources":["../src/uniswap-addresses.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMlD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AA0BD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B,EAAE,OAAO,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAsBD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAgBD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,WAAuB,GAAG,kBAAkB,CAE1F;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,WAAuB,GAAG,kBAAkB,CAE1F;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,WAAuB,GAAG,eAAe,CAEpF;AAED,gDAAgD;AAChD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,WAAuB;;;;EAMnE"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Uniswap V3 & V4 Contract Addresses
3
+ *
4
+ * Official deployment addresses for Base mainnet and Base Sepolia.
5
+ * Source: https://docs.uniswap.org/contracts/v4/deployments
6
+ */
7
+ const V4_BASE_MAINNET = {
8
+ poolManager: '0x498581ff718922c3f8e6a244956af099b2652b2b',
9
+ positionManager: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',
10
+ positionDescriptor: '0x25d093633990dc94bedeed76c8f3cdaa75f3e7d5',
11
+ stateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',
12
+ quoter: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',
13
+ universalRouter: '0x6ff5693b99212da76ad316178a184ab56d299b43',
14
+ permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',
15
+ };
16
+ const V4_BASE_SEPOLIA = {
17
+ poolManager: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',
18
+ positionManager: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',
19
+ positionDescriptor: '0x0000000000000000000000000000000000000000', // not deployed
20
+ stateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',
21
+ quoter: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',
22
+ universalRouter: '0x492e6456d9528771018deb9e87ef7750ef184104',
23
+ permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',
24
+ };
25
+ const V3_BASE_MAINNET = {
26
+ factory: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
27
+ nonfungiblePositionManager: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',
28
+ swapRouter: '0x2626664c2603336E57B271c5C0b26F421741e481',
29
+ swapRouter02: '0x2626664c2603336E57B271c5C0b26F421741e481',
30
+ quoterV2: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
31
+ };
32
+ const V3_BASE_SEPOLIA = {
33
+ factory: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',
34
+ nonfungiblePositionManager: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',
35
+ swapRouter: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',
36
+ swapRouter02: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',
37
+ quoterV2: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',
38
+ };
39
+ const COMMON_BASE_MAINNET = {
40
+ weth: '0x4200000000000000000000000000000000000006',
41
+ usdc: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
42
+ };
43
+ const COMMON_BASE_SEPOLIA = {
44
+ weth: '0x4200000000000000000000000000000000000006',
45
+ usdc: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
46
+ };
47
+ // ============================================================================
48
+ // Getters
49
+ // ============================================================================
50
+ export function getUniswapV4Addresses(network = 'mainnet') {
51
+ return network === 'mainnet' ? V4_BASE_MAINNET : V4_BASE_SEPOLIA;
52
+ }
53
+ export function getUniswapV3Addresses(network = 'mainnet') {
54
+ return network === 'mainnet' ? V3_BASE_MAINNET : V3_BASE_SEPOLIA;
55
+ }
56
+ export function getCommonAddresses(network = 'mainnet') {
57
+ return network === 'mainnet' ? COMMON_BASE_MAINNET : COMMON_BASE_SEPOLIA;
58
+ }
59
+ /** All Uniswap addresses for a given network */
60
+ export function getUniswapAddresses(network = 'mainnet') {
61
+ return {
62
+ v4: getUniswapV4Addresses(network),
63
+ v3: getUniswapV3Addresses(network),
64
+ common: getCommonAddresses(network),
65
+ };
66
+ }
67
+ //# sourceMappingURL=uniswap-addresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswap-addresses.js","sourceRoot":"","sources":["../src/uniswap-addresses.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,MAAM,eAAe,GAAuB;IAC1C,WAAW,EAAE,4CAA4C;IACzD,eAAe,EAAE,4CAA4C;IAC7D,kBAAkB,EAAE,4CAA4C;IAChE,SAAS,EAAE,4CAA4C;IACvD,MAAM,EAAE,4CAA4C;IACpD,eAAe,EAAE,4CAA4C;IAC7D,OAAO,EAAE,4CAA4C;CACtD,CAAC;AAEF,MAAM,eAAe,GAAuB;IAC1C,WAAW,EAAE,4CAA4C;IACzD,eAAe,EAAE,4CAA4C;IAC7D,kBAAkB,EAAE,4CAA4C,EAAE,eAAe;IACjF,SAAS,EAAE,4CAA4C;IACvD,MAAM,EAAE,4CAA4C;IACpD,eAAe,EAAE,4CAA4C;IAC7D,OAAO,EAAE,4CAA4C;CACtD,CAAC;AAcF,MAAM,eAAe,GAAuB;IAC1C,OAAO,EAAE,4CAA4C;IACrD,0BAA0B,EAAE,4CAA4C;IACxE,UAAU,EAAE,4CAA4C;IACxD,YAAY,EAAE,4CAA4C;IAC1D,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF,MAAM,eAAe,GAAuB;IAC1C,OAAO,EAAE,4CAA4C;IACrD,0BAA0B,EAAE,4CAA4C;IACxE,UAAU,EAAE,4CAA4C;IACxD,YAAY,EAAE,4CAA4C;IAC1D,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAWF,MAAM,mBAAmB,GAAoB;IAC3C,IAAI,EAAE,4CAA4C;IAClD,IAAI,EAAE,4CAA4C;CACnD,CAAC;AAEF,MAAM,mBAAmB,GAAoB;IAC3C,IAAI,EAAE,4CAA4C;IAClD,IAAI,EAAE,4CAA4C;CACnD,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,UAAU,qBAAqB,CAAC,UAAuB,SAAS;IACpE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAuB,SAAS;IACpE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAuB,SAAS;IACjE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;AAC3E,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,mBAAmB,CAAC,UAAuB,SAAS;IAClE,OAAO;QACL,EAAE,EAAE,qBAAqB,CAAC,OAAO,CAAC;QAClC,EAAE,EAAE,qBAAqB,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC;KACpC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Vanity Address Mining for Clawncher Tokens
3
+ *
4
+ * Mines CREATE2 salts to produce token addresses with desired prefixes (e.g., 0xccc).
5
+ *
6
+ * CREATE2 address formula:
7
+ * address = keccak256(0xff ++ factory ++ salt ++ initCodeHash)[12:]
8
+ *
9
+ * Where salt = keccak256(abi.encode(tokenAdmin, userSalt))
10
+ */
11
+ import { type Address, type Hex } from 'viem';
12
+ /**
13
+ * Configuration for vanity mining
14
+ */
15
+ export interface VanityMineConfig {
16
+ /** Factory address that deploys tokens */
17
+ factory: Address;
18
+ /** Token admin address (part of salt computation) */
19
+ tokenAdmin: Address;
20
+ /** Init code hash of ClawnchToken contract */
21
+ initCodeHash: Hex;
22
+ /** Desired prefix (e.g., '0xccc' or 'ccc') */
23
+ prefix: string;
24
+ /** Maximum attempts before giving up (default: 10_000_000) */
25
+ maxAttempts?: number;
26
+ /** Callback for progress updates */
27
+ onProgress?: (attempts: number, rate: number) => void;
28
+ /** Progress update interval in attempts (default: 100_000) */
29
+ progressInterval?: number;
30
+ }
31
+ /**
32
+ * Result of vanity mining
33
+ */
34
+ export interface VanityMineResult {
35
+ /** The mined salt to use in TokenConfig */
36
+ salt: Hex;
37
+ /** The resulting token address */
38
+ address: Address;
39
+ /** Number of attempts taken */
40
+ attempts: number;
41
+ /** Time taken in milliseconds */
42
+ timeMs: number;
43
+ }
44
+ /**
45
+ * Compute the CREATE2 address for a Clawncher token
46
+ *
47
+ * @param factory - Factory address
48
+ * @param tokenAdmin - Token admin address
49
+ * @param userSalt - User-provided salt (bytes32)
50
+ * @param initCodeHash - Hash of the token init code
51
+ * @returns The computed token address
52
+ */
53
+ export declare function computeTokenAddress(factory: Address, tokenAdmin: Address, userSalt: Hex, initCodeHash: Hex): Address;
54
+ /**
55
+ * Mine a CREATE2 salt that produces a token address with the desired prefix
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const result = await mineVanityAddress({
60
+ * factory: '0xe31CD9ED1fF67ba51B337C17C2f7da57f7be0166',
61
+ * tokenAdmin: '0x1234...',
62
+ * initCodeHash: '0xabcd...',
63
+ * prefix: '0xccc',
64
+ * onProgress: (attempts, rate) => console.log(`${attempts} attempts, ${rate}/sec`),
65
+ * });
66
+ *
67
+ * console.log(`Found salt: ${result.salt}`);
68
+ * console.log(`Token address: ${result.address}`);
69
+ * ```
70
+ */
71
+ export declare function mineVanityAddress(config: VanityMineConfig): Promise<VanityMineResult>;
72
+ /**
73
+ * Estimate the number of attempts needed for a given prefix length
74
+ *
75
+ * @param prefixLength - Number of hex characters in the prefix (after 0x)
76
+ * @returns Expected number of attempts (average case)
77
+ */
78
+ export declare function estimateAttempts(prefixLength: number): number;
79
+ /**
80
+ * Estimate the time to mine a vanity address
81
+ *
82
+ * @param prefixLength - Number of hex characters in the prefix
83
+ * @param hashesPerSecond - Estimated hash rate (default: 50,000)
84
+ * @returns Estimated time in seconds
85
+ */
86
+ export declare function estimateTime(prefixLength: number, hashesPerSecond?: number): number;
87
+ /**
88
+ * ClawnchToken creation bytecode (without constructor args)
89
+ *
90
+ * This is the compiled bytecode from the Solidity contract.
91
+ * Constructor args are appended to this to form the full init code.
92
+ */
93
+ export declare const CLAWNCH_TOKEN_BYTECODE: Hex;
94
+ /**
95
+ * Compute the init code hash for a ClawnchToken deployment
96
+ */
97
+ export declare function computeInitCodeHash(constructorArgs: {
98
+ name: string;
99
+ symbol: string;
100
+ maxSupply: bigint;
101
+ admin: Address;
102
+ image: string;
103
+ metadata: string;
104
+ context: string;
105
+ initialSupplyChainId: bigint;
106
+ }): Hex;
107
+ /**
108
+ * Default vanity prefix for Clawncher tokens
109
+ */
110
+ export declare const DEFAULT_VANITY_PREFIX = "ccc";
111
+ /**
112
+ * Quick helper to mine a 0xccc address
113
+ */
114
+ export declare function mineCccAddress(factory: Address, tokenAdmin: Address, initCodeHash: Hex, onProgress?: (attempts: number, rate: number) => void): Promise<VanityMineResult>;
115
+ //# sourceMappingURL=vanity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vanity.d.ts","sourceRoot":"","sources":["../src/vanity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EAOT,MAAM,MAAM,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,YAAY,EAAE,GAAG,CAAC;IAClB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,GAAG,CAAC;IACV,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,GAAG,EACb,YAAY,EAAE,GAAG,GAChB,OAAO,CAoBT;AAmBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsD3F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,SAAS,GAAG,MAAM,CAEnF;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,GAAgm3B,CAAC;AAEto3B;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,GACA,GAAG,CAiBL;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,GAAG,EACjB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GACpD,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}