@totemsdk/core 1.1.0 → 1.2.1

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/legacy.js ADDED
@@ -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; } });
package/dist/minima32.js CHANGED
@@ -48,7 +48,7 @@ function decodeMxRadix32Frame(mx) {
48
48
  }
49
49
  return bigIntToBytes(x);
50
50
  }
51
- const sha3_js_1 = require("@noble/hashes/sha3.js");
51
+ const wasm_sync_js_1 = require("./wasm-sync.js");
52
52
  /** Encode raw 32 bytes to Mx address with frame and checksum */
53
53
  function makeMxAddress(root32) {
54
54
  if (root32.length !== 32) {
@@ -61,7 +61,7 @@ function makeMxAddress(root32) {
61
61
  frame[2] = 32; // Length low byte
62
62
  frame.set(root32, 3);
63
63
  // Calculate checksum of the raw 32 bytes
64
- const chk = (0, sha3_js_1.sha3_256)(root32);
64
+ const chk = (0, wasm_sync_js_1.sha3_256)(root32);
65
65
  frame.set(chk.slice(0, 4), 35);
66
66
  return encodeMxRadix32Frame(frame);
67
67
  }
@@ -79,7 +79,7 @@ function parseMxAddress(mx) {
79
79
  const root32 = frame.slice(3, 35);
80
80
  const checksum = frame.slice(35, 39);
81
81
  // Validate checksum
82
- const expectedChk = (0, sha3_js_1.sha3_256)(root32);
82
+ const expectedChk = (0, wasm_sync_js_1.sha3_256)(root32);
83
83
  const expected = expectedChk.slice(0, 4);
84
84
  for (let i = 0; i < 4; i++) {
85
85
  if (checksum[i] !== expected[i]) {
package/dist/mmr.js CHANGED
@@ -11,7 +11,7 @@ exports.verifyMMRProof = verifyMMRProof;
11
11
  exports.parseMMRProofFromHex = parseMMRProofFromHex;
12
12
  // packages/totem-sdk/packages/core/src/mmr.ts
13
13
  // Full MMR implementation matching Minima's MMR.java, MMRData.java, and TreeKeyNode.java
14
- const sha3_js_1 = require("@noble/hashes/sha3.js");
14
+ const wasm_sync_js_1 = require("./wasm-sync.js");
15
15
  const javaStreamables_js_1 = require("./javaStreamables.js");
16
16
  // Import canonical wire serialization from Streamable.ts (single source of truth)
17
17
  const Streamable_js_1 = require("./Streamable.js");
@@ -31,7 +31,7 @@ function serializeMMRProof(proof, blockTime = 0n) {
31
31
  exports.serializeRealMMRProof = serializeMMRProof;
32
32
  /** SHA3-256 helper returning 32 bytes */
33
33
  function sha3(data) {
34
- return (0, sha3_js_1.sha3_256)(data);
34
+ return (0, wasm_sync_js_1.sha3_256)(data);
35
35
  }
36
36
  /** concat utility */
37
37
  function concat(...parts) {
@@ -16,9 +16,11 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.StatefulGameHelper = exports.SlowCashHelper = exports.FlashCashHelper = exports.VaultHelper = exports.ExchangeHelper = exports.MASTHelper = exports.HTLCHelper = exports.TimelockHelper = void 0;
19
- const sha3_js_1 = require("@noble/hashes/sha3.js");
20
- const sha2_js_1 = require("@noble/hashes/sha2.js");
21
- const utils_js_1 = require("@noble/hashes/utils.js");
19
+ const wasm_sync_js_1 = require("../wasm-sync.js");
20
+ const node_crypto_1 = require("node:crypto");
21
+ function sha256(data) {
22
+ return new Uint8Array((0, node_crypto_1.createHash)('sha256').update(data).digest());
23
+ }
22
24
  const types_js_1 = require("./types.js");
23
25
  function kissHex(hex) {
24
26
  const raw = hex.startsWith('0x') || hex.startsWith('0X') ? hex.slice(2) : hex;
@@ -81,9 +83,9 @@ class HTLCHelper {
81
83
  * Generate a random preimage and its hash.
82
84
  */
83
85
  static generateSecret() {
84
- const preimageBytes = (0, utils_js_1.randomBytes)(32);
86
+ const preimageBytes = (0, node_crypto_1.randomBytes)(32);
85
87
  const preimage = bytesToHex(preimageBytes);
86
- const hashBytes = (0, sha3_js_1.sha3_256)(preimageBytes);
88
+ const hashBytes = (0, wasm_sync_js_1.sha3_256)(preimageBytes);
87
89
  const hash = bytesToHex(hashBytes);
88
90
  return { preimage, hash };
89
91
  }
@@ -93,11 +95,11 @@ class HTLCHelper {
93
95
  static hashPreimage(preimage, algorithm = 'sha3') {
94
96
  const preimageBytes = hexToBytes(preimage);
95
97
  if (algorithm === 'sha2') {
96
- const hashBytes = (0, sha2_js_1.sha256)(preimageBytes);
98
+ const hashBytes = sha256(preimageBytes);
97
99
  return bytesToHex(hashBytes);
98
100
  }
99
101
  else {
100
- const hashBytes = (0, sha3_js_1.sha3_256)(preimageBytes);
102
+ const hashBytes = (0, wasm_sync_js_1.sha3_256)(preimageBytes);
101
103
  return bytesToHex(hashBytes);
102
104
  }
103
105
  }
@@ -146,7 +148,7 @@ class MASTHelper {
146
148
  */
147
149
  static hashScript(script) {
148
150
  const scriptBytes = new TextEncoder().encode(script.trim().toUpperCase());
149
- const hashBytes = (0, sha3_js_1.sha3_256)(scriptBytes);
151
+ const hashBytes = (0, wasm_sync_js_1.sha3_256)(scriptBytes);
150
152
  return bytesToHex(hashBytes);
151
153
  }
152
154
  /**
@@ -177,7 +179,7 @@ class MASTHelper {
177
179
  proofs.set(scripts[i], { proof: proofHex, index: i });
178
180
  }
179
181
  const combinedBytes = hexToBytes(hashes[0].slice(2) + hashes[1].slice(2));
180
- const rootBytes = (0, sha3_js_1.sha3_256)(combinedBytes);
182
+ const rootBytes = (0, wasm_sync_js_1.sha3_256)(combinedBytes);
181
183
  const root = bytesToHex(rootBytes);
182
184
  return { root, proofs };
183
185
  }
@@ -390,7 +392,7 @@ exports.StatefulGameHelper = StatefulGameHelper;
390
392
  function computeScriptAddress(script) {
391
393
  const cleanScript = script.trim().toUpperCase();
392
394
  const scriptBytes = new TextEncoder().encode(cleanScript);
393
- const hashBytes = (0, sha3_js_1.sha3_256)(scriptBytes);
395
+ const hashBytes = (0, wasm_sync_js_1.sha3_256)(scriptBytes);
394
396
  return bytesToHex(hashBytes);
395
397
  }
396
398
  function encodeSimpleProof(siblingHash, isLeft) {
@@ -17,7 +17,7 @@ exports.aggregateSignatures = aggregateSignatures;
17
17
  exports.validateExternalSignature = validateExternalSignature;
18
18
  exports.computeScriptAddress = computeScriptAddress;
19
19
  exports.concat = concat;
20
- const sha3_js_1 = require("@noble/hashes/sha3.js");
20
+ const wasm_sync_js_1 = require("../wasm-sync.js");
21
21
  const mmr_js_1 = require("../mmr.js");
22
22
  const minima32_js_1 = require("../minima32.js");
23
23
  function hexToBytes(hex) {
@@ -301,6 +301,6 @@ function validateExternalSignature(signature, transactionDigest) {
301
301
  function computeScriptAddress(script) {
302
302
  const cleanScript = script.trim().toUpperCase();
303
303
  const scriptBytes = new TextEncoder().encode(cleanScript);
304
- const hashBytes = (0, sha3_js_1.sha3_256)(scriptBytes);
304
+ const hashBytes = (0, wasm_sync_js_1.sha3_256)(scriptBytes);
305
305
  return bytesToHex(hashBytes);
306
306
  }
@@ -19,7 +19,7 @@ exports.computeTransactionDigest = computeTransactionDigest;
19
19
  exports.precomputeTransactionCoinID = precomputeTransactionCoinID;
20
20
  exports.createDefaultTransaction = createDefaultTransaction;
21
21
  exports.buildMinimaCoin = buildMinimaCoin;
22
- const sha3_js_1 = require("@noble/hashes/sha3.js");
22
+ const wasm_sync_js_1 = require("./wasm-sync.js");
23
23
  const Streamable_js_1 = require("./Streamable.js");
24
24
  const ZERO_TXPOWID = new Uint8Array([0x00]);
25
25
  const STATETYPE_HEX = 1;
@@ -231,7 +231,7 @@ function serializeTransaction(tx) {
231
231
  }
232
232
  function computeTransactionDigest(tx) {
233
233
  const serialized = serializeTransaction(tx);
234
- return (0, sha3_js_1.sha3_256)(serialized);
234
+ return (0, wasm_sync_js_1.sha3_256)(serialized);
235
235
  }
236
236
  function precomputeTransactionCoinID(tx) {
237
237
  if (tx.inputs.length === 0)
@@ -245,7 +245,7 @@ function precomputeTransactionCoinID(tx) {
245
245
  const baseCoinIdStream = (0, Streamable_js_1.writeMiniData)(baseCoinId);
246
246
  const outputIndexStream = (0, Streamable_js_1.writeMiniNumber)(BigInt(i));
247
247
  const combined = (0, Streamable_js_1.concat)(baseCoinIdStream, outputIndexStream);
248
- tx.outputs[i].coinId = (0, sha3_js_1.sha3_256)(combined);
248
+ tx.outputs[i].coinId = (0, wasm_sync_js_1.sha3_256)(combined);
249
249
  }
250
250
  }
251
251
  function createDefaultTransaction() {
package/dist/verify.js CHANGED
@@ -9,7 +9,7 @@ exports.verifySignature = verifySignature;
9
9
  exports.verifySignatureDetailed = verifySignatureDetailed;
10
10
  exports.createChallenge = createChallenge;
11
11
  exports.validateChallenge = validateChallenge;
12
- const sha3_js_1 = require("@noble/hashes/sha3.js");
12
+ const wasm_sync_js_1 = require("./wasm-sync.js");
13
13
  const treekey_js_1 = require("./treekey.js");
14
14
  const derive_js_1 = require("./derive.js");
15
15
  const script_js_1 = require("./script.js");
@@ -107,7 +107,7 @@ function verifySignatureDetailed(address, message, signatureHex, publicKeyHex) {
107
107
  error: `Malformed signature: ${e.message}`,
108
108
  };
109
109
  }
110
- const digest = (0, sha3_js_1.sha3_256)(new TextEncoder().encode(message));
110
+ const digest = (0, wasm_sync_js_1.sha3_256)(new TextEncoder().encode(message));
111
111
  return verifyTreeSignatureDetailed(pkBytes, digest, treeSignature);
112
112
  }
113
113
  catch (e) {
@@ -145,7 +145,7 @@ function cryptoRandomBytes(length) {
145
145
  }
146
146
  function createChallenge(domain, nonce) {
147
147
  const ts = Date.now();
148
- const n = nonce || bytesToHex((0, sha3_js_1.sha3_256)(new Uint8Array([...new TextEncoder().encode(`${domain}:${ts}:`), ...cryptoRandomBytes(16)]))).slice(0, 16);
148
+ const n = nonce || bytesToHex((0, wasm_sync_js_1.sha3_256)(new Uint8Array([...new TextEncoder().encode(`${domain}:${ts}:`), ...cryptoRandomBytes(16)]))).slice(0, 16);
149
149
  return JSON.stringify({ domain, nonce: n, issuedAt: ts });
150
150
  }
151
151
  function validateChallenge(challenge, options) {
@@ -0,0 +1,54 @@
1
+ /**
2
+ * WASM Bridge — thin TypeScript wrappers around @totemsdk/core-wasm.
3
+ *
4
+ * This module provides the same public API as the legacy JS implementations
5
+ * but delegates to Rust/WASM for all cryptographic operations.
6
+ *
7
+ * The legacy JS implementations remain available via:
8
+ * import { ... } from '@totemsdk/core/legacy';
9
+ */
10
+ import type { WotsKeypair } from '../types.js';
11
+ export declare function getParams(): Promise<{
12
+ w: number;
13
+ n: number;
14
+ L: number;
15
+ maxDigit: number;
16
+ maxSignatures: number;
17
+ signatureLevels: number;
18
+ addressPrefix: string;
19
+ }>;
20
+ export declare function sha3_256(data: Uint8Array): Promise<Uint8Array>;
21
+ export declare function expandPrivateKey(seed: Uint8Array): Promise<Uint8Array[]>;
22
+ export declare function hashChain(x: Uint8Array, rounds: number): Promise<Uint8Array>;
23
+ export declare function derivePKdigest(seed: Uint8Array, keyIndex: number): Promise<Uint8Array>;
24
+ export declare function deriveFullPublicKey(seed: Uint8Array, keyIndex: number): Promise<Uint8Array>;
25
+ export declare function wotsSign(seed: Uint8Array, keyIndex: number, message: Uint8Array): Promise<Uint8Array>;
26
+ export declare function wotsVerify(sig: Uint8Array, message: Uint8Array, pkFull: Uint8Array): Promise<boolean>;
27
+ export declare function wotsVerifyDigest(sig: Uint8Array, message: Uint8Array, pkDigest: Uint8Array): Promise<boolean>;
28
+ export declare function wotsPkFromSig(message: Uint8Array, signature: Uint8Array): Promise<Uint8Array>;
29
+ export declare function wotsPublicKeyFromSeed(seed: Uint8Array, keyIndex?: number): Promise<Uint8Array>;
30
+ export declare function wotsKeypairFromSeed(seed: Uint8Array, index: number): Promise<WotsKeypair>;
31
+ export declare function deriveChainSeedJava(seed: Uint8Array, keyIndex: number): Promise<Uint8Array>;
32
+ export declare function derivePerAddressSeed(rootSeed: Uint8Array, addressIndex: number): Promise<Uint8Array>;
33
+ export declare function deriveRootPrivSeed(bip39Seed: Uint8Array): Promise<Uint8Array>;
34
+ export declare function phraseToSeed(phrase: string): Promise<Uint8Array>;
35
+ export declare function generateWordList(): Promise<string>;
36
+ export declare function validatePhrase(phrase: string): Promise<boolean>;
37
+ export declare function cleanSeedPhrase(phrase: string): Promise<string>;
38
+ export declare function makeMxAddress(root32: Uint8Array): Promise<string>;
39
+ export declare function parseMxAddress(address: string): Promise<Uint8Array>;
40
+ export declare function wotsAddressFromKeypair(seed: Uint8Array, keyIndex: number): Promise<string>;
41
+ export declare function serializeTransaction(tx: any): Promise<Uint8Array>;
42
+ export declare function computeTransactionDigest(serializedTx: Uint8Array): Promise<Uint8Array>;
43
+ export declare function precomputeTransactionCoinID(txid: Uint8Array, outputIndex: number): Promise<Uint8Array>;
44
+ export declare function verifyTreeSignature(rootPublicKey: Uint8Array, message: Uint8Array, signature: any): Promise<boolean>;
45
+ export declare function timingSafeEqual(a: Uint8Array, b: Uint8Array): Promise<boolean>;
46
+ export declare function createChallenge(domain: string, statement: string): Promise<string>;
47
+ export declare function validateChallenge(challengeJson: string, domain: string): Promise<boolean>;
48
+ export declare function writeMiniNumber(value: number, scale?: number): Promise<Uint8Array>;
49
+ export declare function writeMiniData(data: Uint8Array): Promise<Uint8Array>;
50
+ export declare function writeMiniString(s: string): Promise<Uint8Array>;
51
+ export declare function bytesToHex(bytes: Uint8Array): Promise<string>;
52
+ export declare function hexToBytes(hexStr: string): Promise<Uint8Array>;
53
+ export declare function concatBytes(...arrays: Uint8Array[]): Promise<Uint8Array>;
54
+ export { getParams as getParamSet } from './wasm-bridge.js';