@hashgraphonline/standards-sdk 0.0.182 → 0.0.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/hcs-12/assembly/assembly-engine.d.ts +2 -2
- package/dist/cjs/hcs-12/assembly/assembly-engine.d.ts.map +1 -1
- package/dist/cjs/hcs-12/base-client.d.ts +3 -3
- package/dist/cjs/hcs-12/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-12/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-12/builders/action-builder.d.ts +5 -0
- package/dist/cjs/hcs-12/builders/action-builder.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/action-registry.d.ts +7 -2
- package/dist/cjs/hcs-12/registries/action-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/assembly-registry.d.ts +2 -2
- package/dist/cjs/hcs-12/registries/assembly-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/base-registry.d.ts +3 -3
- package/dist/cjs/hcs-12/registries/base-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/block-loader.d.ts +2 -2
- package/dist/cjs/hcs-12/registries/block-loader.d.ts.map +1 -1
- package/dist/cjs/hcs-12/registries/hashlinks-registry.d.ts +2 -2
- package/dist/cjs/hcs-12/registries/hashlinks-registry.d.ts.map +1 -1
- package/dist/cjs/hcs-12/rendering/resource-manager.d.ts.map +1 -1
- package/dist/cjs/hcs-12/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-12/security/hash-verifier.d.ts +13 -0
- package/dist/cjs/hcs-12/security/hash-verifier.d.ts.map +1 -1
- package/dist/cjs/hcs-12/security/permission-system.d.ts +5 -5
- package/dist/cjs/hcs-12/security/permission-system.d.ts.map +1 -1
- package/dist/cjs/hcs-12/security/signature-verifier.d.ts +5 -0
- package/dist/cjs/hcs-12/security/signature-verifier.d.ts.map +1 -1
- package/dist/cjs/hcs-12/validation/wasm-validator.d.ts +9 -4
- package/dist/cjs/hcs-12/validation/wasm-validator.d.ts.map +1 -1
- package/dist/cjs/{index-5G8lx2OC.cjs → index-DH8JqKpL.cjs} +21 -21
- package/dist/cjs/{index-5G8lx2OC.cjs.map → index-DH8JqKpL.cjs.map} +1 -1
- package/dist/cjs/{index-DNOBUKZd-ByWVn3_3.cjs → index-DNOBUKZd-DP8GdiGA.cjs} +2 -2
- package/dist/cjs/{index-DNOBUKZd-ByWVn3_3.cjs.map → index-DNOBUKZd-DP8GdiGA.cjs.map} +1 -1
- package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +1 -1
- package/dist/cjs/{standards-sdk.es47-LpJXpYet-BcMEbzeg.cjs → standards-sdk.es47-LpJXpYet-BEh9hyjN.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es47-LpJXpYet-BcMEbzeg.cjs.map → standards-sdk.es47-LpJXpYet-BEh9hyjN.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es48-PT6ZHlCU-DeVBWhj9.cjs → standards-sdk.es48-PT6ZHlCU-AWU0EkFj.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es48-PT6ZHlCU-DeVBWhj9.cjs.map → standards-sdk.es48-PT6ZHlCU-AWU0EkFj.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es49-BoFc-ELK-C2EmnXa-.cjs → standards-sdk.es49-BoFc-ELK-Bz7Gd2qu.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es49-BoFc-ELK-C2EmnXa-.cjs.map → standards-sdk.es49-BoFc-ELK-Bz7Gd2qu.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es50-miBtNmtl-2L3nQXPh.cjs → standards-sdk.es50-miBtNmtl-DcjyhGyg.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es50-miBtNmtl-2L3nQXPh.cjs.map → standards-sdk.es50-miBtNmtl-DcjyhGyg.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es51-rS2UvvV5-D0SR8-Nc.cjs → standards-sdk.es51-rS2UvvV5-Bmyu85K4.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es51-rS2UvvV5-D0SR8-Nc.cjs.map → standards-sdk.es51-rS2UvvV5-Bmyu85K4.cjs.map} +1 -1
- package/dist/cjs/{standards-sdk.es52-D-lvSMBY-DgGZRneG.cjs → standards-sdk.es52-D-lvSMBY-t0dhVZEE.cjs} +2 -2
- package/dist/cjs/{standards-sdk.es52-D-lvSMBY-DgGZRneG.cjs.map → standards-sdk.es52-D-lvSMBY-t0dhVZEE.cjs.map} +1 -1
- package/dist/cjs/utils/crypto-abstraction.d.ts +89 -0
- package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -0
- package/dist/cjs/utils/crypto-env.d.ts +25 -0
- package/dist/cjs/utils/crypto-env.d.ts.map +1 -0
- package/dist/cjs/utils/hash-adapter.d.ts +46 -0
- package/dist/cjs/utils/hash-adapter.d.ts.map +1 -0
- package/dist/es/hcs-12/assembly/assembly-engine.d.ts +2 -2
- package/dist/es/hcs-12/assembly/assembly-engine.d.ts.map +1 -1
- package/dist/es/hcs-12/base-client.d.ts +3 -3
- package/dist/es/hcs-12/base-client.d.ts.map +1 -1
- package/dist/es/hcs-12/browser.d.ts.map +1 -1
- package/dist/es/hcs-12/builders/action-builder.d.ts +5 -0
- package/dist/es/hcs-12/builders/action-builder.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/action-registry.d.ts +7 -2
- package/dist/es/hcs-12/registries/action-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/assembly-registry.d.ts +2 -2
- package/dist/es/hcs-12/registries/assembly-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/base-registry.d.ts +3 -3
- package/dist/es/hcs-12/registries/base-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/block-loader.d.ts +2 -2
- package/dist/es/hcs-12/registries/block-loader.d.ts.map +1 -1
- package/dist/es/hcs-12/registries/hashlinks-registry.d.ts +2 -2
- package/dist/es/hcs-12/registries/hashlinks-registry.d.ts.map +1 -1
- package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
- package/dist/es/hcs-12/sdk.d.ts.map +1 -1
- package/dist/es/hcs-12/security/hash-verifier.d.ts +13 -0
- package/dist/es/hcs-12/security/hash-verifier.d.ts.map +1 -1
- package/dist/es/hcs-12/security/permission-system.d.ts +5 -5
- package/dist/es/hcs-12/security/permission-system.d.ts.map +1 -1
- package/dist/es/hcs-12/security/signature-verifier.d.ts +5 -0
- package/dist/es/hcs-12/security/signature-verifier.d.ts.map +1 -1
- package/dist/es/hcs-12/validation/wasm-validator.d.ts +9 -4
- package/dist/es/hcs-12/validation/wasm-validator.d.ts.map +1 -1
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es18.js +1 -1
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +49 -6
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +0 -1
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +1 -4
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +1 -1
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +1 -3
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +36 -10
- package/dist/es/standards-sdk.es29.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +20 -4
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +9 -0
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es52.js +1 -1
- package/dist/es/standards-sdk.es59.js +7 -7
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +35 -7
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +2 -410
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +409 -203
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +2 -172
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +181 -299
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +120 -294
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +191 -322
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +294 -279
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +450 -303
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +319 -64
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +306 -2
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +76 -2
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +202 -0
- package/dist/es/standards-sdk.es91.js.map +1 -0
- package/dist/es/standards-sdk.es92.js +37 -0
- package/dist/es/standards-sdk.es92.js.map +1 -0
- package/dist/es/standards-sdk.es93.js +81 -0
- package/dist/es/standards-sdk.es93.js.map +1 -0
- package/dist/es/utils/crypto-abstraction.d.ts +89 -0
- package/dist/es/utils/crypto-abstraction.d.ts.map +1 -0
- package/dist/es/utils/crypto-env.d.ts +25 -0
- package/dist/es/utils/crypto-env.d.ts.map +1 -0
- package/dist/es/utils/hash-adapter.d.ts +46 -0
- package/dist/es/utils/hash-adapter.d.ts.map +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es74.js","sources":["../../src/inscribe/quote-cache.ts"],"sourcesContent":["/**\n * Performance optimization utilities for quote generation\n */\n\nimport { InscriptionSDK } from '@kiloscribe/inscription-sdk';\nimport { HederaClientConfig, InscriptionOptions, QuoteResult } from './types';\n\ninterface CacheKey {\n inputHash: string;\n clientConfigHash: string;\n optionsHash: string;\n}\n\ninterface CacheEntry {\n quote: QuoteResult;\n timestamp: number;\n ttlMs: number;\n}\n\ninterface SDKCacheEntry {\n sdk: InscriptionSDK;\n timestamp: number;\n config: string;\n}\n\n/**\n * LRU Cache for quote results to improve performance\n */\nclass QuoteCache {\n private cache = new Map<string, CacheEntry>();\n private maxSize = 100;\n private defaultTtlMs = 5 * 60 * 1000; // 5 minutes\n\n /**\n * Generate cache key from input parameters\n */\n private generateKey(key: CacheKey): string {\n return `${key.inputHash}-${key.clientConfigHash}-${key.optionsHash}`;\n }\n\n /**\n * Hash object to string for cache key\n */\n private hashObject(obj: unknown): string {\n return Buffer.from(JSON.stringify(obj)).toString('base64').slice(0, 16);\n }\n\n /**\n * Create cache key from parameters\n */\n createCacheKey(\n input: unknown,\n clientConfig: HederaClientConfig,\n options: InscriptionOptions,\n ): CacheKey {\n return {\n inputHash: this.hashObject(input),\n clientConfigHash: this.hashObject({\n accountId: clientConfig.accountId,\n network: clientConfig.network,\n }),\n optionsHash: this.hashObject({\n mode: options.mode,\n apiKey: options.apiKey ? 'present' : 'absent',\n network: options.network,\n metadata: options.metadata,\n }),\n };\n }\n\n /**\n * Get cached quote if available and not expired\n */\n get(key: CacheKey): QuoteResult | null {\n const cacheKey = this.generateKey(key);\n const entry = this.cache.get(cacheKey);\n\n if (!entry) {\n return null;\n }\n\n const now = Date.now();\n if (now - entry.timestamp > entry.ttlMs) {\n this.cache.delete(cacheKey);\n return null;\n }\n\n this.cache.delete(cacheKey);\n this.cache.set(cacheKey, entry);\n\n return entry.quote;\n }\n\n /**\n * Store quote in cache\n */\n set(\n key: CacheKey,\n quote: QuoteResult,\n ttlMs: number = this.defaultTtlMs,\n ): void {\n const cacheKey = this.generateKey(key);\n\n // Evict oldest entries if cache is full\n if (this.cache.size >= this.maxSize) {\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n\n this.cache.set(cacheKey, {\n quote,\n timestamp: Date.now(),\n ttlMs,\n });\n }\n\n /**\n * Clear all cached entries\n */\n clear(): void {\n this.cache.clear();\n }\n}\n\n/**\n * SDK instance cache for reuse\n */\nclass SDKCache {\n private cache = new Map<string, SDKCacheEntry>();\n private maxSize = 10;\n private defaultTtlMs = 30 * 60 * 1000; // 30 minutes\n\n /**\n * Generate config key for SDK instance\n */\n private generateConfigKey(config: unknown): string {\n return Buffer.from(JSON.stringify(config)).toString('base64');\n }\n\n /**\n * Get cached SDK instance\n */\n get(config: Record<string, unknown>): InscriptionSDK | null {\n const configKey = this.generateConfigKey(config);\n const entry = this.cache.get(configKey);\n\n if (!entry) {\n return null;\n }\n\n const now = Date.now();\n if (now - entry.timestamp > this.defaultTtlMs) {\n this.cache.delete(configKey);\n return null;\n }\n\n return entry.sdk;\n }\n\n /**\n * Store SDK instance in cache\n */\n set(config: Record<string, unknown>, sdk: InscriptionSDK): void {\n const configKey = this.generateConfigKey(config);\n\n // Evict oldest entries if cache is full\n if (this.cache.size >= this.maxSize) {\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n\n this.cache.set(configKey, {\n sdk,\n timestamp: Date.now(),\n config: configKey,\n });\n }\n\n /**\n * Clear all cached SDK instances\n */\n clear(): void {\n this.cache.clear();\n }\n}\n\n// Global cache instances\nconst quoteCache = new QuoteCache();\nconst sdkCache = new SDKCache();\n\n/**\n * Get or create SDK instance with caching\n */\nexport async function getOrCreateSDK(\n clientConfig: HederaClientConfig,\n options: InscriptionOptions,\n existingSDK?: InscriptionSDK,\n): Promise<InscriptionSDK> {\n if (existingSDK) {\n return existingSDK;\n }\n\n const cacheConfig = {\n apiKey: options.apiKey,\n accountId: clientConfig.accountId,\n network: clientConfig.network || 'mainnet',\n authType: options.apiKey ? 'api' : 'server',\n };\n\n const cachedSDK = sdkCache.get(cacheConfig);\n if (cachedSDK) {\n return cachedSDK;\n }\n\n let sdk: InscriptionSDK;\n\n if (options.apiKey) {\n sdk = new InscriptionSDK({\n apiKey: options.apiKey,\n network: clientConfig.network || 'mainnet',\n });\n } else {\n sdk = await InscriptionSDK.createWithAuth({\n type: 'server',\n accountId: clientConfig.accountId,\n privateKey: clientConfig.privateKey,\n network: clientConfig.network || 'mainnet',\n });\n }\n\n sdkCache.set(cacheConfig, sdk);\n return sdk;\n}\n\n/**\n * Check if quote is cached and return it if valid\n */\nexport function getCachedQuote(\n input: unknown,\n clientConfig: HederaClientConfig,\n options: InscriptionOptions,\n): QuoteResult | null {\n const cacheKey = quoteCache.createCacheKey(input, clientConfig, options);\n return quoteCache.get(cacheKey);\n}\n\n/**\n * Cache a generated quote\n */\nexport function cacheQuote(\n input: unknown,\n clientConfig: HederaClientConfig,\n options: InscriptionOptions,\n quote: QuoteResult,\n): void {\n const cacheKey = quoteCache.createCacheKey(input, clientConfig, options);\n const quoteTtlMs = 10 * 60 * 1000;\n quoteCache.set(cacheKey, quote, quoteTtlMs);\n}\n\n/**\n * Pre-validate parameters for early error detection\n */\nexport function validateQuoteParameters(\n input: unknown,\n clientConfig: HederaClientConfig,\n options: InscriptionOptions,\n): void {\n if (!input || typeof input !== 'object' || !('type' in input)) {\n throw new Error('Invalid inscription input: type is required');\n }\n\n if (!clientConfig || !clientConfig.accountId) {\n throw new Error('Invalid client config: accountId is required');\n }\n\n if (!options) {\n throw new Error('Options are required');\n }\n\n if (options.mode === 'hashinal') {\n if (!options.metadata) {\n throw new Error('Hashinal mode requires metadata');\n }\n\n const requiredFields = ['name', 'creator', 'description', 'type'];\n const missingFields = requiredFields.filter(\n field => !options.metadata || !options.metadata[field],\n );\n\n if (missingFields.length > 0) {\n throw new Error(\n `Missing required Hashinal metadata fields: ${missingFields.join(', ')}`,\n );\n }\n }\n}\n\n/**\n * Clear all caches (useful for testing or memory management)\n */\nexport function clearAllCaches(): void {\n quoteCache.clear();\n sdkCache.clear();\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es74.js","sources":["../../src/utils/transaction-parser-registry.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { HTSParser } from './parsers/hts-parser';\nimport { HCSParser } from './parsers/hcs-parser';\nimport { CryptoParser } from './parsers/crypto-parser';\nimport { FileParser } from './parsers/file-parser';\nimport { SCSParser } from './parsers/scs-parser';\nimport { ScheduleParser } from './parsers/schedule-parser';\nimport { UtilParser } from './parsers/util-parser';\nimport type { ParsedTransaction } from './transaction-parser-types';\n\n/**\n * Registry mapping transaction types to their parser functions\n * This scalable approach allows easy addition of new transaction types\n * without modifying the core parsing logic\n */\nexport const transactionParserRegistry: Record<\n string,\n {\n bodyField: keyof proto.TransactionBody;\n parser: (data: any) => any;\n resultField: keyof Partial<ParsedTransaction>;\n spreadResult?: boolean;\n }\n> = {\n TOKENCREATE: {\n bodyField: 'tokenCreation',\n parser: HTSParser.parseTokenCreate,\n resultField: 'tokenCreation',\n },\n TOKENMINT: {\n bodyField: 'tokenMint',\n parser: HTSParser.parseTokenMint,\n resultField: 'tokenMint',\n },\n TOKENBURN: {\n bodyField: 'tokenBurn',\n parser: HTSParser.parseTokenBurn,\n resultField: 'tokenBurn',\n },\n TOKENUPDATE: {\n bodyField: 'tokenUpdate',\n parser: HTSParser.parseTokenUpdate,\n resultField: 'tokenUpdate',\n },\n TOKENDELETE: {\n bodyField: 'tokenDeletion',\n parser: HTSParser.parseTokenDelete,\n resultField: 'tokenDelete',\n },\n TOKENASSOCIATE: {\n bodyField: 'tokenAssociate',\n parser: HTSParser.parseTokenAssociate,\n resultField: 'tokenAssociate',\n },\n TOKENDISSOCIATE: {\n bodyField: 'tokenDissociate',\n parser: HTSParser.parseTokenDissociate,\n resultField: 'tokenDissociate',\n },\n TOKENFREEZE: {\n bodyField: 'tokenFreeze',\n parser: HTSParser.parseTokenFreeze,\n resultField: 'tokenFreeze',\n },\n TOKENUNFREEZE: {\n bodyField: 'tokenUnfreeze',\n parser: HTSParser.parseTokenUnfreeze,\n resultField: 'tokenUnfreeze',\n },\n TOKENGRANTKYC: {\n bodyField: 'tokenGrantKyc',\n parser: HTSParser.parseTokenGrantKyc,\n resultField: 'tokenGrantKyc',\n },\n TOKENREVOKEKYC: {\n bodyField: 'tokenRevokeKyc',\n parser: HTSParser.parseTokenRevokeKyc,\n resultField: 'tokenRevokeKyc',\n },\n TOKENPAUSE: {\n bodyField: 'tokenPause',\n parser: HTSParser.parseTokenPause,\n resultField: 'tokenPause',\n },\n TOKENUNPAUSE: {\n bodyField: 'tokenUnpause',\n parser: HTSParser.parseTokenUnpause,\n resultField: 'tokenUnpause',\n },\n TOKENWIPEACCOUNT: {\n bodyField: 'tokenWipe',\n parser: HTSParser.parseTokenWipeAccount,\n resultField: 'tokenWipeAccount',\n },\n TOKENFEESCHEDULEUPDATE: {\n bodyField: 'tokenFeeScheduleUpdate',\n parser: HTSParser.parseTokenFeeScheduleUpdate,\n resultField: 'tokenFeeScheduleUpdate',\n },\n TOKENAIRDROP: {\n bodyField: 'tokenAirdrop',\n parser: HTSParser.parseTokenAirdropFromProto,\n resultField: 'tokenAirdrop',\n },\n\n TOPICCREATE: {\n bodyField: 'consensusCreateTopic',\n parser: HCSParser.parseConsensusCreateTopic,\n resultField: 'consensusCreateTopic',\n },\n CONSENSUSSUBMITMESSAGE: {\n bodyField: 'consensusSubmitMessage',\n parser: HCSParser.parseConsensusSubmitMessage,\n resultField: 'consensusSubmitMessage',\n },\n TOPICUPDATE: {\n bodyField: 'consensusUpdateTopic',\n parser: HCSParser.parseConsensusUpdateTopic,\n resultField: 'consensusUpdateTopic',\n },\n TOPICDELETE: {\n bodyField: 'consensusDeleteTopic',\n parser: HCSParser.parseConsensusDeleteTopic,\n resultField: 'consensusDeleteTopic',\n },\n\n ACCOUNTCREATE: {\n bodyField: 'cryptoCreateAccount',\n parser: CryptoParser.parseCryptoCreateAccount,\n resultField: 'cryptoCreateAccount',\n },\n ACCOUNTUPDATE: {\n bodyField: 'cryptoUpdateAccount',\n parser: CryptoParser.parseCryptoUpdateAccount,\n resultField: 'cryptoUpdateAccount',\n },\n ACCOUNTDELETE: {\n bodyField: 'cryptoDelete',\n parser: CryptoParser.parseCryptoDelete,\n resultField: 'cryptoDelete',\n },\n CRYPTOTRANSFER: {\n bodyField: 'cryptoTransfer',\n parser: (body: proto.ICryptoTransferTransactionBody) => {\n const result: Partial<ParsedTransaction> = {\n transfers: [],\n tokenTransfers: [],\n };\n CryptoParser.parseCryptoTransfers(body, result as ParsedTransaction);\n return result;\n },\n resultField: 'transfers' as keyof Partial<ParsedTransaction>,\n spreadResult: true,\n },\n APPROVEALLOWANCE: {\n bodyField: 'cryptoApproveAllowance',\n parser: CryptoParser.parseCryptoApproveAllowance,\n resultField: 'cryptoApproveAllowance',\n },\n DELETEALLOWANCE: {\n bodyField: 'cryptoDeleteAllowance',\n parser: CryptoParser.parseCryptoDeleteAllowance,\n resultField: 'cryptoDeleteAllowance',\n },\n\n FILECREATE: {\n bodyField: 'fileCreate',\n parser: FileParser.parseFileCreate,\n resultField: 'fileCreate',\n },\n FILEUPDATE: {\n bodyField: 'fileUpdate',\n parser: FileParser.parseFileUpdate,\n resultField: 'fileUpdate',\n },\n FILEDELETE: {\n bodyField: 'fileDelete',\n parser: FileParser.parseFileDelete,\n resultField: 'fileDelete',\n },\n FILEAPPEND: {\n bodyField: 'fileAppend',\n parser: FileParser.parseFileAppend,\n resultField: 'fileAppend',\n },\n\n CONTRACTCREATE: {\n bodyField: 'contractCreateInstance',\n parser: SCSParser.parseContractCreate,\n resultField: 'contractCreate',\n },\n CONTRACTUPDATE: {\n bodyField: 'contractUpdateInstance',\n parser: SCSParser.parseContractUpdate,\n resultField: 'contractUpdate',\n },\n CONTRACTDELETE: {\n bodyField: 'contractDeleteInstance',\n parser: SCSParser.parseContractDelete,\n resultField: 'contractDelete',\n },\n CONTRACTCALL: {\n bodyField: 'contractCall',\n parser: SCSParser.parseContractCall,\n resultField: 'contractCall',\n },\n ETHEREUMTRANSACTION: {\n bodyField: 'ethereumTransaction',\n parser: SCSParser.parseEthereumTransaction,\n resultField: 'ethereumTransaction',\n },\n\n SCHEDULECREATE: {\n bodyField: 'scheduleCreate',\n parser: ScheduleParser.parseScheduleCreateFromProto,\n resultField: 'scheduleCreate',\n },\n SCHEDULESIGN: {\n bodyField: 'scheduleSign',\n parser: ScheduleParser.parseScheduleSignFromProto,\n resultField: 'scheduleSign',\n },\n SCHEDULEDELETE: {\n bodyField: 'scheduleDelete',\n parser: ScheduleParser.parseScheduleDeleteFromProto,\n resultField: 'scheduleDelete',\n },\n\n PRNG: {\n bodyField: 'utilPrng',\n parser: UtilParser.parseUtilPrng,\n resultField: 'utilPrng',\n },\n FREEZE: {\n bodyField: 'freeze',\n parser: UtilParser.parseFreeze,\n resultField: 'freeze',\n },\n\n SYSTEMDELETE: {\n bodyField: 'systemDelete',\n parser: (body: proto.ISystemDeleteTransactionBody) => ({\n fileId: body.fileID\n ? `${body.fileID.shardNum}.${body.fileID.realmNum}.${body.fileID.fileNum}`\n : undefined,\n contractId: body.contractID\n ? `${body.contractID.shardNum}.${body.contractID.realmNum}.${body.contractID.contractNum}`\n : undefined,\n expirationTime: body.expirationTime?.seconds\n ? body.expirationTime.seconds.toString()\n : undefined,\n }),\n resultField: 'systemDelete',\n },\n SYSTEMUNDELETE: {\n bodyField: 'systemUndelete',\n parser: (body: proto.ISystemUndeleteTransactionBody) => ({\n fileId: body.fileID\n ? `${body.fileID.shardNum}.${body.fileID.realmNum}.${body.fileID.fileNum}`\n : undefined,\n contractId: body.contractID\n ? `${body.contractID.shardNum}.${body.contractID.realmNum}.${body.contractID.contractNum}`\n : undefined,\n }),\n resultField: 'systemUndelete',\n },\n\n TOKENCANCELAIRDROP: {\n bodyField: 'tokenCancelAirdrop',\n parser: (body: any) => ({\n pendingAirdrops: body.pendingAirdrops || [],\n }),\n resultField: 'tokenCancelAirdrop',\n },\n TOKENCLAIMAIRDROP: {\n bodyField: 'tokenClaimAirdrop',\n parser: (body: any) => ({\n pendingAirdrops: body.pendingAirdrops || [],\n }),\n resultField: 'tokenClaimAirdrop',\n },\n TOKENREJECT: {\n bodyField: 'tokenReject',\n parser: (body: any) => ({\n owner: body.owner\n ? `${body.owner.shardNum}.${body.owner.realmNum}.${body.owner.accountNum}`\n : undefined,\n rejections: body.rejections || [],\n }),\n resultField: 'tokenReject',\n },\n TOKENUPDATENFTS: {\n bodyField: 'tokenUpdateNfts',\n parser: (body: any) => ({\n tokenId: body.token\n ? `${body.token.shardNum}.${body.token.realmNum}.${body.token.tokenNum}`\n : undefined,\n serialNumbers: body.serialNumbers || [],\n metadata: body.metadata,\n }),\n resultField: 'tokenUpdateNfts',\n },\n TOKENWIPE: {\n bodyField: 'tokenWipe',\n parser: HTSParser.parseTokenWipeAccount,\n resultField: 'tokenWipeAccount',\n },\n\n CRYPTOADDLIVEHASH: {\n bodyField: 'cryptoAddLiveHash',\n parser: (body: any) => ({\n accountId: body.accountID\n ? `${body.accountID.shardNum}.${body.accountID.realmNum}.${body.accountID.accountNum}`\n : undefined,\n liveHash: body.liveHash,\n }),\n resultField: 'cryptoAddLiveHash',\n },\n CRYPTODELETELIVEHASH: {\n bodyField: 'cryptoDeleteLiveHash',\n parser: (body: any) => ({\n accountId: body.accountOfLiveHash\n ? `${body.accountOfLiveHash.shardNum}.${body.accountOfLiveHash.realmNum}.${body.accountOfLiveHash.accountNum}`\n : undefined,\n liveHashToDelete: body.liveHashToDelete,\n }),\n resultField: 'cryptoDeleteLiveHash',\n },\n\n UNCHECKEDSUBMIT: {\n bodyField: 'uncheckedSubmit',\n parser: (body: any) => ({\n topicId: body.topicID\n ? `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`\n : undefined,\n message: body.message,\n }),\n resultField: 'uncheckedSubmit',\n },\n\n NODECREATE: {\n bodyField: 'nodeCreate',\n parser: (body: any) => ({\n accountId: body.accountId\n ? `${body.accountId.shardNum}.${body.accountId.realmNum}.${body.accountId.accountNum}`\n : undefined,\n description: body.description,\n gossipEndpoint: body.gossipEndpoint,\n serviceEndpoint: body.serviceEndpoint,\n gossipCaCertificate: body.gossipCaCertificate,\n grpcCertificateHash: body.grpcCertificateHash,\n adminKey: body.adminKey,\n }),\n resultField: 'nodeCreate',\n },\n NODEUPDATE: {\n bodyField: 'nodeUpdate',\n parser: (body: any) => ({\n nodeId: body.nodeId?.toString(),\n accountId: body.accountId\n ? `${body.accountId.shardNum}.${body.accountId.realmNum}.${body.accountId.accountNum}`\n : undefined,\n description: body.description,\n gossipEndpoint: body.gossipEndpoint,\n serviceEndpoint: body.serviceEndpoint,\n gossipCaCertificate: body.gossipCaCertificate,\n grpcCertificateHash: body.grpcCertificateHash,\n adminKey: body.adminKey,\n }),\n resultField: 'nodeUpdate',\n },\n NODEDELETE: {\n bodyField: 'nodeDelete',\n parser: (body: any) => ({\n nodeId: body.nodeId?.toString(),\n }),\n resultField: 'nodeDelete',\n },\n NODESTAKEUPDATE: {\n bodyField: 'nodeStakeUpdate',\n parser: (body: any) => ({\n nodeId: body.nodeId?.toString(),\n maxStake: body.maxStake?.toString(),\n minStake: body.minStake?.toString(),\n rewardRate: body.rewardRate?.toString(),\n }),\n resultField: 'nodeStakeUpdate',\n },\n\n ATOMICBATCH: {\n bodyField: 'atomicBatch',\n parser: (body: any) => ({\n transactions: body.transactions || [],\n }),\n resultField: 'atomicBatch',\n },\n\n STATESIGNATURETRANSACTION: {\n bodyField: 'stateSignatureTransaction',\n parser: (body: any) => ({\n signature: body.signature,\n round: body.round?.toString(),\n }),\n resultField: 'stateSignatureTransaction',\n },\n\n HISTORYPROOFSIGNATURE: {\n bodyField: 'historyProofSignature',\n parser: (body: any) => ({\n signature: body.signature,\n round: body.round?.toString(),\n }),\n resultField: 'historyProofSignature',\n },\n HISTORYPROOFKEYPUBLICATION: {\n bodyField: 'historyProofKeyPublication',\n parser: (body: any) => ({\n publicKey: body.publicKey,\n round: body.round?.toString(),\n }),\n resultField: 'historyProofKeyPublication',\n },\n HISTORYPROOFVOTE: {\n bodyField: 'historyProofVote',\n parser: (body: any) => ({\n vote: body.vote,\n round: body.round?.toString(),\n }),\n resultField: 'historyProofVote',\n },\n\n HINTSPREPROCESSINGVOTE: {\n bodyField: 'hintsPreprocessingVote',\n parser: (body: any) => ({\n vote: body.vote,\n round: body.round?.toString(),\n }),\n resultField: 'hintsPreprocessingVote',\n },\n HINTSKEYPUBLICATION: {\n bodyField: 'hintsKeyPublication',\n parser: (body: any) => ({\n publicKey: body.publicKey,\n round: body.round?.toString(),\n }),\n resultField: 'hintsKeyPublication',\n },\n HINTSPARTIALSIGNATURE: {\n bodyField: 'hintsPartialSignature',\n parser: (body: any) => ({\n signature: body.signature,\n round: body.round?.toString(),\n }),\n resultField: 'hintsPartialSignature',\n },\n\n CRSPUBLICATION: {\n bodyField: 'crsPublication',\n parser: (body: any) => ({\n crs: body.crs,\n round: body.round?.toString(),\n }),\n resultField: 'crsPublication',\n },\n};\n\n/**\n * Get parser configuration for a transaction type\n */\nexport function getParserConfig(transactionType: string) {\n return transactionParserRegistry[transactionType];\n}\n\n/**\n * Check if a transaction type is supported\n */\nexport function isTransactionTypeSupported(transactionType: string): boolean {\n return transactionType in transactionParserRegistry;\n}\n\n/**\n * Get all supported transaction types\n */\nexport function getSupportedTransactionTypes(): string[] {\n return Object.keys(transactionParserRegistry);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,175 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import { parseKey } from "./standards-sdk.es81.js";
|
|
3
|
-
import { Buffer } from "buffer";
|
|
4
|
-
class HCSParser {
|
|
5
|
-
static parseConsensusCreateTopic(body) {
|
|
6
|
-
if (!body) return void 0;
|
|
7
|
-
const data = {};
|
|
8
|
-
if (body.memo) {
|
|
9
|
-
data.memo = body.memo;
|
|
10
|
-
}
|
|
11
|
-
data.adminKey = parseKey(body.adminKey);
|
|
12
|
-
data.submitKey = parseKey(body.submitKey);
|
|
13
|
-
if (body.autoRenewPeriod?.seconds) {
|
|
14
|
-
data.autoRenewPeriod = Long.fromValue(
|
|
15
|
-
body.autoRenewPeriod.seconds
|
|
16
|
-
).toString();
|
|
17
|
-
}
|
|
18
|
-
if (body.autoRenewAccount) {
|
|
19
|
-
data.autoRenewAccountId = new AccountId(
|
|
20
|
-
body.autoRenewAccount.shardNum ?? 0,
|
|
21
|
-
body.autoRenewAccount.realmNum ?? 0,
|
|
22
|
-
body.autoRenewAccount.accountNum ?? 0
|
|
23
|
-
).toString();
|
|
24
|
-
}
|
|
25
|
-
return data;
|
|
26
|
-
}
|
|
27
|
-
static parseConsensusSubmitMessage(body) {
|
|
28
|
-
if (!body) return void 0;
|
|
29
|
-
const data = {};
|
|
30
|
-
if (body.topicID) {
|
|
31
|
-
data.topicId = `${body.topicID.shardNum ?? 0}.${body.topicID.realmNum ?? 0}.${body.topicID.topicNum ?? 0}`;
|
|
32
|
-
}
|
|
33
|
-
if (body.message?.length > 0) {
|
|
34
|
-
const messageBuffer = Buffer.from(body.message);
|
|
35
|
-
const utf8String = messageBuffer.toString("utf8");
|
|
36
|
-
if (/[\x00-\x08\x0B\x0E-\x1F\x7F]/.test(utf8String) || utf8String.includes("�")) {
|
|
37
|
-
data.message = messageBuffer.toString("base64");
|
|
38
|
-
data.messageEncoding = "base64";
|
|
39
|
-
} else {
|
|
40
|
-
data.message = utf8String;
|
|
41
|
-
data.messageEncoding = "utf8";
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (body.chunkInfo) {
|
|
45
|
-
if (body.chunkInfo.initialTransactionID) {
|
|
46
|
-
const txId = body.chunkInfo.initialTransactionID.accountID;
|
|
47
|
-
const taValidStart = body.chunkInfo.initialTransactionID.transactionValidStart;
|
|
48
|
-
if (txId && taValidStart) {
|
|
49
|
-
data.chunkInfoInitialTransactionID = `${txId.shardNum ?? 0}.${txId.realmNum ?? 0}.${txId.accountNum ?? 0}@${taValidStart.seconds ?? 0}.${taValidStart.nanos ?? 0}`;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (body.chunkInfo.number !== void 0 && body.chunkInfo.number !== null) {
|
|
53
|
-
data.chunkInfoNumber = body.chunkInfo.number;
|
|
54
|
-
}
|
|
55
|
-
if (body.chunkInfo.total !== void 0 && body.chunkInfo.total !== null) {
|
|
56
|
-
data.chunkInfoTotal = body.chunkInfo.total;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return data;
|
|
60
|
-
}
|
|
61
|
-
static parseConsensusUpdateTopic(body) {
|
|
62
|
-
if (!body) return void 0;
|
|
63
|
-
const data = {};
|
|
64
|
-
if (body.topicID) {
|
|
65
|
-
data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`;
|
|
66
|
-
}
|
|
67
|
-
if (body.memo?.value !== void 0) {
|
|
68
|
-
data.memo = body.memo.value;
|
|
69
|
-
}
|
|
70
|
-
if (body.adminKey === null) {
|
|
71
|
-
data.clearAdminKey = true;
|
|
72
|
-
data.adminKey = void 0;
|
|
73
|
-
} else if (body.adminKey) {
|
|
74
|
-
data.adminKey = parseKey(body.adminKey);
|
|
75
|
-
} else {
|
|
76
|
-
data.adminKey = void 0;
|
|
77
|
-
}
|
|
78
|
-
if (body.submitKey === null) {
|
|
79
|
-
data.clearSubmitKey = true;
|
|
80
|
-
data.submitKey = void 0;
|
|
81
|
-
} else if (body.submitKey) {
|
|
82
|
-
data.submitKey = parseKey(body.submitKey);
|
|
83
|
-
} else {
|
|
84
|
-
data.submitKey = void 0;
|
|
85
|
-
}
|
|
86
|
-
if (body.autoRenewPeriod?.seconds) {
|
|
87
|
-
data.autoRenewPeriod = Long.fromValue(
|
|
88
|
-
body.autoRenewPeriod.seconds
|
|
89
|
-
).toString();
|
|
90
|
-
}
|
|
91
|
-
if (body.autoRenewAccount) {
|
|
92
|
-
data.autoRenewAccountId = new AccountId(
|
|
93
|
-
body.autoRenewAccount.shardNum ?? 0,
|
|
94
|
-
body.autoRenewAccount.realmNum ?? 0,
|
|
95
|
-
body.autoRenewAccount.accountNum ?? 0
|
|
96
|
-
).toString();
|
|
97
|
-
}
|
|
98
|
-
return data;
|
|
99
|
-
}
|
|
100
|
-
static parseConsensusDeleteTopic(body) {
|
|
101
|
-
if (!body) return void 0;
|
|
102
|
-
const data = {};
|
|
103
|
-
if (body.topicID) {
|
|
104
|
-
data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum ?? 0}.${body.topicID.topicNum ?? 0}`;
|
|
105
|
-
}
|
|
106
|
-
return data;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Parse HCS transaction from Transaction object with comprehensive extraction
|
|
110
|
-
* This is the unified entry point that handles both protobuf and internal field extraction
|
|
111
|
-
*/
|
|
112
|
-
static parseFromTransactionObject(transaction) {
|
|
113
|
-
try {
|
|
114
|
-
const transactionBody = transaction._transactionBody;
|
|
115
|
-
if (!transactionBody) {
|
|
116
|
-
return {};
|
|
117
|
-
}
|
|
118
|
-
if (transactionBody.consensusCreateTopic) {
|
|
119
|
-
const consensusCreateTopic = this.parseConsensusCreateTopic(
|
|
120
|
-
transactionBody.consensusCreateTopic
|
|
121
|
-
);
|
|
122
|
-
if (consensusCreateTopic) {
|
|
123
|
-
return {
|
|
124
|
-
type: "TOPICCREATE",
|
|
125
|
-
humanReadableType: "Topic Create",
|
|
126
|
-
consensusCreateTopic
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
if (transactionBody.consensusSubmitMessage) {
|
|
131
|
-
const consensusSubmitMessage = this.parseConsensusSubmitMessage(
|
|
132
|
-
transactionBody.consensusSubmitMessage
|
|
133
|
-
);
|
|
134
|
-
if (consensusSubmitMessage) {
|
|
135
|
-
return {
|
|
136
|
-
type: "CONSENSUSSUBMITMESSAGE",
|
|
137
|
-
humanReadableType: "Submit Message",
|
|
138
|
-
consensusSubmitMessage
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
if (transactionBody.consensusUpdateTopic) {
|
|
143
|
-
const consensusUpdateTopic = this.parseConsensusUpdateTopic(
|
|
144
|
-
transactionBody.consensusUpdateTopic
|
|
145
|
-
);
|
|
146
|
-
if (consensusUpdateTopic) {
|
|
147
|
-
return {
|
|
148
|
-
type: "TOPICUPDATE",
|
|
149
|
-
humanReadableType: "Topic Update",
|
|
150
|
-
consensusUpdateTopic
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (transactionBody.consensusDeleteTopic) {
|
|
155
|
-
const consensusDeleteTopic = this.parseConsensusDeleteTopic(
|
|
156
|
-
transactionBody.consensusDeleteTopic
|
|
157
|
-
);
|
|
158
|
-
if (consensusDeleteTopic) {
|
|
159
|
-
return {
|
|
160
|
-
type: "TOPICDELETE",
|
|
161
|
-
humanReadableType: "Topic Delete",
|
|
162
|
-
consensusDeleteTopic
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return {};
|
|
167
|
-
} catch (error) {
|
|
168
|
-
return {};
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
1
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
172
2
|
export {
|
|
173
|
-
|
|
3
|
+
sleep
|
|
174
4
|
};
|
|
175
5
|
//# sourceMappingURL=standards-sdk.es75.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es75.js","sources":["../../src/utils/parsers/hcs-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { AccountId, Long, Transaction } from '@hashgraph/sdk';\nimport {\n ConsensusCreateTopicData,\n ConsensusSubmitMessageData,\n ConsensusUpdateTopicData,\n ConsensusDeleteTopicData,\n} from '../transaction-parser-types';\nimport { parseKey } from './parser-utils';\nimport { Buffer } from 'buffer';\n\nexport class HCSParser {\n static parseConsensusCreateTopic(\n body: proto.IConsensusCreateTopicTransactionBody,\n ): ConsensusCreateTopicData | undefined {\n if (!body) return undefined;\n const data: ConsensusCreateTopicData = {};\n if (body.memo) {\n data.memo = body.memo;\n }\n data.adminKey = parseKey(body.adminKey);\n data.submitKey = parseKey(body.submitKey);\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.autoRenewAccount) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseConsensusSubmitMessage(\n body: proto.IConsensusSubmitMessageTransactionBody,\n ): ConsensusSubmitMessageData | undefined {\n if (!body) return undefined;\n const data: ConsensusSubmitMessageData = {};\n if (body.topicID) {\n data.topicId = `${body.topicID.shardNum ?? 0}.${\n body.topicID.realmNum ?? 0\n }.${body.topicID.topicNum ?? 0}`;\n }\n if (body.message?.length > 0) {\n const messageBuffer = Buffer.from(body.message);\n const utf8String = messageBuffer.toString('utf8');\n if (\n /[\\x00-\\x08\\x0B\\x0E-\\x1F\\x7F]/.test(utf8String) ||\n utf8String.includes('\\uFFFD')\n ) {\n data.message = messageBuffer.toString('base64');\n data.messageEncoding = 'base64';\n } else {\n data.message = utf8String;\n data.messageEncoding = 'utf8';\n }\n }\n if (body.chunkInfo) {\n if (body.chunkInfo.initialTransactionID) {\n const txId = body.chunkInfo.initialTransactionID.accountID;\n const taValidStart =\n body.chunkInfo.initialTransactionID.transactionValidStart;\n if (txId && taValidStart) {\n data.chunkInfoInitialTransactionID = `${txId.shardNum ?? 0}.${\n txId.realmNum ?? 0\n }.${txId.accountNum ?? 0}@${taValidStart.seconds ?? 0}.${\n taValidStart.nanos ?? 0\n }`;\n }\n }\n if (\n body.chunkInfo.number !== undefined &&\n body.chunkInfo.number !== null\n ) {\n data.chunkInfoNumber = body.chunkInfo.number;\n }\n if (body.chunkInfo.total !== undefined && body.chunkInfo.total !== null) {\n data.chunkInfoTotal = body.chunkInfo.total;\n }\n }\n return data;\n }\n\n static parseConsensusUpdateTopic(\n body: proto.IConsensusUpdateTopicTransactionBody,\n ): ConsensusUpdateTopicData | undefined {\n if (!body) return undefined;\n const data: ConsensusUpdateTopicData = {};\n if (body.topicID) {\n data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`;\n }\n if (body.memo?.value !== undefined) {\n data.memo = body.memo.value;\n }\n if (body.adminKey === null) {\n data.clearAdminKey = true;\n data.adminKey = undefined;\n } else if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n } else {\n data.adminKey = undefined;\n }\n if (body.submitKey === null) {\n data.clearSubmitKey = true;\n data.submitKey = undefined;\n } else if (body.submitKey) {\n data.submitKey = parseKey(body.submitKey);\n } else {\n data.submitKey = undefined;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.autoRenewAccount) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseConsensusDeleteTopic(\n body: proto.IConsensusDeleteTopicTransactionBody,\n ): ConsensusDeleteTopicData | undefined {\n if (!body) return undefined;\n const data: ConsensusDeleteTopicData = {};\n if (body.topicID) {\n data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum ?? 0}.${\n body.topicID.topicNum ?? 0\n }`;\n }\n return data;\n }\n\n /**\n * Parse HCS transaction from Transaction object with comprehensive extraction\n * This is the unified entry point that handles both protobuf and internal field extraction\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n try {\n const transactionBody = (\n transaction as unknown as { _transactionBody?: unknown }\n )._transactionBody as proto.ITransactionBody | undefined;\n\n if (!transactionBody) {\n return {};\n }\n\n if (transactionBody.consensusCreateTopic) {\n const consensusCreateTopic = this.parseConsensusCreateTopic(\n transactionBody.consensusCreateTopic,\n );\n if (consensusCreateTopic) {\n return {\n type: 'TOPICCREATE',\n humanReadableType: 'Topic Create',\n consensusCreateTopic,\n };\n }\n }\n\n if (transactionBody.consensusSubmitMessage) {\n const consensusSubmitMessage = this.parseConsensusSubmitMessage(\n transactionBody.consensusSubmitMessage,\n );\n if (consensusSubmitMessage) {\n return {\n type: 'CONSENSUSSUBMITMESSAGE',\n humanReadableType: 'Submit Message',\n consensusSubmitMessage,\n };\n }\n }\n\n if (transactionBody.consensusUpdateTopic) {\n const consensusUpdateTopic = this.parseConsensusUpdateTopic(\n transactionBody.consensusUpdateTopic,\n );\n if (consensusUpdateTopic) {\n return {\n type: 'TOPICUPDATE',\n humanReadableType: 'Topic Update',\n consensusUpdateTopic,\n };\n }\n }\n\n if (transactionBody.consensusDeleteTopic) {\n const consensusDeleteTopic = this.parseConsensusDeleteTopic(\n transactionBody.consensusDeleteTopic,\n );\n if (consensusDeleteTopic) {\n return {\n type: 'TOPICDELETE',\n humanReadableType: 'Topic Delete',\n consensusDeleteTopic,\n };\n }\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es75.js","sources":["../../src/utils/sleep.ts"],"sourcesContent":["export const sleep = (ms: number) =>\n new Promise(resolve => setTimeout(resolve, ms));\n"],"names":[],"mappings":"AAAO,MAAM,QAAQ,CAAC,OACpB,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,EAAE,CAAC;"}
|