@totemsdk/core 1.2.11 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -0
- package/dist/address-derivation.d.ts +36 -0
- package/dist/address-derivation.js +54 -0
- package/dist/bip39.js +1 -1
- package/dist/bytes.d.ts +11 -0
- package/dist/bytes.js +39 -0
- package/dist/canonical-hash.d.ts +1 -0
- package/dist/canonical-hash.js +12 -0
- package/dist/canonical.d.ts +6 -1
- package/dist/canonical.js +6 -5
- package/dist/cjs/address-derivation.d.ts +36 -0
- package/dist/cjs/address-derivation.js +60 -0
- package/dist/cjs/bytes.d.ts +11 -0
- package/dist/cjs/bytes.js +44 -0
- package/dist/cjs/canonical-hash.d.ts +1 -0
- package/dist/cjs/canonical-hash.js +15 -0
- package/dist/cjs/canonical.d.ts +6 -1
- package/dist/cjs/canonical.js +6 -6
- package/dist/cjs/index.d.ts +4 -2
- package/dist/cjs/index.js +55 -47
- package/dist/cjs/legacy.d.ts +15 -6
- package/dist/cjs/legacy.js +15 -6
- package/dist/cjs/scripts/contract-helpers.js +3 -3
- package/dist/cjs/wasm-sync.d.ts +3 -3
- package/dist/cjs/wasm-sync.js +10 -3
- package/dist/index.d.ts +4 -2
- package/dist/index.js +15 -11
- package/dist/javaStreamables.js +1 -1
- package/dist/legacy.d.ts +15 -6
- package/dist/legacy.js +15 -6
- package/dist/minima32.js +1 -1
- package/dist/mmr.js +1 -1
- package/dist/scripts/contract-helpers.js +4 -4
- package/dist/scripts/witness-serializer.js +1 -1
- package/dist/transaction.js +1 -1
- package/dist/verify.js +1 -1
- package/dist/wasm-async.d.ts +81 -0
- package/dist/wasm-async.js +91 -0
- package/dist/wasm-sync.d.ts +3 -3
- package/dist/wasm-sync.js +7 -2
- package/dist/wots.js +1 -1
- package/package.json +47 -3
package/dist/cjs/index.js
CHANGED
|
@@ -22,8 +22,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.createChallenge = exports.timingSafeEqual = exports.deserializeTransaction = 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.
|
|
26
|
-
exports.MINIMA_CONSTANTS = exports.bytesToUtf8 = exports.utf8ToBytes = exports.hashCanonical = exports.canonicalJson = exports.toHex = exports.wotsSignLegacy = exports.baseWWithChecksum = exports.toWinternitzDigits = exports.prfChainSeed = exports.h = exports.assert32 = exports.u32be = exports.u16be = exports.disableWotsLogger = exports.setWotsLogger = exports.fromHex = exports.hex = exports.F = exports.disableTreeKeyLogger = exports.setTreeKeyLogger = exports.createPerAddressTreeKeyAsync = exports.createPerAddressTreeKey = exports.createUnifiedChildTreeKeyAsync = exports.DEFAULT_LEVELS = void 0;
|
|
25
|
+
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.writeSignatureProof = exports.writeSignature = exports.writeMMREntryNumber = exports.writeMiniByte = exports.verifyDeterministicAddress = exports.deriveAddress = exports.deriveUnifiedAddress = exports.deriveDeterministicAddress = exports.normalizeHex = exports.deriveAddressFromPublicKey = exports.verifyTreeSignatureDetailed = exports.verifySignatureDetailed = exports.verifySignature = exports.buildMinimaCoin = exports.createDefaultTransaction = exports.serializeTokenDescriptor = exports.computeTokenId = exports.serializeTransactionObject = exports.serializeCoin = exports.parseDecimalToMiniNumber = exports.MiniNumber = exports.generateSeedPhrase = exports.convertWordListToSeed = exports.convertStringToSeed = exports.WORD_LIST = exports.addressToRoot = exports.scriptToAddress = exports.decodeMx = exports.encodeMx = exports.scriptFromWotsPk = exports.validateChallenge = void 0;
|
|
26
|
+
exports.MINIMA_CONSTANTS = exports.bytesToUtf8 = exports.utf8ToBytes = exports.hashCanonical = exports.canonicalJson = exports.toHex = exports.wotsSignLegacy = exports.baseWWithChecksum = exports.toWinternitzDigits = exports.prfChainSeed = exports.h = exports.assert32 = exports.u32be = exports.u16be = exports.disableWotsLogger = exports.setWotsLogger = exports.fromHex = exports.hex = exports.F = exports.disableTreeKeyLogger = exports.setTreeKeyLogger = exports.createPerAddressTreeKeyAsync = exports.createPerAddressTreeKey = exports.createUnifiedChildTreeKeyAsync = exports.DEFAULT_LEVELS = exports.DEFAULT_KEYS_PER_LEVEL = exports.getRootPublicKey = exports.deserializeTreeSignature = exports.serializeTreeSignature = void 0;
|
|
27
27
|
exports.mxToHex = mxToHex;
|
|
28
28
|
// Version information for bundle duplication detection
|
|
29
29
|
__exportStar(require("./version.js"), exports);
|
|
@@ -48,37 +48,38 @@ Object.defineProperty(exports, "TransactionReceiptStore", { enumerable: true, ge
|
|
|
48
48
|
// Cryptographic primitives — backed by Rust/WASM (@totemsdk/core-wasm)
|
|
49
49
|
// ---------------------------------------------------------------------------
|
|
50
50
|
// Utilities
|
|
51
|
-
var
|
|
52
|
-
Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return
|
|
53
|
-
Object.defineProperty(exports, "hexToBytes", { enumerable: true, get: function () { return
|
|
54
|
-
Object.defineProperty(exports, "concatBytes", { enumerable: true, get: function () { return
|
|
55
|
-
const
|
|
51
|
+
var bytes_js_1 = require("./bytes.js");
|
|
52
|
+
Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return bytes_js_1.bytesToHex; } });
|
|
53
|
+
Object.defineProperty(exports, "hexToBytes", { enumerable: true, get: function () { return bytes_js_1.hexToBytes; } });
|
|
54
|
+
Object.defineProperty(exports, "concatBytes", { enumerable: true, get: function () { return bytes_js_1.concatBytes; } });
|
|
55
|
+
const bytes_js_2 = require("./bytes.js");
|
|
56
|
+
const wasm_sync_js_1 = require("./wasm-sync.js");
|
|
56
57
|
// SHA3-256
|
|
57
|
-
var
|
|
58
|
-
Object.defineProperty(exports, "sha3_256", { enumerable: true, get: function () { return
|
|
58
|
+
var wasm_sync_js_2 = require("./wasm-sync.js");
|
|
59
|
+
Object.defineProperty(exports, "sha3_256", { enumerable: true, get: function () { return wasm_sync_js_2.sha3_256; } });
|
|
59
60
|
// WOTS Signatures
|
|
60
|
-
var
|
|
61
|
-
Object.defineProperty(exports, "expandPrivateKey", { enumerable: true, get: function () { return
|
|
62
|
-
Object.defineProperty(exports, "hashChain", { enumerable: true, get: function () { return
|
|
63
|
-
Object.defineProperty(exports, "derivePKdigest", { enumerable: true, get: function () { return
|
|
64
|
-
Object.defineProperty(exports, "deriveFullPublicKey", { enumerable: true, get: function () { return
|
|
65
|
-
Object.defineProperty(exports, "wotsSign", { enumerable: true, get: function () { return
|
|
66
|
-
Object.defineProperty(exports, "wotsVerify", { enumerable: true, get: function () { return
|
|
67
|
-
Object.defineProperty(exports, "wotsVerifyDigest", { enumerable: true, get: function () { return
|
|
68
|
-
Object.defineProperty(exports, "wotsPkFromSig", { enumerable: true, get: function () { return
|
|
69
|
-
Object.defineProperty(exports, "wotsPublicKeyFromSeed", { enumerable: true, get: function () { return
|
|
70
|
-
Object.defineProperty(exports, "wotsKeypairFromSeed", { enumerable: true, get: function () { return
|
|
61
|
+
var wasm_sync_js_3 = require("./wasm-sync.js");
|
|
62
|
+
Object.defineProperty(exports, "expandPrivateKey", { enumerable: true, get: function () { return wasm_sync_js_3.expandPrivateKey; } });
|
|
63
|
+
Object.defineProperty(exports, "hashChain", { enumerable: true, get: function () { return wasm_sync_js_3.hashChain; } });
|
|
64
|
+
Object.defineProperty(exports, "derivePKdigest", { enumerable: true, get: function () { return wasm_sync_js_3.derivePKdigest; } });
|
|
65
|
+
Object.defineProperty(exports, "deriveFullPublicKey", { enumerable: true, get: function () { return wasm_sync_js_3.deriveFullPublicKey; } });
|
|
66
|
+
Object.defineProperty(exports, "wotsSign", { enumerable: true, get: function () { return wasm_sync_js_3.wotsSign; } });
|
|
67
|
+
Object.defineProperty(exports, "wotsVerify", { enumerable: true, get: function () { return wasm_sync_js_3.wotsVerify; } });
|
|
68
|
+
Object.defineProperty(exports, "wotsVerifyDigest", { enumerable: true, get: function () { return wasm_sync_js_3.wotsVerifyDigest; } });
|
|
69
|
+
Object.defineProperty(exports, "wotsPkFromSig", { enumerable: true, get: function () { return wasm_sync_js_3.wotsPkFromSig; } });
|
|
70
|
+
Object.defineProperty(exports, "wotsPublicKeyFromSeed", { enumerable: true, get: function () { return wasm_sync_js_3.wotsPublicKeyFromSeed; } });
|
|
71
|
+
Object.defineProperty(exports, "wotsKeypairFromSeed", { enumerable: true, get: function () { return wasm_sync_js_3.wotsKeypairFromSeed; } });
|
|
71
72
|
// WOTS Params (from params.ts — constants, no crypto)
|
|
72
73
|
__exportStar(require("./params.js"), exports);
|
|
73
74
|
// Java-Compatible Serialization
|
|
74
|
-
var
|
|
75
|
-
Object.defineProperty(exports, "deriveChainSeedJava", { enumerable: true, get: function () { return
|
|
76
|
-
Object.defineProperty(exports, "derivePerAddressSeed", { enumerable: true, get: function () { return
|
|
77
|
-
Object.defineProperty(exports, "deriveRootPrivSeed", { enumerable: true, get: function () { return
|
|
78
|
-
Object.defineProperty(exports, "writeMiniNumber", { enumerable: true, get: function () { return
|
|
79
|
-
Object.defineProperty(exports, "writeMiniData", { enumerable: true, get: function () { return
|
|
80
|
-
Object.defineProperty(exports, "writeMiniString", { enumerable: true, get: function () { return
|
|
81
|
-
Object.defineProperty(exports, "precomputeTransactionCoinID", { enumerable: true, get: function () { return
|
|
75
|
+
var wasm_sync_js_4 = require("./wasm-sync.js");
|
|
76
|
+
Object.defineProperty(exports, "deriveChainSeedJava", { enumerable: true, get: function () { return wasm_sync_js_4.deriveChainSeedJava; } });
|
|
77
|
+
Object.defineProperty(exports, "derivePerAddressSeed", { enumerable: true, get: function () { return wasm_sync_js_4.derivePerAddressSeed; } });
|
|
78
|
+
Object.defineProperty(exports, "deriveRootPrivSeed", { enumerable: true, get: function () { return wasm_sync_js_4.deriveRootPrivSeed; } });
|
|
79
|
+
Object.defineProperty(exports, "writeMiniNumber", { enumerable: true, get: function () { return wasm_sync_js_4.writeMiniNumber; } });
|
|
80
|
+
Object.defineProperty(exports, "writeMiniData", { enumerable: true, get: function () { return wasm_sync_js_4.writeMiniData; } });
|
|
81
|
+
Object.defineProperty(exports, "writeMiniString", { enumerable: true, get: function () { return wasm_sync_js_4.writeMiniString; } });
|
|
82
|
+
Object.defineProperty(exports, "precomputeTransactionCoinID", { enumerable: true, get: function () { return wasm_sync_js_4.precomputeTransactionCoinID; } });
|
|
82
83
|
// TreeKey/TreeKeyNode — WASM-backed
|
|
83
84
|
// createUnifiedChildTreeKey / createUnifiedRootTreeKey come from the TS
|
|
84
85
|
// implementation (returning a full TreeKey object with setUses/sign/getPublicKey)
|
|
@@ -89,9 +90,9 @@ Object.defineProperty(exports, "createUnifiedChildTreeKey", { enumerable: true,
|
|
|
89
90
|
Object.defineProperty(exports, "createUnifiedRootTreeKey", { enumerable: true, get: function () { return treekey_js_1.createUnifiedRootTreeKey; } });
|
|
90
91
|
Object.defineProperty(exports, "deriveUnifiedAddressPublicKey", { enumerable: true, get: function () { return treekey_js_1.deriveUnifiedAddressPublicKey; } });
|
|
91
92
|
Object.defineProperty(exports, "verifyTreeSignature", { enumerable: true, get: function () { return treekey_js_1.verifyTreeSignature; } });
|
|
92
|
-
var
|
|
93
|
-
Object.defineProperty(exports, "mmrRootFromPublicKeys", { enumerable: true, get: function () { return
|
|
94
|
-
Object.defineProperty(exports, "verifyMMRProof", { enumerable: true, get: function () { return
|
|
93
|
+
var wasm_sync_js_5 = require("./wasm-sync.js");
|
|
94
|
+
Object.defineProperty(exports, "mmrRootFromPublicKeys", { enumerable: true, get: function () { return wasm_sync_js_5.mmrRootFromPublicKeys; } });
|
|
95
|
+
Object.defineProperty(exports, "verifyMMRProof", { enumerable: true, get: function () { return wasm_sync_js_5.verifyMMRProof; } });
|
|
95
96
|
// BIP39 Seed Phrase Handling
|
|
96
97
|
// The WASM binding (wasm-sync.ts) shares the canonical 2048-word BIP39 list
|
|
97
98
|
// and Minima-compatible uppercase canonicalization with the TS implementation
|
|
@@ -104,22 +105,22 @@ Object.defineProperty(exports, "generateWordList", { enumerable: true, get: func
|
|
|
104
105
|
Object.defineProperty(exports, "validatePhrase", { enumerable: true, get: function () { return bip39_js_1.validatePhrase; } });
|
|
105
106
|
Object.defineProperty(exports, "cleanSeedPhrase", { enumerable: true, get: function () { return bip39_js_1.cleanSeedPhrase; } });
|
|
106
107
|
// Address Derivation
|
|
107
|
-
var
|
|
108
|
-
Object.defineProperty(exports, "makeMxAddress", { enumerable: true, get: function () { return
|
|
109
|
-
Object.defineProperty(exports, "parseMxAddress", { enumerable: true, get: function () { return
|
|
110
|
-
Object.defineProperty(exports, "wotsAddressFromKeypair", { enumerable: true, get: function () { return
|
|
108
|
+
var wasm_sync_js_6 = require("./wasm-sync.js");
|
|
109
|
+
Object.defineProperty(exports, "makeMxAddress", { enumerable: true, get: function () { return wasm_sync_js_6.makeMxAddress; } });
|
|
110
|
+
Object.defineProperty(exports, "parseMxAddress", { enumerable: true, get: function () { return wasm_sync_js_6.parseMxAddress; } });
|
|
111
|
+
Object.defineProperty(exports, "wotsAddressFromKeypair", { enumerable: true, get: function () { return wasm_sync_js_6.wotsAddressFromKeypair; } });
|
|
111
112
|
// Transaction Serialization & Digest
|
|
112
|
-
var
|
|
113
|
-
Object.defineProperty(exports, "serializeTransaction", { enumerable: true, get: function () { return
|
|
114
|
-
Object.defineProperty(exports, "computeTransactionDigest", { enumerable: true, get: function () { return
|
|
113
|
+
var wasm_sync_js_7 = require("./wasm-sync.js");
|
|
114
|
+
Object.defineProperty(exports, "serializeTransaction", { enumerable: true, get: function () { return wasm_sync_js_7.serializeTransaction; } });
|
|
115
|
+
Object.defineProperty(exports, "computeTransactionDigest", { enumerable: true, get: function () { return wasm_sync_js_7.computeTransactionDigest; } });
|
|
115
116
|
// Transaction deserialization (byte-exact inverse of the TS serializer)
|
|
116
117
|
var transaction_js_1 = require("./transaction.js");
|
|
117
118
|
Object.defineProperty(exports, "deserializeTransaction", { enumerable: true, get: function () { return transaction_js_1.deserializeTransaction; } });
|
|
118
119
|
// Verification
|
|
119
|
-
var
|
|
120
|
-
Object.defineProperty(exports, "timingSafeEqual", { enumerable: true, get: function () { return
|
|
121
|
-
Object.defineProperty(exports, "createChallenge", { enumerable: true, get: function () { return
|
|
122
|
-
Object.defineProperty(exports, "validateChallenge", { enumerable: true, get: function () { return
|
|
120
|
+
var wasm_sync_js_8 = require("./wasm-sync.js");
|
|
121
|
+
Object.defineProperty(exports, "timingSafeEqual", { enumerable: true, get: function () { return wasm_sync_js_8.timingSafeEqual; } });
|
|
122
|
+
Object.defineProperty(exports, "createChallenge", { enumerable: true, get: function () { return wasm_sync_js_8.createChallenge; } });
|
|
123
|
+
Object.defineProperty(exports, "validateChallenge", { enumerable: true, get: function () { return wasm_sync_js_8.validateChallenge; } });
|
|
123
124
|
// ---------------------------------------------------------------------------
|
|
124
125
|
// TypeScript-only modules (no crypto — keep as-is)
|
|
125
126
|
// ---------------------------------------------------------------------------
|
|
@@ -127,14 +128,14 @@ Object.defineProperty(exports, "validateChallenge", { enumerable: true, get: fun
|
|
|
127
128
|
var script_js_1 = require("./script.js");
|
|
128
129
|
Object.defineProperty(exports, "scriptFromWotsPk", { enumerable: true, get: function () { return script_js_1.scriptFromWotsPk; } });
|
|
129
130
|
// Base32 Encoding (Minima-compatible) — re-export from WASM
|
|
130
|
-
var
|
|
131
|
-
Object.defineProperty(exports, "encodeMx", { enumerable: true, get: function () { return
|
|
132
|
-
Object.defineProperty(exports, "decodeMx", { enumerable: true, get: function () { return
|
|
131
|
+
var wasm_sync_js_9 = require("./wasm-sync.js");
|
|
132
|
+
Object.defineProperty(exports, "encodeMx", { enumerable: true, get: function () { return wasm_sync_js_9.makeMxAddress; } });
|
|
133
|
+
Object.defineProperty(exports, "decodeMx", { enumerable: true, get: function () { return wasm_sync_js_9.parseMxAddress; } });
|
|
133
134
|
/** Convert an Mx (radix-32) or hex Minima address to lowercase hex. */
|
|
134
135
|
function mxToHex(address) {
|
|
135
136
|
const upper = address.startsWith('0x') || address.startsWith('0X') ? address.slice(2) : address;
|
|
136
137
|
return upper.toUpperCase().startsWith('MX')
|
|
137
|
-
? (0,
|
|
138
|
+
? (0, bytes_js_2.bytesToHex)((0, wasm_sync_js_1.parseMxAddress)(address))
|
|
138
139
|
: upper.replace(/^0x/i, '');
|
|
139
140
|
}
|
|
140
141
|
// Merkle Mountain Range (original JS — types and helpers)
|
|
@@ -170,6 +171,12 @@ Object.defineProperty(exports, "verifySignatureDetailed", { enumerable: true, ge
|
|
|
170
171
|
Object.defineProperty(exports, "verifyTreeSignatureDetailed", { enumerable: true, get: function () { return verify_js_1.verifyTreeSignatureDetailed; } });
|
|
171
172
|
Object.defineProperty(exports, "deriveAddressFromPublicKey", { enumerable: true, get: function () { return verify_js_1.deriveAddressFromPublicKey; } });
|
|
172
173
|
Object.defineProperty(exports, "normalizeHex", { enumerable: true, get: function () { return verify_js_1.normalizeHex; } });
|
|
174
|
+
// Deterministic address derivation (CAN-005)
|
|
175
|
+
var address_derivation_js_1 = require("./address-derivation.js");
|
|
176
|
+
Object.defineProperty(exports, "deriveDeterministicAddress", { enumerable: true, get: function () { return address_derivation_js_1.deriveDeterministicAddress; } });
|
|
177
|
+
Object.defineProperty(exports, "deriveUnifiedAddress", { enumerable: true, get: function () { return address_derivation_js_1.deriveUnifiedAddress; } });
|
|
178
|
+
Object.defineProperty(exports, "deriveAddress", { enumerable: true, get: function () { return address_derivation_js_1.deriveAddress; } });
|
|
179
|
+
Object.defineProperty(exports, "verifyDeterministicAddress", { enumerable: true, get: function () { return address_derivation_js_1.verifyDeterministicAddress; } });
|
|
173
180
|
// Streamable primitives (low-level serialization building blocks)
|
|
174
181
|
var Streamable_js_1 = require("./Streamable.js");
|
|
175
182
|
Object.defineProperty(exports, "writeMiniByte", { enumerable: true, get: function () { return Streamable_js_1.writeMiniByte; } });
|
|
@@ -227,7 +234,8 @@ Object.defineProperty(exports, "wotsSignLegacy", { enumerable: true, get: functi
|
|
|
227
234
|
var canonical_js_1 = require("./canonical.js");
|
|
228
235
|
Object.defineProperty(exports, "toHex", { enumerable: true, get: function () { return canonical_js_1.toHex; } });
|
|
229
236
|
Object.defineProperty(exports, "canonicalJson", { enumerable: true, get: function () { return canonical_js_1.canonicalJson; } });
|
|
230
|
-
|
|
237
|
+
var canonical_hash_js_1 = require("./canonical-hash.js");
|
|
238
|
+
Object.defineProperty(exports, "hashCanonical", { enumerable: true, get: function () { return canonical_hash_js_1.hashCanonical; } });
|
|
231
239
|
// Byte/string utilities
|
|
232
240
|
var utils_js_1 = require("./utils.js");
|
|
233
241
|
Object.defineProperty(exports, "utf8ToBytes", { enumerable: true, get: function () { return utils_js_1.utf8ToBytes; } });
|
package/dist/cjs/legacy.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Legacy JS
|
|
2
|
+
* Legacy JS crypto kernels — **deprecated (RFC-031 P4), frozen**.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* @deprecated The pure-JS kernels are scheduled for removal (RFC-031 P5). Use
|
|
5
|
+
* the WASM surface instead:
|
|
6
|
+
* - `@totemsdk/core` / `@totemsdk/core/wasm` — synchronous WASM (bundler loader required)
|
|
7
|
+
* - `@totemsdk/core/wasm-async` — async-init WASM (portable to edge/Workers)
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* This entry stays only as a migration bridge for environments that cannot run
|
|
10
|
+
* WASM yet; it is **frozen** (no new kernels are added here) and will be deleted
|
|
11
|
+
* in a major release. Exports are `legacy`-prefixed where they collide with the
|
|
12
|
+
* WASM names (`legacyWotsSign`, …).
|
|
13
|
+
*
|
|
14
|
+
* // before
|
|
15
|
+
* import { legacyWotsSign } from '@totemsdk/core/legacy';
|
|
16
|
+
* // after
|
|
17
|
+
* import { init, wotsSign } from '@totemsdk/core/wasm-async';
|
|
18
|
+
* await init();
|
|
10
19
|
*/
|
|
11
20
|
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
21
|
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';
|
package/dist/cjs/legacy.js
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Legacy JS
|
|
3
|
+
* Legacy JS crypto kernels — **deprecated (RFC-031 P4), frozen**.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* @deprecated The pure-JS kernels are scheduled for removal (RFC-031 P5). Use
|
|
6
|
+
* the WASM surface instead:
|
|
7
|
+
* - `@totemsdk/core` / `@totemsdk/core/wasm` — synchronous WASM (bundler loader required)
|
|
8
|
+
* - `@totemsdk/core/wasm-async` — async-init WASM (portable to edge/Workers)
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* This entry stays only as a migration bridge for environments that cannot run
|
|
11
|
+
* WASM yet; it is **frozen** (no new kernels are added here) and will be deleted
|
|
12
|
+
* in a major release. Exports are `legacy`-prefixed where they collide with the
|
|
13
|
+
* WASM names (`legacyWotsSign`, …).
|
|
14
|
+
*
|
|
15
|
+
* // before
|
|
16
|
+
* import { legacyWotsSign } from '@totemsdk/core/legacy';
|
|
17
|
+
* // after
|
|
18
|
+
* import { init, wotsSign } from '@totemsdk/core/wasm-async';
|
|
19
|
+
* await init();
|
|
11
20
|
*/
|
|
12
21
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
22
|
if (k2 === undefined) k2 = k;
|
|
@@ -17,9 +17,9 @@
|
|
|
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
19
|
const wasm_sync_js_1 = require("../wasm-sync.js");
|
|
20
|
-
const
|
|
20
|
+
const sha256_js_1 = require("@noble/hashes/sha256.js");
|
|
21
21
|
function sha256(data) {
|
|
22
|
-
return
|
|
22
|
+
return (0, sha256_js_1.sha256)(data);
|
|
23
23
|
}
|
|
24
24
|
const types_js_1 = require("./types.js");
|
|
25
25
|
function kissHex(hex) {
|
|
@@ -83,7 +83,7 @@ class HTLCHelper {
|
|
|
83
83
|
* Generate a random preimage and its hash.
|
|
84
84
|
*/
|
|
85
85
|
static generateSecret() {
|
|
86
|
-
const preimageBytes = (
|
|
86
|
+
const preimageBytes = globalThis.crypto.getRandomValues(new Uint8Array(32));
|
|
87
87
|
const preimage = bytesToHex(preimageBytes);
|
|
88
88
|
const hashBytes = (0, wasm_sync_js_1.sha3_256)(preimageBytes);
|
|
89
89
|
const hash = bytesToHex(hashBytes);
|
package/dist/cjs/wasm-sync.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* import { wotsSign, sha3_256 } from '@totemsdk/core/wasm';
|
|
9
9
|
* const sig = wotsSign(seed, 0, message); // synchronous!
|
|
10
10
|
*/
|
|
11
|
-
import { bytes_to_hex_wasm, clean_seed_phrase_wasm, compute_transaction_digest_wasm, concat_bytes_wasm,
|
|
11
|
+
import { bytes_to_hex_wasm, clean_seed_phrase_wasm, compute_transaction_digest_wasm, concat_bytes_wasm, create_unified_child_tree_key_wasm, create_unified_root_tree_key_wasm, derive_chain_seed_wasm, derive_full_public_key_batch_wasm, derive_full_public_key_wasm, derive_per_address_seed_wasm, derive_pk_digest_batch_wasm, derive_pk_digest_wasm, derive_root_priv_seed_wasm, derive_unified_address_public_key_wasm, expand_private_key_wasm, generate_mnemonic_wasm, get_params, hash_chain_wasm, hex_to_bytes_wasm, make_mx_address_wasm, mine_txpow_chunk_wasm, mine_txpow_wasm, mmr_root_from_public_keys_wasm, parse_mx_address_wasm, phrase_to_seed_wasm, precompute_transaction_coin_id_wasm, serialize_transaction_wasm, sha3_256_wasm, timing_safe_equal_wasm, validate_phrase_wasm, verify_mmr_proof_wasm, verify_tree_signature_wasm, wasm_tree_key_free, wasm_tree_key_get_max_uses, wasm_tree_key_get_public_key, wasm_tree_key_get_uses, wasm_tree_key_new, wasm_tree_key_set_uses, wasm_tree_key_sign, wots_pk_from_sig_wasm, wots_sign_batch_wasm, wots_sign_wasm, wots_verify_digest_wasm, wots_verify_wasm, write_mini_data_wasm, write_mini_string_wasm } from '@totemsdk/core-wasm';
|
|
12
12
|
export declare const bytesToHex: typeof bytes_to_hex_wasm;
|
|
13
13
|
export declare const hexToBytes: typeof hex_to_bytes_wasm;
|
|
14
14
|
export declare const concatBytes: typeof concat_bytes_wasm;
|
|
@@ -41,8 +41,8 @@ export declare const computeTransactionDigest: typeof compute_transaction_digest
|
|
|
41
41
|
export declare const precomputeTransactionCoinID: typeof precompute_transaction_coin_id_wasm;
|
|
42
42
|
export declare const verifyTreeSignature: typeof verify_tree_signature_wasm;
|
|
43
43
|
export declare const timingSafeEqual: typeof timing_safe_equal_wasm;
|
|
44
|
-
export declare
|
|
45
|
-
export declare
|
|
44
|
+
export declare function createChallenge(domain: string, statement: string): string;
|
|
45
|
+
export declare function validateChallenge(challengeJson: string, domain: string): boolean;
|
|
46
46
|
export declare function writeMiniNumber(value: bigint, scale?: number): Uint8Array;
|
|
47
47
|
export declare const writeMiniData: typeof write_mini_data_wasm;
|
|
48
48
|
export declare const writeMiniString: typeof write_mini_string_wasm;
|
package/dist/cjs/wasm-sync.js
CHANGED
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
* const sig = wotsSign(seed, 0, message); // synchronous!
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.wasmTreeKeyFree = exports.wasmTreeKeyGetMaxUses = exports.wasmTreeKeySetUses = exports.wasmTreeKeyGetUses = exports.wasmTreeKeyGetPublicKey = exports.wasmTreeKeySign = exports.wasmTreeKeyNew = exports.mineTxPoWChunk = exports.mineTxPoW = exports.deriveFullPublicKeyBatch = exports.derivePKdigestBatch = exports.wotsSignBatch = exports.getParams = exports.verifyMMRProof = exports.mmrRootFromPublicKeys = exports.deriveUnifiedAddressPublicKey = exports.createUnifiedRootTreeKey = exports.createUnifiedChildTreeKey = exports.writeMiniString = exports.writeMiniData = exports.
|
|
13
|
+
exports.wasmTreeKeyFree = exports.wasmTreeKeyGetMaxUses = exports.wasmTreeKeySetUses = exports.wasmTreeKeyGetUses = exports.wasmTreeKeyGetPublicKey = exports.wasmTreeKeySign = exports.wasmTreeKeyNew = exports.mineTxPoWChunk = exports.mineTxPoW = exports.deriveFullPublicKeyBatch = exports.derivePKdigestBatch = exports.wotsSignBatch = exports.getParams = exports.verifyMMRProof = exports.mmrRootFromPublicKeys = exports.deriveUnifiedAddressPublicKey = exports.createUnifiedRootTreeKey = exports.createUnifiedChildTreeKey = exports.writeMiniString = exports.writeMiniData = exports.timingSafeEqual = exports.verifyTreeSignature = exports.precomputeTransactionCoinID = exports.computeTransactionDigest = exports.serializeTransaction = exports.parseMxAddress = exports.makeMxAddress = exports.cleanSeedPhrase = exports.validatePhrase = exports.generateWordList = exports.phraseToSeed = exports.deriveRootPrivSeed = exports.derivePerAddressSeed = exports.deriveChainSeedJava = 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 = void 0;
|
|
14
14
|
exports.wotsAddressFromKeypair = wotsAddressFromKeypair;
|
|
15
|
+
exports.createChallenge = createChallenge;
|
|
16
|
+
exports.validateChallenge = validateChallenge;
|
|
15
17
|
exports.writeMiniNumber = writeMiniNumber;
|
|
16
18
|
exports.wotsKeypairFromSeed = wotsKeypairFromSeed;
|
|
17
19
|
// The bundler target initializes WASM synchronously at import time.
|
|
@@ -55,8 +57,13 @@ exports.computeTransactionDigest = core_wasm_1.compute_transaction_digest_wasm;
|
|
|
55
57
|
exports.precomputeTransactionCoinID = core_wasm_1.precompute_transaction_coin_id_wasm;
|
|
56
58
|
exports.verifyTreeSignature = core_wasm_1.verify_tree_signature_wasm;
|
|
57
59
|
exports.timingSafeEqual = core_wasm_1.timing_safe_equal_wasm;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
// SystemTime panics on wasm32-unknown-unknown; supply the clock from JS.
|
|
61
|
+
function createChallenge(domain, statement) {
|
|
62
|
+
return (0, core_wasm_1.create_challenge_wasm)(domain, statement, Math.floor(Date.now() / 1000));
|
|
63
|
+
}
|
|
64
|
+
function validateChallenge(challengeJson, domain) {
|
|
65
|
+
return (0, core_wasm_1.validate_challenge_wasm)(challengeJson, domain, Math.floor(Date.now() / 1000));
|
|
66
|
+
}
|
|
60
67
|
function writeMiniNumber(value, scale = 0) {
|
|
61
68
|
return (0, core_wasm_1.write_mini_number_wasm)(value.toString(), scale);
|
|
62
69
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export * from './adapters/index.js';
|
|
|
10
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';
|
|
11
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';
|
|
12
12
|
export type { WotsIndices } from './tx/index.js';
|
|
13
|
-
export { bytesToHex, hexToBytes, concatBytes } from './
|
|
13
|
+
export { bytesToHex, hexToBytes, concatBytes } from './bytes.js';
|
|
14
14
|
export { sha3_256 } from './wasm-sync.js';
|
|
15
15
|
export { expandPrivateKey, hashChain, derivePKdigest, deriveFullPublicKey, wotsSign, wotsVerify, wotsVerifyDigest, wotsPkFromSig, wotsPublicKeyFromSeed, wotsKeypairFromSeed, } from './wasm-sync.js';
|
|
16
16
|
export * from './params.js';
|
|
@@ -33,12 +33,14 @@ export { WORD_LIST, convertStringToSeed, convertWordListToSeed, generateSeedPhra
|
|
|
33
33
|
export { MiniNumber } from './MiniNumber.js';
|
|
34
34
|
export { type MinimaTransaction, type MinimaCoin, type ParsedMiniNumber, type MinimaToken, type StateVariable, type RawStateVariable, type CoinProofData, type SpendableCoinInput, type TransactionBuildResult, parseDecimalToMiniNumber, serializeCoin, serializeTransaction as serializeTransactionObject, computeTokenId, serializeTokenDescriptor, createDefaultTransaction, buildMinimaCoin, } from './transaction.js';
|
|
35
35
|
export { verifySignature, verifySignatureDetailed, verifyTreeSignatureDetailed, deriveAddressFromPublicKey, normalizeHex, type VerificationResult, } from './verify.js';
|
|
36
|
+
export { deriveDeterministicAddress, deriveUnifiedAddress, deriveAddress, verifyDeterministicAddress, type AddressScheme, type DerivedAddress, } from './address-derivation.js';
|
|
36
37
|
export { writeMiniByte, writeMMREntryNumber, writeSignature, writeSignatureProof, concat, bigIntToByteArray, type Bytes, } from './Streamable.js';
|
|
37
38
|
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';
|
|
38
39
|
export { TreeKey, TreeKeyNode, serializeTreeSignature, deserializeTreeSignature, getRootPublicKey, DEFAULT_KEYS_PER_LEVEL, DEFAULT_LEVELS, createUnifiedChildTreeKeyAsync, createPerAddressTreeKey, createPerAddressTreeKeyAsync, setTreeKeyLogger, disableTreeKeyLogger, type KeyGenProgress, type ProgressCallback, type SignatureProof, type TreeSignature, } from './treekey.js';
|
|
39
40
|
export type { WotsKeypair, WotsSignature } from './wots.js';
|
|
40
41
|
export { F, hex, fromHex, setWotsLogger, disableWotsLogger, u16be, u32be, assert32, h, prfChainSeed, toWinternitzDigits, baseWWithChecksum, wotsSignLegacy, } from './wots.js';
|
|
41
|
-
export { toHex, canonicalJson
|
|
42
|
+
export { toHex, canonicalJson } from './canonical.js';
|
|
43
|
+
export { hashCanonical } from './canonical-hash.js';
|
|
42
44
|
export { utf8ToBytes, bytesToUtf8 } from './utils.js';
|
|
43
45
|
export declare const MINIMA_CONSTANTS: {
|
|
44
46
|
readonly WOTS_W: 8;
|
package/dist/index.js
CHANGED
|
@@ -17,23 +17,24 @@ export { TransactionService, TransactionLifecycle, TransactionLifecycleError, Wa
|
|
|
17
17
|
// Cryptographic primitives — backed by Rust/WASM (@totemsdk/core-wasm)
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
19
19
|
// Utilities
|
|
20
|
-
export { bytesToHex, hexToBytes, concatBytes } from './
|
|
21
|
-
import { bytesToHex
|
|
20
|
+
export { bytesToHex, hexToBytes, concatBytes } from './bytes.js';
|
|
21
|
+
import { bytesToHex } from './bytes.js';
|
|
22
|
+
import { parseMxAddress } from './wasm-async.js';
|
|
22
23
|
// SHA3-256
|
|
23
|
-
export { sha3_256 } from './wasm-
|
|
24
|
+
export { sha3_256 } from './wasm-async.js';
|
|
24
25
|
// WOTS Signatures
|
|
25
|
-
export { expandPrivateKey, hashChain, derivePKdigest, deriveFullPublicKey, wotsSign, wotsVerify, wotsVerifyDigest, wotsPkFromSig, wotsPublicKeyFromSeed, wotsKeypairFromSeed, } from './wasm-
|
|
26
|
+
export { expandPrivateKey, hashChain, derivePKdigest, deriveFullPublicKey, wotsSign, wotsVerify, wotsVerifyDigest, wotsPkFromSig, wotsPublicKeyFromSeed, wotsKeypairFromSeed, } from './wasm-async.js';
|
|
26
27
|
// WOTS Params (from params.ts — constants, no crypto)
|
|
27
28
|
export * from './params.js';
|
|
28
29
|
// Java-Compatible Serialization
|
|
29
|
-
export { deriveChainSeedJava, derivePerAddressSeed, deriveRootPrivSeed, writeMiniNumber, writeMiniData, writeMiniString, precomputeTransactionCoinID, } from './wasm-
|
|
30
|
+
export { deriveChainSeedJava, derivePerAddressSeed, deriveRootPrivSeed, writeMiniNumber, writeMiniData, writeMiniString, precomputeTransactionCoinID, } from './wasm-async.js';
|
|
30
31
|
// TreeKey/TreeKeyNode — WASM-backed
|
|
31
32
|
// createUnifiedChildTreeKey / createUnifiedRootTreeKey come from the TS
|
|
32
33
|
// implementation (returning a full TreeKey object with setUses/sign/getPublicKey)
|
|
33
34
|
// to match the object API that downstream consumers (server, root-identity)
|
|
34
35
|
// rely on. The WASM binding only returns the root public key bytes.
|
|
35
36
|
export { createUnifiedChildTreeKey, createUnifiedRootTreeKey, deriveUnifiedAddressPublicKey, verifyTreeSignature, } from './treekey.js';
|
|
36
|
-
export { mmrRootFromPublicKeys, verifyMMRProof, } from './wasm-
|
|
37
|
+
export { mmrRootFromPublicKeys, verifyMMRProof, } from './wasm-async.js';
|
|
37
38
|
// BIP39 Seed Phrase Handling
|
|
38
39
|
// The WASM binding (wasm-sync.ts) shares the canonical 2048-word BIP39 list
|
|
39
40
|
// and Minima-compatible uppercase canonicalization with the TS implementation
|
|
@@ -42,20 +43,20 @@ export { mmrRootFromPublicKeys, verifyMMRProof, } from './wasm-sync.js';
|
|
|
42
43
|
// canonical source of truth and avoids double-entering the list.
|
|
43
44
|
export { phraseToSeed, generateWordList, validatePhrase, cleanSeedPhrase, } from './bip39.js';
|
|
44
45
|
// Address Derivation
|
|
45
|
-
export { makeMxAddress, parseMxAddress, wotsAddressFromKeypair, } from './wasm-
|
|
46
|
+
export { makeMxAddress, parseMxAddress, wotsAddressFromKeypair, } from './wasm-async.js';
|
|
46
47
|
// Transaction Serialization & Digest
|
|
47
|
-
export { serializeTransaction, computeTransactionDigest, } from './wasm-
|
|
48
|
+
export { serializeTransaction, computeTransactionDigest, } from './wasm-async.js';
|
|
48
49
|
// Transaction deserialization (byte-exact inverse of the TS serializer)
|
|
49
50
|
export { deserializeTransaction } from './transaction.js';
|
|
50
51
|
// Verification
|
|
51
|
-
export { timingSafeEqual, createChallenge, validateChallenge, } from './wasm-
|
|
52
|
+
export { timingSafeEqual, createChallenge, validateChallenge, } from './wasm-async.js';
|
|
52
53
|
// ---------------------------------------------------------------------------
|
|
53
54
|
// TypeScript-only modules (no crypto — keep as-is)
|
|
54
55
|
// ---------------------------------------------------------------------------
|
|
55
56
|
// Script helpers (for address derivation)
|
|
56
57
|
export { scriptFromWotsPk } from './script.js';
|
|
57
58
|
// Base32 Encoding (Minima-compatible) — re-export from WASM
|
|
58
|
-
export { makeMxAddress as encodeMx, parseMxAddress as decodeMx } from './wasm-
|
|
59
|
+
export { makeMxAddress as encodeMx, parseMxAddress as decodeMx } from './wasm-async.js';
|
|
59
60
|
/** Convert an Mx (radix-32) or hex Minima address to lowercase hex. */
|
|
60
61
|
export function mxToHex(address) {
|
|
61
62
|
const upper = address.startsWith('0x') || address.startsWith('0X') ? address.slice(2) : address;
|
|
@@ -77,6 +78,8 @@ export { MiniNumber } from './MiniNumber.js';
|
|
|
77
78
|
export { parseDecimalToMiniNumber, serializeCoin, serializeTransaction as serializeTransactionObject, computeTokenId, serializeTokenDescriptor, createDefaultTransaction, buildMinimaCoin, } from './transaction.js';
|
|
78
79
|
// High-level Verification API (convenience functions for integrators)
|
|
79
80
|
export { verifySignature, verifySignatureDetailed, verifyTreeSignatureDetailed, deriveAddressFromPublicKey, normalizeHex, } from './verify.js';
|
|
81
|
+
// Deterministic address derivation (CAN-005)
|
|
82
|
+
export { deriveDeterministicAddress, deriveUnifiedAddress, deriveAddress, verifyDeterministicAddress, } from './address-derivation.js';
|
|
80
83
|
// Streamable primitives (low-level serialization building blocks)
|
|
81
84
|
export { writeMiniByte, writeMMREntryNumber, writeSignature, writeSignatureProof, concat, bigIntToByteArray, } from './Streamable.js';
|
|
82
85
|
// Java-Compatible Serialization Helpers (non-crypto)
|
|
@@ -85,7 +88,8 @@ export { serializeMiniNumber, serializeMiniData, hashAllObjects, deriveChildTree
|
|
|
85
88
|
export { TreeKey, TreeKeyNode, serializeTreeSignature, deserializeTreeSignature, getRootPublicKey, DEFAULT_KEYS_PER_LEVEL, DEFAULT_LEVELS, createUnifiedChildTreeKeyAsync, createPerAddressTreeKey, createPerAddressTreeKeyAsync, setTreeKeyLogger, disableTreeKeyLogger, } from './treekey.js';
|
|
86
89
|
export { F, hex, fromHex, setWotsLogger, disableWotsLogger, u16be, u32be, assert32, h, prfChainSeed, toWinternitzDigits, baseWWithChecksum, wotsSignLegacy, } from './wots.js';
|
|
87
90
|
// Canonical helpers (deterministic JSON + hashing)
|
|
88
|
-
export { toHex, canonicalJson
|
|
91
|
+
export { toHex, canonicalJson } from './canonical.js';
|
|
92
|
+
export { hashCanonical } from './canonical-hash.js';
|
|
89
93
|
// Byte/string utilities
|
|
90
94
|
export { utf8ToBytes, bytesToUtf8 } from './utils.js';
|
|
91
95
|
// Constants
|
package/dist/javaStreamables.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* NOTE: This module provides number-based wrappers for backward compatibility.
|
|
13
13
|
* The canonical implementations are in Streamable.ts which uses bigint for precision.
|
|
14
14
|
*/
|
|
15
|
-
import { sha3_256 } from './wasm-
|
|
15
|
+
import { sha3_256 } from './wasm-async.js';
|
|
16
16
|
import { writeMiniNumber as streamableWriteMiniNumber, writeMiniData as streamableWriteMiniData, writeHashToStream as streamableWriteHashToStream, bigIntToByteArray } from './Streamable.js';
|
|
17
17
|
/**
|
|
18
18
|
* Serialize a number in MiniNumber format (Java compatible)
|
package/dist/legacy.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Legacy JS
|
|
2
|
+
* Legacy JS crypto kernels — **deprecated (RFC-031 P4), frozen**.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* @deprecated The pure-JS kernels are scheduled for removal (RFC-031 P5). Use
|
|
5
|
+
* the WASM surface instead:
|
|
6
|
+
* - `@totemsdk/core` / `@totemsdk/core/wasm` — synchronous WASM (bundler loader required)
|
|
7
|
+
* - `@totemsdk/core/wasm-async` — async-init WASM (portable to edge/Workers)
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* This entry stays only as a migration bridge for environments that cannot run
|
|
10
|
+
* WASM yet; it is **frozen** (no new kernels are added here) and will be deleted
|
|
11
|
+
* in a major release. Exports are `legacy`-prefixed where they collide with the
|
|
12
|
+
* WASM names (`legacyWotsSign`, …).
|
|
13
|
+
*
|
|
14
|
+
* // before
|
|
15
|
+
* import { legacyWotsSign } from '@totemsdk/core/legacy';
|
|
16
|
+
* // after
|
|
17
|
+
* import { init, wotsSign } from '@totemsdk/core/wasm-async';
|
|
18
|
+
* await init();
|
|
10
19
|
*/
|
|
11
20
|
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
21
|
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';
|
package/dist/legacy.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Legacy JS
|
|
2
|
+
* Legacy JS crypto kernels — **deprecated (RFC-031 P4), frozen**.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* @deprecated The pure-JS kernels are scheduled for removal (RFC-031 P5). Use
|
|
5
|
+
* the WASM surface instead:
|
|
6
|
+
* - `@totemsdk/core` / `@totemsdk/core/wasm` — synchronous WASM (bundler loader required)
|
|
7
|
+
* - `@totemsdk/core/wasm-async` — async-init WASM (portable to edge/Workers)
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* This entry stays only as a migration bridge for environments that cannot run
|
|
10
|
+
* WASM yet; it is **frozen** (no new kernels are added here) and will be deleted
|
|
11
|
+
* in a major release. Exports are `legacy`-prefixed where they collide with the
|
|
12
|
+
* WASM names (`legacyWotsSign`, …).
|
|
13
|
+
*
|
|
14
|
+
* // before
|
|
15
|
+
* import { legacyWotsSign } from '@totemsdk/core/legacy';
|
|
16
|
+
* // after
|
|
17
|
+
* import { init, wotsSign } from '@totemsdk/core/wasm-async';
|
|
18
|
+
* await init();
|
|
10
19
|
*/
|
|
11
20
|
// WOTS — unique exports
|
|
12
21
|
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, } from './wots.js';
|
package/dist/minima32.js
CHANGED
|
@@ -39,7 +39,7 @@ export function decodeMxRadix32Frame(mx) {
|
|
|
39
39
|
}
|
|
40
40
|
return bigIntToBytes(x);
|
|
41
41
|
}
|
|
42
|
-
import { sha3_256 as nobleSha3 } from './wasm-
|
|
42
|
+
import { sha3_256 as nobleSha3 } from './wasm-async.js';
|
|
43
43
|
/** Encode raw 32 bytes to Mx address with frame and checksum */
|
|
44
44
|
export function makeMxAddress(root32) {
|
|
45
45
|
if (root32.length !== 32) {
|
package/dist/mmr.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// packages/core/src/mmr.ts
|
|
2
2
|
// Full MMR implementation matching Minima's MMR.java, MMRData.java, and TreeKeyNode.java
|
|
3
|
-
import { sha3_256 as nobleSha3 } from './wasm-
|
|
3
|
+
import { sha3_256 as nobleSha3 } from './wasm-async.js';
|
|
4
4
|
import { serializeMiniNumber, serializeMiniData, javaHashAllObjects } from "./javaStreamables.js";
|
|
5
5
|
// Import canonical wire serialization from Streamable.ts (single source of truth)
|
|
6
6
|
import { writeMMRProof } from "./Streamable.js";
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* Each helper validates inputs and builds the appropriate ScriptDescriptor
|
|
14
14
|
* for use with the EnhancedTransactionBuilder.
|
|
15
15
|
*/
|
|
16
|
-
import { sha3_256 } from '../wasm-
|
|
17
|
-
import {
|
|
16
|
+
import { sha3_256 } from '../wasm-async.js';
|
|
17
|
+
import { sha256 as nobleSha256 } from '@noble/hashes/sha256.js';
|
|
18
18
|
function sha256(data) {
|
|
19
|
-
return
|
|
19
|
+
return nobleSha256(data);
|
|
20
20
|
}
|
|
21
21
|
import { createTimelockDescriptor, createHTLCDescriptor, createMASTDescriptor, createExchangeDescriptor, createFlashCashDescriptor, createSlowCashDescriptor } from './types.js';
|
|
22
22
|
function kissHex(hex) {
|
|
@@ -79,7 +79,7 @@ export class HTLCHelper {
|
|
|
79
79
|
* Generate a random preimage and its hash.
|
|
80
80
|
*/
|
|
81
81
|
static generateSecret() {
|
|
82
|
-
const preimageBytes =
|
|
82
|
+
const preimageBytes = globalThis.crypto.getRandomValues(new Uint8Array(32));
|
|
83
83
|
const preimage = bytesToHex(preimageBytes);
|
|
84
84
|
const hashBytes = sha3_256(preimageBytes);
|
|
85
85
|
const hash = bytesToHex(hashBytes);
|
package/dist/transaction.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* precomputeTransactionCoinID() to set output coin IDs. Without this, the signed
|
|
11
11
|
* digest won't match what the Minima node verifies, causing allsignaturesvalid=false.
|
|
12
12
|
*/
|
|
13
|
-
import { sha3_256 } from './wasm-
|
|
13
|
+
import { sha3_256 } from './wasm-async.js';
|
|
14
14
|
import { writeMiniNumber, writeMiniData, writeHashToStream, writeMiniByte, writeMMREntryNumber, concat, hexToBytes, } from './Streamable.js';
|
|
15
15
|
const ZERO_TXPOWID = new Uint8Array([0x00]);
|
|
16
16
|
const STATETYPE_HEX = 1;
|
package/dist/verify.js
CHANGED