@lukso/transaction-decoder 1.0.1-dev.0f1bea5
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/LICENSE +201 -0
- package/README.md +486 -0
- package/dist/browser.cjs +6912 -0
- package/dist/browser.cjs.map +1 -0
- package/dist/browser.d.cts +6 -0
- package/dist/browser.d.ts +6 -0
- package/dist/browser.js +131 -0
- package/dist/browser.js.map +1 -0
- package/dist/cdn/transaction-decoder.global.js +296 -0
- package/dist/cdn/transaction-decoder.global.js.map +1 -0
- package/dist/chunk-GGBHTWJL.js +437 -0
- package/dist/chunk-GGBHTWJL.js.map +1 -0
- package/dist/chunk-GXZOF3QY.js +839 -0
- package/dist/chunk-GXZOF3QY.js.map +1 -0
- package/dist/chunk-LJ6ES5XF.js +776 -0
- package/dist/chunk-LJ6ES5XF.js.map +1 -0
- package/dist/chunk-XVHJWV5U.js +4925 -0
- package/dist/chunk-XVHJWV5U.js.map +1 -0
- package/dist/data.cjs +5518 -0
- package/dist/data.cjs.map +1 -0
- package/dist/data.d.cts +43 -0
- package/dist/data.d.ts +43 -0
- package/dist/data.js +55 -0
- package/dist/data.js.map +1 -0
- package/dist/index-BzXh7poJ.d.cts +524 -0
- package/dist/index-BzXh7poJ.d.ts +524 -0
- package/dist/index.cjs +6912 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +756 -0
- package/dist/index.d.ts +756 -0
- package/dist/index.js +131 -0
- package/dist/index.js.map +1 -0
- package/dist/server.cjs +5644 -0
- package/dist/server.cjs.map +1 -0
- package/dist/server.d.cts +217 -0
- package/dist/server.d.ts +217 -0
- package/dist/server.js +644 -0
- package/dist/server.js.map +1 -0
- package/dist/utils-CBAkjQh3.d.cts +108 -0
- package/dist/utils-xT9-km0r.d.ts +108 -0
- package/package.json +101 -0
- package/src/browser.ts +13 -0
- package/src/client/resolveAddresses.ts +157 -0
- package/src/core/addressCollector.ts +153 -0
- package/src/core/addressResolver.ts +135 -0
- package/src/core/dataModel.ts +888 -0
- package/src/core/instance.ts +33 -0
- package/src/core/integrateDecoder.ts +325 -0
- package/src/data.ts +70 -0
- package/src/decoder/GENERATOR_PROPOSAL.md +182 -0
- package/src/decoder/THREE_PHASE_EXAMPLE.md +108 -0
- package/src/decoder/aggregation.ts +218 -0
- package/src/decoder/browserCache.ts +237 -0
- package/src/decoder/cache/README.md +126 -0
- package/src/decoder/cache/index.ts +44 -0
- package/src/decoder/cache.ts +139 -0
- package/src/decoder/constants.ts +125 -0
- package/src/decoder/decodeTransaction.ts +292 -0
- package/src/decoder/errors.ts +95 -0
- package/src/decoder/events.ts +192 -0
- package/src/decoder/functionSignature.ts +344 -0
- package/src/decoder/getDataFromExternalSources.ts +248 -0
- package/src/decoder/graphqlWS.ts +22 -0
- package/src/decoder/interfaces.ts +185 -0
- package/src/decoder/keyValue.ts +5 -0
- package/src/decoder/kvCache.ts +241 -0
- package/src/decoder/lruCache.ts +184 -0
- package/src/decoder/lsp7Mint.test.ts +179 -0
- package/src/decoder/lsp7TransferBatch.test.ts +105 -0
- package/src/decoder/plugins/RegistryAbi.ts +562 -0
- package/src/decoder/plugins/enhanceBurntPix.ts +132 -0
- package/src/decoder/plugins/enhanceGraffiti.ts +70 -0
- package/src/decoder/plugins/enhanceLSP0ERC725Account.ts +179 -0
- package/src/decoder/plugins/enhanceLSP26FollowerSystem.ts +88 -0
- package/src/decoder/plugins/enhanceLSP6KeyManager.ts +231 -0
- package/src/decoder/plugins/enhanceLSP7DigitalAsset.ts +165 -0
- package/src/decoder/plugins/enhanceLSP8IdentifiableDigitalAsset.ts +170 -0
- package/src/decoder/plugins/enhanceLSP9Vault.ts +57 -0
- package/src/decoder/plugins/enhanceRetrieveAbi.ts +85 -0
- package/src/decoder/plugins/enhanceSetData.ts +135 -0
- package/src/decoder/plugins/index.ts +99 -0
- package/src/decoder/plugins/schemaDefault.ts +318 -0
- package/src/decoder/plugins/standardPlugin.ts +202 -0
- package/src/decoder/registry.ts +322 -0
- package/src/decoder/singleGQL.ts +293 -0
- package/src/decoder/transaction.ts +198 -0
- package/src/decoder/types.ts +465 -0
- package/src/decoder/utils.ts +212 -0
- package/src/example/usage.ts +172 -0
- package/src/index.ts +174 -0
- package/src/server/addressResolver.ts +68 -0
- package/src/server/caches.ts +209 -0
- package/src/server/decodeTransactionSync.ts +156 -0
- package/src/server/decodeTransactionsBatch.ts +207 -0
- package/src/server/finishDecoding.ts +116 -0
- package/src/server/index.ts +81 -0
- package/src/server/lsp23Resolver.test.ts +46 -0
- package/src/server/lsp23Resolver.ts +419 -0
- package/src/server/types.ts +168 -0
- package/src/server.ts +22 -0
- package/src/shared/addressResolver.ts +651 -0
- package/src/shared/cache.ts +144 -0
- package/src/shared/constants.ts +21 -0
- package/src/stubs/tty.ts +13 -0
- package/src/stubs/util.ts +42 -0
- package/src/types/index.ts +154 -0
- package/src/types/provider.ts +46 -0
- package/src/umd.ts +13 -0
- package/src/utils/debug.ts +49 -0
- package/src/utils/json-bigint.ts +47 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { Chain, Abi } from 'viem';
|
|
2
|
+
import { b as DecoderResult, c as DataKey, E as EnhancedInfo, e as Info } from './index-BzXh7poJ.cjs';
|
|
3
|
+
import '@preact/signals-core';
|
|
4
|
+
import '@erc725/erc725.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Options for server-side decoding
|
|
8
|
+
*/
|
|
9
|
+
interface ServerDecoderOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Total time budget in milliseconds
|
|
12
|
+
* Default: 800ms
|
|
13
|
+
*/
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Whether to enable Phase 2 (ABI fetching and enhancement)
|
|
17
|
+
* Default: true
|
|
18
|
+
*/
|
|
19
|
+
enableEnhancement?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Chain to decode for
|
|
22
|
+
*/
|
|
23
|
+
chain: Chain;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for server decoder instance
|
|
27
|
+
*/
|
|
28
|
+
interface ServerDecoderConfig {
|
|
29
|
+
/**
|
|
30
|
+
* GraphQL endpoint for address resolution
|
|
31
|
+
*/
|
|
32
|
+
graphqlEndpoint: string;
|
|
33
|
+
/**
|
|
34
|
+
* Default chain (can be overridden per request)
|
|
35
|
+
*/
|
|
36
|
+
defaultChain: Chain;
|
|
37
|
+
/**
|
|
38
|
+
* Size of transaction result cache
|
|
39
|
+
* Default: 10000
|
|
40
|
+
*/
|
|
41
|
+
transactionCacheSize?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Size of address metadata cache
|
|
44
|
+
* Default: 50000
|
|
45
|
+
*/
|
|
46
|
+
addressCacheSize?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Size of contract ABI cache
|
|
49
|
+
* Default: 5000
|
|
50
|
+
*/
|
|
51
|
+
abiCacheSize?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Size of schema decode cache
|
|
54
|
+
* Default: 10000
|
|
55
|
+
*/
|
|
56
|
+
schemaCacheSize?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Default timeout for decoding operations
|
|
59
|
+
* Default: 800ms
|
|
60
|
+
*/
|
|
61
|
+
defaultTimeout?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Cache statistics
|
|
65
|
+
*/
|
|
66
|
+
interface CacheStats {
|
|
67
|
+
transactions: {
|
|
68
|
+
size: number;
|
|
69
|
+
maxSize: number;
|
|
70
|
+
hits: number;
|
|
71
|
+
misses: number;
|
|
72
|
+
hitRate: number;
|
|
73
|
+
};
|
|
74
|
+
addresses: {
|
|
75
|
+
size: number;
|
|
76
|
+
maxSize: number;
|
|
77
|
+
hits: number;
|
|
78
|
+
misses: number;
|
|
79
|
+
hitRate: number;
|
|
80
|
+
};
|
|
81
|
+
abis: {
|
|
82
|
+
size: number;
|
|
83
|
+
maxSize: number;
|
|
84
|
+
hits: number;
|
|
85
|
+
misses: number;
|
|
86
|
+
hitRate: number;
|
|
87
|
+
};
|
|
88
|
+
schemas: {
|
|
89
|
+
size: number;
|
|
90
|
+
maxSize: number;
|
|
91
|
+
hits: number;
|
|
92
|
+
misses: number;
|
|
93
|
+
hitRate: number;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Batch decode result
|
|
98
|
+
*/
|
|
99
|
+
interface BatchDecodeResult {
|
|
100
|
+
/**
|
|
101
|
+
* Array of decoded results
|
|
102
|
+
*/
|
|
103
|
+
results: DecoderResult[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Server decoder instance interface
|
|
107
|
+
*/
|
|
108
|
+
interface ServerDecoder {
|
|
109
|
+
/**
|
|
110
|
+
* Decode a single transaction
|
|
111
|
+
*/
|
|
112
|
+
decodeTransaction: (transaction: DecoderResult, options?: Partial<ServerDecoderOptions>) => Promise<DecoderResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Decode multiple transactions with batching
|
|
115
|
+
* Returns results with global addressIdentities
|
|
116
|
+
*/
|
|
117
|
+
decodeTransactionsBatch: (transactions: DecoderResult[], options?: Partial<ServerDecoderOptions>) => Promise<BatchDecodeResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Finish decoding a transaction (enhance and resolve addresses)
|
|
120
|
+
* This will update the cache with the fully decoded result
|
|
121
|
+
*/
|
|
122
|
+
finishDecoding: (transaction: DecoderResult, options?: Partial<ServerDecoderOptions>) => Promise<DecoderResult>;
|
|
123
|
+
/**
|
|
124
|
+
* Clear all caches
|
|
125
|
+
*/
|
|
126
|
+
clearCaches: () => void;
|
|
127
|
+
/**
|
|
128
|
+
* Get cache statistics
|
|
129
|
+
*/
|
|
130
|
+
getCacheStats: () => CacheStats;
|
|
131
|
+
/**
|
|
132
|
+
* Warm up address cache with specific addresses
|
|
133
|
+
*/
|
|
134
|
+
warmAddressCache: (addresses: DataKey[]) => Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Resolve addresses and return their metadata
|
|
137
|
+
* Uses cache when available
|
|
138
|
+
*/
|
|
139
|
+
resolveAddresses: (addresses: DataKey[], timeoutMs?: number) => Promise<Map<DataKey, EnhancedInfo>>;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Multi-level caching system for server-side decoder
|
|
144
|
+
*/
|
|
145
|
+
declare class ServerDecoderCaches {
|
|
146
|
+
private transactionCache;
|
|
147
|
+
private transactionStats;
|
|
148
|
+
private addressCache;
|
|
149
|
+
private addressStats;
|
|
150
|
+
private abiCache;
|
|
151
|
+
private abiStats;
|
|
152
|
+
private schemaCache;
|
|
153
|
+
private schemaStats;
|
|
154
|
+
constructor(options?: {
|
|
155
|
+
transactionCacheSize?: number;
|
|
156
|
+
addressCacheSize?: number;
|
|
157
|
+
abiCacheSize?: number;
|
|
158
|
+
schemaCacheSize?: number;
|
|
159
|
+
});
|
|
160
|
+
/**
|
|
161
|
+
* Get cache key for a data key (address or address:tokenId)
|
|
162
|
+
*/
|
|
163
|
+
private getDataKeyCacheKey;
|
|
164
|
+
getTransaction(hash: string): DecoderResult | undefined;
|
|
165
|
+
setTransaction(hash: string, result: DecoderResult): void;
|
|
166
|
+
getAddress(key: DataKey): EnhancedInfo | undefined;
|
|
167
|
+
setAddress(key: DataKey, data: EnhancedInfo): void;
|
|
168
|
+
hasAddress(key: DataKey): boolean;
|
|
169
|
+
getAddresses(keys: DataKey[]): Map<DataKey, EnhancedInfo>;
|
|
170
|
+
getAbi(address: string): Abi | undefined;
|
|
171
|
+
setAbi(address: string, abi: Abi): void;
|
|
172
|
+
hasAbi(address: string): boolean;
|
|
173
|
+
getSchema(key: string, value: string): Info | undefined;
|
|
174
|
+
setSchema(key: string, value: string, info: Info): void;
|
|
175
|
+
clear(): void;
|
|
176
|
+
getStats(): CacheStats;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Server-side address resolver with caching
|
|
181
|
+
*/
|
|
182
|
+
declare class ServerAddressResolver {
|
|
183
|
+
private graphqlEndpoint;
|
|
184
|
+
private chain;
|
|
185
|
+
private caches;
|
|
186
|
+
private cacheAdapter;
|
|
187
|
+
constructor(graphqlEndpoint: string, chain: Chain, caches: ServerDecoderCaches);
|
|
188
|
+
/**
|
|
189
|
+
* Resolve addresses, using cache when possible
|
|
190
|
+
*/
|
|
191
|
+
resolveAddresses(addresses: readonly DataKey[]): Promise<Map<DataKey, EnhancedInfo>>;
|
|
192
|
+
/**
|
|
193
|
+
* Resolve addresses with timeout
|
|
194
|
+
*/
|
|
195
|
+
resolveAddressesWithTimeout(addresses: DataKey[], timeoutMs: number): Promise<Map<DataKey, EnhancedInfo>>;
|
|
196
|
+
/**
|
|
197
|
+
* Warm the cache with specific addresses
|
|
198
|
+
*/
|
|
199
|
+
warmCache(addresses: DataKey[]): Promise<void>;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Decode a single transaction with time-bounded enhancement
|
|
204
|
+
*/
|
|
205
|
+
declare function decodeTransactionSync(transaction: DecoderResult, options: ServerDecoderOptions, caches: ServerDecoderCaches): Promise<DecoderResult>;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Decode multiple transactions with batching and time budget
|
|
209
|
+
*/
|
|
210
|
+
declare function decodeTransactionsBatch(transactions: DecoderResult[], options: ServerDecoderOptions, caches: ServerDecoderCaches): Promise<BatchDecodeResult>;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Create a server-optimized decoder instance
|
|
214
|
+
*/
|
|
215
|
+
declare function createServerDecoder(config: ServerDecoderConfig): ServerDecoder;
|
|
216
|
+
|
|
217
|
+
export { type CacheStats, ServerAddressResolver, type ServerDecoder, ServerDecoderCaches, type ServerDecoderConfig, type ServerDecoderOptions, createServerDecoder, decodeTransactionSync, decodeTransactionsBatch };
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { Chain, Abi } from 'viem';
|
|
2
|
+
import { b as DecoderResult, c as DataKey, E as EnhancedInfo, e as Info } from './index-BzXh7poJ.js';
|
|
3
|
+
import '@preact/signals-core';
|
|
4
|
+
import '@erc725/erc725.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Options for server-side decoding
|
|
8
|
+
*/
|
|
9
|
+
interface ServerDecoderOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Total time budget in milliseconds
|
|
12
|
+
* Default: 800ms
|
|
13
|
+
*/
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Whether to enable Phase 2 (ABI fetching and enhancement)
|
|
17
|
+
* Default: true
|
|
18
|
+
*/
|
|
19
|
+
enableEnhancement?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Chain to decode for
|
|
22
|
+
*/
|
|
23
|
+
chain: Chain;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for server decoder instance
|
|
27
|
+
*/
|
|
28
|
+
interface ServerDecoderConfig {
|
|
29
|
+
/**
|
|
30
|
+
* GraphQL endpoint for address resolution
|
|
31
|
+
*/
|
|
32
|
+
graphqlEndpoint: string;
|
|
33
|
+
/**
|
|
34
|
+
* Default chain (can be overridden per request)
|
|
35
|
+
*/
|
|
36
|
+
defaultChain: Chain;
|
|
37
|
+
/**
|
|
38
|
+
* Size of transaction result cache
|
|
39
|
+
* Default: 10000
|
|
40
|
+
*/
|
|
41
|
+
transactionCacheSize?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Size of address metadata cache
|
|
44
|
+
* Default: 50000
|
|
45
|
+
*/
|
|
46
|
+
addressCacheSize?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Size of contract ABI cache
|
|
49
|
+
* Default: 5000
|
|
50
|
+
*/
|
|
51
|
+
abiCacheSize?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Size of schema decode cache
|
|
54
|
+
* Default: 10000
|
|
55
|
+
*/
|
|
56
|
+
schemaCacheSize?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Default timeout for decoding operations
|
|
59
|
+
* Default: 800ms
|
|
60
|
+
*/
|
|
61
|
+
defaultTimeout?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Cache statistics
|
|
65
|
+
*/
|
|
66
|
+
interface CacheStats {
|
|
67
|
+
transactions: {
|
|
68
|
+
size: number;
|
|
69
|
+
maxSize: number;
|
|
70
|
+
hits: number;
|
|
71
|
+
misses: number;
|
|
72
|
+
hitRate: number;
|
|
73
|
+
};
|
|
74
|
+
addresses: {
|
|
75
|
+
size: number;
|
|
76
|
+
maxSize: number;
|
|
77
|
+
hits: number;
|
|
78
|
+
misses: number;
|
|
79
|
+
hitRate: number;
|
|
80
|
+
};
|
|
81
|
+
abis: {
|
|
82
|
+
size: number;
|
|
83
|
+
maxSize: number;
|
|
84
|
+
hits: number;
|
|
85
|
+
misses: number;
|
|
86
|
+
hitRate: number;
|
|
87
|
+
};
|
|
88
|
+
schemas: {
|
|
89
|
+
size: number;
|
|
90
|
+
maxSize: number;
|
|
91
|
+
hits: number;
|
|
92
|
+
misses: number;
|
|
93
|
+
hitRate: number;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Batch decode result
|
|
98
|
+
*/
|
|
99
|
+
interface BatchDecodeResult {
|
|
100
|
+
/**
|
|
101
|
+
* Array of decoded results
|
|
102
|
+
*/
|
|
103
|
+
results: DecoderResult[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Server decoder instance interface
|
|
107
|
+
*/
|
|
108
|
+
interface ServerDecoder {
|
|
109
|
+
/**
|
|
110
|
+
* Decode a single transaction
|
|
111
|
+
*/
|
|
112
|
+
decodeTransaction: (transaction: DecoderResult, options?: Partial<ServerDecoderOptions>) => Promise<DecoderResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Decode multiple transactions with batching
|
|
115
|
+
* Returns results with global addressIdentities
|
|
116
|
+
*/
|
|
117
|
+
decodeTransactionsBatch: (transactions: DecoderResult[], options?: Partial<ServerDecoderOptions>) => Promise<BatchDecodeResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Finish decoding a transaction (enhance and resolve addresses)
|
|
120
|
+
* This will update the cache with the fully decoded result
|
|
121
|
+
*/
|
|
122
|
+
finishDecoding: (transaction: DecoderResult, options?: Partial<ServerDecoderOptions>) => Promise<DecoderResult>;
|
|
123
|
+
/**
|
|
124
|
+
* Clear all caches
|
|
125
|
+
*/
|
|
126
|
+
clearCaches: () => void;
|
|
127
|
+
/**
|
|
128
|
+
* Get cache statistics
|
|
129
|
+
*/
|
|
130
|
+
getCacheStats: () => CacheStats;
|
|
131
|
+
/**
|
|
132
|
+
* Warm up address cache with specific addresses
|
|
133
|
+
*/
|
|
134
|
+
warmAddressCache: (addresses: DataKey[]) => Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Resolve addresses and return their metadata
|
|
137
|
+
* Uses cache when available
|
|
138
|
+
*/
|
|
139
|
+
resolveAddresses: (addresses: DataKey[], timeoutMs?: number) => Promise<Map<DataKey, EnhancedInfo>>;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Multi-level caching system for server-side decoder
|
|
144
|
+
*/
|
|
145
|
+
declare class ServerDecoderCaches {
|
|
146
|
+
private transactionCache;
|
|
147
|
+
private transactionStats;
|
|
148
|
+
private addressCache;
|
|
149
|
+
private addressStats;
|
|
150
|
+
private abiCache;
|
|
151
|
+
private abiStats;
|
|
152
|
+
private schemaCache;
|
|
153
|
+
private schemaStats;
|
|
154
|
+
constructor(options?: {
|
|
155
|
+
transactionCacheSize?: number;
|
|
156
|
+
addressCacheSize?: number;
|
|
157
|
+
abiCacheSize?: number;
|
|
158
|
+
schemaCacheSize?: number;
|
|
159
|
+
});
|
|
160
|
+
/**
|
|
161
|
+
* Get cache key for a data key (address or address:tokenId)
|
|
162
|
+
*/
|
|
163
|
+
private getDataKeyCacheKey;
|
|
164
|
+
getTransaction(hash: string): DecoderResult | undefined;
|
|
165
|
+
setTransaction(hash: string, result: DecoderResult): void;
|
|
166
|
+
getAddress(key: DataKey): EnhancedInfo | undefined;
|
|
167
|
+
setAddress(key: DataKey, data: EnhancedInfo): void;
|
|
168
|
+
hasAddress(key: DataKey): boolean;
|
|
169
|
+
getAddresses(keys: DataKey[]): Map<DataKey, EnhancedInfo>;
|
|
170
|
+
getAbi(address: string): Abi | undefined;
|
|
171
|
+
setAbi(address: string, abi: Abi): void;
|
|
172
|
+
hasAbi(address: string): boolean;
|
|
173
|
+
getSchema(key: string, value: string): Info | undefined;
|
|
174
|
+
setSchema(key: string, value: string, info: Info): void;
|
|
175
|
+
clear(): void;
|
|
176
|
+
getStats(): CacheStats;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Server-side address resolver with caching
|
|
181
|
+
*/
|
|
182
|
+
declare class ServerAddressResolver {
|
|
183
|
+
private graphqlEndpoint;
|
|
184
|
+
private chain;
|
|
185
|
+
private caches;
|
|
186
|
+
private cacheAdapter;
|
|
187
|
+
constructor(graphqlEndpoint: string, chain: Chain, caches: ServerDecoderCaches);
|
|
188
|
+
/**
|
|
189
|
+
* Resolve addresses, using cache when possible
|
|
190
|
+
*/
|
|
191
|
+
resolveAddresses(addresses: readonly DataKey[]): Promise<Map<DataKey, EnhancedInfo>>;
|
|
192
|
+
/**
|
|
193
|
+
* Resolve addresses with timeout
|
|
194
|
+
*/
|
|
195
|
+
resolveAddressesWithTimeout(addresses: DataKey[], timeoutMs: number): Promise<Map<DataKey, EnhancedInfo>>;
|
|
196
|
+
/**
|
|
197
|
+
* Warm the cache with specific addresses
|
|
198
|
+
*/
|
|
199
|
+
warmCache(addresses: DataKey[]): Promise<void>;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Decode a single transaction with time-bounded enhancement
|
|
204
|
+
*/
|
|
205
|
+
declare function decodeTransactionSync(transaction: DecoderResult, options: ServerDecoderOptions, caches: ServerDecoderCaches): Promise<DecoderResult>;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Decode multiple transactions with batching and time budget
|
|
209
|
+
*/
|
|
210
|
+
declare function decodeTransactionsBatch(transactions: DecoderResult[], options: ServerDecoderOptions, caches: ServerDecoderCaches): Promise<BatchDecodeResult>;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Create a server-optimized decoder instance
|
|
214
|
+
*/
|
|
215
|
+
declare function createServerDecoder(config: ServerDecoderConfig): ServerDecoder;
|
|
216
|
+
|
|
217
|
+
export { type CacheStats, ServerAddressResolver, type ServerDecoder, ServerDecoderCaches, type ServerDecoderConfig, type ServerDecoderOptions, createServerDecoder, decodeTransactionSync, decodeTransactionsBatch };
|