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