@ohmpathorn/block-node-client 0.1.0

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.
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Manual protobuf decoder.
3
+ *
4
+ * Because the Block Node's inner message schemas have evolved and may differ
5
+ * slightly from the compiled stubs, we decode BlockItem payloads by hand using
6
+ * the low-level ProtoReader rather than relying on proto-loader's type mapping.
7
+ * This makes the SDK resilient to unknown fields and minor schema differences.
8
+ */
9
+ import { BlockItem } from "./types";
10
+ export declare class ProtoReader {
11
+ private b;
12
+ pos: number;
13
+ constructor(input: Buffer | Uint8Array);
14
+ more(): boolean;
15
+ varint(): bigint;
16
+ tag(): {
17
+ fieldNum: number;
18
+ wireType: number;
19
+ };
20
+ bytes(): Buffer;
21
+ skip(wireType: number): void;
22
+ }
23
+ export declare const TX_TYPES: Record<number, string>;
24
+ export declare function decodeBlockItem(raw: Buffer): BlockItem;
25
+ export declare const RESPONSE_CODES: Record<number, string>;
26
+ export declare const STATE_IDS: Record<number, string>;
27
+ //# sourceMappingURL=decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EAIV,MAAM,SAAS,CAAC;AAIjB,qBAAa,WAAW;IACtB,OAAO,CAAC,CAAC,CAAS;IAClB,GAAG,EAAE,MAAM,CAAK;gBAEJ,KAAK,EAAE,MAAM,GAAG,UAAU;IAItC,IAAI,IAAI,OAAO;IAEf,MAAM,IAAI,MAAM;IAWhB,GAAG,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAK7C,KAAK,IAAI,MAAM;IAOf,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAO7B;AA4ED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsD3C,CAAC;AAySF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA+BtD;AAID,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM5C,CAAC"}
@@ -0,0 +1,606 @@
1
+ "use strict";
2
+ /**
3
+ * Manual protobuf decoder.
4
+ *
5
+ * Because the Block Node's inner message schemas have evolved and may differ
6
+ * slightly from the compiled stubs, we decode BlockItem payloads by hand using
7
+ * the low-level ProtoReader rather than relying on proto-loader's type mapping.
8
+ * This makes the SDK resilient to unknown fields and minor schema differences.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.STATE_IDS = exports.RESPONSE_CODES = exports.TX_TYPES = exports.ProtoReader = void 0;
12
+ exports.decodeBlockItem = decodeBlockItem;
13
+ // ─── ProtoReader ──────────────────────────────────────────────────────────────
14
+ class ProtoReader {
15
+ constructor(input) {
16
+ this.pos = 0;
17
+ this.b = Buffer.from(input);
18
+ }
19
+ more() { return this.pos < this.b.length; }
20
+ varint() {
21
+ let r = 0n, s = 0n;
22
+ while (true) {
23
+ const byte = this.b[this.pos++];
24
+ r |= BigInt(byte & 0x7f) << s;
25
+ if (!(byte & 0x80))
26
+ break;
27
+ s += 7n;
28
+ }
29
+ return r;
30
+ }
31
+ tag() {
32
+ const v = this.varint();
33
+ return { fieldNum: Number(v >> 3n), wireType: Number(v & 7n) };
34
+ }
35
+ bytes() {
36
+ const n = Number(this.varint());
37
+ const slice = this.b.slice(this.pos, this.pos + n);
38
+ this.pos += n;
39
+ return slice;
40
+ }
41
+ skip(wireType) {
42
+ if (wireType === 0)
43
+ this.varint();
44
+ else if (wireType === 2) {
45
+ const n = Number(this.varint());
46
+ this.pos += n;
47
+ }
48
+ else if (wireType === 5)
49
+ this.pos += 4;
50
+ else if (wireType === 1)
51
+ this.pos += 8;
52
+ else
53
+ throw new Error(`unknown wire type ${wireType}`);
54
+ }
55
+ }
56
+ exports.ProtoReader = ProtoReader;
57
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
58
+ function toSigned64(v) {
59
+ const MAX = 9223372036854775808n;
60
+ return v >= MAX ? v - 18446744073709551616n : v;
61
+ }
62
+ function decodeTimestamp(buf) {
63
+ const out = { seconds: 0n, nanos: 0 };
64
+ const r = new ProtoReader(buf);
65
+ while (r.more()) {
66
+ const { fieldNum, wireType } = r.tag();
67
+ if (fieldNum === 1 && wireType === 0)
68
+ out.seconds = r.varint();
69
+ else if (fieldNum === 2 && wireType === 0)
70
+ out.nanos = Number(r.varint());
71
+ else
72
+ r.skip(wireType);
73
+ }
74
+ return {
75
+ seconds: out.seconds,
76
+ nanos: out.nanos,
77
+ toDate: () => new Date(Number(out.seconds) * 1000 + Math.floor(out.nanos / 1e6)),
78
+ };
79
+ }
80
+ function decodeAccountId(buf) {
81
+ const out = { shardNum: 0n, realmNum: 0n, accountNum: 0n };
82
+ const r = new ProtoReader(buf);
83
+ while (r.more()) {
84
+ const { fieldNum, wireType } = r.tag();
85
+ if (fieldNum === 1 && wireType === 0)
86
+ out.shardNum = r.varint();
87
+ else if (fieldNum === 2 && wireType === 0)
88
+ out.realmNum = r.varint();
89
+ else if (fieldNum === 3 && wireType === 0)
90
+ out.accountNum = r.varint();
91
+ else
92
+ r.skip(wireType);
93
+ }
94
+ return out;
95
+ }
96
+ function decodeSemanticVersion(buf) {
97
+ const out = { major: 0, minor: 0, patch: 0 };
98
+ const r = new ProtoReader(buf);
99
+ while (r.more()) {
100
+ const { fieldNum, wireType } = r.tag();
101
+ if (fieldNum === 1 && wireType === 0)
102
+ out.major = Number(r.varint());
103
+ else if (fieldNum === 2 && wireType === 0)
104
+ out.minor = Number(r.varint());
105
+ else if (fieldNum === 3 && wireType === 0)
106
+ out.patch = Number(r.varint());
107
+ else
108
+ r.skip(wireType);
109
+ }
110
+ return out;
111
+ }
112
+ function decodeTransactionId(buf) {
113
+ const out = { scheduled: false, nonce: 0 };
114
+ const r = new ProtoReader(buf);
115
+ while (r.more()) {
116
+ const { fieldNum, wireType } = r.tag();
117
+ if (fieldNum === 1 && wireType === 2)
118
+ out.transactionValidStart = decodeTimestamp(r.bytes());
119
+ else if (fieldNum === 2 && wireType === 2)
120
+ out.accountId = decodeAccountId(r.bytes());
121
+ else if (fieldNum === 3 && wireType === 0)
122
+ out.scheduled = Boolean(r.varint());
123
+ else if (fieldNum === 4 && wireType === 0)
124
+ out.nonce = Number(r.varint());
125
+ else
126
+ r.skip(wireType);
127
+ }
128
+ out.toString = () => {
129
+ const a = out.accountId;
130
+ const t = out.transactionValidStart;
131
+ if (!a || !t)
132
+ return "unknown";
133
+ const nanos = String(t.nanos).padStart(9, "0");
134
+ const sched = out.scheduled ? "[scheduled]" : "";
135
+ const nonce = out.nonce ? `/${out.nonce}` : "";
136
+ return `${a.shardNum}.${a.realmNum}.${a.accountNum}@${t.seconds}.${nanos}${nonce}${sched}`.trim();
137
+ };
138
+ return out;
139
+ }
140
+ // ─── Transaction type map (TransactionBody data oneof field numbers) ──────────
141
+ exports.TX_TYPES = {
142
+ 7: "CONTRACT_CALL",
143
+ 8: "CONTRACT_CREATE",
144
+ 9: "CONTRACT_UPDATE",
145
+ 10: "CONTRACT_DELETE",
146
+ 11: "CRYPTO_ADD_LIVE_HASH",
147
+ 12: "CRYPTO_CREATE",
148
+ 13: "CRYPTO_DELETE",
149
+ 14: "CRYPTO_TRANSFER",
150
+ 15: "CRYPTO_UPDATE",
151
+ 16: "FILE_APPEND",
152
+ 17: "FILE_CREATE",
153
+ 18: "FILE_DELETE",
154
+ 19: "FILE_UPDATE",
155
+ 20: "SYSTEM_DELETE",
156
+ 21: "SYSTEM_UNDELETE",
157
+ 23: "FREEZE",
158
+ 24: "CONSENSUS_CREATE_TOPIC",
159
+ 25: "CONSENSUS_UPDATE_TOPIC",
160
+ 26: "CONSENSUS_DELETE_TOPIC",
161
+ 27: "CONSENSUS_SUBMIT_MESSAGE",
162
+ 28: "UNCHECKED_SUBMIT",
163
+ 29: "TOKEN_CREATE",
164
+ 31: "TOKEN_FREEZE",
165
+ 32: "TOKEN_UNFREEZE",
166
+ 33: "TOKEN_GRANT_KYC",
167
+ 34: "TOKEN_REVOKE_KYC",
168
+ 35: "TOKEN_DELETE",
169
+ 36: "TOKEN_UPDATE",
170
+ 37: "TOKEN_MINT",
171
+ 38: "TOKEN_BURN",
172
+ 39: "TOKEN_WIPE",
173
+ 40: "TOKEN_ASSOCIATE",
174
+ 41: "TOKEN_DISSOCIATE",
175
+ 42: "SCHEDULE_CREATE",
176
+ 43: "SCHEDULE_DELETE",
177
+ 44: "SCHEDULE_SIGN",
178
+ 45: "TOKEN_FEE_SCHEDULE_UPDATE",
179
+ 46: "TOKEN_PAUSE",
180
+ 47: "TOKEN_UNPAUSE",
181
+ 48: "CRYPTO_APPROVE_ALLOWANCE",
182
+ 49: "CRYPTO_DELETE_ALLOWANCE",
183
+ 50: "ETHEREUM_TRANSACTION",
184
+ 51: "NODE_STAKE_UPDATE",
185
+ 52: "UTIL_PRNG",
186
+ 53: "TOKEN_UPDATE_NFTS",
187
+ 54: "NODE_CREATE",
188
+ 55: "NODE_UPDATE",
189
+ 56: "NODE_DELETE",
190
+ 57: "TOKEN_REJECT",
191
+ 58: "TOKEN_AIRDROP",
192
+ 59: "TOKEN_CANCEL_AIRDROP",
193
+ 60: "TOKEN_CLAIM_AIRDROP",
194
+ 61: "BATCH",
195
+ };
196
+ // Transaction.field5 → SignedTransaction.field1 → TransactionBody
197
+ function decodeTransactionProto(buf) {
198
+ const out = {};
199
+ try {
200
+ // Layer 1: Transaction — find field 5 (signedTransactionBytes)
201
+ let signedTxBytes = null;
202
+ let legacyBodyBytes = null;
203
+ const r0 = new ProtoReader(buf);
204
+ while (r0.more()) {
205
+ const { fieldNum, wireType } = r0.tag();
206
+ if (fieldNum === 5 && wireType === 2)
207
+ signedTxBytes = r0.bytes();
208
+ else if (fieldNum === 3 && wireType === 2)
209
+ legacyBodyBytes = r0.bytes();
210
+ else
211
+ r0.skip(wireType);
212
+ }
213
+ // Layer 2: SignedTransaction — find field 1 (bodyBytes)
214
+ let bodyBytes = null;
215
+ if (signedTxBytes) {
216
+ const r1 = new ProtoReader(signedTxBytes);
217
+ while (r1.more()) {
218
+ const { fieldNum, wireType } = r1.tag();
219
+ if (fieldNum === 1 && wireType === 2) {
220
+ bodyBytes = r1.bytes();
221
+ break;
222
+ }
223
+ else
224
+ r1.skip(wireType);
225
+ }
226
+ }
227
+ else if (legacyBodyBytes) {
228
+ bodyBytes = legacyBodyBytes;
229
+ }
230
+ if (!bodyBytes)
231
+ return out;
232
+ // Layer 3: TransactionBody
233
+ const r2 = new ProtoReader(bodyBytes);
234
+ while (r2.more()) {
235
+ const { fieldNum, wireType } = r2.tag();
236
+ if (fieldNum === 1 && wireType === 2) {
237
+ out.transactionId = decodeTransactionId(r2.bytes());
238
+ }
239
+ else if (fieldNum === 6 && wireType === 2) {
240
+ const m = r2.bytes().toString("utf8").trim();
241
+ if (m)
242
+ out.memo = m;
243
+ }
244
+ else if (exports.TX_TYPES[fieldNum]) {
245
+ out.type = exports.TX_TYPES[fieldNum];
246
+ r2.skip(wireType);
247
+ }
248
+ else {
249
+ r2.skip(wireType);
250
+ }
251
+ }
252
+ }
253
+ catch (_) { }
254
+ return out;
255
+ }
256
+ // ─── BlockItem field decoders ─────────────────────────────────────────────────
257
+ // Map of field number in BlockItem oneof → kind name
258
+ const BLOCK_ITEM_FIELDS = {
259
+ 1: "block_header", 2: "event_header", 3: "round_header",
260
+ 4: "event_transaction", 5: "transaction_result", 6: "transaction_output",
261
+ 7: "state_changes", 8: "filtered_item_hash", 9: "block_proof", 10: "record_file",
262
+ // Field 12: empirically observed in record_file blocks; matches the AddressBookProof
263
+ // required by the RecordFileItem spec (3 × 48-byte SHA-384 hash fields).
264
+ 12: "address_book_proof",
265
+ };
266
+ function decodeBlockHeader(buf) {
267
+ const out = {
268
+ number: 0n, hashAlgorithm: 0, previousBlockHash: Buffer.alloc(0),
269
+ };
270
+ const r = new ProtoReader(buf);
271
+ while (r.more()) {
272
+ const { fieldNum, wireType } = r.tag();
273
+ if (fieldNum === 1 && wireType === 2)
274
+ out.hapiProtoVersion = decodeSemanticVersion(r.bytes());
275
+ else if (fieldNum === 2 && wireType === 2)
276
+ out.softwareVersion = decodeSemanticVersion(r.bytes());
277
+ else if (fieldNum === 3 && wireType === 0)
278
+ out.number = r.varint();
279
+ else if (fieldNum === 4 && wireType === 2)
280
+ out.previousBlockHash = r.bytes();
281
+ else if (fieldNum === 5 && wireType === 2)
282
+ out.firstTransactionConsensusTime = decodeTimestamp(r.bytes());
283
+ else if (fieldNum === 6 && wireType === 0)
284
+ out.hashAlgorithm = Number(r.varint());
285
+ else
286
+ r.skip(wireType);
287
+ }
288
+ return out;
289
+ }
290
+ function decodeEventHeader(buf) {
291
+ const out = { birthRound: 0n, generation: 0n, creatorNodeId: Buffer.alloc(0) };
292
+ const r = new ProtoReader(buf);
293
+ while (r.more()) {
294
+ const { fieldNum, wireType } = r.tag();
295
+ if (fieldNum === 1 && wireType === 2) {
296
+ // EventDescriptor
297
+ const ri = new ProtoReader(r.bytes());
298
+ while (ri.more()) {
299
+ const t = ri.tag();
300
+ if (t.fieldNum === 1 && t.wireType === 2)
301
+ out.creatorNodeId = ri.bytes();
302
+ else if (t.fieldNum === 2 && t.wireType === 0)
303
+ out.birthRound = ri.varint();
304
+ else if (t.fieldNum === 3 && t.wireType === 0)
305
+ out.generation = ri.varint();
306
+ else
307
+ ri.skip(t.wireType);
308
+ }
309
+ }
310
+ else {
311
+ r.skip(wireType);
312
+ }
313
+ }
314
+ return out;
315
+ }
316
+ function decodeRoundHeader(buf) {
317
+ const out = { roundNumber: 0n };
318
+ const r = new ProtoReader(buf);
319
+ while (r.more()) {
320
+ const { fieldNum, wireType } = r.tag();
321
+ if (fieldNum === 1 && wireType === 0)
322
+ out.roundNumber = r.varint();
323
+ else
324
+ r.skip(wireType);
325
+ }
326
+ return out;
327
+ }
328
+ function decodeEventTransaction(buf) {
329
+ const r = new ProtoReader(buf);
330
+ while (r.more()) {
331
+ const { fieldNum, wireType } = r.tag();
332
+ if (fieldNum === 1 && wireType === 2) {
333
+ const txBytes = r.bytes();
334
+ const decoded = decodeTransactionProto(txBytes);
335
+ return {
336
+ kind: "application",
337
+ transactionId: decoded.transactionId,
338
+ type: decoded.type,
339
+ memo: decoded.memo,
340
+ raw: txBytes,
341
+ };
342
+ }
343
+ else if (fieldNum === 2 && wireType === 2) {
344
+ const raw = r.bytes();
345
+ return { kind: "system", raw };
346
+ }
347
+ else {
348
+ r.skip(wireType);
349
+ }
350
+ }
351
+ return { kind: "application", raw: Buffer.alloc(0) };
352
+ }
353
+ function decodeTransactionResult(buf) {
354
+ const out = {
355
+ status: 0, statusName: "UNKNOWN", transactionFee: 0n,
356
+ transactionHash: Buffer.alloc(0), transfers: [],
357
+ };
358
+ const r = new ProtoReader(buf);
359
+ while (r.more()) {
360
+ const { fieldNum, wireType } = r.tag();
361
+ if (fieldNum === 1 && wireType === 0) {
362
+ out.status = Number(r.varint());
363
+ out.statusName = exports.RESPONSE_CODES[out.status] ?? `CODE_${out.status}`;
364
+ }
365
+ else if (fieldNum === 2 && wireType === 2)
366
+ out.consensusTimestamp = decodeTimestamp(r.bytes());
367
+ else if (fieldNum === 3 && wireType === 2)
368
+ out.transfers = decodeTransferList(r.bytes());
369
+ else if (fieldNum === 4 && wireType === 2)
370
+ out.transactionHash = r.bytes();
371
+ else if (fieldNum === 5 && wireType === 2)
372
+ out.payerAccountId = decodeAccountId(r.bytes());
373
+ else if (fieldNum === 6 && wireType === 0)
374
+ out.transactionFee = r.varint();
375
+ else
376
+ r.skip(wireType);
377
+ }
378
+ return out;
379
+ }
380
+ function decodeTransferList(buf) {
381
+ const transfers = [];
382
+ const r = new ProtoReader(buf);
383
+ while (r.more()) {
384
+ const { fieldNum, wireType } = r.tag();
385
+ if (fieldNum === 1 && wireType === 2) {
386
+ const ra = new ProtoReader(r.bytes());
387
+ const entry = { amount: 0n };
388
+ while (ra.more()) {
389
+ const t = ra.tag();
390
+ if (t.fieldNum === 1 && t.wireType === 2)
391
+ entry.accountId = decodeAccountId(ra.bytes());
392
+ else if (t.fieldNum === 2 && t.wireType === 0)
393
+ entry.amount = toSigned64(ra.varint());
394
+ else
395
+ ra.skip(t.wireType);
396
+ }
397
+ transfers.push(entry);
398
+ }
399
+ else {
400
+ r.skip(wireType);
401
+ }
402
+ }
403
+ return transfers;
404
+ }
405
+ function decodeStateChanges(buf) {
406
+ const out = { changes: [] };
407
+ const r = new ProtoReader(buf);
408
+ while (r.more()) {
409
+ const { fieldNum, wireType } = r.tag();
410
+ if (fieldNum === 1 && wireType === 2)
411
+ out.consensusTimestamp = decodeTimestamp(r.bytes());
412
+ else if (fieldNum === 2 && wireType === 2) {
413
+ const sc = { stateId: 0, stateName: "" };
414
+ const rs = new ProtoReader(r.bytes());
415
+ while (rs.more()) {
416
+ const t = rs.tag();
417
+ if (t.fieldNum === 1 && t.wireType === 0) {
418
+ sc.stateId = Number(rs.varint());
419
+ sc.stateName = exports.STATE_IDS[sc.stateId] ?? `STATE_${sc.stateId}`;
420
+ }
421
+ else
422
+ rs.skip(t.wireType);
423
+ }
424
+ out.changes.push(sc);
425
+ }
426
+ else {
427
+ r.skip(wireType);
428
+ }
429
+ }
430
+ return out;
431
+ }
432
+ function decodeFilteredItemHash(buf) {
433
+ const out = { itemHash: Buffer.alloc(0), filteredPath: 0n };
434
+ const r = new ProtoReader(buf);
435
+ while (r.more()) {
436
+ const { fieldNum, wireType } = r.tag();
437
+ if (fieldNum === 1 && wireType === 2)
438
+ out.itemHash = r.bytes();
439
+ else if (fieldNum === 3 && wireType === 0)
440
+ out.filteredPath = r.varint();
441
+ else
442
+ r.skip(wireType);
443
+ }
444
+ return out;
445
+ }
446
+ function decodeBlockProof(buf) {
447
+ const out = {
448
+ block: 0n, previousBlockRootHash: Buffer.alloc(0),
449
+ startOfBlockStateRootHash: Buffer.alloc(0),
450
+ blockSignature: Buffer.alloc(0), siblingHashes: [],
451
+ };
452
+ const r = new ProtoReader(buf);
453
+ while (r.more()) {
454
+ const { fieldNum, wireType } = r.tag();
455
+ if (fieldNum === 1 && wireType === 0)
456
+ out.block = r.varint();
457
+ else if (fieldNum === 2 && wireType === 2)
458
+ out.previousBlockRootHash = r.bytes();
459
+ else if (fieldNum === 3 && wireType === 2)
460
+ out.startOfBlockStateRootHash = r.bytes();
461
+ else if (fieldNum === 4 && wireType === 2)
462
+ out.blockSignature = r.bytes();
463
+ else if (fieldNum === 5 && wireType === 2)
464
+ out.siblingHashes.push(r.bytes());
465
+ else
466
+ r.skip(wireType);
467
+ }
468
+ return out;
469
+ }
470
+ function decodeRecordFile(buf) {
471
+ const out = { number: 0n, transactions: [] };
472
+ const r = new ProtoReader(buf);
473
+ while (r.more()) {
474
+ const { fieldNum, wireType } = r.tag();
475
+ if (fieldNum === 1 && wireType === 2)
476
+ out.creationTime = decodeTimestamp(r.bytes());
477
+ else if (fieldNum === 3 && wireType === 0)
478
+ out.number = r.varint();
479
+ else if (fieldNum === 2 && wireType === 2) {
480
+ // RecordStreamFile proto
481
+ out.transactions = extractTransactionsFromRecordStreamFile(r.bytes());
482
+ }
483
+ else {
484
+ r.skip(wireType);
485
+ }
486
+ }
487
+ return out;
488
+ }
489
+ function extractTransactionsFromRecordStreamFile(buf) {
490
+ const txs = [];
491
+ try {
492
+ const r = new ProtoReader(buf);
493
+ while (r.more()) {
494
+ const { fieldNum, wireType } = r.tag();
495
+ if (fieldNum === 3 && wireType === 2) {
496
+ // RecordStreamItem: field 1 = Transaction
497
+ const item = r.bytes();
498
+ const ri = new ProtoReader(item);
499
+ while (ri.more()) {
500
+ const t = ri.tag();
501
+ if (t.fieldNum === 1 && t.wireType === 2) {
502
+ const tx = decodeTransactionProto(ri.bytes());
503
+ txs.push(tx);
504
+ break;
505
+ }
506
+ else
507
+ ri.skip(t.wireType);
508
+ }
509
+ }
510
+ else {
511
+ r.skip(wireType);
512
+ }
513
+ }
514
+ }
515
+ catch (_) { }
516
+ return txs;
517
+ }
518
+ function decodeAddressBookProof(buf) {
519
+ const out = {
520
+ previousAddressBookHash: Buffer.alloc(0),
521
+ currentAddressBookHash: Buffer.alloc(0),
522
+ ledgerHash: Buffer.alloc(0),
523
+ };
524
+ const r = new ProtoReader(buf);
525
+ while (r.more()) {
526
+ const { fieldNum, wireType } = r.tag();
527
+ if (fieldNum === 1 && wireType === 2)
528
+ out.previousAddressBookHash = r.bytes();
529
+ else if (fieldNum === 2 && wireType === 2)
530
+ out.currentAddressBookHash = r.bytes();
531
+ else if (fieldNum === 3 && wireType === 2)
532
+ out.ledgerHash = r.bytes();
533
+ else
534
+ r.skip(wireType);
535
+ }
536
+ return out;
537
+ }
538
+ // ─── Top-level BlockItem decoder ──────────────────────────────────────────────
539
+ function decodeBlockItem(raw) {
540
+ try {
541
+ const r = new ProtoReader(raw);
542
+ while (r.more()) {
543
+ const { fieldNum, wireType } = r.tag();
544
+ const kind = BLOCK_ITEM_FIELDS[fieldNum];
545
+ if (kind && wireType === 2) {
546
+ const inner = r.bytes();
547
+ let payload;
548
+ switch (kind) {
549
+ case "block_header":
550
+ payload = decodeBlockHeader(inner);
551
+ break;
552
+ case "event_header":
553
+ payload = decodeEventHeader(inner);
554
+ break;
555
+ case "round_header":
556
+ payload = decodeRoundHeader(inner);
557
+ break;
558
+ case "event_transaction":
559
+ payload = decodeEventTransaction(inner);
560
+ break;
561
+ case "transaction_result":
562
+ payload = decodeTransactionResult(inner);
563
+ break;
564
+ case "state_changes":
565
+ payload = decodeStateChanges(inner);
566
+ break;
567
+ case "filtered_item_hash":
568
+ payload = decodeFilteredItemHash(inner);
569
+ break;
570
+ case "block_proof":
571
+ payload = decodeBlockProof(inner);
572
+ break;
573
+ case "record_file":
574
+ payload = decodeRecordFile(inner);
575
+ break;
576
+ case "address_book_proof":
577
+ payload = decodeAddressBookProof(inner);
578
+ break;
579
+ default: payload = {};
580
+ }
581
+ return { kind, raw, payload };
582
+ }
583
+ else {
584
+ r.skip(wireType);
585
+ }
586
+ }
587
+ }
588
+ catch (e) {
589
+ return { kind: "unknown", raw, payload: { error: String(e) } };
590
+ }
591
+ return { kind: "unknown", raw, payload: {} };
592
+ }
593
+ // ─── Lookup tables ────────────────────────────────────────────────────────────
594
+ exports.RESPONSE_CODES = {
595
+ 0: "OK", 4: "INVALID_TRANSACTION", 7: "MEMO_TOO_LONG",
596
+ 21: "INVALID_SIGNATURE", 22: "SUCCESS", 32: "DUPLICATE_TRANSACTION",
597
+ 50: "ACCOUNT_ID_DOES_NOT_EXIST", 78: "INSUFFICIENT_PAYER_BALANCE",
598
+ };
599
+ exports.STATE_IDS = {
600
+ 0: "UNKNOWN", 1: "ENTITY_ID", 2: "ACCOUNTS", 3: "ALIASES", 4: "STORAGE", 5: "BYTECODE",
601
+ 6: "FILES", 7: "TOKENS", 8: "NFTS", 9: "TOKEN_RELS", 10: "STAKING_INFOS",
602
+ 11: "STAKING_NETWORK_REWARDS", 12: "THROTTLE_USAGE", 13: "CONGESTION_STARTS",
603
+ 14: "SCHEDULES_BY_ID", 18: "RUNNING_HASHES", 19: "BLOCKS", 20: "NODES", 21: "TOPICS",
604
+ 24: "BLOCK_STREAM_INFO", 25: "PENDING_AIRDROPS",
605
+ };
606
+ //# sourceMappingURL=decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { BlockNodeClient } from "./client";
2
+ export { TX_TYPES, RESPONSE_CODES, STATE_IDS, decodeBlockItem, ProtoReader } from "./decoder";
3
+ export * from "./types";
4
+ //# sourceMappingURL=index.d.ts.map