@totemsdk/core 1.2.6 → 1.2.8

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 (96) hide show
  1. package/dist/MiniNumber.js +9 -1
  2. package/dist/canonical.d.ts +3 -0
  3. package/dist/canonical.js +22 -0
  4. package/dist/cjs/MiniNumber.d.ts +47 -0
  5. package/dist/cjs/MiniNumber.js +310 -0
  6. package/dist/cjs/Streamable.d.ts +268 -0
  7. package/dist/cjs/Streamable.js +439 -0
  8. package/dist/cjs/adapters/index.d.ts +190 -0
  9. package/dist/cjs/adapters/index.js +118 -0
  10. package/dist/cjs/adapters/types.d.ts +150 -0
  11. package/dist/cjs/adapters/types.js +81 -0
  12. package/dist/cjs/binio.d.ts +9 -0
  13. package/dist/cjs/binio.js +25 -0
  14. package/dist/cjs/bip39.d.ts +91 -0
  15. package/dist/cjs/bip39.js +434 -0
  16. package/dist/cjs/canonical.d.ts +3 -0
  17. package/dist/cjs/canonical.js +27 -0
  18. package/dist/cjs/derive.d.ts +2 -0
  19. package/dist/cjs/derive.js +13 -0
  20. package/dist/cjs/index.d.ts +49 -0
  21. package/dist/cjs/index.js +231 -0
  22. package/dist/cjs/javaStreamables.d.ts +254 -0
  23. package/dist/cjs/javaStreamables.js +391 -0
  24. package/dist/cjs/lease/LeaseMonitor.d.ts +44 -0
  25. package/dist/cjs/lease/LeaseMonitor.js +115 -0
  26. package/dist/cjs/lease/LeaseStore.d.ts +58 -0
  27. package/dist/cjs/lease/LeaseStore.js +151 -0
  28. package/dist/cjs/lease/WatermarkStore.d.ts +61 -0
  29. package/dist/cjs/lease/WatermarkStore.js +209 -0
  30. package/dist/cjs/lease/index.d.ts +14 -0
  31. package/dist/cjs/lease/index.js +22 -0
  32. package/dist/cjs/lease-client.d.ts +31 -0
  33. package/dist/cjs/lease-client.js +44 -0
  34. package/dist/cjs/legacy.d.ts +23 -0
  35. package/dist/cjs/legacy.js +163 -0
  36. package/dist/cjs/minima32.d.ts +18 -0
  37. package/dist/cjs/minima32.js +121 -0
  38. package/dist/cjs/minimaWireSerializer.d.ts +60 -0
  39. package/dist/cjs/minimaWireSerializer.js +77 -0
  40. package/dist/cjs/mmr.d.ts +157 -0
  41. package/dist/cjs/mmr.js +352 -0
  42. package/dist/cjs/mx.d.ts +1 -0
  43. package/dist/cjs/mx.js +10 -0
  44. package/dist/cjs/package.json +1 -0
  45. package/dist/cjs/params.d.ts +29 -0
  46. package/dist/cjs/params.js +20 -0
  47. package/dist/cjs/script.d.ts +7 -0
  48. package/dist/cjs/script.js +27 -0
  49. package/dist/cjs/scripts/contract-helpers.d.ts +252 -0
  50. package/dist/cjs/scripts/contract-helpers.js +407 -0
  51. package/dist/cjs/scripts/dapp-types.d.ts +119 -0
  52. package/dist/cjs/scripts/dapp-types.js +77 -0
  53. package/dist/cjs/scripts/index.d.ts +4 -0
  54. package/dist/cjs/scripts/index.js +38 -0
  55. package/dist/cjs/scripts/types.d.ts +81 -0
  56. package/dist/cjs/scripts/types.js +159 -0
  57. package/dist/cjs/scripts/witness-serializer.d.ts +29 -0
  58. package/dist/cjs/scripts/witness-serializer.js +306 -0
  59. package/dist/cjs/transaction.d.ts +106 -0
  60. package/dist/cjs/transaction.js +293 -0
  61. package/dist/cjs/treekey.d.ts +399 -0
  62. package/dist/cjs/treekey.js +827 -0
  63. package/dist/cjs/tx/TransactionLifecycle.d.ts +55 -0
  64. package/dist/cjs/tx/TransactionLifecycle.js +205 -0
  65. package/dist/cjs/tx/TransactionReceiptStore.d.ts +36 -0
  66. package/dist/cjs/tx/TransactionReceiptStore.js +93 -0
  67. package/dist/cjs/tx/TransactionService.d.ts +50 -0
  68. package/dist/cjs/tx/TransactionService.js +186 -0
  69. package/dist/cjs/tx/index.d.ts +13 -0
  70. package/dist/cjs/tx/index.js +20 -0
  71. package/dist/cjs/tx/types.d.ts +115 -0
  72. package/dist/cjs/tx/types.js +6 -0
  73. package/dist/cjs/util.d.ts +1 -0
  74. package/dist/cjs/util.js +5 -0
  75. package/dist/cjs/utils.d.ts +8 -0
  76. package/dist/cjs/utils.js +42 -0
  77. package/dist/cjs/verify.d.ts +18 -0
  78. package/dist/cjs/verify.js +174 -0
  79. package/dist/cjs/version.d.ts +12 -0
  80. package/dist/cjs/version.js +15 -0
  81. package/dist/cjs/wasm-sync.d.ts +71 -0
  82. package/dist/cjs/wasm-sync.js +97 -0
  83. package/dist/cjs/wots.d.ts +232 -0
  84. package/dist/cjs/wots.js +589 -0
  85. package/dist/index.d.ts +9 -3
  86. package/dist/index.js +25 -2
  87. package/dist/minimaWireSerializer.js +2 -2
  88. package/dist/mmr.js +1 -1
  89. package/dist/transaction.js +10 -10
  90. package/dist/treekey.js +14 -0
  91. package/dist/wasm-sync.d.ts +2 -2
  92. package/dist/wasm-sync.js +3 -1
  93. package/dist/wots.d.ts +1 -1
  94. package/package.json +84 -45
  95. package/dist/wasm-bridge.d.ts +0 -54
  96. package/dist/wasm-bridge.js +0 -303
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * Legacy JS implementations — backward compatibility.
4
+ *
5
+ * These are the original TypeScript implementations preserved for
6
+ * environments where WASM is not available. The main entry point
7
+ * (`@totemsdk/core`) now delegates to WASM by default.
8
+ *
9
+ * Import legacy implementations directly:
10
+ * import { wotsSign } from '@totemsdk/core/legacy';
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
24
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.legacyGenerateWordList = exports.legacyPhraseToSeed = exports.convertWordListToSeed = exports.convertStringToSeed = exports.legacyValidatePhrase = exports.legacyCleanSeedPhrase = exports.WORD_LIST = exports.serializeRealMMRProof = exports.serializeMMRProof = exports.deserializeMMRProof = exports.parseMMRProofFromHex = exports.legacyVerifyMMRProof = exports.calculateProofRoot = exports.createMMRDataParentNode = exports.createMMRDataLeafNode = exports.mmrRootFromSingleLeaf = exports.mmrLeafExact = exports.MMRTree = exports.createPerAddressTreeKeyAsync = exports.createPerAddressTreeKey = exports.legacyDeriveUnifiedAddressPublicKey = exports.legacyCreateUnifiedRootTreeKey = exports.createUnifiedChildTreeKeyAsync = exports.legacyCreateUnifiedChildTreeKey = exports.DEFAULT_LEVELS = exports.DEFAULT_KEYS_PER_LEVEL = exports.getRootPublicKey = exports.deserializeTreeSignature = exports.serializeTreeSignature = exports.legacyVerifyTreeSignature = exports.TreeKeyNode = exports.TreeKey = exports.legacyWotsPublicKeyFromSeed = exports.legacyWotsVerifyDigest = exports.legacyWotsVerify = exports.legacyWotsPkFromSig = exports.wotsSignLegacy = exports.legacyWotsSign = exports.legacyWotsKeypairFromSeed = exports.legacyDerivePKdigest = exports.baseWWithChecksum = exports.toWinternitzDigits = exports.prfChainSeed = exports.h = exports.assert32 = exports.u32be = exports.u16be = exports.fromHex = exports.hex = exports.F = void 0;
28
+ exports.legacyPrecomputeTransactionCoinIDTx = exports.serializeMMREntry = exports.serializeMMRData = exports.serializeMMREntryNumber = exports.createMMREntryNumber = exports.deriveUnifiedChildSeed = exports.legacyDeriveRootPrivSeed = exports.legacyDerivePerAddressSeed = exports.indexToMiniDataBytes = exports.javaHashAllObjects = exports.serializeMiniNumberONE = exports.serializeMiniNumberZERO = exports.hashObject = exports.deriveChildTreeSeedJava = exports.legacyDeriveChainSeedJava = exports.hashAllObjects = exports.serializeMiniData = exports.serializeMiniNumber = exports.writeHashToStream = exports.legacyWriteMiniString = exports.bigIntToByteArray = exports.legacyBytesToHex = exports.legacyHexToBytes = exports.concat = exports.writeMMREntryNumber = exports.writeMiniByte = exports.legacyWriteMiniData = exports.legacyWriteMiniNumber = exports.convertMinimaAddress = exports.makeMinimaAddress = exports.decodeMx = exports.encodeMx = exports.mxToHex = exports.hexToMx = exports.legacyParseMxAddress = exports.legacyMakeMxAddress = exports.decodeMxRadix32Frame = exports.encodeMxRadix32Frame = exports.legacyWotsAddressFromKeypair = exports.scriptFromWotsPk = exports.addressToRoot = exports.scriptToAddress = exports.buildMinimaCoin = exports.createDefaultTransaction = exports.legacyPrecomputeTransactionCoinID = exports.legacyComputeTransactionDigest = exports.legacySerializeTransaction = exports.serializeCoin = exports.parseDecimalToMiniNumber = exports.generateSeedPhrase = void 0;
29
+ exports.legacyValidateChallenge = exports.legacyCreateChallenge = exports.normalizeHex = exports.deriveAddressFromPublicKey = exports.verifyTreeSignatureDetailed = exports.verifySignatureDetailed = exports.verifySignature = exports.legacyConcatBytes = void 0;
30
+ // WOTS — unique exports
31
+ var wots_js_1 = require("./wots.js");
32
+ Object.defineProperty(exports, "F", { enumerable: true, get: function () { return wots_js_1.F; } });
33
+ Object.defineProperty(exports, "hex", { enumerable: true, get: function () { return wots_js_1.hex; } });
34
+ Object.defineProperty(exports, "fromHex", { enumerable: true, get: function () { return wots_js_1.fromHex; } });
35
+ Object.defineProperty(exports, "u16be", { enumerable: true, get: function () { return wots_js_1.u16be; } });
36
+ Object.defineProperty(exports, "u32be", { enumerable: true, get: function () { return wots_js_1.u32be; } });
37
+ Object.defineProperty(exports, "assert32", { enumerable: true, get: function () { return wots_js_1.assert32; } });
38
+ Object.defineProperty(exports, "h", { enumerable: true, get: function () { return wots_js_1.h; } });
39
+ Object.defineProperty(exports, "prfChainSeed", { enumerable: true, get: function () { return wots_js_1.prfChainSeed; } });
40
+ Object.defineProperty(exports, "toWinternitzDigits", { enumerable: true, get: function () { return wots_js_1.toWinternitzDigits; } });
41
+ Object.defineProperty(exports, "baseWWithChecksum", { enumerable: true, get: function () { return wots_js_1.baseWWithChecksum; } });
42
+ Object.defineProperty(exports, "legacyDerivePKdigest", { enumerable: true, get: function () { return wots_js_1.derivePKdigest; } });
43
+ Object.defineProperty(exports, "legacyWotsKeypairFromSeed", { enumerable: true, get: function () { return wots_js_1.wotsKeypairFromSeed; } });
44
+ Object.defineProperty(exports, "legacyWotsSign", { enumerable: true, get: function () { return wots_js_1.wotsSign; } });
45
+ Object.defineProperty(exports, "wotsSignLegacy", { enumerable: true, get: function () { return wots_js_1.wotsSignLegacy; } });
46
+ Object.defineProperty(exports, "legacyWotsPkFromSig", { enumerable: true, get: function () { return wots_js_1.wotsPkFromSig; } });
47
+ Object.defineProperty(exports, "legacyWotsVerify", { enumerable: true, get: function () { return wots_js_1.wotsVerify; } });
48
+ Object.defineProperty(exports, "legacyWotsVerifyDigest", { enumerable: true, get: function () { return wots_js_1.wotsVerifyDigest; } });
49
+ Object.defineProperty(exports, "legacyWotsPublicKeyFromSeed", { enumerable: true, get: function () { return wots_js_1.wotsPublicKeyFromSeed; } });
50
+ // TreeKey — unique exports
51
+ var treekey_js_1 = require("./treekey.js");
52
+ Object.defineProperty(exports, "TreeKey", { enumerable: true, get: function () { return treekey_js_1.TreeKey; } });
53
+ Object.defineProperty(exports, "TreeKeyNode", { enumerable: true, get: function () { return treekey_js_1.TreeKeyNode; } });
54
+ Object.defineProperty(exports, "legacyVerifyTreeSignature", { enumerable: true, get: function () { return treekey_js_1.verifyTreeSignature; } });
55
+ Object.defineProperty(exports, "serializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.serializeTreeSignature; } });
56
+ Object.defineProperty(exports, "deserializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.deserializeTreeSignature; } });
57
+ Object.defineProperty(exports, "getRootPublicKey", { enumerable: true, get: function () { return treekey_js_1.getRootPublicKey; } });
58
+ Object.defineProperty(exports, "DEFAULT_KEYS_PER_LEVEL", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_KEYS_PER_LEVEL; } });
59
+ Object.defineProperty(exports, "DEFAULT_LEVELS", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_LEVELS; } });
60
+ Object.defineProperty(exports, "legacyCreateUnifiedChildTreeKey", { enumerable: true, get: function () { return treekey_js_1.createUnifiedChildTreeKey; } });
61
+ Object.defineProperty(exports, "createUnifiedChildTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createUnifiedChildTreeKeyAsync; } });
62
+ Object.defineProperty(exports, "legacyCreateUnifiedRootTreeKey", { enumerable: true, get: function () { return treekey_js_1.createUnifiedRootTreeKey; } });
63
+ Object.defineProperty(exports, "legacyDeriveUnifiedAddressPublicKey", { enumerable: true, get: function () { return treekey_js_1.deriveUnifiedAddressPublicKey; } });
64
+ Object.defineProperty(exports, "createPerAddressTreeKey", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKey; } });
65
+ Object.defineProperty(exports, "createPerAddressTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKeyAsync; } });
66
+ // MMR — unique exports
67
+ var mmr_js_1 = require("./mmr.js");
68
+ Object.defineProperty(exports, "MMRTree", { enumerable: true, get: function () { return mmr_js_1.MMRTree; } });
69
+ Object.defineProperty(exports, "mmrLeafExact", { enumerable: true, get: function () { return mmr_js_1.mmrLeafExact; } });
70
+ Object.defineProperty(exports, "mmrRootFromSingleLeaf", { enumerable: true, get: function () { return mmr_js_1.mmrRootFromSingleLeaf; } });
71
+ Object.defineProperty(exports, "createMMRDataLeafNode", { enumerable: true, get: function () { return mmr_js_1.createMMRDataLeafNode; } });
72
+ Object.defineProperty(exports, "createMMRDataParentNode", { enumerable: true, get: function () { return mmr_js_1.createMMRDataParentNode; } });
73
+ Object.defineProperty(exports, "calculateProofRoot", { enumerable: true, get: function () { return mmr_js_1.calculateProofRoot; } });
74
+ Object.defineProperty(exports, "legacyVerifyMMRProof", { enumerable: true, get: function () { return mmr_js_1.verifyMMRProof; } });
75
+ Object.defineProperty(exports, "parseMMRProofFromHex", { enumerable: true, get: function () { return mmr_js_1.parseMMRProofFromHex; } });
76
+ Object.defineProperty(exports, "deserializeMMRProof", { enumerable: true, get: function () { return mmr_js_1.deserializeMMRProof; } });
77
+ Object.defineProperty(exports, "serializeMMRProof", { enumerable: true, get: function () { return mmr_js_1.serializeMMRProof; } });
78
+ Object.defineProperty(exports, "serializeRealMMRProof", { enumerable: true, get: function () { return mmr_js_1.serializeRealMMRProof; } });
79
+ // BIP39
80
+ var bip39_js_1 = require("./bip39.js");
81
+ Object.defineProperty(exports, "WORD_LIST", { enumerable: true, get: function () { return bip39_js_1.WORD_LIST; } });
82
+ Object.defineProperty(exports, "legacyCleanSeedPhrase", { enumerable: true, get: function () { return bip39_js_1.cleanSeedPhrase; } });
83
+ Object.defineProperty(exports, "legacyValidatePhrase", { enumerable: true, get: function () { return bip39_js_1.validatePhrase; } });
84
+ Object.defineProperty(exports, "convertStringToSeed", { enumerable: true, get: function () { return bip39_js_1.convertStringToSeed; } });
85
+ Object.defineProperty(exports, "convertWordListToSeed", { enumerable: true, get: function () { return bip39_js_1.convertWordListToSeed; } });
86
+ Object.defineProperty(exports, "legacyPhraseToSeed", { enumerable: true, get: function () { return bip39_js_1.phraseToSeed; } });
87
+ Object.defineProperty(exports, "legacyGenerateWordList", { enumerable: true, get: function () { return bip39_js_1.generateWordList; } });
88
+ Object.defineProperty(exports, "generateSeedPhrase", { enumerable: true, get: function () { return bip39_js_1.generateSeedPhrase; } });
89
+ // Transaction
90
+ var transaction_js_1 = require("./transaction.js");
91
+ Object.defineProperty(exports, "parseDecimalToMiniNumber", { enumerable: true, get: function () { return transaction_js_1.parseDecimalToMiniNumber; } });
92
+ Object.defineProperty(exports, "serializeCoin", { enumerable: true, get: function () { return transaction_js_1.serializeCoin; } });
93
+ Object.defineProperty(exports, "legacySerializeTransaction", { enumerable: true, get: function () { return transaction_js_1.serializeTransaction; } });
94
+ Object.defineProperty(exports, "legacyComputeTransactionDigest", { enumerable: true, get: function () { return transaction_js_1.computeTransactionDigest; } });
95
+ Object.defineProperty(exports, "legacyPrecomputeTransactionCoinID", { enumerable: true, get: function () { return transaction_js_1.precomputeTransactionCoinID; } });
96
+ Object.defineProperty(exports, "createDefaultTransaction", { enumerable: true, get: function () { return transaction_js_1.createDefaultTransaction; } });
97
+ Object.defineProperty(exports, "buildMinimaCoin", { enumerable: true, get: function () { return transaction_js_1.buildMinimaCoin; } });
98
+ // Derive
99
+ var derive_js_1 = require("./derive.js");
100
+ Object.defineProperty(exports, "scriptToAddress", { enumerable: true, get: function () { return derive_js_1.scriptToAddress; } });
101
+ Object.defineProperty(exports, "addressToRoot", { enumerable: true, get: function () { return derive_js_1.addressToRoot; } });
102
+ // Script
103
+ var script_js_1 = require("./script.js");
104
+ Object.defineProperty(exports, "scriptFromWotsPk", { enumerable: true, get: function () { return script_js_1.scriptFromWotsPk; } });
105
+ Object.defineProperty(exports, "legacyWotsAddressFromKeypair", { enumerable: true, get: function () { return script_js_1.wotsAddressFromKeypair; } });
106
+ // Minima32
107
+ var minima32_js_1 = require("./minima32.js");
108
+ Object.defineProperty(exports, "encodeMxRadix32Frame", { enumerable: true, get: function () { return minima32_js_1.encodeMxRadix32Frame; } });
109
+ Object.defineProperty(exports, "decodeMxRadix32Frame", { enumerable: true, get: function () { return minima32_js_1.decodeMxRadix32Frame; } });
110
+ Object.defineProperty(exports, "legacyMakeMxAddress", { enumerable: true, get: function () { return minima32_js_1.makeMxAddress; } });
111
+ Object.defineProperty(exports, "legacyParseMxAddress", { enumerable: true, get: function () { return minima32_js_1.parseMxAddress; } });
112
+ Object.defineProperty(exports, "hexToMx", { enumerable: true, get: function () { return minima32_js_1.hexToMx; } });
113
+ Object.defineProperty(exports, "mxToHex", { enumerable: true, get: function () { return minima32_js_1.mxToHex; } });
114
+ Object.defineProperty(exports, "encodeMx", { enumerable: true, get: function () { return minima32_js_1.encodeMx; } });
115
+ Object.defineProperty(exports, "decodeMx", { enumerable: true, get: function () { return minima32_js_1.decodeMx; } });
116
+ Object.defineProperty(exports, "makeMinimaAddress", { enumerable: true, get: function () { return minima32_js_1.makeMinimaAddress; } });
117
+ Object.defineProperty(exports, "convertMinimaAddress", { enumerable: true, get: function () { return minima32_js_1.convertMinimaAddress; } });
118
+ // Streamable
119
+ var Streamable_js_1 = require("./Streamable.js");
120
+ Object.defineProperty(exports, "legacyWriteMiniNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMiniNumber; } });
121
+ Object.defineProperty(exports, "legacyWriteMiniData", { enumerable: true, get: function () { return Streamable_js_1.writeMiniData; } });
122
+ Object.defineProperty(exports, "writeMiniByte", { enumerable: true, get: function () { return Streamable_js_1.writeMiniByte; } });
123
+ Object.defineProperty(exports, "writeMMREntryNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMMREntryNumber; } });
124
+ Object.defineProperty(exports, "concat", { enumerable: true, get: function () { return Streamable_js_1.concat; } });
125
+ Object.defineProperty(exports, "legacyHexToBytes", { enumerable: true, get: function () { return Streamable_js_1.hexToBytes; } });
126
+ Object.defineProperty(exports, "legacyBytesToHex", { enumerable: true, get: function () { return Streamable_js_1.bytesToHex; } });
127
+ Object.defineProperty(exports, "bigIntToByteArray", { enumerable: true, get: function () { return Streamable_js_1.bigIntToByteArray; } });
128
+ Object.defineProperty(exports, "legacyWriteMiniString", { enumerable: true, get: function () { return Streamable_js_1.writeMiniString; } });
129
+ Object.defineProperty(exports, "writeHashToStream", { enumerable: true, get: function () { return Streamable_js_1.writeHashToStream; } });
130
+ // JavaStreamables
131
+ var javaStreamables_js_1 = require("./javaStreamables.js");
132
+ Object.defineProperty(exports, "serializeMiniNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumber; } });
133
+ Object.defineProperty(exports, "serializeMiniData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniData; } });
134
+ Object.defineProperty(exports, "hashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.hashAllObjects; } });
135
+ Object.defineProperty(exports, "legacyDeriveChainSeedJava", { enumerable: true, get: function () { return javaStreamables_js_1.deriveChainSeedJava; } });
136
+ Object.defineProperty(exports, "deriveChildTreeSeedJava", { enumerable: true, get: function () { return javaStreamables_js_1.deriveChildTreeSeedJava; } });
137
+ Object.defineProperty(exports, "hashObject", { enumerable: true, get: function () { return javaStreamables_js_1.hashObject; } });
138
+ Object.defineProperty(exports, "serializeMiniNumberZERO", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberZERO; } });
139
+ Object.defineProperty(exports, "serializeMiniNumberONE", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberONE; } });
140
+ Object.defineProperty(exports, "javaHashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.javaHashAllObjects; } });
141
+ Object.defineProperty(exports, "indexToMiniDataBytes", { enumerable: true, get: function () { return javaStreamables_js_1.indexToMiniDataBytes; } });
142
+ Object.defineProperty(exports, "legacyDerivePerAddressSeed", { enumerable: true, get: function () { return javaStreamables_js_1.derivePerAddressSeed; } });
143
+ Object.defineProperty(exports, "legacyDeriveRootPrivSeed", { enumerable: true, get: function () { return javaStreamables_js_1.deriveRootPrivSeed; } });
144
+ Object.defineProperty(exports, "deriveUnifiedChildSeed", { enumerable: true, get: function () { return javaStreamables_js_1.deriveUnifiedChildSeed; } });
145
+ Object.defineProperty(exports, "createMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.createMMREntryNumber; } });
146
+ Object.defineProperty(exports, "serializeMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntryNumber; } });
147
+ Object.defineProperty(exports, "serializeMMRData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMRData; } });
148
+ Object.defineProperty(exports, "serializeMMREntry", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntry; } });
149
+ Object.defineProperty(exports, "legacyPrecomputeTransactionCoinIDTx", { enumerable: true, get: function () { return javaStreamables_js_1.precomputeTransactionCoinID; } });
150
+ // Utils
151
+ var utils_js_1 = require("./utils.js");
152
+ Object.defineProperty(exports, "legacyConcatBytes", { enumerable: true, get: function () { return utils_js_1.concatBytes; } });
153
+ // Params
154
+ __exportStar(require("./params.js"), exports);
155
+ // Verify
156
+ var verify_js_1 = require("./verify.js");
157
+ Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return verify_js_1.verifySignature; } });
158
+ Object.defineProperty(exports, "verifySignatureDetailed", { enumerable: true, get: function () { return verify_js_1.verifySignatureDetailed; } });
159
+ Object.defineProperty(exports, "verifyTreeSignatureDetailed", { enumerable: true, get: function () { return verify_js_1.verifyTreeSignatureDetailed; } });
160
+ Object.defineProperty(exports, "deriveAddressFromPublicKey", { enumerable: true, get: function () { return verify_js_1.deriveAddressFromPublicKey; } });
161
+ Object.defineProperty(exports, "normalizeHex", { enumerable: true, get: function () { return verify_js_1.normalizeHex; } });
162
+ Object.defineProperty(exports, "legacyCreateChallenge", { enumerable: true, get: function () { return verify_js_1.createChallenge; } });
163
+ Object.defineProperty(exports, "legacyValidateChallenge", { enumerable: true, get: function () { return verify_js_1.validateChallenge; } });
@@ -0,0 +1,18 @@
1
+ export declare function encodeMxRadix32Frame(frame: Uint8Array): string;
2
+ export declare function decodeMxRadix32Frame(mx: string): Uint8Array;
3
+ /** Encode raw 32 bytes to Mx address with frame and checksum */
4
+ export declare function makeMxAddress(root32: Uint8Array): string;
5
+ /** Decode Mx address to raw 32 bytes, validating frame and checksum */
6
+ export declare function parseMxAddress(mx: string): Uint8Array;
7
+ /** Make an Mx address from a hex string (legacy API compatibility) */
8
+ export declare function hexToMx(hex: string): string;
9
+ /** Convert an Mx address back to uppercase hex (legacy API compatibility) */
10
+ export declare function mxToHex(mx: string): string;
11
+ /** @deprecated Use makeMxAddress */
12
+ export declare const encodeMx: typeof makeMxAddress;
13
+ /** @deprecated Use parseMxAddress */
14
+ export declare const decodeMx: typeof parseMxAddress;
15
+ /** @deprecated Use hexToMx */
16
+ export declare const makeMinimaAddress: typeof hexToMx;
17
+ /** @deprecated Use mxToHex */
18
+ export declare const convertMinimaAddress: typeof mxToHex;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ // Minima "Mx" Base32 — matches org.minima.utils.BaseConverter.encode32/decode32
3
+ // Source behavior: BigInteger radix-32, then i→w, l→y, o→z, uppercased, prefixed with "Mx".
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.convertMinimaAddress = exports.makeMinimaAddress = exports.decodeMx = exports.encodeMx = void 0;
6
+ exports.encodeMxRadix32Frame = encodeMxRadix32Frame;
7
+ exports.decodeMxRadix32Frame = decodeMxRadix32Frame;
8
+ exports.makeMxAddress = makeMxAddress;
9
+ exports.parseMxAddress = parseMxAddress;
10
+ exports.hexToMx = hexToMx;
11
+ exports.mxToHex = mxToHex;
12
+ function bytesToBigInt(bytes) {
13
+ let x = 0n;
14
+ for (const b of bytes)
15
+ x = (x << 8n) | BigInt(b);
16
+ return x;
17
+ }
18
+ function bigIntToBytes(x) {
19
+ if (x === 0n)
20
+ return new Uint8Array([0]); // not normally hit for framed addresses
21
+ let hex = x.toString(16);
22
+ if (hex.length % 2)
23
+ hex = '0' + hex;
24
+ const out = new Uint8Array(hex.length / 2);
25
+ for (let i = 0; i < out.length; i++) {
26
+ out[i] = parseInt(hex.slice(2 * i, 2 * i + 2), 16);
27
+ }
28
+ return out;
29
+ }
30
+ function encodeMxRadix32Frame(frame) {
31
+ let s = bytesToBigInt(frame).toString(32).toLowerCase();
32
+ // JAR swaps (avoid ambiguous letters) then uppercase and add prefix
33
+ s = s.replace(/i/g, 'w').replace(/l/g, 'y').replace(/o/g, 'z');
34
+ return 'Mx' + s.toUpperCase();
35
+ }
36
+ function decodeMxRadix32Frame(mx) {
37
+ let s = mx.trim().toLowerCase();
38
+ if (s.startsWith('mx'))
39
+ s = s.slice(2);
40
+ s = s.replace(/w/g, 'i').replace(/y/g, 'l').replace(/z/g, 'o'); // reverse swaps
41
+ // parse base-32 by hand (radix 32)
42
+ let x = 0n;
43
+ for (const ch of s) {
44
+ const v = parseInt(ch, 32);
45
+ if (Number.isNaN(v))
46
+ throw new Error(`Invalid base32 character: ${ch}`);
47
+ x = x * 32n + BigInt(v);
48
+ }
49
+ return bigIntToBytes(x);
50
+ }
51
+ const wasm_sync_js_1 = require("./wasm-sync.js");
52
+ /** Encode raw 32 bytes to Mx address with frame and checksum */
53
+ function makeMxAddress(root32) {
54
+ if (root32.length !== 32) {
55
+ throw new Error(`Expected 32 bytes, got ${root32.length}`);
56
+ }
57
+ // Build frame: [sentinel(1), length(2), data(32), checksum(4)]
58
+ const frame = new Uint8Array(1 + 2 + 32 + 4);
59
+ frame[0] = 0x01; // Sentinel byte
60
+ frame[1] = 0; // Length high byte
61
+ frame[2] = 32; // Length low byte
62
+ frame.set(root32, 3);
63
+ // Calculate checksum of the raw 32 bytes
64
+ const chk = (0, wasm_sync_js_1.sha3_256)(root32);
65
+ frame.set(chk.slice(0, 4), 35);
66
+ return encodeMxRadix32Frame(frame);
67
+ }
68
+ /** Decode Mx address to raw 32 bytes, validating frame and checksum */
69
+ function parseMxAddress(mx) {
70
+ const frame = decodeMxRadix32Frame(mx);
71
+ // Validate frame structure
72
+ if (frame[0] !== 0x01) {
73
+ throw new Error(`Invalid sentinel byte: ${frame[0]}`);
74
+ }
75
+ const len = (frame[1] << 8) | frame[2];
76
+ if (len !== 32) {
77
+ throw new Error(`Invalid length: ${len}, expected 32`);
78
+ }
79
+ const root32 = frame.slice(3, 35);
80
+ const checksum = frame.slice(35, 39);
81
+ // Validate checksum
82
+ const expectedChk = (0, wasm_sync_js_1.sha3_256)(root32);
83
+ const expected = expectedChk.slice(0, 4);
84
+ for (let i = 0; i < 4; i++) {
85
+ if (checksum[i] !== expected[i]) {
86
+ throw new Error('Invalid checksum');
87
+ }
88
+ }
89
+ return root32;
90
+ }
91
+ // Aliases for backward compatibility
92
+ function hexToBytes(hex) {
93
+ let h = hex.startsWith("0x") ? hex.slice(2) : hex;
94
+ if (h.length % 2)
95
+ h = "0" + h;
96
+ const out = new Uint8Array(h.length / 2);
97
+ for (let i = 0; i < out.length; i++)
98
+ out[i] = parseInt(h.slice(i * 2, i * 2 + 2), 16);
99
+ return out;
100
+ }
101
+ function bytesToHex(bytes) {
102
+ return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('').toUpperCase();
103
+ }
104
+ /** Make an Mx address from a hex string (legacy API compatibility) */
105
+ function hexToMx(hex) {
106
+ const bytes = hexToBytes(hex);
107
+ return makeMxAddress(bytes);
108
+ }
109
+ /** Convert an Mx address back to uppercase hex (legacy API compatibility) */
110
+ function mxToHex(mx) {
111
+ const bytes = parseMxAddress(mx);
112
+ return bytesToHex(bytes);
113
+ }
114
+ /** @deprecated Use makeMxAddress */
115
+ exports.encodeMx = makeMxAddress;
116
+ /** @deprecated Use parseMxAddress */
117
+ exports.decodeMx = parseMxAddress;
118
+ /** @deprecated Use hexToMx */
119
+ exports.makeMinimaAddress = hexToMx;
120
+ /** @deprecated Use mxToHex */
121
+ exports.convertMinimaAddress = mxToHex;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Minima Wire Format Serializer
3
+ *
4
+ * High-level serialization for hex-string bundles (used in service.ts).
5
+ * Primitive serialization functions are imported from Streamable.ts.
6
+ *
7
+ * @deprecated (2026-01) - Most functions deprecated. Use Streamable.ts directly for
8
+ * byte-level serialization. This file remains for HierarchicalWitnessBundle hex APIs.
9
+ */
10
+ import { hexToBytes, bytesToHex, writeMiniNumber, writeMiniData, type Bytes } from './Streamable.js';
11
+ export { writeMiniNumber as serializeMiniNumber, writeMiniData as serializeMiniData };
12
+ export { hexToBytes as fromHex, bytesToHex as toHex };
13
+ export type { Bytes };
14
+ /**
15
+ * SignatureProof with hex strings (for bundle transport)
16
+ */
17
+ export interface SignatureProofHex {
18
+ leafPubkey: string;
19
+ signature: string;
20
+ mmrProof: string;
21
+ }
22
+ /**
23
+ * HierarchicalWitnessBundle - used by service.ts for transaction signing
24
+ * All fields are hex strings for JSON transport
25
+ */
26
+ export interface HierarchicalWitnessBundle {
27
+ addressIndex: number;
28
+ l1: number;
29
+ l2: number;
30
+ rootPublicKey: string;
31
+ proofs: SignatureProofHex[];
32
+ }
33
+ /**
34
+ * Serialize hierarchical witness bundle to Minima wire format
35
+ *
36
+ * This converts the HierarchicalWitnessBundle (with hex strings) to
37
+ * the proper Witness signature format matching Witness.java → Signature.java hierarchy.
38
+ *
39
+ * CRITICAL FIX (2026-01): Must use double-nesting to match Java format:
40
+ * - Witness.writeDataStream writes: [signatureCount][Signature[0].writeDataStream()]...
41
+ * - Signature.writeDataStream writes: [proofCount][SignatureProof[0]]...
42
+ *
43
+ * So the final format is:
44
+ * [1] = signatureCount (we have 1 Signature object in Witness)
45
+ * [N] = proofCount inside that Signature (2 for address-based TreeKey)
46
+ * [SignatureProof[0]]
47
+ * [SignatureProof[1]]
48
+ *
49
+ * IMPORTANT: Uses pre-serialized MMR proof bytes directly to avoid
50
+ * double-serialization (deserialize then re-serialize).
51
+ */
52
+ export declare function serializeHierarchicalWitness(bundle: HierarchicalWitnessBundle): Bytes;
53
+ /**
54
+ * @deprecated (2026-01) This function's output is NOT used in the main Totem transaction flow.
55
+ * MinimaTransactionBuilder.serializeWitness in the extension handles actual witness serialization.
56
+ * Kept for API compatibility and potential future direct SDK usage.
57
+ *
58
+ * Serialize hierarchical witness bundle to hex string for transport
59
+ */
60
+ export declare function serializeHierarchicalWitnessToHex(bundle: HierarchicalWitnessBundle): string;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * Minima Wire Format Serializer
4
+ *
5
+ * High-level serialization for hex-string bundles (used in service.ts).
6
+ * Primitive serialization functions are imported from Streamable.ts.
7
+ *
8
+ * @deprecated (2026-01) - Most functions deprecated. Use Streamable.ts directly for
9
+ * byte-level serialization. This file remains for HierarchicalWitnessBundle hex APIs.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.toHex = exports.fromHex = exports.serializeMiniData = exports.serializeMiniNumber = void 0;
13
+ exports.serializeHierarchicalWitness = serializeHierarchicalWitness;
14
+ exports.serializeHierarchicalWitnessToHex = serializeHierarchicalWitnessToHex;
15
+ const Streamable_js_1 = require("./Streamable.js");
16
+ Object.defineProperty(exports, "fromHex", { enumerable: true, get: function () { return Streamable_js_1.hexToBytes; } });
17
+ Object.defineProperty(exports, "toHex", { enumerable: true, get: function () { return Streamable_js_1.bytesToHex; } });
18
+ Object.defineProperty(exports, "serializeMiniNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMiniNumber; } });
19
+ Object.defineProperty(exports, "serializeMiniData", { enumerable: true, get: function () { return Streamable_js_1.writeMiniData; } });
20
+ /**
21
+ * Serialize a SignatureProof from pre-serialized byte arrays
22
+ *
23
+ * This avoids double-serialization by passing MMR proof bytes through directly.
24
+ * Format matches SignatureProof.writeDataStream():
25
+ * 1. MiniData (publicKey) - 4-byte length + bytes
26
+ * 2. MiniData (signature) - 4-byte length + bytes
27
+ * 3. MMRProof bytes (pre-serialized)
28
+ */
29
+ function serializeSignatureProofFromBytes(publicKey, signature, mmrProofBytes) {
30
+ return (0, Streamable_js_1.concat)((0, Streamable_js_1.writeMiniData)(publicKey), (0, Streamable_js_1.writeMiniData)(signature), mmrProofBytes // Already serialized - pass through directly
31
+ );
32
+ }
33
+ /**
34
+ * Serialize hierarchical witness bundle to Minima wire format
35
+ *
36
+ * This converts the HierarchicalWitnessBundle (with hex strings) to
37
+ * the proper Witness signature format matching Witness.java → Signature.java hierarchy.
38
+ *
39
+ * CRITICAL FIX (2026-01): Must use double-nesting to match Java format:
40
+ * - Witness.writeDataStream writes: [signatureCount][Signature[0].writeDataStream()]...
41
+ * - Signature.writeDataStream writes: [proofCount][SignatureProof[0]]...
42
+ *
43
+ * So the final format is:
44
+ * [1] = signatureCount (we have 1 Signature object in Witness)
45
+ * [N] = proofCount inside that Signature (2 for address-based TreeKey)
46
+ * [SignatureProof[0]]
47
+ * [SignatureProof[1]]
48
+ *
49
+ * IMPORTANT: Uses pre-serialized MMR proof bytes directly to avoid
50
+ * double-serialization (deserialize then re-serialize).
51
+ */
52
+ function serializeHierarchicalWitness(bundle) {
53
+ const parts = [];
54
+ // Witness.signatureCount (MiniNumber) - 1 Signature object containing N proofs
55
+ parts.push((0, Streamable_js_1.writeMiniNumber)(1n, 0));
56
+ // Signature.proofCount (MiniNumber) - N SignatureProofs inside the Signature
57
+ parts.push((0, Streamable_js_1.writeMiniNumber)(BigInt(bundle.proofs.length), 0));
58
+ for (const proofHex of bundle.proofs) {
59
+ const publicKey = (0, Streamable_js_1.hexToBytes)(proofHex.leafPubkey);
60
+ const signature = (0, Streamable_js_1.hexToBytes)(proofHex.signature);
61
+ const mmrProofBytes = (0, Streamable_js_1.hexToBytes)(proofHex.mmrProof); // Already serialized
62
+ // Serialize SignatureProof with pre-serialized MMR bytes
63
+ parts.push(serializeSignatureProofFromBytes(publicKey, signature, mmrProofBytes));
64
+ }
65
+ return (0, Streamable_js_1.concat)(...parts);
66
+ }
67
+ /**
68
+ * @deprecated (2026-01) This function's output is NOT used in the main Totem transaction flow.
69
+ * MinimaTransactionBuilder.serializeWitness in the extension handles actual witness serialization.
70
+ * Kept for API compatibility and potential future direct SDK usage.
71
+ *
72
+ * Serialize hierarchical witness bundle to hex string for transport
73
+ */
74
+ function serializeHierarchicalWitnessToHex(bundle) {
75
+ const bytes = serializeHierarchicalWitness(bundle);
76
+ return (0, Streamable_js_1.bytesToHex)(bytes);
77
+ }
@@ -0,0 +1,157 @@
1
+ export declare function serializeMMRProof(proof: {
2
+ chunks: Array<{
3
+ isLeft: boolean;
4
+ mmrData: {
5
+ data: Bytes;
6
+ value: bigint;
7
+ };
8
+ }>;
9
+ }, blockTime?: bigint): Bytes;
10
+ export declare const serializeRealMMRProof: typeof serializeMMRProof;
11
+ export type Bytes = Uint8Array;
12
+ /**
13
+ * Byte-exact one-leaf MMR leaf used by Minima Address.java path:
14
+ * sha3( MiniNumber.ZERO || MiniString(script) || MiniNumber.ZERO )
15
+ */
16
+ export declare function mmrLeafExact(script: string): Bytes;
17
+ /** In a single-leaf MMR the root equals the leaf commitment. */
18
+ export declare function mmrRootFromSingleLeaf(script: string): Bytes;
19
+ /**
20
+ * MMRData structure matching Minima's MMRData.java
21
+ * Contains hash and value (for sum tree functionality)
22
+ */
23
+ export interface MMRData {
24
+ data: Bytes;
25
+ value: bigint;
26
+ }
27
+ /**
28
+ * MMREntry structure matching Minima's MMREntry.java
29
+ * Represents a node in the MMR at a specific row and position
30
+ */
31
+ export interface MMREntry {
32
+ row: number;
33
+ entryNumber: bigint;
34
+ mmrData: MMRData;
35
+ }
36
+ /**
37
+ * MMRProofChunk - one step in the proof path
38
+ * Matches Minima's MMRProof structure
39
+ */
40
+ export interface MMRProofChunk {
41
+ isLeft: boolean;
42
+ mmrData: MMRData;
43
+ }
44
+ /**
45
+ * MMRProof structure matching Minima's MMRProof.java
46
+ * Contains proof chunks to verify leaf membership in the tree
47
+ */
48
+ export interface MMRProof {
49
+ chunks: MMRProofChunk[];
50
+ }
51
+ /**
52
+ * Create MMRData leaf node matching Minima's MMRData.CreateMMRDataLeafNode
53
+ *
54
+ * From MMRData.java:
55
+ * MiniData hash = Crypto.getInstance().hashAllObjects(MiniNumber.ZERO, zData, zSumValue);
56
+ *
57
+ * CRITICAL: Crypto.hashAllObjects uses writeDataStream for Streamables:
58
+ * - MiniNumber: scale + len + data (see serializeMiniNumber)
59
+ * - MiniData: 4-byte length + data (see serializeMiniData)
60
+ *
61
+ * For TreeKeyNode, zData is the Winternitz public key (MiniData) and zSumValue is ZERO
62
+ *
63
+ * Serialization order:
64
+ * 1. MiniNumber.ZERO: [0x00, 0x01, 0x00]
65
+ * 2. MiniData (pubkey): [4-byte length] + [bytes] (writeDataStream, NOT writeHashToStream)
66
+ * 3. MiniNumber.ZERO: [0x00, 0x01, 0x00]
67
+ */
68
+ export declare function createMMRDataLeafNode(pubkey: Bytes, sumValue?: bigint): MMRData;
69
+ /**
70
+ * Create MMRData parent node matching Minima's MMRData.CreateMMRDataParentNode
71
+ *
72
+ * From MMRData.java:
73
+ * MiniNumber sumvalue = zLeft.getValue().add(zRight.getValue());
74
+ * MiniData combinedhash = Crypto.getInstance().hashAllObjects(
75
+ * MiniNumber.ONE, zLeft.getData(), zRight.getData(), sumvalue);
76
+ *
77
+ * CRITICAL: The getData() returns MiniData (the hash), which is serialized
78
+ * with writeDataStream (4-byte length) in hashAllObjects.
79
+ *
80
+ * Serialization order:
81
+ * 1. MiniNumber.ONE: [0x00, 0x01, 0x01]
82
+ * 2. MiniData (left.data): [4-byte length] + [bytes]
83
+ * 3. MiniData (right.data): [4-byte length] + [bytes]
84
+ * 4. MiniNumber (sumvalue): serialized MiniNumber
85
+ */
86
+ export declare function createMMRDataParentNode(left: MMRData, right: MMRData): MMRData;
87
+ /**
88
+ * Simple MMR Tree for TreeKeyNode
89
+ * Builds a perfect binary tree from N entries (N must be power of 2 for simplicity)
90
+ *
91
+ * This matches TreeKeyNode.java which always uses 64 leaves (2^6)
92
+ */
93
+ export declare class MMRTree {
94
+ private entries;
95
+ private leafCount;
96
+ private maxRow;
97
+ private getKey;
98
+ private setEntry;
99
+ private getEntry;
100
+ /**
101
+ * Add a leaf entry to the MMR
102
+ * Matches MMR.java addEntry() but simplified for power-of-2 trees
103
+ */
104
+ addLeaf(data: MMRData): MMREntry;
105
+ /**
106
+ * Build tree from array of Winternitz public keys
107
+ * Used by TreeKeyNode to compute wallet public key
108
+ */
109
+ static fromPublicKeys(pubkeys: Bytes[]): MMRTree;
110
+ /**
111
+ * Get the root of the tree
112
+ * For a perfect binary tree with N leaves, root is at row log2(N), entry 0
113
+ */
114
+ getRoot(): MMRData | null;
115
+ /**
116
+ * Get proof for a leaf at given index
117
+ * Matches MMR.java getProofToPeak()
118
+ */
119
+ getProof(leafIndex: number): MMRProof;
120
+ /**
121
+ * Get the leaf MMRData at a specific index
122
+ */
123
+ getLeaf(index: number): MMRData | null;
124
+ }
125
+ /**
126
+ * Calculate root from leaf data and proof
127
+ * Matches SignatureProof.getRootPublicKey() in Java
128
+ *
129
+ * From SignatureProof.java:
130
+ * MMRData pubentry = MMRData.CreateMMRDataLeafNode(mPublicKey, MiniNumber.ZERO);
131
+ * return mProof.calculateProof(pubentry).getData();
132
+ */
133
+ export declare function calculateProofRoot(leafData: MMRData, proof: MMRProof): Bytes;
134
+ /**
135
+ * Verify a proof: check that leaf + proof computes to expected root
136
+ */
137
+ export declare function verifyMMRProof(leafPubkey: Bytes, proof: MMRProof, expectedRoot: Bytes): boolean;
138
+ /**
139
+ * Deserialize MMRProof from bytes matching Minima's MMRProof.readDataStream()
140
+ *
141
+ * Format:
142
+ * 1. blockTime (MiniNumber)
143
+ * 2. chain length (MiniNumber)
144
+ * 3. Each chunk: isLeft (1 byte) + MMRData (hash with 4-byte length prefix + value MiniNumber)
145
+ *
146
+ * CRITICAL: Java MMRData.readDataStream uses mData.readHashFromStream() which reads
147
+ * a 4-byte big-endian length prefix followed by the hash bytes.
148
+ *
149
+ * @returns { proof: MMRProof, blockTime: bigint }
150
+ */
151
+ export declare function parseMMRProofFromHex(data: Bytes): {
152
+ proof: MMRProof;
153
+ blockTime: bigint;
154
+ bytesRead: number;
155
+ };
156
+ /** @deprecated Use parseMMRProofFromHex */
157
+ export declare const deserializeMMRProof: typeof parseMMRProofFromHex;