@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,184 @@
1
+ /**
2
+ * LRU Cache implementation of DecoderCache interface
3
+ */
4
+
5
+ import { LRUCache } from 'lru-cache'
6
+ import type { CacheEntry, CacheOptions, DecoderCache } from './cache'
7
+
8
+ /**
9
+ * Options for creating an LRU cache instance
10
+ */
11
+ export interface LRUCacheOptions {
12
+ /** Maximum number of items in cache */
13
+ max?: number
14
+ /** Default TTL in milliseconds */
15
+ ttl?: number
16
+ /** Default error TTL in milliseconds */
17
+ errorTTL?: number
18
+ /** Default stale-while-revalidate time in milliseconds */
19
+ staleWhileRevalidate?: number
20
+ }
21
+
22
+ /**
23
+ * LRU implementation of DecoderCache
24
+ */
25
+ export class LRUDecoderCache implements DecoderCache {
26
+ private cache: LRUCache<string, CacheEntry<unknown>>
27
+ private promises: Map<string, Promise<unknown>>
28
+ private defaultTTL: number
29
+ private defaultErrorTTL: number
30
+ private defaultStaleWhileRevalidate?: number
31
+
32
+ constructor(options: LRUCacheOptions = {}) {
33
+ this.defaultTTL = options.ttl ?? 5 * 60 * 1000 // 5 minutes
34
+ this.defaultErrorTTL = options.errorTTL ?? 30 * 1000 // 30 seconds
35
+ this.defaultStaleWhileRevalidate = options.staleWhileRevalidate
36
+
37
+ this.cache = new LRUCache({
38
+ max: options.max ?? 1000,
39
+ })
40
+
41
+ this.promises = new Map()
42
+ }
43
+
44
+ async get<T>(key: string): Promise<CacheEntry<T> | undefined> {
45
+ const entry = this.cache.get(key) as CacheEntry<T> | undefined
46
+ if (!entry) {
47
+ return undefined
48
+ }
49
+
50
+ // Check if expired
51
+ if (entry.expires && Date.now() > entry.expires) {
52
+ this.cache.delete(key)
53
+ return undefined
54
+ }
55
+
56
+ return entry
57
+ }
58
+
59
+ async set<T>(key: string, value: T, options?: CacheOptions): Promise<void> {
60
+ const now = Date.now()
61
+ const ttl =
62
+ options?.ttl ?? (options?.errorTTL ? options.errorTTL : this.defaultTTL)
63
+ const isError = options?.errorTTL !== undefined
64
+
65
+ const entry: CacheEntry<T> = {
66
+ value,
67
+ expires: now + ttl,
68
+ isError,
69
+ }
70
+
71
+ const staleWhileRevalidate =
72
+ options?.staleWhileRevalidate ?? this.defaultStaleWhileRevalidate
73
+ if (staleWhileRevalidate) {
74
+ entry.stale = now + ttl + staleWhileRevalidate
75
+ }
76
+
77
+ this.cache.set(key, entry as CacheEntry<unknown>)
78
+ }
79
+
80
+ async delete(key: string): Promise<void> {
81
+ this.cache.delete(key)
82
+ }
83
+
84
+ async getMany<T>(keys: string[]): Promise<Map<string, CacheEntry<T>>> {
85
+ const result = new Map<string, CacheEntry<T>>()
86
+
87
+ for (const key of keys) {
88
+ const entry = await this.get<T>(key)
89
+ if (entry) {
90
+ result.set(key, entry)
91
+ }
92
+ }
93
+
94
+ return result
95
+ }
96
+
97
+ async setMany<T>(
98
+ entries: Array<{ key: string; value: T; options?: CacheOptions }>
99
+ ): Promise<void> {
100
+ for (const { key, value, options } of entries) {
101
+ await this.set(key, value, options)
102
+ }
103
+ }
104
+
105
+ async clear(): Promise<void> {
106
+ this.cache.clear()
107
+ this.promises.clear()
108
+ }
109
+
110
+ async getOrSet<T>(
111
+ key: string,
112
+ factory: (signal?: AbortSignal) => Promise<T>,
113
+ options?: CacheOptions & { signal?: AbortSignal }
114
+ ): Promise<T> {
115
+ // Check cache first
116
+ const cached = await this.get<T>(key)
117
+ const now = Date.now()
118
+
119
+ // If we have a valid (non-expired) entry, return it
120
+ if (cached && (!cached.expires || now < cached.expires)) {
121
+ return cached.value
122
+ }
123
+
124
+ // If we have a stale entry and stale-while-revalidate is enabled
125
+ if (
126
+ cached &&
127
+ cached.stale &&
128
+ now < cached.stale &&
129
+ !this.promises.has(key)
130
+ ) {
131
+ // Return stale value and revalidate in background
132
+ const backgroundPromise = factory(options?.signal)
133
+ .then(async (fresh) => {
134
+ await this.set(key, fresh, options)
135
+ return fresh
136
+ })
137
+ .catch(() => {
138
+ // On error, keep the stale value
139
+ return cached.value
140
+ })
141
+ .finally(() => {
142
+ this.promises.delete(key)
143
+ })
144
+
145
+ this.promises.set(key, backgroundPromise)
146
+ return cached.value
147
+ }
148
+
149
+ // Check if we have an in-flight promise
150
+ const existingPromise = this.promises.get(key) as Promise<T> | undefined
151
+ if (existingPromise) {
152
+ return existingPromise
153
+ }
154
+
155
+ // No valid cache entry, fetch new value
156
+ const promise = factory(options?.signal)
157
+ .then(async (value) => {
158
+ await this.set(key, value, options)
159
+ return value
160
+ })
161
+ .catch(async (error) => {
162
+ // Cache the error with shorter TTL
163
+ await this.set(key, error as T, {
164
+ ...options,
165
+ ttl: options?.errorTTL ?? this.defaultErrorTTL,
166
+ errorTTL: options?.errorTTL ?? this.defaultErrorTTL,
167
+ })
168
+ throw error
169
+ })
170
+ .finally(() => {
171
+ this.promises.delete(key)
172
+ })
173
+
174
+ this.promises.set(key, promise)
175
+ return promise as Promise<T>
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Create a default LRU cache instance
181
+ */
182
+ export function createLRUCache(options?: LRUCacheOptions): DecoderCache {
183
+ return new LRUDecoderCache(options)
184
+ }
@@ -0,0 +1,179 @@
1
+ import { lukso } from 'viem/chains'
2
+ import { describe, expect, it } from 'vitest'
3
+ import { JSONbigString } from '../browser'
4
+ import { defaultSchemaPlugins } from './plugins'
5
+ import { pluginRegistry } from './registry'
6
+ import { decodeTransaction as decodeTransactionCore } from './transaction'
7
+ import type { DecoderResult } from './types'
8
+
9
+ describe('LSP7 Mint Transaction Decoding', () => {
10
+ it('should decode LSP7 mint transaction 0xabf5859b52f9dd7c5dd942751bc77418a1f0bc5bc8447694b726eed8dd260a8c', async () => {
11
+ // This is a Universal Profile executing a mint operation on an LSP7 token
12
+ // The transaction goes through the UP's execute function, which then calls the LSP7 contract
13
+ const transaction = {
14
+ blockHash:
15
+ '0x5aa1f100805b57a3b8672c1d5e03e408661dda2a8a5a30063e8f3c4283c7b642',
16
+ blockNumber: 2313514n,
17
+ blockTimestamp: 1713383508,
18
+ transactionIndex: 0,
19
+ transactionHash:
20
+ '0xabf5859b52f9dd7c5dd942751bc77418a1f0bc5bc8447694b726eed8dd260a8c',
21
+ status: 1,
22
+ gasUsed: '186069',
23
+ gasPrice: '1000000001',
24
+ to: '0x81a904879f657142d9b5c7e875c786717e2125c0', // Universal Profile
25
+ from: '0x879bc4b03689d43133da2e2029d6d01573a39c36', // Controller/EOA
26
+ value: 0n,
27
+ input:
28
+ '0x7580d920000000000000000000000000da9b727f1718f128008ad025828e7fecfaa8a37b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000',
29
+ args: [],
30
+ logs: [
31
+ {
32
+ topics: [
33
+ '0xc0a62328f6bf5e3172bb1fcb2019f54b2c523b6a48e3513a2298fbf0150b781e',
34
+ '0x000000000000000000000000a5467dfe7019bf2c7c5f7a707711b9d4cad118c8',
35
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
36
+ '0x9790242100000000000000000000000000000000000000000000000000000000',
37
+ ],
38
+ data: '0x',
39
+ address: '0x3609de903f8220620773014b51220b66f761e158',
40
+ },
41
+ {
42
+ topics: [
43
+ '0xece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b2',
44
+ '0x6460ee3c0aac563ccbf76d6e1d07bada78e3a9514e6382b736ed3f478ab7b90b',
45
+ ],
46
+ data: '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000c00000000000000000000000000000000',
47
+ address: '0xda9b727f1718f128008ad025828e7fecfaa8a37b',
48
+ },
49
+ {
50
+ topics: [
51
+ '0xece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b2',
52
+ '0x6460ee3c0aac563ccbf76d6e1d07bada0000000000000000000000000000000b',
53
+ ],
54
+ data: '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001481a904879f657142d9b5c7e875c786717e2125c0000000000000000000000000',
55
+ address: '0xda9b727f1718f128008ad025828e7fecfaa8a37b',
56
+ },
57
+ {
58
+ topics: [
59
+ '0xece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b2',
60
+ '0x812c4334633eb816c80d000081a904879f657142d9b5c7e875c786717e2125c0',
61
+ ],
62
+ data: '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014daa746b70000000000000000000000000000000b000000000000000000000000',
63
+ address: '0xda9b727f1718f128008ad025828e7fecfaa8a37b',
64
+ },
65
+ {
66
+ topics: [
67
+ '0x9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c2',
68
+ '0x00000000000000000000000081a904879f657142d9b5c7e875c786717e2125c0',
69
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
70
+ '0x20804611b3e2ea21c480dc465142210acf4a2485947541770ec1fb87dee4a55c',
71
+ ],
72
+ data: '0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000879bc4b03689d43133da2e2029d6d01573a39c360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da9b727f1718f128008ad025828e7fecfaa8a37b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
73
+ address: '0xda9b727f1718f128008ad025828e7fecfaa8a37b',
74
+ },
75
+ ],
76
+ timeTaken: 45,
77
+ }
78
+
79
+ const allPlugins = await pluginRegistry.getAll()
80
+ const wrappers: DecoderResult[] = []
81
+ const result = await decodeTransactionCore(
82
+ transaction as unknown as DecoderResult,
83
+ {
84
+ async: true,
85
+ preferError: false,
86
+ chain: lukso,
87
+ plugins: allPlugins,
88
+ schemaPlugins: defaultSchemaPlugins,
89
+ wrappers,
90
+ }
91
+ )
92
+
93
+ // Log the result to understand what we're getting
94
+ console.log(
95
+ '\nDecoding result:',
96
+ JSONbigString.stringify(
97
+ {
98
+ standard: result?.standard,
99
+ resultType: result?.resultType,
100
+ sig: result?.sig,
101
+ functionName: result?.functionName,
102
+ to: result?.to,
103
+ from: result?.from,
104
+ wrappers: wrappers.map((w) => ({
105
+ standard: w.standard,
106
+ resultType: w.resultType,
107
+ functionName: w.functionName,
108
+ to: w.to,
109
+ })),
110
+ },
111
+ null,
112
+ 2
113
+ )
114
+ )
115
+
116
+ // Log full result for debugging
117
+ console.log('\nFull result:', JSONbigString.stringify(result, null, 2))
118
+
119
+ // Log wrappers if they exist
120
+ if (wrappers.length > 0) {
121
+ console.log('\nWrappers:', JSONbigString.stringify(wrappers, null, 2))
122
+ }
123
+
124
+ // Should decode successfully
125
+ expect(result).toBeDefined()
126
+
127
+ // The transaction signature is 0x7580d920 which is not in standard ABIs
128
+ // This appears to be a custom mint function on a Universal Profile
129
+ // The decoder marks it as 'unknown' standard and 'raw' type because
130
+ // the function signature is not in the standard LSP0 or LSP7 ABIs
131
+ expect(result?.sig).toBe('0x7580d920')
132
+ expect(result?.standard).toBe('LSP7DigitalAsset')
133
+ expect(result?.resultType).toBe('execute')
134
+
135
+ // Verify the transaction went to a Universal Profile
136
+ expect(result?.to).toBe('0x81a904879f657142d9b5c7e875c786717e2125c0')
137
+
138
+ // Check the decoded logs to understand what happened
139
+ expect(result?.logs).toBeDefined()
140
+ expect(result?.logs?.length).toBeGreaterThan(0)
141
+
142
+ // Look for DataChanged events (LSP7 metadata updates during mint)
143
+ const dataChangedLogs =
144
+ result?.logs?.filter((log: any) => log.eventName === 'DataChanged') || []
145
+ expect(dataChangedLogs.length).toBeGreaterThan(0)
146
+ console.log(`\nFound ${dataChangedLogs.length} DataChanged events`)
147
+
148
+ // Look for UniversalReceiver event (confirms the mint was received)
149
+ // UniversalReceiver signature: 0x9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c2
150
+ const universalReceiverLog = result?.logs?.find(
151
+ (log: any) => log.eventName === 'UniversalReceiver'
152
+ )
153
+ expect(universalReceiverLog).toBeDefined()
154
+ expect(universalReceiverLog?.address).toBe(
155
+ '0xda9b727f1718f128008ad025828e7fecfaa8a37b'
156
+ ) // LSP7 token contract
157
+
158
+ // Verify the UniversalReceiver typeId indicates this is a mint
159
+ // typeId 0x20804611b3e2ea21c480dc465142210acf4a2485947541770ec1fb87dee4a55c = _TYPEID_LSP7_TOKENSSENDER
160
+ expect(universalReceiverLog?.args?.[2]?.value).toBe(
161
+ '0x20804611b3e2ea21c480dc465142210acf4a2485947541770ec1fb87dee4a55c'
162
+ )
163
+
164
+ // Verify the 'from' address in UniversalReceiver (the minter, which is the UP)
165
+ expect(universalReceiverLog?.args?.[0]?.value).toBe(
166
+ '0x81A904879F657142d9b5C7e875c786717e2125c0'
167
+ )
168
+
169
+ // Look for PermissionsVerified event (confirms authorization)
170
+ const permissionsVerifiedLog = result?.logs?.find(
171
+ (log: any) => log.eventName === 'PermissionsVerified'
172
+ )
173
+ expect(permissionsVerifiedLog).toBeDefined()
174
+ console.log(
175
+ '\nPermissionsVerified by:',
176
+ permissionsVerifiedLog?.args?.[0]?.value
177
+ )
178
+ })
179
+ })
@@ -0,0 +1,105 @@
1
+ import { lsp7DigitalAssetAbi as LSP7 } from '@lukso/lsp7-contracts/abi'
2
+ import { decodeFunctionData } from 'viem'
3
+ import { lukso } from 'viem/chains'
4
+ import { describe, expect, it } from 'vitest'
5
+ import { JSONbigString } from '../browser'
6
+ import { defaultSchemaPlugins } from './plugins'
7
+ import { pluginRegistry } from './registry'
8
+ import { decodeTransaction as decodeTransactionCore } from './transaction'
9
+ import type { DecoderResult } from './types'
10
+ import { customDecodeFunctionData } from './utils'
11
+
12
+ describe('LSP7 TransferBatch Decoding', () => {
13
+ it('should decode transferBatch transaction 0xc97646850ebd1f6a778847c25cb15589187bd29cd6f6ad06b349714a1a45408a', async () => {
14
+ // This transaction was failing to decode properly - showing as "raw" instead of "transferBatch"
15
+ const transaction = {
16
+ blockHash:
17
+ '0x48308c3d079608fca8dc7ce4211ec22b0d050d71973ea288cc5bc1cc692732da',
18
+ blockNumber: 6019259n,
19
+ blockTimestamp: 1759436388,
20
+ transactionIndex: 0,
21
+ transactionHash:
22
+ '0xc97646850ebd1f6a778847c25cb15589187bd29cd6f6ad06b349714a1a45408a',
23
+ status: 1,
24
+ gasUsed: '17180894',
25
+ gasPrice: 177767940n,
26
+ to: '0xd8744e1c6b2f9e49c54dee14f9a51e202e121228', // Universal Profile
27
+ from: '0xcb964fa7672db41448e2a15345a2468375c37831', // Controller/EOA
28
+ value: 0n,
29
+ input:
30
+ '0x44c028fe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034a025e40220b620a3987ff6c99de5975a8707b90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000058c42d7667c900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000d4000000000000000000000000000000000000000000000000000000000000019e0000000000000000000000000000000000000000000000000000000000000268000000000000000000000000000000000000000000000000000000000000033200000000000000000000000000000000000000000000000000000000000000064000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e121228000000000000000000000000d8744e1c6b2f9e49c54dee14f9a51e202e1212280000000000000000000000000000000000000000000000000000000000000064000000000000000000000000d5c09c0e190ba7ae151cee8cb7c6df059bf2e06c0000000000000000000000007ad51ad81e5546280fd3bd8e6ae6ab8963035f7d000000000000000000000000299ad656cfd3758cb40bc6e2ba7777a4cda437470000000000000000000000002d6584e545b5c4a15fb3a825431b10a1452c3780000000000000000000000000ca75614b08315ec0fd49165027278ee4af12dffd000000000000000000000000980ee2187a9204f3fa990a36ecfeff220eb7efda0000000000000000000000005c42f8738fccaa6472c5be996bf136a1af34f53d000000000000000000000000e6eb90bc4e032761773ee615f7a660b267bf37d300000000000000000000000039233f855160499eece61e7f336f7abc783c7a0800000000000000000000000030dc5880adf20c43feb8a89ac32b525b0ff686340000000000000000000000000000002a62b213fcbe7c46835536f10bc69dce3c0000000000000000000000001000d177a07d91fc0a0185c52d8e0449e0b073ab000000000000000000000000af4877094c00d7dd5088d720cb0b49fa3b396dc90000000000000000000000000b88d05a5b7db7763ae596298f79c851141e21e30000000000000000000000002ec2678e6807f5809d64a89d2ca33162fa93f6570000000000000000000000000769ad497b834748207c570e595257b89f456af60000000000000000000000006e044f874ffa743b779a688b4d498db1d6d7895f0000000000000000000000000ddd3e1e9f4e1d6c50a22a276321186db39e6635000000000000000000000000528286d030bc06d80b3cf09785c7e3c400c4448b0000000000000000000000005e7f2f98427443ffccd7436a35fd7e9c9950ac9600000000000000000000000055c1bab4607611c9b2b0518b87bcbd8cc2b566e500000000000000000000000012a9eef2038c10219b8959fd9b44d0055d36383a000000000000000000000000f3b4f65e564b336e73a7904c9562dff91b3fea590000000000000000000000004510b1e0514ad7220bd44a9ef4f0e28c4d015a2d00000000000000000000000096138c4cb04b7f6e8ad8c5d66dc6d4f4f61c8834000000000000000000000000eb4158275d2ba76ff118d3b3caa1dee78e47d235000000000000000000000000e20f6767cacd89006e729202b2629d2a53c03e660000000000000000000000006124375048a24de0c5012f1233d25924e9296e26000000000000000000000000f2cc7a940043363aed657059c1efdccdaee1e456000000000000000000000000df4a1e87cc2c38790e0287de90c40ceeec1e89670000000000000000000000006e1188d0c1517efeb4245661dc418c0e4f8d72ec00000000000000000000000012d494ff38ab7a9a8501a146c9d1448c64caf9410000000000000000000000000100b4876f83d668742bebbb74787db031ea5f7b00000000000000000000000002e655f92f01bc7880807ec409f134b91bb28381000000000000000000000000167dd23ab7467aab31f0b4a8502a3f044050c64600000000000000000000000044b1fabf5aaeb1dbe9ae767493e3bd0cdc7abd390000000000000000000000003b7afeb23a394361098f637632d4d8c98bd42dac0000000000000000000000008019a277dbf91be5f3932dced1504895ee09c15500000000000000000000000075f2938a58a7862b2d1b4742abd554f716fcb24e000000000000000000000000fcfd57db73bce4f93814b61a423263da640cbbae000000000000000000000000cbf24599767c52981e3fbcc005fdd4cfa6bb8f03000000000000000000000000520517259bee51aa3588b7fe66a36a65b67585cc0000000000000000000000004f01b3221cbd0a4410a6d7d58870b5b33b47fc8f000000000000000000000000567b57a1c87e15800f6372d360310b27507fa2af0000000000000000000000003fa68abe72fc6bb8807f57ce03d288d1685dd2a2000000000000000000000000cb443efe41344b3f36e7c4609de5bd8bdd02eeec000000000000000000000000333662ba4ef5921932c922fabfdd9af9080a89f60000000000000000000000000ea62c0c58a785fd67c747561d6846e11bd420d6000000000000000000000000ed7f0c987bdbda61101b5d49c1a846204c58ebfc000000000000000000000000dd18284b38d37d624197cbb7a2962428c7371e15000000000000000000000000cc61fcc5a603f1a47c70a2aa079e042d3681e089000000000000000000000000335c8fbc47d05ffa90aaf3c114820ddee588c666000000000000000000000000b33f3d1a619b7d24f2e5406cf8709274a7f1ce0000000000000000000000000023b886e22e9137769c9bf7bba2420b32238f20810000000000000000000000004d454777dddf8541d01c54fe03cf216a7391cb62000000000000000000000000beb1ff0ff6f01ad34f8c6d2e0210e87677d909cf0000000000000000000000008eda6784f1276e6e38177d044e0b26b589503a62000000000000000000000000bffd5ee4958b3e96b7e05aa938fa9b852642e7e100000000000000000000000027b38561d28f5c00a5961f7daa603c7a13a996d4000000000000000000000000987b07f8d09f8ef221cfe03b8ae4027079782820000000000000000000000000ab42447e47da382a0eccb763388863ed5b2423f2000000000000000000000000048629a4ee8d0a9f4df98a20ef56292f9fb3bf3a000000000000000000000000929caa8068c8596d027f495d70755ab918e2d0bc0000000000000000000000003ab33f93ef2f8037740aad4e58fd32f21e060fbf00000000000000000000000037e8fed0ab73fbe9b2d023a0e45f4234119965bd0000000000000000000000009fcb78406c6132dfc230d47846094de7d9a6d555000000000000000000000000fd0e9b40871bdf61af40ccb3e6a8643374c1023a00000000000000000000000007a5ab61f1922a267d572e7f101f254a9a24d4840000000000000000000000008ead4924383e3d45ff9055cb2d0c6578b605731d000000000000000000000000f63a271f0e2e6a904f6245a2827e507786c29397000000000000000000000000a141a14d546c16467b721372d59f683ddc3450230000000000000000000000000ac1b3d8f6283c1bfea145639bd40f8e0b788c8e000000000000000000000000000491fb71126921aa041c846fd78df38d50f7b200000000000000000000000082025d6fec384394b19f792c773a569c64d072bd0000000000000000000000000ba2de8126cdca92057ac3d8f1705ba4856374aa000000000000000000000000dad83629c6799dc39afcc856bab33cb3482897ff000000000000000000000000694b31a5c8665a977a7213491705c434fd33871100000000000000000000000065a52968beda055905a086b1ad8ac071b196e6b00000000000000000000000004c03c91327278cca66b49442af782ed69fafb81b000000000000000000000000e0ff7a5fac6820552d7d2d8743c33013bddfb65200000000000000000000000042f238f99da6901374d237a8b1ada1b166ebcffd00000000000000000000000046731b263b896a7feb691740cb1b6f5f2a91eabd000000000000000000000000041478c388b9d2e1e89dffc1bc46d7b7cd4c978b00000000000000000000000000067602af865973ace9f5e18a3611d604d9c58b000000000000000000000000c0578ce8447790d53a206e40372531655ff8c8960000000000000000000000002af143ebf594e932c124cd6082894ecb6972aac5000000000000000000000000b91b32c711c172588b0e42f44933ec5a271c200400000000000000000000000091df65204a37c3d35fe015b306a8db4bef4278b00000000000000000000000009a50b91391a912ea9ca6b6e310de2825af2e7a48000000000000000000000000e1349b5a1a3cd402dfcaf170413402eb125bd6d7000000000000000000000000f370fe47a2ffa00a54a70162189af522ebaa7c27000000000000000000000000ab6d4875bf4d84ae69d61e8cb8c01d6ba8b7bda10000000000000000000000009d15517360639eba0a5676088e6074a8bce980200000000000000000000000009ceeb0a07cb53a9e2eb5bf73975f10fe55f48d46000000000000000000000000a698e43f20e6e7636ca88c91977fb18a5b15343e0000000000000000000000005917880bc9bede2b8e1bae9a9ccc14d3c6caf382000000000000000000000000f03d8ca0c8ec6c25111330a0f07cf12936d099650000000000000000000000001001c995e39e66908f284c7e7ec45ed3ed863afc0000000000000000000000001f4d99e770906f2d807257bbf59e73401b44d715000000000000000000000000e6c48d3f3ba1e7a7e647866ad5b52b55ddd215fe000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000cc00000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000d800000000000000000000000000000000000000000000000000000000000000dc00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e400000000000000000000000000000000000000000000000000000000000000e800000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f400000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000fc000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000000000000000000108000000000000000000000000000000000000000000000000000000000000010c000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001140000000000000000000000000000000000000000000000000000000000000118000000000000000000000000000000000000000000000000000000000000011c000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001240000000000000000000000000000000000000000000000000000000000000128000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000013000000000000000000000000000000000000000000000000000000000000001340000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000013c000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001440000000000000000000000000000000000000000000000000000000000000148000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000001540000000000000000000000000000000000000000000000000000000000000158000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001640000000000000000000000000000000000000000000000000000000000000168000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000017000000000000000000000000000000000000000000000000000000000000001740000000000000000000000000000000000000000000000000000000000000178000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001840000000000000000000000000000000000000000000000000000000000000188000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000000000000000000000000000000000198000000000000000000000000000000000000000000000000000000000000019c00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001fc000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002040000000000000000000000000000000000000000000000000000000000000208000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000002140000000000000000000000000000000000000000000000000000000000000218000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002240000000000000000000000000000000000000000000000000000000000000228000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000023000000000000000000000000000000000000000000000000000000000000002340000000000000000000000000000000000000000000000000000000000000238000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002440000000000000000000000000000000000000000000000000000000000000248000000000000000000000000000000000000000000000000000000000000024c00000000000000000000000000000000000000000000000000000000000002500000000000000000000000000000000000000000000000000000000000000254000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000000000175365637265746c7920736865206c6f766573207468656d00000000000000000000000000000000000000000000000000000000000000000000000000',
31
+ logs: [
32
+ {
33
+ topics: [
34
+ '0xc0a62328f6bf5e3172bb1fcb2019f54b2c523b6a48e3513a2298fbf0150b781e',
35
+ '0x000000000000000000000000a5467dfe7019bf2c7c5f7a707711b9d4cad118c8',
36
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
37
+ '0x9790242100000000000000000000000000000000000000000000000000000000',
38
+ ],
39
+ data: '0x',
40
+ address: '0x497fdac9e42193f6f79651d2d1caf6ba5789e055',
41
+ },
42
+ ],
43
+ }
44
+
45
+ const allPlugins = await pluginRegistry.getAll()
46
+ const wrappers: DecoderResult[] = []
47
+ const result = await decodeTransactionCore(
48
+ transaction as unknown as DecoderResult,
49
+ {
50
+ async: true,
51
+ preferError: false,
52
+ chain: lukso,
53
+ plugins: allPlugins,
54
+ schemaPlugins: defaultSchemaPlugins,
55
+ wrappers,
56
+ }
57
+ )
58
+
59
+ // Log the result to understand what we're getting
60
+ console.log(
61
+ '\nDecoding result:',
62
+ JSONbigString.stringify(
63
+ {
64
+ standard: result?.standard,
65
+ resultType: result?.resultType,
66
+ sig: result?.sig,
67
+ functionName: result?.functionName,
68
+ to: result?.to,
69
+ from: result?.from,
70
+ wrappers,
71
+ },
72
+ null,
73
+ 2
74
+ )
75
+ )
76
+
77
+ // Log wrappers if they exist
78
+ if ((result as any)?.wrappers?.length > 0) {
79
+ console.log(
80
+ '\nWrappers:',
81
+ JSONbigString.stringify((result as any).wrappers, null, 2)
82
+ )
83
+ }
84
+
85
+ // Log children if they exist
86
+ if ((result as any)?.children?.length > 0) {
87
+ console.log(
88
+ '\nChildren:',
89
+ JSONbigString.stringify((result as any).children, null, 2)
90
+ )
91
+ }
92
+
93
+ // Should decode as transferBatch, not raw
94
+ expect(result).toBeDefined()
95
+ expect(result?.standard).not.toBe('unknown')
96
+ expect(result?.resultType).not.toBe('raw')
97
+
98
+ // Signature 0x2d7667c9 is transferBatch
99
+ expect(result?.sig).toBe('0x2d7667c9')
100
+
101
+ // Should be properly identified as LSP7
102
+ // expect(result.standard).toBe('LSP7')
103
+ // expect(result.resultType).toBe('transferBatch')
104
+ })
105
+ })