@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/README.md CHANGED
@@ -81,10 +81,24 @@ const { valid, error } = validateChallenge(challenge, {
81
81
  });
82
82
  ```
83
83
 
84
+ ## Upstream Java source
85
+
86
+ This package is a TypeScript port of core Minima Java cryptographic and data structures. Canonical upstream references:
87
+
88
+ - [`objects/keys/Winternitz.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/keys/Winternitz.java) — WOTS signing/verification
89
+ - [`objects/keys/TreeKey.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/keys/TreeKey.java) — hierarchical signing tree
90
+ - [`objects/keys/TreeKeyNode.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/keys/TreeKeyNode.java) — tree node internals
91
+ - [`database/wallet/Wallet.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/database/wallet/Wallet.java) — key derivation (`modifier = BigInteger(numkeys)` → SHA3 → TreeKey)
92
+ - [`utils/Streamable.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/utils/Streamable.java) — byte-exact serialization interface
93
+ - [`objects/Coin.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/Coin.java) — UTXO structure
94
+ - [`objects/Transaction.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/Transaction.java) — transaction structure
95
+ - [`objects/Token.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/Token.java) — token metadata
96
+ - [`objects/mmr/MMR.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/mmr/MMR.java) — Merkle Mountain Range
97
+ - [`objects/mmr/MMRProof.java`](https://github.com/spartacusrex-minima/minima-core/blob/main/src/org/minima/objects/mmr/MMRProof.java) — MMR proof structure
98
+
84
99
  ## See also
85
100
 
86
101
  - [`@totemsdk/connect`](https://www.npmjs.com/package/@totemsdk/connect) — dApp gateway built on top of core
87
- - [`@totemsdk/node`](https://www.npmjs.com/package/@totemsdk/node) — core wired for Node.js server-side use
88
102
  - [`@totemsdk/wots-lease`](https://www.npmjs.com/package/@totemsdk/wots-lease) — cloud-coordinated WOTS key safety
89
103
  - [`@totemsdk/tx-builder`](https://www.npmjs.com/package/@totemsdk/tx-builder) — full transaction construction
90
104
  - [`@totemsdk/root-identity`](https://www.npmjs.com/package/@totemsdk/root-identity) — multi-address identity from one seed
package/dist/bip39.js CHANGED
@@ -21,7 +21,7 @@ exports.convertWordListToSeed = convertWordListToSeed;
21
21
  exports.phraseToSeed = phraseToSeed;
22
22
  exports.generateWordList = generateWordList;
23
23
  exports.generateSeedPhrase = generateSeedPhrase;
24
- const sha3_js_1 = require("@noble/hashes/sha3.js");
24
+ const wasm_sync_js_1 = require("./wasm-sync.js");
25
25
  /**
26
26
  * Official BIP39 English word list (2048 words)
27
27
  * From https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
@@ -364,7 +364,7 @@ function validatePhrase(phrase) {
364
364
  function convertStringToSeed(phrase) {
365
365
  const encoder = new TextEncoder();
366
366
  const phraseBytes = encoder.encode(phrase);
367
- return (0, sha3_js_1.sha3_256)(phraseBytes);
367
+ return (0, wasm_sync_js_1.sha3_256)(phraseBytes);
368
368
  }
369
369
  /**
370
370
  * Convert word array to seed matching Minima's BIP39.convertWordListToSeed()
package/dist/index.d.ts CHANGED
@@ -1,25 +1,37 @@
1
1
  /**
2
2
  * @module @totemsdk/core
3
- * Core cryptographic primitives, adapters, and utilities for Minima blockchain
3
+ * Core cryptographic primitives, adapters, and utilities for Minima blockchain.
4
+ *
5
+ * Cryptographic primitives are backed by Rust/WASM (@totemsdk/core-wasm).
6
+ * Legacy JS implementations are available at @totemsdk/core/legacy.
4
7
  */
5
8
  export * from './version.js';
6
9
  export * from './adapters/index.js';
7
10
  export { LeaseStore, WatermarkStore, LeaseMonitor, prepareLease, finalizeLease, flatIndexFromLanes, type StoredLease, type LeaseStatus, type LeaseStoreConfig, type LeaseWotsIndices, type WatermarkState, type SyncResult, type WatermarkStoreConfig, type LeaseExpiryEvent, type LeaseExpiryCallback, type LeaseMonitorConfig, type PrepareArgs, type PrepareResp, } from './lease/index.js';
8
11
  export { TransactionService, TransactionLifecycle, TransactionLifecycleError, WatermarkExhaustedError, TransactionReceiptStore, type TransactionServiceConfig, type WotsSigningDependencies, type TransactionLifecycleConfig, type WatermarkSyncFunction, type PrepareResult, type TransactionReceiptStoreConfig, type PrepareRequest, type PrepareResponse, type SignRequest, type SignResult, type HierarchicalWitnessBundle, type WitnessBundle, type FinalizeRequest, type FinalizeResponse, type TransactionMetadata, type TransactionReceipt, type TransactionError, } from './tx/index.js';
9
12
  export type { WotsIndices } from './tx/index.js';
10
- export * from './utils.js';
11
- export { F, hex, fromHex, u16be, u32be, assert32, h, prfChainSeed, toWinternitzDigits, baseWWithChecksum, derivePKdigest, wotsKeypairFromSeed, wotsSign, wotsSignLegacy, wotsPkFromSig, wotsVerify, wotsVerifyDigest, wotsPublicKeyFromSeed, type WotsKeypair, type WotsSignature, } from './wots.js';
13
+ export { bytesToHex, hexToBytes, concatBytes } from './wasm-sync.js';
14
+ export { sha3_256 } from './wasm-sync.js';
15
+ export { expandPrivateKey, hashChain, derivePKdigest, deriveFullPublicKey, wotsSign, wotsVerify, wotsVerifyDigest, wotsPkFromSig, wotsPublicKeyFromSeed, wotsKeypairFromSeed, } from './wasm-sync.js';
12
16
  export * from './params.js';
13
- export { serializeMiniNumber, serializeMiniData, hashAllObjects, deriveChainSeedJava, deriveChildTreeSeedJava, hashObject, serializeMiniNumberZERO, serializeMiniNumberONE, writeHashToStream, javaHashAllObjects, indexToMiniDataBytes, derivePerAddressSeed, deriveRootPrivSeed, deriveUnifiedChildSeed, createMMREntryNumber, serializeMMREntryNumber, serializeMMRData, serializeMMREntry, precomputeTransactionCoinID, type MMREntryNumber as JavaMMREntryNumber, type MMRData as JavaMMRData, type MMREntry as JavaMMREntry, } from './javaStreamables.js';
14
- export { TreeKey, type KeyGenProgress, type ProgressCallback, TreeKeyNode, verifyTreeSignature, serializeTreeSignature, deserializeTreeSignature, getRootPublicKey, DEFAULT_KEYS_PER_LEVEL, DEFAULT_LEVELS, type SignatureProof, type TreeSignature, createUnifiedChildTreeKey, createUnifiedChildTreeKeyAsync, createUnifiedRootTreeKey, deriveUnifiedAddressPublicKey, createPerAddressTreeKey, createPerAddressTreeKeyAsync, } from './treekey.js';
15
- export { scriptFromWotsPk, wotsAddressFromKeypair } from './script.js';
16
- export * from './minima32.js';
17
+ export { deriveChainSeedJava, derivePerAddressSeed, deriveRootPrivSeed, writeMiniNumber, writeMiniData, writeMiniString, precomputeTransactionCoinID, } from './wasm-sync.js';
18
+ export { createUnifiedChildTreeKey, createUnifiedRootTreeKey, deriveUnifiedAddressPublicKey, verifyTreeSignature, mmrRootFromPublicKeys, verifyMMRProof, } from './wasm-sync.js';
19
+ export { phraseToSeed, generateWordList, validatePhrase, cleanSeedPhrase, } from './wasm-sync.js';
20
+ export { makeMxAddress, parseMxAddress, wotsAddressFromKeypair, } from './wasm-sync.js';
21
+ export { serializeTransaction, computeTransactionDigest, } from './wasm-sync.js';
22
+ export { timingSafeEqual, createChallenge, validateChallenge, } from './wasm-sync.js';
23
+ export { scriptFromWotsPk } from './script.js';
24
+ export { makeMxAddress as encodeMx, parseMxAddress as decodeMx } from './wasm-sync.js';
17
25
  export * from './mmr.js';
18
26
  export * from './scripts/index.js';
19
27
  export { scriptToAddress, addressToRoot } from './derive.js';
20
- export { WORD_LIST, cleanSeedPhrase, validatePhrase, convertStringToSeed, convertWordListToSeed, phraseToSeed, generateWordList, generateSeedPhrase, } from './bip39.js';
21
- export { type MinimaTransaction, type MinimaCoin, type ParsedMiniNumber, type MinimaToken, type StateVariable, type RawStateVariable, type CoinProofData, type SpendableCoinInput, type TransactionBuildResult, parseDecimalToMiniNumber, serializeCoin, serializeTransaction, computeTransactionDigest, precomputeTransactionCoinID as precomputeTransactionCoinIDTx, createDefaultTransaction, buildMinimaCoin, } from './transaction.js';
22
- export { verifySignature, verifySignatureDetailed, verifyTreeSignatureDetailed, deriveAddressFromPublicKey, normalizeHex, createChallenge, validateChallenge, type VerificationResult, } from './verify.js';
28
+ export { WORD_LIST, convertStringToSeed, convertWordListToSeed, generateSeedPhrase, } from './bip39.js';
29
+ export { type MinimaTransaction, type MinimaCoin, type ParsedMiniNumber, type MinimaToken, type StateVariable, type RawStateVariable, type CoinProofData, type SpendableCoinInput, type TransactionBuildResult, parseDecimalToMiniNumber, serializeCoin, createDefaultTransaction, buildMinimaCoin, } from './transaction.js';
30
+ export { verifySignature, verifySignatureDetailed, verifyTreeSignatureDetailed, deriveAddressFromPublicKey, normalizeHex, type VerificationResult, } from './verify.js';
31
+ export { writeMiniByte, writeMMREntryNumber, concat, bigIntToByteArray, type Bytes, } from './Streamable.js';
32
+ export { serializeMiniNumber, serializeMiniData, hashAllObjects, deriveChildTreeSeedJava, hashObject, serializeMiniNumberZERO, serializeMiniNumberONE, writeHashToStream, javaHashAllObjects, indexToMiniDataBytes, deriveUnifiedChildSeed, createMMREntryNumber, serializeMMREntryNumber, serializeMMRData, serializeMMREntry, type MMREntryNumber as JavaMMREntryNumber, type MMRData as JavaMMRData, type MMREntry as JavaMMREntry, } from './javaStreamables.js';
33
+ export { TreeKey, TreeKeyNode, serializeTreeSignature, deserializeTreeSignature, getRootPublicKey, DEFAULT_KEYS_PER_LEVEL, DEFAULT_LEVELS, createUnifiedChildTreeKeyAsync, createPerAddressTreeKey, createPerAddressTreeKeyAsync, type KeyGenProgress, type ProgressCallback, type SignatureProof, type TreeSignature, } from './treekey.js';
34
+ export type { WotsKeypair, WotsSignature } from './wots.js';
23
35
  export declare const MINIMA_CONSTANTS: {
24
36
  readonly WOTS_W: 8;
25
37
  readonly WOTS_N: 32;
@@ -28,4 +40,3 @@ export declare const MINIMA_CONSTANTS: {
28
40
  readonly ADDRESS_PREFIX: "Mx";
29
41
  readonly NETWORK_ID: 1;
30
42
  };
31
- export { writeMiniNumber, writeMiniData, writeMiniByte, writeMMREntryNumber, concat, hexToBytes, bytesToHex, bigIntToByteArray, writeMiniString, type Bytes, } from './Streamable.js';
package/dist/index.js CHANGED
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  /**
3
3
  * @module @totemsdk/core
4
- * Core cryptographic primitives, adapters, and utilities for Minima blockchain
4
+ * Core cryptographic primitives, adapters, and utilities for Minima blockchain.
5
+ *
6
+ * Cryptographic primitives are backed by Rust/WASM (@totemsdk/core-wasm).
7
+ * Legacy JS implementations are available at @totemsdk/core/legacy.
5
8
  */
6
9
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
10
  if (k2 === undefined) k2 = k;
@@ -18,8 +21,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
21
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
22
  };
20
23
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.TreeKeyNode = exports.TreeKey = exports.precomputeTransactionCoinID = exports.serializeMMREntry = exports.serializeMMRData = exports.serializeMMREntryNumber = exports.createMMREntryNumber = exports.deriveUnifiedChildSeed = exports.deriveRootPrivSeed = exports.derivePerAddressSeed = exports.indexToMiniDataBytes = exports.javaHashAllObjects = exports.writeHashToStream = exports.serializeMiniNumberONE = exports.serializeMiniNumberZERO = exports.hashObject = exports.deriveChildTreeSeedJava = exports.deriveChainSeedJava = exports.hashAllObjects = exports.serializeMiniData = exports.serializeMiniNumber = exports.wotsPublicKeyFromSeed = exports.wotsVerifyDigest = exports.wotsVerify = exports.wotsPkFromSig = exports.wotsSignLegacy = exports.wotsSign = exports.wotsKeypairFromSeed = exports.derivePKdigest = exports.baseWWithChecksum = exports.toWinternitzDigits = exports.prfChainSeed = exports.h = exports.assert32 = exports.u32be = exports.u16be = exports.fromHex = exports.hex = exports.F = exports.TransactionReceiptStore = exports.WatermarkExhaustedError = exports.TransactionLifecycleError = exports.TransactionLifecycle = exports.TransactionService = exports.flatIndexFromLanes = exports.finalizeLease = exports.prepareLease = exports.LeaseMonitor = exports.WatermarkStore = exports.LeaseStore = void 0;
22
- exports.writeMiniString = exports.bigIntToByteArray = exports.bytesToHex = exports.hexToBytes = exports.concat = exports.writeMMREntryNumber = exports.writeMiniByte = exports.writeMiniData = exports.writeMiniNumber = exports.MINIMA_CONSTANTS = exports.validateChallenge = exports.createChallenge = exports.normalizeHex = exports.deriveAddressFromPublicKey = exports.verifyTreeSignatureDetailed = exports.verifySignatureDetailed = exports.verifySignature = exports.buildMinimaCoin = exports.createDefaultTransaction = exports.precomputeTransactionCoinIDTx = exports.computeTransactionDigest = exports.serializeTransaction = exports.serializeCoin = exports.parseDecimalToMiniNumber = exports.generateSeedPhrase = exports.generateWordList = exports.phraseToSeed = exports.convertWordListToSeed = exports.convertStringToSeed = exports.validatePhrase = exports.cleanSeedPhrase = exports.WORD_LIST = exports.addressToRoot = exports.scriptToAddress = exports.wotsAddressFromKeypair = exports.scriptFromWotsPk = exports.createPerAddressTreeKeyAsync = exports.createPerAddressTreeKey = exports.deriveUnifiedAddressPublicKey = exports.createUnifiedRootTreeKey = exports.createUnifiedChildTreeKeyAsync = exports.createUnifiedChildTreeKey = exports.DEFAULT_LEVELS = exports.DEFAULT_KEYS_PER_LEVEL = exports.getRootPublicKey = exports.deserializeTreeSignature = exports.serializeTreeSignature = exports.verifyTreeSignature = void 0;
24
+ exports.validateChallenge = exports.createChallenge = exports.timingSafeEqual = exports.computeTransactionDigest = exports.serializeTransaction = exports.wotsAddressFromKeypair = exports.parseMxAddress = exports.makeMxAddress = exports.cleanSeedPhrase = exports.validatePhrase = exports.generateWordList = exports.phraseToSeed = exports.verifyMMRProof = exports.mmrRootFromPublicKeys = exports.verifyTreeSignature = exports.deriveUnifiedAddressPublicKey = exports.createUnifiedRootTreeKey = exports.createUnifiedChildTreeKey = exports.precomputeTransactionCoinID = exports.writeMiniString = exports.writeMiniData = exports.writeMiniNumber = exports.deriveRootPrivSeed = exports.derivePerAddressSeed = exports.deriveChainSeedJava = exports.wotsKeypairFromSeed = exports.wotsPublicKeyFromSeed = exports.wotsPkFromSig = exports.wotsVerifyDigest = exports.wotsVerify = exports.wotsSign = exports.deriveFullPublicKey = exports.derivePKdigest = exports.hashChain = exports.expandPrivateKey = exports.sha3_256 = exports.concatBytes = exports.hexToBytes = exports.bytesToHex = exports.TransactionReceiptStore = exports.WatermarkExhaustedError = exports.TransactionLifecycleError = exports.TransactionLifecycle = exports.TransactionService = exports.flatIndexFromLanes = exports.finalizeLease = exports.prepareLease = exports.LeaseMonitor = exports.WatermarkStore = exports.LeaseStore = void 0;
25
+ exports.MINIMA_CONSTANTS = exports.createPerAddressTreeKeyAsync = exports.createPerAddressTreeKey = exports.createUnifiedChildTreeKeyAsync = exports.DEFAULT_LEVELS = exports.DEFAULT_KEYS_PER_LEVEL = exports.getRootPublicKey = exports.deserializeTreeSignature = exports.serializeTreeSignature = exports.TreeKeyNode = exports.TreeKey = exports.serializeMMREntry = exports.serializeMMRData = exports.serializeMMREntryNumber = exports.createMMREntryNumber = exports.deriveUnifiedChildSeed = exports.indexToMiniDataBytes = exports.javaHashAllObjects = exports.writeHashToStream = exports.serializeMiniNumberONE = exports.serializeMiniNumberZERO = exports.hashObject = exports.deriveChildTreeSeedJava = exports.hashAllObjects = exports.serializeMiniData = exports.serializeMiniNumber = exports.bigIntToByteArray = exports.concat = exports.writeMMREntryNumber = exports.writeMiniByte = exports.normalizeHex = exports.deriveAddressFromPublicKey = exports.verifyTreeSignatureDetailed = exports.verifySignatureDetailed = exports.verifySignature = exports.buildMinimaCoin = exports.createDefaultTransaction = exports.serializeCoin = exports.parseDecimalToMiniNumber = exports.generateSeedPhrase = exports.convertWordListToSeed = exports.convertStringToSeed = exports.WORD_LIST = exports.addressToRoot = exports.scriptToAddress = exports.decodeMx = exports.encodeMx = exports.scriptFromWotsPk = void 0;
23
26
  // Version information for bundle duplication detection
24
27
  __exportStar(require("./version.js"), exports);
25
28
  // Platform-agnostic Adapters (SDK Upgrade)
@@ -39,79 +42,79 @@ Object.defineProperty(exports, "TransactionLifecycle", { enumerable: true, get:
39
42
  Object.defineProperty(exports, "TransactionLifecycleError", { enumerable: true, get: function () { return index_js_2.TransactionLifecycleError; } });
40
43
  Object.defineProperty(exports, "WatermarkExhaustedError", { enumerable: true, get: function () { return index_js_2.WatermarkExhaustedError; } });
41
44
  Object.defineProperty(exports, "TransactionReceiptStore", { enumerable: true, get: function () { return index_js_2.TransactionReceiptStore; } });
42
- // Utilities first (canonical concatBytes source)
43
- __exportStar(require("./utils.js"), exports);
44
- // WOTS Signatures - wots.concatBytes is intentionally shadowed by utils.concatBytes above
45
- var wots_js_1 = require("./wots.js");
46
- Object.defineProperty(exports, "F", { enumerable: true, get: function () { return wots_js_1.F; } });
47
- Object.defineProperty(exports, "hex", { enumerable: true, get: function () { return wots_js_1.hex; } });
48
- Object.defineProperty(exports, "fromHex", { enumerable: true, get: function () { return wots_js_1.fromHex; } });
49
- Object.defineProperty(exports, "u16be", { enumerable: true, get: function () { return wots_js_1.u16be; } });
50
- Object.defineProperty(exports, "u32be", { enumerable: true, get: function () { return wots_js_1.u32be; } });
51
- Object.defineProperty(exports, "assert32", { enumerable: true, get: function () { return wots_js_1.assert32; } });
52
- Object.defineProperty(exports, "h", { enumerable: true, get: function () { return wots_js_1.h; } });
53
- Object.defineProperty(exports, "prfChainSeed", { enumerable: true, get: function () { return wots_js_1.prfChainSeed; } });
54
- Object.defineProperty(exports, "toWinternitzDigits", { enumerable: true, get: function () { return wots_js_1.toWinternitzDigits; } });
55
- Object.defineProperty(exports, "baseWWithChecksum", { enumerable: true, get: function () { return wots_js_1.baseWWithChecksum; } });
56
- Object.defineProperty(exports, "derivePKdigest", { enumerable: true, get: function () { return wots_js_1.derivePKdigest; } });
57
- Object.defineProperty(exports, "wotsKeypairFromSeed", { enumerable: true, get: function () { return wots_js_1.wotsKeypairFromSeed; } });
58
- Object.defineProperty(exports, "wotsSign", { enumerable: true, get: function () { return wots_js_1.wotsSign; } });
59
- Object.defineProperty(exports, "wotsSignLegacy", { enumerable: true, get: function () { return wots_js_1.wotsSignLegacy; } });
60
- Object.defineProperty(exports, "wotsPkFromSig", { enumerable: true, get: function () { return wots_js_1.wotsPkFromSig; } });
61
- Object.defineProperty(exports, "wotsVerify", { enumerable: true, get: function () { return wots_js_1.wotsVerify; } });
62
- Object.defineProperty(exports, "wotsVerifyDigest", { enumerable: true, get: function () { return wots_js_1.wotsVerifyDigest; } });
63
- Object.defineProperty(exports, "wotsPublicKeyFromSeed", { enumerable: true, get: function () { return wots_js_1.wotsPublicKeyFromSeed; } });
64
- // WOTS Params (from params.ts, imported by wots.ts)
45
+ // ---------------------------------------------------------------------------
46
+ // Cryptographic primitives — backed by Rust/WASM (@totemsdk/core-wasm)
47
+ // ---------------------------------------------------------------------------
48
+ // Utilities
49
+ var wasm_sync_js_1 = require("./wasm-sync.js");
50
+ Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return wasm_sync_js_1.bytesToHex; } });
51
+ Object.defineProperty(exports, "hexToBytes", { enumerable: true, get: function () { return wasm_sync_js_1.hexToBytes; } });
52
+ Object.defineProperty(exports, "concatBytes", { enumerable: true, get: function () { return wasm_sync_js_1.concatBytes; } });
53
+ // SHA3-256
54
+ var wasm_sync_js_2 = require("./wasm-sync.js");
55
+ Object.defineProperty(exports, "sha3_256", { enumerable: true, get: function () { return wasm_sync_js_2.sha3_256; } });
56
+ // WOTS Signatures
57
+ var wasm_sync_js_3 = require("./wasm-sync.js");
58
+ Object.defineProperty(exports, "expandPrivateKey", { enumerable: true, get: function () { return wasm_sync_js_3.expandPrivateKey; } });
59
+ Object.defineProperty(exports, "hashChain", { enumerable: true, get: function () { return wasm_sync_js_3.hashChain; } });
60
+ Object.defineProperty(exports, "derivePKdigest", { enumerable: true, get: function () { return wasm_sync_js_3.derivePKdigest; } });
61
+ Object.defineProperty(exports, "deriveFullPublicKey", { enumerable: true, get: function () { return wasm_sync_js_3.deriveFullPublicKey; } });
62
+ Object.defineProperty(exports, "wotsSign", { enumerable: true, get: function () { return wasm_sync_js_3.wotsSign; } });
63
+ Object.defineProperty(exports, "wotsVerify", { enumerable: true, get: function () { return wasm_sync_js_3.wotsVerify; } });
64
+ Object.defineProperty(exports, "wotsVerifyDigest", { enumerable: true, get: function () { return wasm_sync_js_3.wotsVerifyDigest; } });
65
+ Object.defineProperty(exports, "wotsPkFromSig", { enumerable: true, get: function () { return wasm_sync_js_3.wotsPkFromSig; } });
66
+ Object.defineProperty(exports, "wotsPublicKeyFromSeed", { enumerable: true, get: function () { return wasm_sync_js_3.wotsPublicKeyFromSeed; } });
67
+ Object.defineProperty(exports, "wotsKeypairFromSeed", { enumerable: true, get: function () { return wasm_sync_js_3.wotsKeypairFromSeed; } });
68
+ // WOTS Params (from params.ts — constants, no crypto)
65
69
  __exportStar(require("./params.js"), exports);
66
- // Java-Compatible Serialization Helpers (for Minima-compatible seed derivation)
67
- var javaStreamables_js_1 = require("./javaStreamables.js");
68
- Object.defineProperty(exports, "serializeMiniNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumber; } });
69
- Object.defineProperty(exports, "serializeMiniData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniData; } });
70
- Object.defineProperty(exports, "hashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.hashAllObjects; } });
71
- Object.defineProperty(exports, "deriveChainSeedJava", { enumerable: true, get: function () { return javaStreamables_js_1.deriveChainSeedJava; } });
72
- Object.defineProperty(exports, "deriveChildTreeSeedJava", { enumerable: true, get: function () { return javaStreamables_js_1.deriveChildTreeSeedJava; } });
73
- Object.defineProperty(exports, "hashObject", { enumerable: true, get: function () { return javaStreamables_js_1.hashObject; } });
74
- Object.defineProperty(exports, "serializeMiniNumberZERO", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberZERO; } });
75
- Object.defineProperty(exports, "serializeMiniNumberONE", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberONE; } });
76
- Object.defineProperty(exports, "writeHashToStream", { enumerable: true, get: function () { return javaStreamables_js_1.writeHashToStream; } });
77
- Object.defineProperty(exports, "javaHashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.javaHashAllObjects; } });
78
- // Per-address key derivation (Minima Wallet.java compatible) - kept for migration detection
79
- Object.defineProperty(exports, "indexToMiniDataBytes", { enumerable: true, get: function () { return javaStreamables_js_1.indexToMiniDataBytes; } });
80
- Object.defineProperty(exports, "derivePerAddressSeed", { enumerable: true, get: function () { return javaStreamables_js_1.derivePerAddressSeed; } });
81
- // Unified hierarchical key derivation (2026-06)
82
- Object.defineProperty(exports, "deriveRootPrivSeed", { enumerable: true, get: function () { return javaStreamables_js_1.deriveRootPrivSeed; } });
83
- Object.defineProperty(exports, "deriveUnifiedChildSeed", { enumerable: true, get: function () { return javaStreamables_js_1.deriveUnifiedChildSeed; } });
84
- // MMREntryNumber and MMREntry serialization (2026-01-18)
85
- Object.defineProperty(exports, "createMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.createMMREntryNumber; } });
86
- Object.defineProperty(exports, "serializeMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntryNumber; } });
87
- Object.defineProperty(exports, "serializeMMRData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMRData; } });
88
- Object.defineProperty(exports, "serializeMMREntry", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntry; } });
89
- Object.defineProperty(exports, "precomputeTransactionCoinID", { enumerable: true, get: function () { return javaStreamables_js_1.precomputeTransactionCoinID; } });
90
- // TreeKey/TreeKeyNode - Hierarchical WOTS key tree matching Minima's TreeKey.java
91
- var treekey_js_1 = require("./treekey.js");
92
- Object.defineProperty(exports, "TreeKey", { enumerable: true, get: function () { return treekey_js_1.TreeKey; } });
93
- Object.defineProperty(exports, "TreeKeyNode", { enumerable: true, get: function () { return treekey_js_1.TreeKeyNode; } });
94
- Object.defineProperty(exports, "verifyTreeSignature", { enumerable: true, get: function () { return treekey_js_1.verifyTreeSignature; } });
95
- Object.defineProperty(exports, "serializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.serializeTreeSignature; } });
96
- Object.defineProperty(exports, "deserializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.deserializeTreeSignature; } });
97
- Object.defineProperty(exports, "getRootPublicKey", { enumerable: true, get: function () { return treekey_js_1.getRootPublicKey; } });
98
- Object.defineProperty(exports, "DEFAULT_KEYS_PER_LEVEL", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_KEYS_PER_LEVEL; } });
99
- Object.defineProperty(exports, "DEFAULT_LEVELS", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_LEVELS; } });
100
- // Unified hierarchical TreeKey factories (2026-06)
101
- Object.defineProperty(exports, "createUnifiedChildTreeKey", { enumerable: true, get: function () { return treekey_js_1.createUnifiedChildTreeKey; } });
102
- Object.defineProperty(exports, "createUnifiedChildTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createUnifiedChildTreeKeyAsync; } });
103
- Object.defineProperty(exports, "createUnifiedRootTreeKey", { enumerable: true, get: function () { return treekey_js_1.createUnifiedRootTreeKey; } });
104
- Object.defineProperty(exports, "deriveUnifiedAddressPublicKey", { enumerable: true, get: function () { return treekey_js_1.deriveUnifiedAddressPublicKey; } });
105
- // @deprecated — migrate to createUnifiedChildTreeKey
106
- Object.defineProperty(exports, "createPerAddressTreeKey", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKey; } });
107
- Object.defineProperty(exports, "createPerAddressTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKeyAsync; } });
70
+ // Java-Compatible Serialization
71
+ var wasm_sync_js_4 = require("./wasm-sync.js");
72
+ Object.defineProperty(exports, "deriveChainSeedJava", { enumerable: true, get: function () { return wasm_sync_js_4.deriveChainSeedJava; } });
73
+ Object.defineProperty(exports, "derivePerAddressSeed", { enumerable: true, get: function () { return wasm_sync_js_4.derivePerAddressSeed; } });
74
+ Object.defineProperty(exports, "deriveRootPrivSeed", { enumerable: true, get: function () { return wasm_sync_js_4.deriveRootPrivSeed; } });
75
+ Object.defineProperty(exports, "writeMiniNumber", { enumerable: true, get: function () { return wasm_sync_js_4.writeMiniNumber; } });
76
+ Object.defineProperty(exports, "writeMiniData", { enumerable: true, get: function () { return wasm_sync_js_4.writeMiniData; } });
77
+ Object.defineProperty(exports, "writeMiniString", { enumerable: true, get: function () { return wasm_sync_js_4.writeMiniString; } });
78
+ Object.defineProperty(exports, "precomputeTransactionCoinID", { enumerable: true, get: function () { return wasm_sync_js_4.precomputeTransactionCoinID; } });
79
+ // TreeKey/TreeKeyNode WASM-backed
80
+ var wasm_sync_js_5 = require("./wasm-sync.js");
81
+ Object.defineProperty(exports, "createUnifiedChildTreeKey", { enumerable: true, get: function () { return wasm_sync_js_5.createUnifiedChildTreeKey; } });
82
+ Object.defineProperty(exports, "createUnifiedRootTreeKey", { enumerable: true, get: function () { return wasm_sync_js_5.createUnifiedRootTreeKey; } });
83
+ Object.defineProperty(exports, "deriveUnifiedAddressPublicKey", { enumerable: true, get: function () { return wasm_sync_js_5.deriveUnifiedAddressPublicKey; } });
84
+ Object.defineProperty(exports, "verifyTreeSignature", { enumerable: true, get: function () { return wasm_sync_js_5.verifyTreeSignature; } });
85
+ Object.defineProperty(exports, "mmrRootFromPublicKeys", { enumerable: true, get: function () { return wasm_sync_js_5.mmrRootFromPublicKeys; } });
86
+ Object.defineProperty(exports, "verifyMMRProof", { enumerable: true, get: function () { return wasm_sync_js_5.verifyMMRProof; } });
87
+ // BIP39 Seed Phrase Handling
88
+ var wasm_sync_js_6 = require("./wasm-sync.js");
89
+ Object.defineProperty(exports, "phraseToSeed", { enumerable: true, get: function () { return wasm_sync_js_6.phraseToSeed; } });
90
+ Object.defineProperty(exports, "generateWordList", { enumerable: true, get: function () { return wasm_sync_js_6.generateWordList; } });
91
+ Object.defineProperty(exports, "validatePhrase", { enumerable: true, get: function () { return wasm_sync_js_6.validatePhrase; } });
92
+ Object.defineProperty(exports, "cleanSeedPhrase", { enumerable: true, get: function () { return wasm_sync_js_6.cleanSeedPhrase; } });
93
+ // Address Derivation
94
+ var wasm_sync_js_7 = require("./wasm-sync.js");
95
+ Object.defineProperty(exports, "makeMxAddress", { enumerable: true, get: function () { return wasm_sync_js_7.makeMxAddress; } });
96
+ Object.defineProperty(exports, "parseMxAddress", { enumerable: true, get: function () { return wasm_sync_js_7.parseMxAddress; } });
97
+ Object.defineProperty(exports, "wotsAddressFromKeypair", { enumerable: true, get: function () { return wasm_sync_js_7.wotsAddressFromKeypair; } });
98
+ // Transaction Serialization & Digest
99
+ var wasm_sync_js_8 = require("./wasm-sync.js");
100
+ Object.defineProperty(exports, "serializeTransaction", { enumerable: true, get: function () { return wasm_sync_js_8.serializeTransaction; } });
101
+ Object.defineProperty(exports, "computeTransactionDigest", { enumerable: true, get: function () { return wasm_sync_js_8.computeTransactionDigest; } });
102
+ // Verification
103
+ var wasm_sync_js_9 = require("./wasm-sync.js");
104
+ Object.defineProperty(exports, "timingSafeEqual", { enumerable: true, get: function () { return wasm_sync_js_9.timingSafeEqual; } });
105
+ Object.defineProperty(exports, "createChallenge", { enumerable: true, get: function () { return wasm_sync_js_9.createChallenge; } });
106
+ Object.defineProperty(exports, "validateChallenge", { enumerable: true, get: function () { return wasm_sync_js_9.validateChallenge; } });
107
+ // ---------------------------------------------------------------------------
108
+ // TypeScript-only modules (no crypto keep as-is)
109
+ // ---------------------------------------------------------------------------
108
110
  // Script helpers (for address derivation)
109
111
  var script_js_1 = require("./script.js");
110
112
  Object.defineProperty(exports, "scriptFromWotsPk", { enumerable: true, get: function () { return script_js_1.scriptFromWotsPk; } });
111
- Object.defineProperty(exports, "wotsAddressFromKeypair", { enumerable: true, get: function () { return script_js_1.wotsAddressFromKeypair; } });
112
- // Base32 Encoding (Minima-compatible)
113
- __exportStar(require("./minima32.js"), exports);
114
- // Merkle Mountain Range (original)
113
+ // Base32 Encoding (Minima-compatible) re-export from WASM
114
+ var wasm_sync_js_10 = require("./wasm-sync.js");
115
+ Object.defineProperty(exports, "encodeMx", { enumerable: true, get: function () { return wasm_sync_js_10.makeMxAddress; } });
116
+ Object.defineProperty(exports, "decodeMx", { enumerable: true, get: function () { return wasm_sync_js_10.parseMxAddress; } });
117
+ // Merkle Mountain Range (original JS — types and helpers)
115
118
  __exportStar(require("./mmr.js"), exports);
116
119
  // Script Types, Witness Serializer, Contract Helpers
117
120
  __exportStar(require("./scripts/index.js"), exports);
@@ -119,23 +122,16 @@ __exportStar(require("./scripts/index.js"), exports);
119
122
  var derive_js_1 = require("./derive.js");
120
123
  Object.defineProperty(exports, "scriptToAddress", { enumerable: true, get: function () { return derive_js_1.scriptToAddress; } });
121
124
  Object.defineProperty(exports, "addressToRoot", { enumerable: true, get: function () { return derive_js_1.addressToRoot; } });
122
- // BIP39 Seed Phrase Handling (Minima-compatible, NOT standard BIP39)
125
+ // BIP39 re-export word list and legacy helpers from JS
123
126
  var bip39_js_1 = require("./bip39.js");
124
127
  Object.defineProperty(exports, "WORD_LIST", { enumerable: true, get: function () { return bip39_js_1.WORD_LIST; } });
125
- Object.defineProperty(exports, "cleanSeedPhrase", { enumerable: true, get: function () { return bip39_js_1.cleanSeedPhrase; } });
126
- Object.defineProperty(exports, "validatePhrase", { enumerable: true, get: function () { return bip39_js_1.validatePhrase; } });
127
128
  Object.defineProperty(exports, "convertStringToSeed", { enumerable: true, get: function () { return bip39_js_1.convertStringToSeed; } });
128
129
  Object.defineProperty(exports, "convertWordListToSeed", { enumerable: true, get: function () { return bip39_js_1.convertWordListToSeed; } });
129
- Object.defineProperty(exports, "phraseToSeed", { enumerable: true, get: function () { return bip39_js_1.phraseToSeed; } });
130
- Object.defineProperty(exports, "generateWordList", { enumerable: true, get: function () { return bip39_js_1.generateWordList; } });
131
130
  Object.defineProperty(exports, "generateSeedPhrase", { enumerable: true, get: function () { return bip39_js_1.generateSeedPhrase; } });
132
- // Transaction Serialization & Digest (Java-compatible, extension parity)
131
+ // Transaction types (from JS)
133
132
  var transaction_js_1 = require("./transaction.js");
134
133
  Object.defineProperty(exports, "parseDecimalToMiniNumber", { enumerable: true, get: function () { return transaction_js_1.parseDecimalToMiniNumber; } });
135
134
  Object.defineProperty(exports, "serializeCoin", { enumerable: true, get: function () { return transaction_js_1.serializeCoin; } });
136
- Object.defineProperty(exports, "serializeTransaction", { enumerable: true, get: function () { return transaction_js_1.serializeTransaction; } });
137
- Object.defineProperty(exports, "computeTransactionDigest", { enumerable: true, get: function () { return transaction_js_1.computeTransactionDigest; } });
138
- Object.defineProperty(exports, "precomputeTransactionCoinIDTx", { enumerable: true, get: function () { return transaction_js_1.precomputeTransactionCoinID; } });
139
135
  Object.defineProperty(exports, "createDefaultTransaction", { enumerable: true, get: function () { return transaction_js_1.createDefaultTransaction; } });
140
136
  Object.defineProperty(exports, "buildMinimaCoin", { enumerable: true, get: function () { return transaction_js_1.buildMinimaCoin; } });
141
137
  // High-level Verification API (convenience functions for integrators)
@@ -145,8 +141,41 @@ Object.defineProperty(exports, "verifySignatureDetailed", { enumerable: true, ge
145
141
  Object.defineProperty(exports, "verifyTreeSignatureDetailed", { enumerable: true, get: function () { return verify_js_1.verifyTreeSignatureDetailed; } });
146
142
  Object.defineProperty(exports, "deriveAddressFromPublicKey", { enumerable: true, get: function () { return verify_js_1.deriveAddressFromPublicKey; } });
147
143
  Object.defineProperty(exports, "normalizeHex", { enumerable: true, get: function () { return verify_js_1.normalizeHex; } });
148
- Object.defineProperty(exports, "createChallenge", { enumerable: true, get: function () { return verify_js_1.createChallenge; } });
149
- Object.defineProperty(exports, "validateChallenge", { enumerable: true, get: function () { return verify_js_1.validateChallenge; } });
144
+ // Streamable primitives (low-level serialization building blocks)
145
+ var Streamable_js_1 = require("./Streamable.js");
146
+ Object.defineProperty(exports, "writeMiniByte", { enumerable: true, get: function () { return Streamable_js_1.writeMiniByte; } });
147
+ Object.defineProperty(exports, "writeMMREntryNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMMREntryNumber; } });
148
+ Object.defineProperty(exports, "concat", { enumerable: true, get: function () { return Streamable_js_1.concat; } });
149
+ Object.defineProperty(exports, "bigIntToByteArray", { enumerable: true, get: function () { return Streamable_js_1.bigIntToByteArray; } });
150
+ // Java-Compatible Serialization Helpers (non-crypto)
151
+ var javaStreamables_js_1 = require("./javaStreamables.js");
152
+ Object.defineProperty(exports, "serializeMiniNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumber; } });
153
+ Object.defineProperty(exports, "serializeMiniData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniData; } });
154
+ Object.defineProperty(exports, "hashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.hashAllObjects; } });
155
+ Object.defineProperty(exports, "deriveChildTreeSeedJava", { enumerable: true, get: function () { return javaStreamables_js_1.deriveChildTreeSeedJava; } });
156
+ Object.defineProperty(exports, "hashObject", { enumerable: true, get: function () { return javaStreamables_js_1.hashObject; } });
157
+ Object.defineProperty(exports, "serializeMiniNumberZERO", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberZERO; } });
158
+ Object.defineProperty(exports, "serializeMiniNumberONE", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMiniNumberONE; } });
159
+ Object.defineProperty(exports, "writeHashToStream", { enumerable: true, get: function () { return javaStreamables_js_1.writeHashToStream; } });
160
+ Object.defineProperty(exports, "javaHashAllObjects", { enumerable: true, get: function () { return javaStreamables_js_1.javaHashAllObjects; } });
161
+ Object.defineProperty(exports, "indexToMiniDataBytes", { enumerable: true, get: function () { return javaStreamables_js_1.indexToMiniDataBytes; } });
162
+ Object.defineProperty(exports, "deriveUnifiedChildSeed", { enumerable: true, get: function () { return javaStreamables_js_1.deriveUnifiedChildSeed; } });
163
+ Object.defineProperty(exports, "createMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.createMMREntryNumber; } });
164
+ Object.defineProperty(exports, "serializeMMREntryNumber", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntryNumber; } });
165
+ Object.defineProperty(exports, "serializeMMRData", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMRData; } });
166
+ Object.defineProperty(exports, "serializeMMREntry", { enumerable: true, get: function () { return javaStreamables_js_1.serializeMMREntry; } });
167
+ // TreeKey/TreeKeyNode — JS types and helpers
168
+ var treekey_js_1 = require("./treekey.js");
169
+ Object.defineProperty(exports, "TreeKey", { enumerable: true, get: function () { return treekey_js_1.TreeKey; } });
170
+ Object.defineProperty(exports, "TreeKeyNode", { enumerable: true, get: function () { return treekey_js_1.TreeKeyNode; } });
171
+ Object.defineProperty(exports, "serializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.serializeTreeSignature; } });
172
+ Object.defineProperty(exports, "deserializeTreeSignature", { enumerable: true, get: function () { return treekey_js_1.deserializeTreeSignature; } });
173
+ Object.defineProperty(exports, "getRootPublicKey", { enumerable: true, get: function () { return treekey_js_1.getRootPublicKey; } });
174
+ Object.defineProperty(exports, "DEFAULT_KEYS_PER_LEVEL", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_KEYS_PER_LEVEL; } });
175
+ Object.defineProperty(exports, "DEFAULT_LEVELS", { enumerable: true, get: function () { return treekey_js_1.DEFAULT_LEVELS; } });
176
+ Object.defineProperty(exports, "createUnifiedChildTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createUnifiedChildTreeKeyAsync; } });
177
+ Object.defineProperty(exports, "createPerAddressTreeKey", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKey; } });
178
+ Object.defineProperty(exports, "createPerAddressTreeKeyAsync", { enumerable: true, get: function () { return treekey_js_1.createPerAddressTreeKeyAsync; } });
150
179
  // Constants
151
180
  exports.MINIMA_CONSTANTS = {
152
181
  WOTS_W: 8,
@@ -156,14 +185,3 @@ exports.MINIMA_CONSTANTS = {
156
185
  ADDRESS_PREFIX: 'Mx',
157
186
  NETWORK_ID: 1
158
187
  };
159
- // Streamable primitives (low-level serialization building blocks)
160
- var Streamable_js_1 = require("./Streamable.js");
161
- Object.defineProperty(exports, "writeMiniNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMiniNumber; } });
162
- Object.defineProperty(exports, "writeMiniData", { enumerable: true, get: function () { return Streamable_js_1.writeMiniData; } });
163
- Object.defineProperty(exports, "writeMiniByte", { enumerable: true, get: function () { return Streamable_js_1.writeMiniByte; } });
164
- Object.defineProperty(exports, "writeMMREntryNumber", { enumerable: true, get: function () { return Streamable_js_1.writeMMREntryNumber; } });
165
- Object.defineProperty(exports, "concat", { enumerable: true, get: function () { return Streamable_js_1.concat; } });
166
- Object.defineProperty(exports, "hexToBytes", { enumerable: true, get: function () { return Streamable_js_1.hexToBytes; } });
167
- Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return Streamable_js_1.bytesToHex; } });
168
- Object.defineProperty(exports, "bigIntToByteArray", { enumerable: true, get: function () { return Streamable_js_1.bigIntToByteArray; } });
169
- Object.defineProperty(exports, "writeMiniString", { enumerable: true, get: function () { return Streamable_js_1.writeMiniString; } });
@@ -33,7 +33,7 @@ exports.serializeMMREntry = serializeMMREntry;
33
33
  exports.deriveRootPrivSeed = deriveRootPrivSeed;
34
34
  exports.deriveUnifiedChildSeed = deriveUnifiedChildSeed;
35
35
  exports.precomputeTransactionCoinID = precomputeTransactionCoinID;
36
- const sha3_js_1 = require("@noble/hashes/sha3.js");
36
+ const wasm_sync_js_1 = require("./wasm-sync.js");
37
37
  const Streamable_js_1 = require("./Streamable.js");
38
38
  /**
39
39
  * Serialize a number in MiniNumber format (Java compatible)
@@ -82,7 +82,7 @@ function hashAllObjects(...items) {
82
82
  offset += item.length;
83
83
  }
84
84
  // SHA3-256 hash
85
- return (0, sha3_js_1.sha3_256)(combined);
85
+ return (0, wasm_sync_js_1.sha3_256)(combined);
86
86
  }
87
87
  /**
88
88
  * Derive per-chain seed matching Java TreeKeyNode.java exactly
@@ -130,7 +130,7 @@ function deriveChildTreeSeedJava(childSeed, childIndex) {
130
130
  */
131
131
  function hashObject(data) {
132
132
  const serialized = serializeMiniData(data);
133
- return (0, sha3_js_1.sha3_256)(serialized);
133
+ return (0, wasm_sync_js_1.sha3_256)(serialized);
134
134
  }
135
135
  /**
136
136
  * Convert index to MiniData bytes matching Java's:
@@ -180,7 +180,7 @@ function derivePerAddressSeed(baseSeed, addressIndex) {
180
180
  const combined = new Uint8Array(baseSeedSerialized.length + modifierSerialized.length);
181
181
  combined.set(baseSeedSerialized, 0);
182
182
  combined.set(modifierSerialized, baseSeedSerialized.length);
183
- const result = (0, sha3_js_1.sha3_256)(combined);
183
+ const result = (0, wasm_sync_js_1.sha3_256)(combined);
184
184
  // DIAGNOSTIC: Log first 8 bytes to detect bundle duplication or implementation differences
185
185
  // Enable via: globalThis.TOTEM_SEED_DEBUG = true
186
186
  if (typeof console !== 'undefined' && globalThis.TOTEM_SEED_DEBUG) {
@@ -240,7 +240,7 @@ function javaHashAllObjects(...items) {
240
240
  combined.set(item, offset);
241
241
  offset += item.length;
242
242
  }
243
- return (0, sha3_js_1.sha3_256)(combined);
243
+ return (0, wasm_sync_js_1.sha3_256)(combined);
244
244
  }
245
245
  /**
246
246
  * Create MMREntryNumber from bigint (common case for integer positions)
@@ -334,7 +334,7 @@ function deriveRootPrivSeed(baseSeed) {
334
334
  const combined = new Uint8Array(baseSeedSerialized.length + rootIdentitySerialized.length);
335
335
  combined.set(baseSeedSerialized, 0);
336
336
  combined.set(rootIdentitySerialized, baseSeedSerialized.length);
337
- return (0, sha3_js_1.sha3_256)(combined);
337
+ return (0, wasm_sync_js_1.sha3_256)(combined);
338
338
  }
339
339
  /**
340
340
  * Derive a unified child seed for the address at `index`.
@@ -354,7 +354,7 @@ function deriveUnifiedChildSeed(baseSeed, index) {
354
354
  const combined = new Uint8Array(rootSeedSerialized.length + modifierSerialized.length);
355
355
  combined.set(rootSeedSerialized, 0);
356
356
  combined.set(modifierSerialized, rootSeedSerialized.length);
357
- return (0, sha3_js_1.sha3_256)(combined);
357
+ return (0, wasm_sync_js_1.sha3_256)(combined);
358
358
  }
359
359
  /**
360
360
  * Precompute output coin IDs before computing the transaction digest.
@@ -386,6 +386,6 @@ function precomputeTransactionCoinID(inputs, outputs) {
386
386
  const combined = new Uint8Array(baseCoinIdStream.length + outputIndexStream.length);
387
387
  combined.set(baseCoinIdStream, 0);
388
388
  combined.set(outputIndexStream, baseCoinIdStream.length);
389
- outputs[i].coinId = (0, sha3_js_1.sha3_256)(combined);
389
+ outputs[i].coinId = (0, wasm_sync_js_1.sha3_256)(combined);
390
390
  }
391
391
  }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Legacy JS implementations — backward compatibility.
3
+ *
4
+ * These are the original TypeScript implementations preserved for
5
+ * environments where WASM is not available. The main entry point
6
+ * (`@totemsdk/core`) now delegates to WASM by default.
7
+ *
8
+ * Import legacy implementations directly:
9
+ * import { wotsSign } from '@totemsdk/core/legacy';
10
+ */
11
+ export { F, hex, fromHex, u16be, u32be, assert32, h, prfChainSeed, toWinternitzDigits, baseWWithChecksum, derivePKdigest as legacyDerivePKdigest, wotsKeypairFromSeed as legacyWotsKeypairFromSeed, wotsSign as legacyWotsSign, wotsSignLegacy, wotsPkFromSig as legacyWotsPkFromSig, wotsVerify as legacyWotsVerify, wotsVerifyDigest as legacyWotsVerifyDigest, wotsPublicKeyFromSeed as legacyWotsPublicKeyFromSeed, type WotsKeypair, type WotsSignature, } from './wots.js';
12
+ export { TreeKey, TreeKeyNode, verifyTreeSignature as legacyVerifyTreeSignature, serializeTreeSignature, deserializeTreeSignature, getRootPublicKey, DEFAULT_KEYS_PER_LEVEL, DEFAULT_LEVELS, createUnifiedChildTreeKey as legacyCreateUnifiedChildTreeKey, createUnifiedChildTreeKeyAsync, createUnifiedRootTreeKey as legacyCreateUnifiedRootTreeKey, deriveUnifiedAddressPublicKey as legacyDeriveUnifiedAddressPublicKey, createPerAddressTreeKey, createPerAddressTreeKeyAsync, type KeyGenProgress, type ProgressCallback, type SignatureProof, type TreeSignature, } from './treekey.js';
13
+ export { MMRTree, mmrLeafExact, mmrRootFromSingleLeaf, createMMRDataLeafNode, createMMRDataParentNode, calculateProofRoot, verifyMMRProof as legacyVerifyMMRProof, parseMMRProofFromHex, deserializeMMRProof, serializeMMRProof, serializeRealMMRProof, type MMRData, type MMREntry, type MMRProof, type MMRProofChunk, type Bytes, } from './mmr.js';
14
+ export { WORD_LIST, cleanSeedPhrase as legacyCleanSeedPhrase, validatePhrase as legacyValidatePhrase, convertStringToSeed, convertWordListToSeed, phraseToSeed as legacyPhraseToSeed, generateWordList as legacyGenerateWordList, generateSeedPhrase, } from './bip39.js';
15
+ export { type MinimaTransaction, type MinimaCoin, type ParsedMiniNumber, type MinimaToken, type StateVariable, type RawStateVariable, type CoinProofData, type SpendableCoinInput, type TransactionBuildResult, parseDecimalToMiniNumber, serializeCoin, serializeTransaction as legacySerializeTransaction, computeTransactionDigest as legacyComputeTransactionDigest, precomputeTransactionCoinID as legacyPrecomputeTransactionCoinID, createDefaultTransaction, buildMinimaCoin, } from './transaction.js';
16
+ export { scriptToAddress, addressToRoot } from './derive.js';
17
+ export { scriptFromWotsPk, wotsAddressFromKeypair as legacyWotsAddressFromKeypair } from './script.js';
18
+ export { encodeMxRadix32Frame, decodeMxRadix32Frame, makeMxAddress as legacyMakeMxAddress, parseMxAddress as legacyParseMxAddress, hexToMx, mxToHex, encodeMx, decodeMx, makeMinimaAddress, convertMinimaAddress, } from './minima32.js';
19
+ export { writeMiniNumber as legacyWriteMiniNumber, writeMiniData as legacyWriteMiniData, writeMiniByte, writeMMREntryNumber, concat, hexToBytes as legacyHexToBytes, bytesToHex as legacyBytesToHex, bigIntToByteArray, writeMiniString as legacyWriteMiniString, writeHashToStream, } from './Streamable.js';
20
+ export { serializeMiniNumber, serializeMiniData, hashAllObjects, deriveChainSeedJava as legacyDeriveChainSeedJava, deriveChildTreeSeedJava, hashObject, serializeMiniNumberZERO, serializeMiniNumberONE, javaHashAllObjects, indexToMiniDataBytes, derivePerAddressSeed as legacyDerivePerAddressSeed, deriveRootPrivSeed as legacyDeriveRootPrivSeed, deriveUnifiedChildSeed, createMMREntryNumber, serializeMMREntryNumber, serializeMMRData, serializeMMREntry, precomputeTransactionCoinID as legacyPrecomputeTransactionCoinIDTx, type MMREntryNumber as JavaMMREntryNumber, type MMRData as JavaMMRData, type MMREntry as JavaMMREntry, } from './javaStreamables.js';
21
+ export { concatBytes as legacyConcatBytes } from './utils.js';
22
+ export * from './params.js';
23
+ export { verifySignature, verifySignatureDetailed, verifyTreeSignatureDetailed, deriveAddressFromPublicKey, normalizeHex, createChallenge as legacyCreateChallenge, validateChallenge as legacyValidateChallenge, type VerificationResult, } from './verify.js';