@net-protocol/score 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { S as ScoreClientOptions, G as GetUpvotesOptions, a as GetUpvotesForItemsOptions, b as GetStrategyKeyScoresOptions, c as GetAppKeyScoresOptions, D as DecodedStrategyMetadata, P as PoolKey, d as PoolDiscoveryResult } from './scoreKeyUtils-DgHOtf44.mjs';
2
- export { e as DecodedUpvoteBlob, F as FeedMessage, f as PoolStrategyMetadata, g as PureAlphaMetadata, h as ScoreItem, U as UseTokenUpvotesOptions, i as UseUpvotesBatchOptions, j as UseUpvotesOptions, k as extractTokenAddressFromScoreKey, l as getFeedContentKey, m as getScoreKey, n as getStorageScoreKey, o as getStorageUpvoteContext, p as getTokenScoreKey, q as isTokenScoreKey } from './scoreKeyUtils-DgHOtf44.mjs';
3
- import { Address, PublicClient, Abi } from 'viem';
1
+ import { S as ScoreClientOptions, G as GetUpvotesOptions, a as GetUpvotesForItemsOptions, b as GetStrategyKeyScoresOptions, c as GetAppKeyScoresOptions, D as DecodedStrategyMetadata, P as PoolKey, d as PoolDiscoveryResult } from './scoreKeyUtils-DuH70ypB.mjs';
2
+ export { e as DecodedUpvoteBlob, F as FeedMessage, f as PoolStrategyMetadata, g as PureAlphaMetadata, h as ScoreItem, U as UseTokenUpvotesOptions, i as UseUpvotePriceOptions, j as UseUpvoteUserOptions, k as UseUpvotesBatchOptions, l as UseUpvotesOptions, m as UseUserUpvotesGivenOptions, n as UseUserUpvotesGivenPerTokenBatchOptions, o as UseUserUpvotesReceivedOptions, p as UseUserUpvotesReceivedPerTokenBatchOptions, q as extractTokenAddressFromScoreKey, r as getFeedContentKey, s as getScoreKey, t as getStorageScoreKey, u as getStorageUpvoteContext, v as getTokenScoreKey, w as isTokenScoreKey } from './scoreKeyUtils-DuH70ypB.mjs';
3
+ import { Address, WalletClient, PublicClient, Abi } from 'viem';
4
4
 
5
5
  /**
6
6
  * ScoreClient - Client for interacting with Net protocol scoring/upvote system
@@ -37,6 +37,118 @@ declare class ScoreClient {
37
37
  getAppKeyScores({ app, scoreKeys, }: GetAppKeyScoresOptions): Promise<number[]>;
38
38
  }
39
39
 
40
+ type ParsedUserUpvoteMessage = {
41
+ upvotedUserString: string;
42
+ actualToken: string;
43
+ numUpvotes: number;
44
+ tokenWethPrice: bigint;
45
+ wethUsdcPrice: bigint;
46
+ alphaWethPrice: bigint;
47
+ userTokenBalance?: bigint;
48
+ };
49
+ type TokenAddressExtraction = {
50
+ tokenAddresses: string[];
51
+ validMessages: ParsedUserUpvoteMessage[];
52
+ };
53
+ type UserUpvote = {
54
+ tokenAddress: string;
55
+ numUpvotes: number;
56
+ timestamp: number;
57
+ priceInUsdc?: number;
58
+ userTokenBalance: number;
59
+ userTokenBalanceUsdValue?: number;
60
+ upvotedUserAddress?: string;
61
+ tokenInfo?: {
62
+ name: string;
63
+ symbol: string;
64
+ decimals: number;
65
+ };
66
+ };
67
+ type UserUpvoteReceived = {
68
+ upvoterAddress: string;
69
+ tokenAddress: string;
70
+ numUpvotes: number;
71
+ timestamp: number;
72
+ priceInUsdc?: number;
73
+ userTokenBalance: number;
74
+ userTokenBalanceUsdValue?: number;
75
+ tokenInfo?: {
76
+ name: string;
77
+ symbol: string;
78
+ decimals: number;
79
+ };
80
+ };
81
+ type UserUpvoteClientOptions = {
82
+ chainId: number;
83
+ overrides?: {
84
+ contractAddress?: Address;
85
+ rpcUrls?: string[];
86
+ };
87
+ };
88
+ type UserUpvoteNetMessage = {
89
+ app: `0x${string}`;
90
+ sender: `0x${string}`;
91
+ timestamp: bigint;
92
+ data: `0x${string}`;
93
+ text: string;
94
+ topic: string;
95
+ };
96
+
97
+ /**
98
+ * UserUpvoteClient - Client for reading user-to-user upvote data.
99
+ *
100
+ * This is a standalone upvote system separate from the token Score system.
101
+ * It reads directly from the UserUpvote contract on Base.
102
+ */
103
+ declare class UserUpvoteClient {
104
+ private client;
105
+ private contractAddress;
106
+ private chainId;
107
+ constructor(params: UserUpvoteClientOptions);
108
+ getUserUpvotesGiven({ user }: {
109
+ user: Address;
110
+ }): Promise<bigint>;
111
+ getUserUpvotesReceived({ user }: {
112
+ user: Address;
113
+ }): Promise<bigint>;
114
+ getUserUpvotesGivenPerTokenBatch({ user, tokens, }: {
115
+ user: Address;
116
+ tokens: Address[];
117
+ }): Promise<bigint[]>;
118
+ getUserUpvotesReceivedPerTokenBatch({ user, tokens, }: {
119
+ user: Address;
120
+ tokens: Address[];
121
+ }): Promise<bigint[]>;
122
+ getTotalUpvotesPerToken({ token, }: {
123
+ token: Address;
124
+ }): Promise<bigint>;
125
+ getUserTokensInRange({ user, startIndex, endIndex, }: {
126
+ user: Address;
127
+ startIndex: number;
128
+ endIndex: number;
129
+ }): Promise<{
130
+ token: Address;
131
+ feeTier: number;
132
+ }[]>;
133
+ getUserTokenCount({ user }: {
134
+ user: Address;
135
+ }): Promise<number>;
136
+ isTokenInUserList({ user, token, }: {
137
+ user: Address;
138
+ token: Address;
139
+ }): Promise<boolean>;
140
+ getUpvotePrice(): Promise<bigint>;
141
+ upvoteUser({ walletClient, userToUpvote, token, numUpvotes, feeTier, value: providedValue, }: {
142
+ walletClient: WalletClient;
143
+ userToUpvote: Address;
144
+ token?: Address;
145
+ numUpvotes: number;
146
+ feeTier?: number;
147
+ /** Pre-computed ETH value. When omitted, fetches upvotePrice from chain. */
148
+ value?: bigint;
149
+ }): Promise<`0x${string}`>;
150
+ }
151
+
40
152
  /**
41
153
  * Convert token address to bytes32 upvote key.
42
154
  */
@@ -226,5 +338,69 @@ declare const MULTI_VERSION_UNISWAP_POOL_INFO_RETRIEVER: {
226
338
  declare function getWethAddress(chainId: number): Address;
227
339
  declare const NULL_ADDRESS: Address;
228
340
  declare const UPVOTE_PRICE_ETH = 0.000025;
341
+ declare const USER_UPVOTE_CONTRACT: {
342
+ readonly address: Address;
343
+ readonly abi: Abi;
344
+ };
345
+
346
+ /**
347
+ * Parse a Net protocol message from the user upvote contract.
348
+ *
349
+ * Two formats based on topic:
350
+ * - Topic "ub-{address}" (received upvotes): 7 fields including userTokenBalance
351
+ * - Topic "g" (given upvotes): 6 fields without userTokenBalance
352
+ */
353
+ declare function parseUserUpvoteMessage(message: UserUpvoteNetMessage, topic: string): ParsedUserUpvoteMessage | null;
354
+ /**
355
+ * Extract unique token addresses from an array of Net messages.
356
+ */
357
+ declare function extractTokenAddressesFromMessages(messages: UserUpvoteNetMessage[], topic: string): TokenAddressExtraction;
358
+ /**
359
+ * Validate that a Net message can be parsed as a user upvote message.
360
+ */
361
+ declare function validateUserUpvoteMessage(message: UserUpvoteNetMessage, topic: string): boolean;
362
+ /**
363
+ * Calculate the USDC price from a parsed user upvote message.
364
+ *
365
+ * The contract emits (halfWei * 1e18) / amountRaw for tokenWethPrice,
366
+ * so we divide by 10^(36 - tokenDecimals) to get the actual price.
367
+ */
368
+ declare function calculatePriceInUsdc(parsedMessage: ParsedUserUpvoteMessage, tokenDecimals?: number): number | undefined;
369
+ /**
370
+ * Calculate the human-readable token balance from a raw bigint value.
371
+ */
372
+ declare function calculateUserTokenBalance(rawBalance: bigint, tokenDecimals?: number): number;
373
+ /**
374
+ * Client-side validation for upvote parameters.
375
+ * Mirrors contract-side errors for better UX before sending a transaction.
376
+ */
377
+ declare function validateUpvoteParams(params: {
378
+ sender: Address;
379
+ userToUpvote: Address;
380
+ numUpvotes: number;
381
+ }): {
382
+ valid: boolean;
383
+ error?: string;
384
+ };
385
+ /**
386
+ * Calculate the total ETH cost for a given number of upvotes.
387
+ */
388
+ declare function calculateUpvoteCost(numUpvotes: number, upvotePrice: bigint): bigint;
389
+ /**
390
+ * Build an enriched UserUpvote from a parsed message and optional token info.
391
+ */
392
+ declare function buildUserUpvote(parsed: ParsedUserUpvoteMessage, timestamp: number, tokenInfo?: {
393
+ name: string;
394
+ symbol: string;
395
+ decimals: number;
396
+ }): UserUpvote;
397
+ /**
398
+ * Build an enriched UserUpvoteReceived from a parsed message, upvoter address, and optional token info.
399
+ */
400
+ declare function buildUserUpvoteReceived(parsed: ParsedUserUpvoteMessage, upvoterAddress: string, timestamp: number, tokenInfo?: {
401
+ name: string;
402
+ symbol: string;
403
+ decimals: number;
404
+ }): UserUpvoteReceived;
229
405
 
230
- export { ALL_STRATEGY_ADDRESSES, DYNAMIC_SPLIT_STRATEGY, DecodedStrategyMetadata, GetAppKeyScoresOptions, GetStrategyKeyScoresOptions, GetUpvotesForItemsOptions, GetUpvotesOptions, LEGACY_UPVOTE_V1_ADDRESS, LEGACY_UPVOTE_V2_ADDRESS, MULTI_VERSION_UNISWAP_BULK_POOL_FINDER, MULTI_VERSION_UNISWAP_POOL_INFO_RETRIEVER, NULL_ADDRESS, PURE_ALPHA_STRATEGY, PoolDiscoveryResult, PoolKey, SCORE_CONTRACT, SUPPORTED_SCORE_CHAINS, ScoreClient, ScoreClientOptions, UNIV234_POOLS_STRATEGY, UPVOTE_APP, UPVOTE_PRICE_ETH, UPVOTE_STORAGE_APP, calculatePriceFromSqrtPriceX96, decodeStrategyMetadata, decodeUpvoteMessage, decodeUpvoteStorageBlob, discoverPools, discoverTokenPool, encodePoolKey, encodeUpvoteKey, extractStrategyAddress, getWethAddress, isDynamicSplitStrategy, isPureAlphaStrategy, isStrategyMessage, isUniv234PoolsStrategy, isUserUpvoteMessage, selectStrategy, tokenAddressToUpvoteKeyString };
406
+ export { ALL_STRATEGY_ADDRESSES, DYNAMIC_SPLIT_STRATEGY, DecodedStrategyMetadata, GetAppKeyScoresOptions, GetStrategyKeyScoresOptions, GetUpvotesForItemsOptions, GetUpvotesOptions, LEGACY_UPVOTE_V1_ADDRESS, LEGACY_UPVOTE_V2_ADDRESS, MULTI_VERSION_UNISWAP_BULK_POOL_FINDER, MULTI_VERSION_UNISWAP_POOL_INFO_RETRIEVER, NULL_ADDRESS, PURE_ALPHA_STRATEGY, type ParsedUserUpvoteMessage, PoolDiscoveryResult, PoolKey, SCORE_CONTRACT, SUPPORTED_SCORE_CHAINS, ScoreClient, ScoreClientOptions, type TokenAddressExtraction, UNIV234_POOLS_STRATEGY, UPVOTE_APP, UPVOTE_PRICE_ETH, UPVOTE_STORAGE_APP, USER_UPVOTE_CONTRACT, type UserUpvote, UserUpvoteClient, type UserUpvoteClientOptions, type UserUpvoteNetMessage, type UserUpvoteReceived, buildUserUpvote, buildUserUpvoteReceived, calculatePriceFromSqrtPriceX96, calculatePriceInUsdc, calculateUpvoteCost, calculateUserTokenBalance, decodeStrategyMetadata, decodeUpvoteMessage, decodeUpvoteStorageBlob, discoverPools, discoverTokenPool, encodePoolKey, encodeUpvoteKey, extractStrategyAddress, extractTokenAddressesFromMessages, getWethAddress, isDynamicSplitStrategy, isPureAlphaStrategy, isStrategyMessage, isUniv234PoolsStrategy, isUserUpvoteMessage, parseUserUpvoteMessage, selectStrategy, tokenAddressToUpvoteKeyString, validateUpvoteParams, validateUserUpvoteMessage };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { S as ScoreClientOptions, G as GetUpvotesOptions, a as GetUpvotesForItemsOptions, b as GetStrategyKeyScoresOptions, c as GetAppKeyScoresOptions, D as DecodedStrategyMetadata, P as PoolKey, d as PoolDiscoveryResult } from './scoreKeyUtils-DgHOtf44.js';
2
- export { e as DecodedUpvoteBlob, F as FeedMessage, f as PoolStrategyMetadata, g as PureAlphaMetadata, h as ScoreItem, U as UseTokenUpvotesOptions, i as UseUpvotesBatchOptions, j as UseUpvotesOptions, k as extractTokenAddressFromScoreKey, l as getFeedContentKey, m as getScoreKey, n as getStorageScoreKey, o as getStorageUpvoteContext, p as getTokenScoreKey, q as isTokenScoreKey } from './scoreKeyUtils-DgHOtf44.js';
3
- import { Address, PublicClient, Abi } from 'viem';
1
+ import { S as ScoreClientOptions, G as GetUpvotesOptions, a as GetUpvotesForItemsOptions, b as GetStrategyKeyScoresOptions, c as GetAppKeyScoresOptions, D as DecodedStrategyMetadata, P as PoolKey, d as PoolDiscoveryResult } from './scoreKeyUtils-DuH70ypB.js';
2
+ export { e as DecodedUpvoteBlob, F as FeedMessage, f as PoolStrategyMetadata, g as PureAlphaMetadata, h as ScoreItem, U as UseTokenUpvotesOptions, i as UseUpvotePriceOptions, j as UseUpvoteUserOptions, k as UseUpvotesBatchOptions, l as UseUpvotesOptions, m as UseUserUpvotesGivenOptions, n as UseUserUpvotesGivenPerTokenBatchOptions, o as UseUserUpvotesReceivedOptions, p as UseUserUpvotesReceivedPerTokenBatchOptions, q as extractTokenAddressFromScoreKey, r as getFeedContentKey, s as getScoreKey, t as getStorageScoreKey, u as getStorageUpvoteContext, v as getTokenScoreKey, w as isTokenScoreKey } from './scoreKeyUtils-DuH70ypB.js';
3
+ import { Address, WalletClient, PublicClient, Abi } from 'viem';
4
4
 
5
5
  /**
6
6
  * ScoreClient - Client for interacting with Net protocol scoring/upvote system
@@ -37,6 +37,118 @@ declare class ScoreClient {
37
37
  getAppKeyScores({ app, scoreKeys, }: GetAppKeyScoresOptions): Promise<number[]>;
38
38
  }
39
39
 
40
+ type ParsedUserUpvoteMessage = {
41
+ upvotedUserString: string;
42
+ actualToken: string;
43
+ numUpvotes: number;
44
+ tokenWethPrice: bigint;
45
+ wethUsdcPrice: bigint;
46
+ alphaWethPrice: bigint;
47
+ userTokenBalance?: bigint;
48
+ };
49
+ type TokenAddressExtraction = {
50
+ tokenAddresses: string[];
51
+ validMessages: ParsedUserUpvoteMessage[];
52
+ };
53
+ type UserUpvote = {
54
+ tokenAddress: string;
55
+ numUpvotes: number;
56
+ timestamp: number;
57
+ priceInUsdc?: number;
58
+ userTokenBalance: number;
59
+ userTokenBalanceUsdValue?: number;
60
+ upvotedUserAddress?: string;
61
+ tokenInfo?: {
62
+ name: string;
63
+ symbol: string;
64
+ decimals: number;
65
+ };
66
+ };
67
+ type UserUpvoteReceived = {
68
+ upvoterAddress: string;
69
+ tokenAddress: string;
70
+ numUpvotes: number;
71
+ timestamp: number;
72
+ priceInUsdc?: number;
73
+ userTokenBalance: number;
74
+ userTokenBalanceUsdValue?: number;
75
+ tokenInfo?: {
76
+ name: string;
77
+ symbol: string;
78
+ decimals: number;
79
+ };
80
+ };
81
+ type UserUpvoteClientOptions = {
82
+ chainId: number;
83
+ overrides?: {
84
+ contractAddress?: Address;
85
+ rpcUrls?: string[];
86
+ };
87
+ };
88
+ type UserUpvoteNetMessage = {
89
+ app: `0x${string}`;
90
+ sender: `0x${string}`;
91
+ timestamp: bigint;
92
+ data: `0x${string}`;
93
+ text: string;
94
+ topic: string;
95
+ };
96
+
97
+ /**
98
+ * UserUpvoteClient - Client for reading user-to-user upvote data.
99
+ *
100
+ * This is a standalone upvote system separate from the token Score system.
101
+ * It reads directly from the UserUpvote contract on Base.
102
+ */
103
+ declare class UserUpvoteClient {
104
+ private client;
105
+ private contractAddress;
106
+ private chainId;
107
+ constructor(params: UserUpvoteClientOptions);
108
+ getUserUpvotesGiven({ user }: {
109
+ user: Address;
110
+ }): Promise<bigint>;
111
+ getUserUpvotesReceived({ user }: {
112
+ user: Address;
113
+ }): Promise<bigint>;
114
+ getUserUpvotesGivenPerTokenBatch({ user, tokens, }: {
115
+ user: Address;
116
+ tokens: Address[];
117
+ }): Promise<bigint[]>;
118
+ getUserUpvotesReceivedPerTokenBatch({ user, tokens, }: {
119
+ user: Address;
120
+ tokens: Address[];
121
+ }): Promise<bigint[]>;
122
+ getTotalUpvotesPerToken({ token, }: {
123
+ token: Address;
124
+ }): Promise<bigint>;
125
+ getUserTokensInRange({ user, startIndex, endIndex, }: {
126
+ user: Address;
127
+ startIndex: number;
128
+ endIndex: number;
129
+ }): Promise<{
130
+ token: Address;
131
+ feeTier: number;
132
+ }[]>;
133
+ getUserTokenCount({ user }: {
134
+ user: Address;
135
+ }): Promise<number>;
136
+ isTokenInUserList({ user, token, }: {
137
+ user: Address;
138
+ token: Address;
139
+ }): Promise<boolean>;
140
+ getUpvotePrice(): Promise<bigint>;
141
+ upvoteUser({ walletClient, userToUpvote, token, numUpvotes, feeTier, value: providedValue, }: {
142
+ walletClient: WalletClient;
143
+ userToUpvote: Address;
144
+ token?: Address;
145
+ numUpvotes: number;
146
+ feeTier?: number;
147
+ /** Pre-computed ETH value. When omitted, fetches upvotePrice from chain. */
148
+ value?: bigint;
149
+ }): Promise<`0x${string}`>;
150
+ }
151
+
40
152
  /**
41
153
  * Convert token address to bytes32 upvote key.
42
154
  */
@@ -226,5 +338,69 @@ declare const MULTI_VERSION_UNISWAP_POOL_INFO_RETRIEVER: {
226
338
  declare function getWethAddress(chainId: number): Address;
227
339
  declare const NULL_ADDRESS: Address;
228
340
  declare const UPVOTE_PRICE_ETH = 0.000025;
341
+ declare const USER_UPVOTE_CONTRACT: {
342
+ readonly address: Address;
343
+ readonly abi: Abi;
344
+ };
345
+
346
+ /**
347
+ * Parse a Net protocol message from the user upvote contract.
348
+ *
349
+ * Two formats based on topic:
350
+ * - Topic "ub-{address}" (received upvotes): 7 fields including userTokenBalance
351
+ * - Topic "g" (given upvotes): 6 fields without userTokenBalance
352
+ */
353
+ declare function parseUserUpvoteMessage(message: UserUpvoteNetMessage, topic: string): ParsedUserUpvoteMessage | null;
354
+ /**
355
+ * Extract unique token addresses from an array of Net messages.
356
+ */
357
+ declare function extractTokenAddressesFromMessages(messages: UserUpvoteNetMessage[], topic: string): TokenAddressExtraction;
358
+ /**
359
+ * Validate that a Net message can be parsed as a user upvote message.
360
+ */
361
+ declare function validateUserUpvoteMessage(message: UserUpvoteNetMessage, topic: string): boolean;
362
+ /**
363
+ * Calculate the USDC price from a parsed user upvote message.
364
+ *
365
+ * The contract emits (halfWei * 1e18) / amountRaw for tokenWethPrice,
366
+ * so we divide by 10^(36 - tokenDecimals) to get the actual price.
367
+ */
368
+ declare function calculatePriceInUsdc(parsedMessage: ParsedUserUpvoteMessage, tokenDecimals?: number): number | undefined;
369
+ /**
370
+ * Calculate the human-readable token balance from a raw bigint value.
371
+ */
372
+ declare function calculateUserTokenBalance(rawBalance: bigint, tokenDecimals?: number): number;
373
+ /**
374
+ * Client-side validation for upvote parameters.
375
+ * Mirrors contract-side errors for better UX before sending a transaction.
376
+ */
377
+ declare function validateUpvoteParams(params: {
378
+ sender: Address;
379
+ userToUpvote: Address;
380
+ numUpvotes: number;
381
+ }): {
382
+ valid: boolean;
383
+ error?: string;
384
+ };
385
+ /**
386
+ * Calculate the total ETH cost for a given number of upvotes.
387
+ */
388
+ declare function calculateUpvoteCost(numUpvotes: number, upvotePrice: bigint): bigint;
389
+ /**
390
+ * Build an enriched UserUpvote from a parsed message and optional token info.
391
+ */
392
+ declare function buildUserUpvote(parsed: ParsedUserUpvoteMessage, timestamp: number, tokenInfo?: {
393
+ name: string;
394
+ symbol: string;
395
+ decimals: number;
396
+ }): UserUpvote;
397
+ /**
398
+ * Build an enriched UserUpvoteReceived from a parsed message, upvoter address, and optional token info.
399
+ */
400
+ declare function buildUserUpvoteReceived(parsed: ParsedUserUpvoteMessage, upvoterAddress: string, timestamp: number, tokenInfo?: {
401
+ name: string;
402
+ symbol: string;
403
+ decimals: number;
404
+ }): UserUpvoteReceived;
229
405
 
230
- export { ALL_STRATEGY_ADDRESSES, DYNAMIC_SPLIT_STRATEGY, DecodedStrategyMetadata, GetAppKeyScoresOptions, GetStrategyKeyScoresOptions, GetUpvotesForItemsOptions, GetUpvotesOptions, LEGACY_UPVOTE_V1_ADDRESS, LEGACY_UPVOTE_V2_ADDRESS, MULTI_VERSION_UNISWAP_BULK_POOL_FINDER, MULTI_VERSION_UNISWAP_POOL_INFO_RETRIEVER, NULL_ADDRESS, PURE_ALPHA_STRATEGY, PoolDiscoveryResult, PoolKey, SCORE_CONTRACT, SUPPORTED_SCORE_CHAINS, ScoreClient, ScoreClientOptions, UNIV234_POOLS_STRATEGY, UPVOTE_APP, UPVOTE_PRICE_ETH, UPVOTE_STORAGE_APP, calculatePriceFromSqrtPriceX96, decodeStrategyMetadata, decodeUpvoteMessage, decodeUpvoteStorageBlob, discoverPools, discoverTokenPool, encodePoolKey, encodeUpvoteKey, extractStrategyAddress, getWethAddress, isDynamicSplitStrategy, isPureAlphaStrategy, isStrategyMessage, isUniv234PoolsStrategy, isUserUpvoteMessage, selectStrategy, tokenAddressToUpvoteKeyString };
406
+ export { ALL_STRATEGY_ADDRESSES, DYNAMIC_SPLIT_STRATEGY, DecodedStrategyMetadata, GetAppKeyScoresOptions, GetStrategyKeyScoresOptions, GetUpvotesForItemsOptions, GetUpvotesOptions, LEGACY_UPVOTE_V1_ADDRESS, LEGACY_UPVOTE_V2_ADDRESS, MULTI_VERSION_UNISWAP_BULK_POOL_FINDER, MULTI_VERSION_UNISWAP_POOL_INFO_RETRIEVER, NULL_ADDRESS, PURE_ALPHA_STRATEGY, type ParsedUserUpvoteMessage, PoolDiscoveryResult, PoolKey, SCORE_CONTRACT, SUPPORTED_SCORE_CHAINS, ScoreClient, ScoreClientOptions, type TokenAddressExtraction, UNIV234_POOLS_STRATEGY, UPVOTE_APP, UPVOTE_PRICE_ETH, UPVOTE_STORAGE_APP, USER_UPVOTE_CONTRACT, type UserUpvote, UserUpvoteClient, type UserUpvoteClientOptions, type UserUpvoteNetMessage, type UserUpvoteReceived, buildUserUpvote, buildUserUpvoteReceived, calculatePriceFromSqrtPriceX96, calculatePriceInUsdc, calculateUpvoteCost, calculateUserTokenBalance, decodeStrategyMetadata, decodeUpvoteMessage, decodeUpvoteStorageBlob, discoverPools, discoverTokenPool, encodePoolKey, encodeUpvoteKey, extractStrategyAddress, extractTokenAddressesFromMessages, getWethAddress, isDynamicSplitStrategy, isPureAlphaStrategy, isStrategyMessage, isUniv234PoolsStrategy, isUserUpvoteMessage, parseUserUpvoteMessage, selectStrategy, tokenAddressToUpvoteKeyString, validateUpvoteParams, validateUserUpvoteMessage };